>> Even though I'm not currently running a statement on the server. > The creation of "/files" and "/files_2" contain the statements that > block each other I guess.
I'm looking further into this today. Though after every sql statement it seems that all exit paths from the methods are covered and a "close" statement is being called - which should terminate the statement -- assuming that is what "close" is supposed to do. I can't explain why, when the update to /files has fully completed, the next read attempt on /files_2 hangs up. Especially since this is happening serially - not in parallel since it is happening in the same thread. >> I guess what I'm really after is confirmation of what the correct >> nodestore configuration is when I want to run multiple scopes/stores >> as is needed for the testsuite. And I did try running a separate db >> for each nodestore too, but I get exactly the same problem. Which >> indicates that the problem isn't localized to sharing a nodestore >> between stores. > Hard to believe. Do you get it running with only a single store configured? Yes. The jdbc config works fine with a single store. Which begs the question: can I disable the portions of the testsuite that require the second and third stores to be configured? How much of the testsuite will I lose if I do this? Preferably I'd like to use as much of the testsuite as possible. >> the nodestore in the first. Unless I'm just not doing it right? > I understand the configuration you are trying to do simply is not > possible with the current Slide release :( I guess so. Any guesses as to what a valid configuration of the nodestore would be? Should I be able to share a single nodestore or do I have to define an exclusive one for each store definition. Warwick -----Original Message----- From: Oliver Zeigermann [mailto:[EMAIL PROTECTED] Sent: Tuesday, September 07, 2004 11:01 PM To: Slide Users Mailing List Subject: Re: DB2 server not responding after short time using Slide 2.1 be ta Warwick Burrows wrote: > I just took the example Domain.xml and added the two additional > "<store>" entries needed to run the testsuite. So there's no reason > that it is that complicated except that I'm not sure what I can > validly take out of it since it is the example that comes with Slide > :-) I don't have security enabled but I do need locks and version > control. I also need clustering support. I've commented out the > property extractors already as I won't need those just yet but I'm not > removing the commented out stuff so I can compare with the HEAD > whenever fixes come in. I'm using the WebDAV client to access the > server. So if you have suggestions for simplification (particularly > how to get rid of the user and role definitions and authzn action > declarations if I don't need them) I would appreciate it. > > >>>but it seems all stores go to the same logical DB2 database, right? > > > Yes, that was my intention :-) > > >>>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. > > > In this case I don't think that I have even made it to the point where > one of the other stores is operational yet. Ie. it hangs just when it > is about to start the "/files_2" store. I think it has just processed > the "/files" > subjectnode: > > <objectnode> classname="org.apache.slide.structure.SubjectNode" > uri="/files"> > ... > </objectnode> > <objectnode classname="org.apache.slide.structure.SubjectNode" > uri="/files_2"> > ... > </objectnode> > > And sometime between when the "/files" subjectnode is loaded and we > are about to read the "/files_2" subjectnode from the db to check for > its existence the db goes haywire and running "select" statements from > the db2 prompt to the URI table will hang until I shutdown the server. > Even though I'm not currently running a statement on the server. The creation of "/files" and "/files_2" contain the statements that block each other I guess. > >>>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? > > > I guess what I'm really after is confirmation of what the correct > nodestore configuration is when I want to run multiple scopes/stores > as is needed for the testsuite. And I did try running a separate db > for each nodestore too, but I get exactly the same problem. Which > indicates that the problem isn't localized to sharing a nodestore > between stores. Hard to believe. Do you get it running with only a single store configured? > Can I define one nodestore for all <store> definitions? The > "reference" keyword only seems to work within a <store> definition so > I can't set the nodestores of the other <store> entries to reference > the nodestore in the first. Unless I'm just not doing it right? I understand the configuration you are trying to do simply is not possible with the current Slide release :( Oliver > Thanks, > Warwick > > > -----Original Message----- > From: Oliver Zeigermann [mailto:[EMAIL PROTECTED] > Sent: Tuesday, September 07, 2004 4:39 PM > To: Slide Users Mailing List > Subject: 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</para > meter> > >> <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/st >>ore/co >>ntent</parameter> >> <parameter >> > > name="workpath">C:/CCViews/slide/server/tools/webapps/slide/WEB-INF/wo > rk/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</para > meter> > >> <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/st >>ore2/c >>ontent</parameter> >> <parameter >> > > name="workpath">C:/CCViews/slide/server/tools/webapps/slide/WEB-INF/wo > rk2/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</para > meter> > >> <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/st >>ore3/c >>ontent</parameter> >> <parameter >> > > name="workpath">C:/CCViews/slide/server/tools/webapps/slide/WEB-INF/wo > rk3/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:[EMAIL PROTECTED] >>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:[EMAIL PROTECTED] >>>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: [EMAIL PROTECTED] >>>>For additional commands, e-mail: [EMAIL PROTECTED] >>>> >>>> >>> >>> >>> >>>--------------------------------------------------------------------- >>>To unsubscribe, e-mail: [EMAIL PROTECTED] >>>For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>> >>> >>>--------------------------------------------------------------------- >>>- >>>-- >>> >>>--------------------------------------------------------------------- >>>To unsubscribe, e-mail: [EMAIL PROTECTED] >>>For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> >>--------------------------------------------------------------------- >>To unsubscribe, e-mail: [EMAIL PROTECTED] >>For additional commands, e-mail: [EMAIL PROTECTED] >> >>--------------------------------------------------------------------- >>To unsubscribe, e-mail: [EMAIL PROTECTED] >>For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
