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, [email protected] 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?
> 
> 
> 
> 
> 
> 

Reply via email to