Hi Andrus,
Thank you -- you've hit the nail right on the head!
In our web tier, we've been starting up a new ClientChannel when creating
each session-specific CayenneContext. I've since changed the code so that
all CayenneContexts are now created using a shared ClientChannel instance
(Singleton p
Or actually, client can be a problem as well. Each ClientChannel that
you create would start an EventManager. So you may want to do
ClientChannel.getEventManager().shutdown() before a ClientChannel goes
out of scope.
Andrus
On May 1, 2010, at 1:09 PM, Andrus Adamchik wrote:
I don't think
I don't think running things on the same server vs. separate server is
an issue. Hw is your business tier implemented though? Is that an EJB
or a web app? Something in its lifecycle makes Cayenne start multiple
times and this is what you need to figure out.
Andrus
On Apr 30, 2010, at 11:14
Hi Andrus,
Thank you for your prompt and insightful reply!
Looking through the thread dumps as suggested, it definitely seems like we
are starting multiple Cayenne stacks / EventManagers -- on point (1), the
number after the last dash is rather low, and on point (2), the address of
the lock are p
Hi Vic,
There are two possible explanations - EventManager leaking threads
(seems rather unlikely) or you are starting multiple Cayenne stacks
(or create multiple EventManagers as a side effect of some other
action).
A few ways to detect this from a thread dump:
1. Check the names of the
Hi all,
We are using Cayenne 3.0RC3. Our application has a web tier and a business /
data access tier (both deployed on Glassfish v2.1.1). Communication between
the two tiers is through the use of Cayenne Web Service.
We have been encountering OutOfMemoryException after a couple of days of
routin