|
Hi, I'm running some issues on this one. I now create a new child data context on every situation. But I'm always getting the same deadlock. I can't figure out how to fix this from my own code. I've googled other people who also had a similar problem, but didn't help. This is the explanation from jConsole: Name: Timer-0 State: BLOCKED on [EMAIL PROTECTED] owned by: Timer-4 Total blocked: 3 Total waited: 68 Stack trace: org.apache.cayenne.event.DispatchQueue.dispatchEvent(DispatchQueue.java:54) org.apache.cayenne.event.EventManager.dispatchEvent(EventManager.java:336) org.apache.cayenne.event.EventManager.postEvent(EventManager.java:307) org.apache.cayenne.access.DataContext.fireDataChannelChanged(DataContext.java:1704) org.apache.cayenne.access.DataContextMergeHandler.graphFlushed(DataContextMergeHandler.java:114) sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.apache.cayenne.util.Invocation.fire(Invocation.java:204) org.apache.cayenne.event.EventManager$Dispatch.fire(EventManager.java:397) org.apache.cayenne.event.DispatchQueue.dispatchEvent(DispatchQueue.java:162) org.apache.cayenne.event.DispatchQueue.dispatchEvent(DispatchQueue.java:58) - locked [EMAIL PROTECTED] org.apache.cayenne.event.EventManager.dispatchEvent(EventManager.java:336) org.apache.cayenne.event.EventManager.postEvent(EventManager.java:307) org.apache.cayenne.access.DataContext.fireDataChannelCommitted(DataContext.java:1680) org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1247) - locked [EMAIL PROTECTED] org.apache.cayenne.access.DataContext.onContextFlush(DataContext.java:1192) org.apache.cayenne.access.DataContext.onSync(DataContext.java:1167) org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1234) - locked [EMAIL PROTECTED] org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:1138) com.ptb.confignode.ConfigNode.newConfigGenerated(ConfigNode.java:711) - locked [EMAIL PROTECTED] com.ptb.confignode.tasks.GenerateNewDistribution.run(GenerateNewDistribution.java:162) java.util.TimerThread.mainLoop(Timer.java:512) java.util.TimerThread.run(Timer.java:462) Name: Timer-4 State: BLOCKED on [EMAIL PROTECTED] owned by: Timer-0 Total blocked: 20 Total waited: 799 Stack trace: org.apache.cayenne.access.DataContextMergeHandler.graphChanged(DataContextMergeHandler.java:99) sun.reflect.GeneratedMethodAccessor69.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.apache.cayenne.util.Invocation.fire(Invocation.java:204) org.apache.cayenne.event.EventManager$Dispatch.fire(EventManager.java:397) org.apache.cayenne.event.DispatchQueue.dispatchEvent(DispatchQueue.java:162) org.apache.cayenne.event.DispatchQueue.dispatchEvent(DispatchQueue.java:58) - locked [EMAIL PROTECTED] org.apache.cayenne.event.EventManager.dispatchEvent(EventManager.java:336) org.apache.cayenne.event.EventManager.postEvent(EventManager.java:307) org.apache.cayenne.access.DataContext.fireDataChannelChanged(DataContext.java:1704) org.apache.cayenne.access.DataContext.onContextFlush(DataContext.java:1189) org.apache.cayenne.access.DataContext.onSync(DataContext.java:1167) org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1234) - locked [EMAIL PROTECTED] org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:1138) com.ptb.commons.db.services.StatsServices.addForClient(StatsServices.java:42) com.ptb.backendnode.tasks.DataMgrStatsCalculation.run(DataMgrStatsCalculation.java:78) java.util.TimerThread.mainLoop(Timer.java:512) java.util.TimerThread.run(Timer.java:462) Thanks! Michael Gentry escribió: Hi Álvaro, Creating a DataContext is a fairly cheap operation. I would suggest creating them as you need them and not try to optimize this operation at this point. If you run into bottlenecks in the future, then maybe look at other options, but there is a good chance that creating extra DataContexts will not be the source of a performance problem./dev/mrg On Jan 7, 2008 10:30 AM, Álvaro Martínez <[EMAIL PROTECTED]> wrote: |
- Selective commit Álvaro Martínez
- Re: Selective commit Andrus Adamchik
- RE: Selective commit Philip Miller
- RE: Selective commit Philip Miller
- Re: Selective commit Andrus Adamchik
- Re: Selective commit Álvaro Martínez
- Re: Selective commit Andrus Adamchik
- Re: Selective commit Álvaro Martínez
- Re: Selective commit Michael Gentry
- Re: Selective commit Álvaro Martínez
- Re: Selective commit Andrus Adamchik
- Re: Selective commit Álvaro Martínez
- Re: Selective commit Andrus Adamchik
- Re: Selective commit Álvaro Martínez
- Re: Selective commit Álvaro Martínez
- Re: Selective commit Andrus Adamchik
- Re: Selective commit Andrus Adamchik
- Re: Selective commit Álvaro Martínez
- Re: Selective commit Álvaro Martínez
- Re: Selective commit Andrus Adamchik
