You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-user@jakarta.apache.org by Oliver Zeigermann <ol...@zeigermann.de> on 2004/09/07 23:38:53 UTC

Re: DB2 server not responding after short time using Slide 2.1 be ta

Hi Warwick!

This is a complicated Domain.xml ;) Any special reason it is that 
complicated? I am familiar with DB, but it seems all stores go to the 
same logical DB2 database, right? If so the problem seems pretty clear 
to me. All three stores with different connections try to acquire locks 
on the same tables, mutually blocking each other. This would be no 
deadlock, but rather a livelock or maybe a distributed deadlock. No 
chance for DB2 to detect it. As I said I do not know what you are after, 
but could you consider to either simplify the Domain.xml or give each 
store a logical database of its own?

Oliver

Warwick Burrows wrote:

> Hi Oliver,
> 
> Actually I was hoping you'd just "eyeball" the Domain.xml file I sent to
> make sure that I'm doing the appropriate thing with my jdbc store
> configurations and sequence store configurations for the additional scopes
> I've added. Basically I want to be sure that I have a valid "multi-scope
> configuration" as I'm not even sure I have that. Ie. I would like to share
> the one jdbc nodestore across all three scopes (<store> definitions) and not
> have a separate DB2 db for each.
> 
> Here's an excerpt of the Domain.xml since the attachment didn't make it last
> time. It's easier to read in a maximized mail reader window.
> 
> 
> <?xml version="1.0"?>
> <slide>
>     <namespace name="cmslide">
>         <definition>
>             <store name="tx">
>                 <nodestore
> classname="org.apache.slide.store.impl.rdbms.JDBCStore">
>                   <parameter
> name="adapter">org.apache.slide.store.impl.rdbms.DB2RDBMSAdapter</parameter>
>                   <parameter
> name="driver">com.ibm.db2.jcc.DB2Driver</parameter>
>                   <parameter
> name="url">jdbc:db2://machine:50000/DB2DB</parameter>
>                   <parameter name="user">user</parameter>
>                   <parameter name="password">pwd</parameter>
>                   <parameter name="dbcpPooling">true</parameter>
>                   <parameter name="maxPooledConnections">50</parameter>
>                   <parameter name="isolation">READ_COMMITTED</parameter>
>                   <parameter name="compress">false</parameter>
>                 </nodestore>
>                 <sequencestore>
>                   <reference store="nodestore" />
>                 </sequencestore>
>                 <securitystore>
>                   <reference store="nodestore" />
>                 </securitystore>
>                 <lockstore>
>                   <reference store="nodestore" />
>                 </lockstore>
>                 <revisiondescriptorsstore>
>                   <reference store="nodestore" />
>                 </revisiondescriptorsstore>
>                 <revisiondescriptorstore>
>                   <reference store="nodestore" />
>                 </revisiondescriptorstore>
>                 <contentstore
> classname="org.apache.slide.store.txfile.TxFileContentStore">
>                     <parameter
> name="rootpath">C:/CCViews/slide/server/tools/webapps/slide/WEB-INF/store/co
> ntent</parameter>
>                     <parameter
> name="workpath">C:/CCViews/slide/server/tools/webapps/slide/WEB-INF/work/con
> tent</parameter>
>                     <!-- WB: Slide user list suggested disabling this for
> filestore to avoid deadlock with high load -->
>                     <parameter name="defer-saving">false</parameter>
>                     <parameter name="timeout">120</parameter>
>                 </contentstore>
>                 <!-- uncomment if you want to use the sample Indexer -->
>                 <!-- be sure to have Lucene in your classpath
> -->
>                 <!--
>                 <contentindexer
> classname="org.apache.slide.index.SampleTxtContainsIndexer">
>                 <parameter name="indexpath">./index</parameter>
>                 </contentindexer>
> 		-->
>             </store>
>             <scope match="/" store="tx"/>
>             <store name="tx2">
>                 <nodestore
> classname="org.apache.slide.store.impl.rdbms.JDBCStore">
>                   <parameter
> name="adapter">org.apache.slide.store.impl.rdbms.DB2RDBMSAdapter</parameter>
>                   <parameter
> name="driver">com.ibm.db2.jcc.DB2Driver</parameter>
>                   <parameter
> name="url">jdbc:db2://machine:50000/DB2DB</parameter>
>                   <parameter name="user">user</parameter>
>                   <parameter name="password">pwd</parameter>
>                   <parameter name="dbcpPooling">true</parameter>
>                   <parameter name="maxPooledConnections">50</parameter>
>                   <parameter name="isolation">READ_COMMITTED</parameter>
>                   <parameter name="compress">false</parameter>
>                 </nodestore>
>                 <sequencestore>
>                   <reference store="nodestore" />
>                 </sequencestore>
>                 <securitystore>
>                   <reference store="nodestore" />
>                 </securitystore>
>                 <lockstore>
>                   <reference store="nodestore" />
>                 </lockstore>
>                 <revisiondescriptorsstore>
>                   <reference store="nodestore" />
>                 </revisiondescriptorsstore>
>                 <revisiondescriptorstore>
>                   <reference store="nodestore" />
>                 </revisiondescriptorstore>
>                 <contentstore
> classname="org.apache.slide.store.txfile.TxFileContentStore">
>                     <parameter
> name="rootpath">C:/CCViews/slide/server/tools/webapps/slide/WEB-INF/store2/c
> ontent</parameter>
>                     <parameter
> name="workpath">C:/CCViews/slide/server/tools/webapps/slide/WEB-INF/work2/co
> ntent</parameter>
>                     <!-- WB: Slide user list suggested disabling this for
> filestore to avoid deadlock with high load -->
>                     <parameter name="defer-saving">false</parameter>
>                     <parameter name="timeout">120</parameter>
>                 </contentstore>
>                 <!-- uncomment if you want to use the sample Indexer -->
>                 <!-- be sure to have Lucene in your classpath
> -->
>                 <!--
>                 <contentindexer
> classname="org.apache.slide.index.SampleTxtContainsIndexer">
>                 <parameter name="indexpath">./index</parameter>
>                 </contentindexer>
> 		-->
>             </store>
>             <scope match="/files_2" store="tx2"/>
>             <store name="tx3">
>                 <nodestore
> classname="org.apache.slide.store.impl.rdbms.JDBCStore">
>                   <parameter
> name="adapter">org.apache.slide.store.impl.rdbms.DB2RDBMSAdapter</parameter>
>                   <parameter
> name="driver">com.ibm.db2.jcc.DB2Driver</parameter>
>                   <parameter
> name="url">jdbc:db2://machine:50000/DB2DB</parameter>
>                   <parameter name="user">user</parameter>
>                   <parameter name="password">pwd</parameter>
>                   <parameter name="dbcpPooling">true</parameter>
>                   <parameter name="maxPooledConnections">50</parameter>
>                   <parameter name="isolation">READ_COMMITTED</parameter>
>                   <parameter name="compress">false</parameter>
>                 </nodestore>
>                 <sequencestore>
>                   <reference store="nodestore" />
>                 </sequencestore>
>                 <securitystore>
>                   <reference store="nodestore" />
>                 </securitystore>
>                 <lockstore>
>                   <reference store="nodestore" />
>                 </lockstore>
>                 <revisiondescriptorsstore>
>                   <reference store="nodestore" />
>                 </revisiondescriptorsstore>
>                 <revisiondescriptorstore>
>                   <reference store="nodestore" />
>                 </revisiondescriptorstore>
>                 <contentstore
> classname="org.apache.slide.store.txfile.TxFileContentStore">
>                     <parameter
> name="rootpath">C:/CCViews/slide/server/tools/webapps/slide/WEB-INF/store3/c
> ontent</parameter>
>                     <parameter
> name="workpath">C:/CCViews/slide/server/tools/webapps/slide/WEB-INF/work3/co
> ntent</parameter>
>                     <!-- WB: Slide user list suggested disabling this for
> filestore to avoid deadlock with high load -->
>                     <parameter name="defer-saving">false</parameter>
>                     <parameter name="timeout">120</parameter>
>                 </contentstore>
>                 <!-- uncomment if you want to use the sample Indexer -->
>                 <!-- be sure to have Lucene in your classpath
> -->
>                 <!--
>                 <contentindexer
> classname="org.apache.slide.index.SampleTxtContainsIndexer">
>                 <parameter name="indexpath">./index</parameter>
>                 </contentindexer>
> 		-->
>             </store>
>             <scope match="/files_secondCollection" store="tx3"/>
>         </definition>
> 	.
> 	.
> 	.
> 	.
>                 <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/files">
>                     <permission action="all" subject="unauthenticated"
> inheritable="true"/>
>                     <permission action="/actions/write"
> subject="/roles/user" inheritable="true"/>
>                     <permission action="/actions/read-acl" subject="owner"
> inheritable="true"/>
>                 </objectnode>
>                 <objectnode
> classname="org.apache.slide.structure.SubjectNode" uri="/files_2">
>                     <permission action="all" subject="unauthenticated"
> inheritable="true"/>
>                     <permission action="/actions/write"
> subject="/roles/user" inheritable="true"/>
>                     <permission action="/actions/read-acl" subject="owner"
> inheritable="true"/>
>                 </objectnode>
>                 <objectnode
> classname="org.apache.slide.structure.SubjectNode"
> uri="/files_secondCollection">
>                     <permission action="all" subject="unauthenticated"
> inheritable="true"/>
>                     <permission action="/actions/write"
> subject="/roles/user" inheritable="true"/>
>                     <permission action="/actions/read-acl" subject="owner"
> inheritable="true"/>
>                 </objectnode>
> 
> 
> Thanks,
> Warwick
> 
> 
> 
> -----Original Message-----
> From: Oliver Zeigermann [mailto:oliver@zeigermann.de] 
> Sent: Tuesday, September 07, 2004 3:54 PM
> To: Slide Users Mailing List
> Subject: Re: DB2 server not responding after short time using Slide 2.1 be
> ta
> 
> 
> Hi Warwick,
> 
> if you have set the sequential-mode to full you can be very sure only a 
> single request at a time can be executed. Thus it is very unlikely that 
> it is a deadlock. I am afraid I can not check you configuration as I 
> have no access to DB2. I can only recommend what most people do in such 
> a scenario. Use a tool that displays all open connections and locks to 
> find out what is going on. This is no fun, but the last resort, I guess. 
>   I know Toad does a pretty good job for Oracle and MySQL, do not know 
> if there is anything like that for DB2.
> 
> Sorry that there is nothing more I can do to help you :(
> 
> Good luck,
> 
> Oliver
> 
> Warwick Burrows wrote:
> 
>>Hi Oliver,
>>
>>I'm having this same DB2 problem trying to get the testsuite slide 
>>configuration going too. ie. by adding two more stores alongside the 
>>standard /files store: a /files_2 and a /files_secondCollection store 
>>as required by the testsuite. The DB2 adapter hangs in a different 
>>statement this time even though I do have the "sequential-mode" 
>>parameter set to "full".
>>
>>I've attached the Domain.xml file if you have any suggestions for what 
>>I'm doing wrong configuring these extra stores. My Domain.xml is not 
>>too far removed from the example Domain.xml of the 2.1 beta I've just 
>>substituted the XML nodestore in each <store> definition with a 
>>jdbcstore implementation instead. I reference the same jdbcstore in 
>>each <store> definition rather than separate ones. I've also defined 
>>the sequence store as a reference to the nodestore instead of using 
>>the FileSequenceStore in the beta Slide Domain.xml.
>>
>>Thanks,
>>Warwick
>>
>>
>>-----Original Message-----
>>From: Oliver Zeigermann [mailto:oliver@zeigermann.de]
>>Sent: Monday, September 06, 2004 9:57 AM
>>To: Slide Users Mailing List
>>Subject: Re: DB2 server not responding after short time using Slide 2.1
> 
> beta
> 
>>
>>This can not be a deadlock as DB2 would resolve it automatically. 
>>Maybe
>>there is another transaction running that holds locks on the concerned 
>>table. Maybe from the DB2 CLI? I'd suspect that...
>>
>>And yes, actually if you switch on
>>
>>             <parameter name="sequential-mode">full</parameter>
>>
>>in Domain.xml as done by default in Slide 2.1, Slide will never
>>deadlock. However, if you reuse your old Domain.xml from earlier 
>>releases my patch won't have any effect.
>>
>>Oliver
>>
>>James Mason wrote:
>>
>>
>>
>>>Warwick,
>>>This sounds suspiciously like a deadlock condition to me. I ran into 
>>>something similar with MySQL, and I *thought* that Oliver and I had 
>>>made changes that would ensure it couldn't happen, but maybe not.
>>>
>>>If possible can you get a log of all the sql statements executed by 
>>>Slide against the database? If your log includes a connection id look 
>>>to see if the connection id suddenly changes. That should help you 
>>>pinpoint the sql statement that's causing the problem .
>>>
>>>>From looking at enumerateLocks() I don't see any way that statement 
>>>could cause a deadlock. This makes me think the problem is probably 
>>>somewhere else and it's just surfacing when that statement runs.
>>>
>>>-James
>>>
>>>Warwick Burrows wrote:
>>>
>>>
>>>
>>>>Hi,
>>>>I've run into a serious problem with the slide 2.1B1 server where the 
>>>>DB2 server hangs executing a select statement in the enumerateLocks() 
>>>>method of the StandardRDBMSAdapter in the server. Once the DB server 
>>>>is hung it won't
>>>>even respond to simple select statements from the DB2 cli.  Though it 
>>>>will
>>>>respond to "list tables" commands. When I run a select from the DB2 
>>>>cli (eg.
>>>>select * from URI) and it hangs I can hit ctrl-C at the DB2 cli prompt 
>>>>and
>>>>it will cancel the request and return -- but no data comes back with 
>>>>it. Of
>>>>course the slide server will wait indefinitely for the sql request to 
>>>>come
>>>>back. Has anybody else had this problem with Slide 2.1B1 and DB2?  A 
>>>>new DB2
>>>>RDBMS adapter was introduced in 2.1B1 as well as a new DB2 schema. I 
>>>>didn't
>>>>see this problem with 2.1M1 but its happening frequently with 2.1B1. 
>>>>In fact
>>>>its such a problem my project no longer works and we're grounded until we
>>>>can find a fix.
>>>>
>>>>Thanks,
>>>>Warwick
>>>>
>>>>
>>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: slide-user-help@jakarta.apache.org
>>>
>>>
>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: slide-user-help@jakarta.apache.org
>>
>>
>>
>>
>>----------------------------------------------------------------------
>>--
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: slide-user-help@jakarta.apache.org
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: slide-user-help@jakarta.apache.org
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: slide-user-help@jakarta.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org


Re: DB2 server not responding after short time using Slide 2.1 be ta

Posted by Oliver Zeigermann <ol...@zeigermann.de>.
Oliver Zeigermann wrote:
> This is a complicated Domain.xml ;) Any special reason it is that 
> complicated? I am familiar with DB, but it seems all stores go to the 

Sorry, read "... not familiar with DB ..."

Oliver

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org