Return-Path: Delivered-To: apmail-incubator-cayenne-user-archive@locus.apache.org Received: (qmail 44950 invoked from network); 12 Dec 2006 11:49:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 12 Dec 2006 11:49:38 -0000 Received: (qmail 48378 invoked by uid 500); 12 Dec 2006 11:49:43 -0000 Delivered-To: apmail-incubator-cayenne-user-archive@incubator.apache.org Received: (qmail 48334 invoked by uid 500); 12 Dec 2006 11:49:43 -0000 Mailing-List: contact cayenne-user-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cayenne-user@incubator.apache.org Delivered-To: mailing list cayenne-user@incubator.apache.org Received: (qmail 48309 invoked by uid 99); 12 Dec 2006 11:49:43 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Dec 2006 03:49:43 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (herse.apache.org: local policy) Received: from [213.162.234.99] (HELO eccproxy.ecc.as) (213.162.234.99) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Dec 2006 03:49:31 -0800 Received: from eccmx.ecc.as ([10.20.30.11]) by eccproxy.ecc.as with InterScan Messaging Security Suite; Tue, 12 Dec 2006 12:49:06 +0100 Received: from [10.20.30.155] ([10.20.30.155]) by eccmx.ecc.as with Microsoft SMTPSVC(6.0.3790.1830); Tue, 12 Dec 2006 12:49:06 +0100 Mime-Version: 1.0 (Apple Message framework v752.3) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed To: cayenne-user@incubator.apache.org From: Tore Halset Subject: does commitChanges lock all other queries? Date: Tue, 12 Dec 2006 12:48:59 +0100 X-Mailer: Apple Mail (2.752.3) X-OriginalArrivalTime: 12 Dec 2006 11:49:06.0492 (UTC) FILETIME=[871C77C0:01C71DE3] X-imss-version: 2.045 X-imss-result: Passed X-imss-scores: Clean:63.85695 C:2 M:3 S:5 R:5 X-imss-settings: Baseline:2 C:2 M:2 S:2 R:2 (0.1500 0.1500) X-Virus-Checked: Checked by ClamAV on apache.org Hello. One of our applications blocked for some time today. It worked out fine after a couple of minutes. It is running cayenne-1.2. We will upgrade to 2.0.1 in the start of january. The attached stacktraces are extracted using JBoss jmx-console. Thread http-0.0.0.0-80-6 are performing a slow DataContext.commitChanges. It locks our MS SQL Server for some minutes. I guess we will be able to optimize this by deleting some old records or creating a index. Some other threads are performing simple queries, but are blocked by a lock in DataRowStore. Are all (other) queries blocked while doing a commitChanges? I have seen some discussion around locks in DataRowStore lately, but I do not know if this is related. - Tore. Thread: http-0.0.0.0-80-3 : priority:5, demon:true, threadId:38, threadState:BLOCKED, threadLockName:org.objectstyle.cayenne.access.DataRowStore@2a2ae9 org.objectstyle.cayenne.access.DataRowStore.getCachedSnapshot (DataRowStore.java:387) org.objectstyle.cayenne.access.DataDomainQueryAction.interceptOIDQuery (DataDomainQueryAction.java:164) org.objectstyle.cayenne.access.DataDomainQueryAction.execute (DataDomainQueryAction.java:142) org.objectstyle.cayenne.access.DataDomain.onQuery(DataDomain.java:766) org.objectstyle.cayenne.util.ObjectContextQueryAction.runQuery (ObjectContextQueryAction.java:253) org.objectstyle.cayenne.access.DataContextQueryAction.execute (DataContextQueryAction.java:90) org.objectstyle.cayenne.access.DataContext.onQuery(DataContext.java: 1422) org.objectstyle.cayenne.access.DataContext.performQuery (DataContext.java:1411) org.objectstyle.cayenne.DataObjectUtils.objectForQuery (DataObjectUtils.java:290) org.objectstyle.cayenne.DataObjectUtils.objectForPK (DataObjectUtils.java:276) org.objectstyle.cayenne.DataObjectUtils.objectForPK (DataObjectUtils.java:185) Thread: http-0.0.0.0-443-2 : priority:5, demon:true, threadId:47, threadState:BLOCKED, threadLockName:org.objectstyle.cayenne.access.DataRowStore@2a2ae9 org.objectstyle.cayenne.access.ObjectResolver.synchronizedObjectsFromDat aRows(ObjectResolver.java:133) org.objectstyle.cayenne.access.DataDomainQueryAction.interceptObjectConv ersion(DataDomainQueryAction.java:373) org.objectstyle.cayenne.access.DataDomainQueryAction.execute (DataDomainQueryAction.java:151) org.objectstyle.cayenne.access.DataDomain.onQuery(DataDomain.java:766) org.objectstyle.cayenne.util.ObjectContextQueryAction.runQuery (ObjectContextQueryAction.java:253) org.objectstyle.cayenne.access.DataContextQueryAction.execute (DataContextQueryAction.java:90) org.objectstyle.cayenne.access.DataContext.onQuery(DataContext.java: 1422) org.objectstyle.cayenne.access.DataContext.performQuery (DataContext.java:1411) org.objectstyle.cayenne.access.ToManyList.resolvedObjectList (ToManyList.java:343) org.objectstyle.cayenne.access.ToManyList.size(ToManyList.java:296) Thread: EventDispatchThread-0 : priority:5, demon:true, threadId:54, threadState:WAITING, threadLockName:java.util.Collections $SynchronizedList@e2cd2e java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:474) org.objectstyle.cayenne.event.EventManager$DispatchThread.run (EventManager.java:486) Thread: EventDispatchThread-1 : priority:5, demon:true, threadId:55, threadState:WAITING, threadLockName:java.util.Collections $SynchronizedList@e2cd2e java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:474) org.objectstyle.cayenne.event.EventManager$DispatchThread.run (EventManager.java:486) Thread: EventDispatchThread-2 : priority:5, demon:true, threadId:56, threadState:WAITING, threadLockName:java.util.Collections $SynchronizedList@e2cd2e java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:474) org.objectstyle.cayenne.event.EventManager$DispatchThread.run (EventManager.java:486) Thread: EventDispatchThread-3 : priority:5, demon:true, threadId:57, threadState:WAITING, threadLockName:java.util.Collections $SynchronizedList@e2cd2e java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:474) org.objectstyle.cayenne.event.EventManager$DispatchThread.run (EventManager.java:486) Thread: EventDispatchThread-4 : priority:5, demon:true, threadId:58, threadState:WAITING, threadLockName:java.util.Collections $SynchronizedList@e2cd2e java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:474) org.objectstyle.cayenne.event.EventManager$DispatchThread.run (EventManager.java:486) Thread: EventDispatchThread-0 : priority:5, demon:true, threadId:59, threadState:WAITING, threadLockName:java.util.Collections $SynchronizedList@c9bfa java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:474) org.objectstyle.cayenne.event.EventManager$DispatchThread.run (EventManager.java:486) Thread: EventDispatchThread-1 : priority:5, demon:true, threadId:60, threadState:WAITING, threadLockName:java.util.Collections $SynchronizedList@c9bfa java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:474) org.objectstyle.cayenne.event.EventManager$DispatchThread.run (EventManager.java:486) Thread: http-0.0.0.0-443-15 : priority:5, demon:true, threadId:104, threadState:BLOCKED, threadLockName:org.objectstyle.cayenne.access.ToManyList@177348f org.objectstyle.cayenne.access.ToManyList.resolvedObjectList (ToManyList.java:332) org.objectstyle.cayenne.access.ToManyList.size(ToManyList.java:296) Thread: http-0.0.0.0-80-6 : priority:5, demon:true, threadId:113, threadState:RUNNABLE, threadLockName:null java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) java.io.DataInputStream.readFully(DataInputStream.java:176) java.io.DataInputStream.readFully(DataInputStream.java:152) net.sourceforge.jtds.jdbc.SharedSocket.readPacket(SharedSocket.java:814) net.sourceforge.jtds.jdbc.SharedSocket.getNetPacket(SharedSocket.java: 695) net.sourceforge.jtds.jdbc.ResponseStream.getPacket (ResponseStream.java:443) net.sourceforge.jtds.jdbc.ResponseStream.read(ResponseStream.java:102) net.sourceforge.jtds.jdbc.ResponseStream.peek(ResponseStream.java:87) net.sourceforge.jtds.jdbc.TdsCore.wait(TdsCore.java:3772) net.sourceforge.jtds.jdbc.TdsCore.executeSQL(TdsCore.java:1031) net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java: 436) net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeUpdate (JtdsPreparedStatement.java:402) org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate (WrappedPreparedStatement.java:227) org.objectstyle.cayenne.access.jdbc.BatchAction.runAsIndividualQueries (BatchAction.java:224) org.objectstyle.cayenne.access.jdbc.BatchAction.performAction (BatchAction.java:117) org.objectstyle.cayenne.dba.sqlserver.SQLServerBatchAction.performAction (SQLServerBatchAction.java:95) org.objectstyle.cayenne.access.DataNodeQueryAction.runQuery (DataNodeQueryAction.java:95) org.objectstyle.cayenne.access.DataNode.performQueries(DataNode.java: 309) org.objectstyle.cayenne.access.DataDomainFlushAction.runQueries (DataDomainFlushAction.java:255) org.objectstyle.cayenne.access.DataDomainFlushAction.flush (DataDomainFlushAction.java:177) org.objectstyle.cayenne.access.DataDomain.onSyncFlush(DataDomain.java: 830) org.objectstyle.cayenne.access.DataDomain$2.transform(DataDomain.java: 801) org.objectstyle.cayenne.access.DataDomain.runInTransaction (DataDomain.java:856) org.objectstyle.cayenne.access.DataDomain.onSync(DataDomain.java:798) org.objectstyle.cayenne.access.DataContext.flushToParent (DataContext.java:1261) org.objectstyle.cayenne.access.DataContext.commitChanges (DataContext.java:1165) Thread: http-0.0.0.0-443-18 : priority:5, demon:true, threadId:187, threadState:BLOCKED, threadLockName:org.objectstyle.cayenne.access.DataRowStore@2a2ae9 org.objectstyle.cayenne.access.ObjectResolver.synchronizedObjectsFromDat aRows(ObjectResolver.java:133) org.objectstyle.cayenne.access.DataDomainQueryAction.interceptObjectConv ersion(DataDomainQueryAction.java:373) org.objectstyle.cayenne.access.DataDomainQueryAction.execute (DataDomainQueryAction.java:151) org.objectstyle.cayenne.access.DataDomain.onQuery(DataDomain.java:766) org.objectstyle.cayenne.util.ObjectContextQueryAction.runQuery (ObjectContextQueryAction.java:253) org.objectstyle.cayenne.access.DataContextQueryAction.execute (DataContextQueryAction.java:90) org.objectstyle.cayenne.access.DataContext.onQuery(DataContext.java: 1422) org.objectstyle.cayenne.access.DataContext.performQuery (DataContext.java:1411) Thread: http-0.0.0.0-443-19 : priority:5, demon:true, threadId:188, threadState:BLOCKED, threadLockName:org.objectstyle.cayenne.access.DataRowStore@2a2ae9 org.objectstyle.cayenne.access.ObjectResolver.synchronizedObjectsFromDat aRows(ObjectResolver.java:133) org.objectstyle.cayenne.access.DataDomainQueryAction.interceptObjectConv ersion(DataDomainQueryAction.java:373) org.objectstyle.cayenne.access.DataDomainQueryAction.execute (DataDomainQueryAction.java:151) org.objectstyle.cayenne.access.DataDomain.onQuery(DataDomain.java:766) org.objectstyle.cayenne.util.ObjectContextQueryAction.runQuery (ObjectContextQueryAction.java:253) org.objectstyle.cayenne.access.DataContextQueryAction.execute (DataContextQueryAction.java:90) org.objectstyle.cayenne.access.DataContext.onQuery(DataContext.java: 1422) org.objectstyle.cayenne.access.DataContext.performQuery (DataContext.java:1411)