The requirement seems to be implementation of a notification method. The DB solution, though a bit brute force, will work. A more elegant solution would be to implement a permanent queue message via JMS on a subject. All of the start-up servlets would populate from the database and block for a message based on the subject. Once the correct message was received,  the database refresh could be accomplished.

 

Additional granularity could be added to limit the refresh based on message content; i.e. only refresh the German translation.

 

J two cents added

 

-----Original Message-----
From: Yan, Hong [IT] [mailto:[EMAIL PROTECTED]
Sent: Tuesday, March 04, 2003 4:29 PM
To: jdjlist
Subject: [jdjlist] Caching of semi-static data across webapps

 

James :

 

Thanks for sharing the ideas. As this is getting interesting, I would like to explain what I do, and the problems that I have in more detail :

 

I have a Singleton object that keeps several hashtables (with Spanish/Chinese/Japanese/French/Germany texts and key strings for these texts). These hashtables will be populated a start-up servlet when the webapp starts. JSP pages retrieves the locale texts using keys, so that the web system is translated in user's preferred locale.

 

Let me take a simplified version, I have one WebSphere server with three webapp clones in load balance. My server never stops, so when translators need modify these locale texts, I need to reload the corresponding hashtables.

 

The thing is, on a webapp based system, the translator can trigger a reload, and this reload happens in only one of the clones, and the other two clones are not refreshed. Users hitting these two clones are still getting old translation.

 

In a word, in my system, the cached data is semi-static, and need to be reloaded on demand.

 

Right now we are working on possible design approaches to fix this, and we figure one of the followign may do the job:

 

(1) Use a database flag and let the Singleton object keeps on polling this flag. Once flipped, the object will refresh the content.

(2) ...

 

But I assume this should be a common problem to any system with multiple webapps in load balancing, and there should be a systematic solution...Any suggestions are welcome.

 

 

Thanks

 

Jeff

-----Original Message-----
From: James Stauffer [mailto:[EMAIL PROTECTED]
Sent: Tuesday, March 04, 2003 3:54 PM
To: jdjlist
Subject: [jdjlist] RE: Caching

We have a servlet that gathers the data about the caches and serializes that info. One servlet connects to the other servlets to get that info and consolidates it.

 

James Stauffer

-----Original Message-----
From: Yan, Hong [IT] [mailto:[EMAIL PROTECTED]
Sent: Tuesday, March 04, 2003 2:02 PM
To: jdjlist
Subject: [jdjlist] RE: Caching

James:

 

Thanks for the post. I am also interested in caching objects and right now I am having problems in refreshing them - I have three WebSphere sites, each one of them has three webapp clones.

 

How do you manage the caches across sites?

 

Thanks

 

Jeff

-----Original Message-----
From: James Stauffer [mailto:[EMAIL PROTECTED]
Sent: Tuesday, March 04, 2003 2:48 PM
To: jdjlist
Subject: [jdjlist] RE: Caching

We have our own internally developed object cache. It uses a hard cache (can't be GC'ed) extended by a soft reference cache. It also has a cache manager servlet and another servlet to manage the caches across machines.  It mostly only caches objects of the following:

 

public interface CacheAble {
  public int getID();

 

  public String getClassName();

 

  public String getDescriptor();
}

If you are interested I can probably give more design details.

James Stauffer

-----Original Message-----
From: Greg Nudelman [mailto:[EMAIL PROTECTED]
Sent: Tuesday, March 04, 2003 12:56 PM
To: jdjlist
Subject: [jdjlist] Caching

We're have a home-grown Java application and would like to introduce some kind of app-level cache manager.  I'm interested if someone has made anything like that -- shareware/custom packages, a study about the size of objects in memory, anything like that.

 

All suggestions welcome. Thanks!

 

Greg

---
You are currently subscribed to jdjlist as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]
http://www.sys-con.com/fusetalk ---
You are currently subscribed to jdjlist as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]
http://www.sys-con.com/fusetalk

---
You are currently subscribed to jdjlist as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]
http://www.sys-con.com/fusetalk ---
You are currently subscribed to jdjlist as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]
http://www.sys-con.com/fusetalk

---
You are currently subscribed to jdjlist as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]
http://www.sys-con.com/fusetalk

---
You are currently subscribed to jdjlist as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]
http://www.sys-con.com/fusetalk

Reply via email to