I *think* this is a life-cycle question, but there may be more to it.

Proposed Design:

1. Standard Web page JSP using Tomcat server.
2. One of the JSP's accesses a singleton.
3. The singleton accesses and stores a database field via Cayenne (presumably when the class is initially loaded) and should never need to access the field again. 4. I would prefer it if the database field change would be propagated to the singleton upon the next new client-Session.

Problem
1. Here is the odd bit: the database field can be modified via direct access to the database (SQL, etc). 2. Cayenne appears not to see this change even when a new client- Session is initialized. 3. I can *force* the singleton to recognize the change by restarting Tomcat (but that is totally lame :) ) 4. Unless I have made a mistake (which is possible), the singleton should be only associated with JSP session scope. But if I am wrong, this could be the problem.

Obviously, I have a misunderstanding about either Cayenne or Tomcat caching or perhaps its a combo of the two. It appears from my tests that the singleton class may be constructed the first time after Tomcat is restarted and then remains persistent even across different sessions.

Are there any suggestions as to a simple design in which my singleton forces re-initialized (i.e. refresh the Cayenne object from the DBMS data) upon each new session?

Thanks,
Joe



Reply via email to