Re: Keeping hessian servlet session active with a rop client

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Tue Sep 14 2010 - 14:24:46 UTC

  • Next message: Dave Lamy: "Bug with EJBQL query referencing two subclasses?"

    Nothing that is built in for this purpose, and IIRC that 'getEntityResolver' approach may no longer work, as we are caching it now on the client. You can issue a simple query instead I guess. Something that executes quickly and doesn't bring back any data. It may even end up having better performance than 'getEntityResolver'.

    Also I am thinking we should look at adding a seamless reconnect ability to the Hessian transport. As in most cases users won't maintain server-side state between requests, so abandoning a session and creating a new one shouldn't be a big deal if that's transparent to the users.

    Andrus

    On Sep 14, 2010, at 7:34 AM, emanuel..engozzi.com wrote:

    > I've a swing application using cayenne ROP, i had problem with session
    > timeout of the hessian servlet, so far in order to avoid long session
    > timeout, i implemented a thread preforming the following:
    > ....
    >
    > DataChannel channel;
    > ....
    >
    > public void run() {
    >
    >
    >
    >
    > for(;;)
    > {
    >
    > this.channel.getEntityResolver();
    >
    > try {
    > Thread.sleep(120000);
    > } catch (InterruptedException ex) {
    > Logger.getLogger(Instance.class.getName()).log(Level.SEVERE,
    > null, ex);
    > }
    > }
    > }
    >
    > it issue a bootstrap message every 12 seconds.
    >
    >
    > I didn't find a better way to doit, using cayenne 2.
    >
    > I wonder, since im planning to switch the application to cayenne 3, for
    > both Nested Context and Paginated queries for ROP, is there a better way
    > to "ping" Hessian servlet to keep session active?
    >
    >
    >
    >
    >
    >



    This archive was generated by hypermail 2.0.0 : Tue Sep 14 2010 - 14:25:34 UTC