Re: Lifecycle Design

From: Andrey Razumovsky (razumovsky.andre..mail.com)
Date: Fri Apr 10 2009 - 03:17:25 EDT

  • Next message: Andrus Adamchik: "Re: Lifecycle Design"

    The proposed way is to use JGroups or JMS for synchronization:
    http://cayenne.apache.org/doc/configuring-caching-behavior.html

    2009/4/10 Lawrence Gerstley <lawger..cn.com>

    > So, I have the same question here--multiple thick clients (desktop RCP
    > applications), each with a DataContext tied to the same backend, and
    > potential database access (direct or otherwise) from other toolsets out of
    > my control. Is there a recommended strategy for refreshing each applications
    > singleton DataContext to stay in synch, or manually a supplying refresh
    > command to the DataContext to periodically update (and, if so, with
    > what/how)?
    >
    > Kind regards,
    >
    > Lawrence
    > ===================================
    > Lawrence Gerstley, Ph.D.
    > PSMI Consulting
    > lawger..mail.com
    > Cel: (415) 694-0844
    >
    >
    > On Apr 8, 2009, at 4:22 PM, Malcolm Edgar wrote:
    >
    > Hi Joe,
    >>
    >> Your singleton cache is going to need to be update periodically if
    >> there are changes to the under lying database from other sources.
    >>
    >> regards Malcolm Edgar
    >>
    >> On Thu, Apr 9, 2009 at 7:45 AM, Joe Baldwin <jfbaldwi..arthlink.net>
    >> wrote:
    >>
    >>> 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
    >>>
    >>>
    >>>
    >>>
    >>>
    >



    This archive was generated by hypermail 2.0.0 : Fri Apr 10 2009 - 03:17:57 EDT