You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Phil Warrick <ph...@mcgill.ca> on 2003/07/01 00:34:42 UTC
Re: [jBoss] multiuser problems
Hi Armin,
I changed the sequence manager to SequenceManagerInMemoryImpl and
everything looks good so far. The clue for me was that read operations
were also having problems under multi-user conditions, and even they
require updating the OJB_HL_SEQ table. I should have heeded your
suggestion long ago to avoid SequenceManagerHighLowImpl...
I don't foresee a need to cluster (at least for the moment), and there
is no db-based sequencing happening outside my app, so are there any
downsides to using SequenceManagerInMemoryImpl?
Thanks,
Phil
Armin Waibel wrote:
> Hi Phil,
>
>
>>> > - exhausted DataSource pool (db-connection pool, jboss)?
>>>
>>>I use default settings for the OracleDS, should this be changed in
>>>oracle-service.xml?
>>
>
> I'm not a database guy, but on second thoughts I think this
> can't be the problem (missing exhausted/timeout exception).
>
> On the dev list some user reported about a deadlock
> http://article.gmane.org/gmane.comp.jakarta.ojb.devel/2971
> maybe this will solve your problem too.
>
> regards,
> Armin
>
> ----- Original Message -----
> From: "Phil Warrick" <ph...@mcgill.ca>
> To: "Phil Warrick" <ph...@mcgill.ca>; "OJB Users List"
> <oj...@db.apache.org>
> Sent: Thursday, June 26, 2003 4:36 AM
> Subject: Re: [jBoss] multiuser problems
>
>
>
>>Hi Armin,
>>
>>In fact, my oracle-service.xml is as follows:
>>
>><?xml version="1.0" encoding="UTF-8"?>
>>
>><!--
>>
>
> ===================================================================== --
>
>><!--
>> -->
>><!-- JBoss Server Configuration
>> -->
>><!--
>> -->
>><!--
>>
>
> ===================================================================== --
>
>>
>><server>
>>
>> <!--
>>
>
> ==================================================================== -->
>
>> <!-- ConnectionManager setup for Oracle dbs
>> -->
>> <!-- Build jmx-api (build/build.sh all) and view for config
>>documentation -->
>> <!-- Thanks to Steven Coy
>> -->
>> <!--
>>
>
> ==================================================================== -->
>
>> <mbean
>>code="org.jboss.resource.connectionmanager.LocalTxConnectionManager"
>>name="jboss.jca:service=LocalTxCM,name=OracleDS">
>>
>>
>> <!-- Include a login module configuration named OracleDbRealm.
>> Update your login-conf.xml, here is an example for a
>> ConfiguredIdentityLoginModule:
>>
>> <application-policy name = "OracleDbRealm">
>> <authentication>
>> <login-module code =
>>"org.jboss.resource.security.ConfiguredIdentityLoginModule" flag =
>>"required">
>> <module-option name =
>>"principal">yourprincipal</module-option>
>> <module-option name =
>
> "userName">yourusername</module-option>
>
>> <module-option name =
>
> "password">yourpassword</module-option>
>
>> <module-option name =
>>
>
> "managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=OracleDS
> </module-option>
>
>> </login-module>
>> </authentication>
>> </application-policy>
>>
>> NOTE: the application-policy name attribute must match
>>SecurityDomainJndiName, and the
>> module-option name = "managedConnectionFactoryName"
>> must match the object name of the ConnectionManager you are
>>configuring here.
>> -->
>>
>> <!--uncomment out this line if you are using the OracleDbRealm
>
> above
>
>> <attribute
>
> name="SecurityDomainJndiName">OracleDbRealm</attribute>
>
>> -->
>>
>> <depends optional-attribute-name="ManagedConnectionFactoryName">
>> <!--embedded mbean-->
>> <mbean
>
> code="org.jboss.resource.connectionmanager.RARDeployment"
>
>>name="jboss.jca:service=LocalTxDS,name=OracleDS">
>>
>> <attribute name="JndiName">OracleDS</attribute>
>>
>> <attribute name="ManagedConnectionFactoryProperties">
>> <properties>
>> <config-property name="ConnectionURL"
>>
>
> type="java.lang.String">jdbc:oracle:thin:@127.0.0.1:1521:mondp</config-p
> roperty>
>
>> <config-property name="DriverClass"
>>
>
> type="java.lang.String">oracle.jdbc.driver.OracleDriver</config-property
>
>> <!--set these only if you want only default logins, not
>>through JAAS -->
>> <config-property name="UserName"
>>type="java.lang.String">MOND_USER</config-property>
>> <config-property name="Password"
>>type="java.lang.String">MOND_PASS</config-property>
>> </properties>
>>
>> </attribute>
>>
>><!--Below here are advanced properties -->
>> <!--hack-->
>> <depends
>>
>
> optional-attribute-name="OldRarDeployment">jboss.jca:service=RARDeployme
> nt,name=JBoss
>
>>LocalTransaction JDBC Wrapper</depends>
>> </mbean>
>> </depends>
>>
>> <depends optional-attribute-name="ManagedConnectionPool">
>> <!--embedded mbean-->
>> <mbean
>>code="org.jboss.resource.connectionmanager.JBossManagedConnectionPool"
>>name="jboss.jca:service=LocalTxPool,name=OracleDS">
>>
>> <attribute name="MinSize">0</attribute>
>> <attribute name="MaxSize">50</attribute>
>> <attribute name="BlockingTimeoutMillis">5000</attribute>
>> <attribute name="IdleTimeoutMinutes">15</attribute>
>> <!--criteria indicates if Subject (from security domain) or
>
> app
>
>>supplied
>> parameters (such as from getConnection(user, pw)) are
>
> used
>
>>to distinguish
>> connections in the pool. Choices are
>> ByContainerAndApplication (use both),
>> ByContainer (use Subject),
>> ByApplication (use app supplied params only),
>> ByNothing (all connections are equivalent, usually if
>>adapter supports
>> reauthentication)-->
>> <attribute name="Criteria">ByContainer</attribute>
>> </mbean>
>>
>> </depends>
>> <depends
>>
>
> optional-attribute-name="CachedConnectionManager">jboss.jca:service=Cach
> edConnectionManager</depends>
>
>> <depends
>>
>
> optional-attribute-name="JaasSecurityManagerService">jboss.security:serv
> ice=JaasSecurityManager</depends>
>
>> <attribute
>>name="TransactionManager">java:/TransactionManager</attribute>
>>
>> <!--make the rar deploy! hack till better deployment-->
>> <depends>jboss.jca:service=RARDeployer</depends>
>>
>> </mbean>
>>
>>
>></server>
>>
>>>Hi Armin,
>>>
>>> > - sequence manager, which implementation?
>>>
>>>SequenceManagerHighLowImpl (I know that you don't suggest it with
>>
> JBoss,
>
>>>but the failure scenario you mentioned a few week ago didn't see to
>>>apply (where a rollback causes problems). I plan to move towards
>>>dbms-generated sequences, but one step at a time...
>>>
>>> > - exhausted DataSource pool (db-connection pool, jboss)?
>>>
>>>I use default settings for the OracleDS, should this be changed in
>>>oracle-service.xml?
>>>
>>>Phil
>>>
>>>Armin Waibel wrote:
>>>
>>>
>>>>Hi Phil,
>>>>
>>>>sounds like a deadlock.
>>>>
>>>>
>>>>>But first a few pointers to help
>>>>>me in my investigation would be very welcome
>>>>
>>>>
>>>>- sequence manager, which implementation?
>>>>- exhausted DataSource pool (db-connection pool, jboss)?
>>>>
>>>>regards,
>>>>Armin
>>>>----- Original Message -----
>>>>From: "Phil Warrick" <ph...@mcgill.ca>
>>>>To: <oj...@db.apache.org>
>>>>Sent: Wednesday, June 25, 2003 4:46 PM
>>>>Subject: [jBoss] multiuser problems
>>>>
>>>>
>>>>
>>>>
>>>>>Hi all,
>>>>>
>>>>>I have a j2ee client app that talks to the database via jboss and
>>>>
> ojb.
>
>>>>>This app works fine when there is only one client talking to jboss
>>>>
> at
>
>>>>
>>>>a
>>>>
>>>>
>>>>>time. It even works fine when I create several pseudo-clients in
>>>>
> the
>
>>>>>same app running separate connections in their own threads
>>>>
> (similar to
>
>>>>>the ojb ejb stress tests). However when I run this test with two
>>>>>separate client machines, each writing to completely different
>>>>
> sets of
>
>>>>>objects, things silently hang in jBoss, and I cannot make any
>>>>
> further
>
>>>>>remote calls. Note that there should not be a problem of
>>>>
> simultaneous
>
>>>>>access to the same persistent object. I need to restart jBoss to
>>>>
> be
>
>>>>
>>>>up
>>>>
>>>>
>>>>>again.
>>>>>
>>>>>I realize that I am only giving a general description of the
>>>>
> problem,
>
>>>>>and I intend to investigate further so that I have (hopefully)
>>>>
> some
>
>>>>>stack traces instead of silent death. But first a few pointers
>>>>
> to
>
>>>>
>>>>help
>>>>
>>>>
>>>>>me in my investigation would be very welcome.
>>>>>
>>>>>First my setup is the following:
>>>>>WinNT - jBoss 3.0.6 - ojb1.0rc2 - Oracle 8.1.6
>>>>>
>>>>>I've held off moving up to rc3/4 due to the myriad of sequence
>>>>
>>>>
>>>>problems
>>>>
>>>>
>>>>>that I and numerous other Oracle users experienced with rc3. I'm
>>>>>willing to roll up my sleeves and move to rc4 if required (is it
>>>>>possible that this is a bug that has been address recently -- I
>>>>
> don't
>
>>>>>see any bug reports quite like this). Hopefully the sequence
>>>>
> problems
>
>>>>>have been addressed by now?
>>>>>
>>>>>This is the last leg of a long journey to go into production with
>>>>
> ojb
>
>>>>>and add another "success story" to the list.
>>>>>
>>>>>Thanks,
>>>>>
>>>>>Phil
Re: [jBoss] multiuser problems
Posted by Armin Waibel <ar...@code-au-lait.de>.
Hi Phil,
----- Original Message -----
From: "Phil Warrick" <ph...@mcgill.ca>
To: "OJB Users List" <oj...@db.apache.org>
Sent: Tuesday, July 01, 2003 12:34 AM
Subject: Re: [jBoss] multiuser problems
> Hi Armin,
>
> I changed the sequence manager to SequenceManagerInMemoryImpl and
> everything looks good so far. The clue for me was that read
operations
> were also having problems under multi-user conditions, and even they
> require updating the OJB_HL_SEQ table. I should have heeded your
> suggestion long ago to avoid SequenceManagerHighLowImpl...
>
> I don't foresee a need to cluster (at least for the moment), and there
> is no db-based sequencing happening outside my app, so are there any
> downsides to using SequenceManagerInMemoryImpl?
I like this question. The answer is: NO ;-)
If you need clustering in the future you can switch
to SequenceManagerNextValImpl without problems
(when using e.g. Oracle).
regards,
Armin
>
> Thanks,
>
> Phil
>
> Armin Waibel wrote:
> > Hi Phil,
> >
> >
> >>> > - exhausted DataSource pool (db-connection pool, jboss)?
> >>>
> >>>I use default settings for the OracleDS, should this be changed in
> >>>oracle-service.xml?
> >>
> >
> > I'm not a database guy, but on second thoughts I think this
> > can't be the problem (missing exhausted/timeout exception).
> >
> > On the dev list some user reported about a deadlock
> > http://article.gmane.org/gmane.comp.jakarta.ojb.devel/2971
> > maybe this will solve your problem too.
> >
> > regards,
> > Armin
> >
> > ----- Original Message -----
> > From: "Phil Warrick" <ph...@mcgill.ca>
> > To: "Phil Warrick" <ph...@mcgill.ca>; "OJB Users List"
> > <oj...@db.apache.org>
> > Sent: Thursday, June 26, 2003 4:36 AM
> > Subject: Re: [jBoss] multiuser problems
> >
> >
> >
> >>Hi Armin,
> >>
> >>In fact, my oracle-service.xml is as follows:
> >>
> >><?xml version="1.0" encoding="UTF-8"?>
> >>
> >><!--
> >>
> >
> >
===================================================================== --
> >
> >><!--
> >> -->
> >><!-- JBoss Server Configuration
> >> -->
> >><!--
> >> -->
> >><!--
> >>
> >
> >
===================================================================== --
> >
> >>
> >><server>
> >>
> >> <!--
> >>
> >
> >
==================================================================== -->
> >
> >> <!-- ConnectionManager setup for Oracle dbs
> >> -->
> >> <!-- Build jmx-api (build/build.sh all) and view for config
> >>documentation -->
> >> <!-- Thanks to Steven Coy
> >> -->
> >> <!--
> >>
> >
> >
==================================================================== -->
> >
> >> <mbean
> >>code="org.jboss.resource.connectionmanager.LocalTxConnectionManager"
> >>name="jboss.jca:service=LocalTxCM,name=OracleDS">
> >>
> >>
> >> <!-- Include a login module configuration named OracleDbRealm.
> >> Update your login-conf.xml, here is an example for a
> >> ConfiguredIdentityLoginModule:
> >>
> >> <application-policy name = "OracleDbRealm">
> >> <authentication>
> >> <login-module code =
> >>"org.jboss.resource.security.ConfiguredIdentityLoginModule" flag =
> >>"required">
> >> <module-option name =
> >>"principal">yourprincipal</module-option>
> >> <module-option name =
> >
> > "userName">yourusername</module-option>
> >
> >> <module-option name =
> >
> > "password">yourpassword</module-option>
> >
> >> <module-option name =
> >>
> >
> >
"managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=OracleDS
> > </module-option>
> >
> >> </login-module>
> >> </authentication>
> >> </application-policy>
> >>
> >> NOTE: the application-policy name attribute must match
> >>SecurityDomainJndiName, and the
> >> module-option name = "managedConnectionFactoryName"
> >> must match the object name of the ConnectionManager you are
> >>configuring here.
> >> -->
> >>
> >> <!--uncomment out this line if you are using the OracleDbRealm
> >
> > above
> >
> >> <attribute
> >
> > name="SecurityDomainJndiName">OracleDbRealm</attribute>
> >
> >> -->
> >>
> >> <depends
optional-attribute-name="ManagedConnectionFactoryName">
> >> <!--embedded mbean-->
> >> <mbean
> >
> > code="org.jboss.resource.connectionmanager.RARDeployment"
> >
> >>name="jboss.jca:service=LocalTxDS,name=OracleDS">
> >>
> >> <attribute name="JndiName">OracleDS</attribute>
> >>
> >> <attribute name="ManagedConnectionFactoryProperties">
> >> <properties>
> >> <config-property name="ConnectionURL"
> >>
> >
> >
type="java.lang.String">jdbc:oracle:thin:@127.0.0.1:1521:mondp</config-p
> > roperty>
> >
> >> <config-property name="DriverClass"
> >>
> >
> >
type="java.lang.String">oracle.jdbc.driver.OracleDriver</config-property
> >
> >> <!--set these only if you want only default logins, not
> >>through JAAS -->
> >> <config-property name="UserName"
> >>type="java.lang.String">MOND_USER</config-property>
> >> <config-property name="Password"
> >>type="java.lang.String">MOND_PASS</config-property>
> >> </properties>
> >>
> >> </attribute>
> >>
> >><!--Below here are advanced properties -->
> >> <!--hack-->
> >> <depends
> >>
> >
> >
optional-attribute-name="OldRarDeployment">jboss.jca:service=RARDeployme
> > nt,name=JBoss
> >
> >>LocalTransaction JDBC Wrapper</depends>
> >> </mbean>
> >> </depends>
> >>
> >> <depends optional-attribute-name="ManagedConnectionPool">
> >> <!--embedded mbean-->
> >> <mbean
>
>>code="org.jboss.resource.connectionmanager.JBossManagedConnectionPool"
> >>name="jboss.jca:service=LocalTxPool,name=OracleDS">
> >>
> >> <attribute name="MinSize">0</attribute>
> >> <attribute name="MaxSize">50</attribute>
> >> <attribute name="BlockingTimeoutMillis">5000</attribute>
> >> <attribute name="IdleTimeoutMinutes">15</attribute>
> >> <!--criteria indicates if Subject (from security domain) or
> >
> > app
> >
> >>supplied
> >> parameters (such as from getConnection(user, pw)) are
> >
> > used
> >
> >>to distinguish
> >> connections in the pool. Choices are
> >> ByContainerAndApplication (use both),
> >> ByContainer (use Subject),
> >> ByApplication (use app supplied params only),
> >> ByNothing (all connections are equivalent, usually if
> >>adapter supports
> >> reauthentication)-->
> >> <attribute name="Criteria">ByContainer</attribute>
> >> </mbean>
> >>
> >> </depends>
> >> <depends
> >>
> >
> >
optional-attribute-name="CachedConnectionManager">jboss.jca:service=Cach
> > edConnectionManager</depends>
> >
> >> <depends
> >>
> >
> >
optional-attribute-name="JaasSecurityManagerService">jboss.security:serv
> > ice=JaasSecurityManager</depends>
> >
> >> <attribute
> >>name="TransactionManager">java:/TransactionManager</attribute>
> >>
> >> <!--make the rar deploy! hack till better deployment-->
> >> <depends>jboss.jca:service=RARDeployer</depends>
> >>
> >> </mbean>
> >>
> >>
> >></server>
> >>
> >>>Hi Armin,
> >>>
> >>> > - sequence manager, which implementation?
> >>>
> >>>SequenceManagerHighLowImpl (I know that you don't suggest it with
> >>
> > JBoss,
> >
> >>>but the failure scenario you mentioned a few week ago didn't see to
> >>>apply (where a rollback causes problems). I plan to move towards
> >>>dbms-generated sequences, but one step at a time...
> >>>
> >>> > - exhausted DataSource pool (db-connection pool, jboss)?
> >>>
> >>>I use default settings for the OracleDS, should this be changed in
> >>>oracle-service.xml?
> >>>
> >>>Phil
> >>>
> >>>Armin Waibel wrote:
> >>>
> >>>
> >>>>Hi Phil,
> >>>>
> >>>>sounds like a deadlock.
> >>>>
> >>>>
> >>>>>But first a few pointers to help
> >>>>>me in my investigation would be very welcome
> >>>>
> >>>>
> >>>>- sequence manager, which implementation?
> >>>>- exhausted DataSource pool (db-connection pool, jboss)?
> >>>>
> >>>>regards,
> >>>>Armin
> >>>>----- Original Message -----
> >>>>From: "Phil Warrick" <ph...@mcgill.ca>
> >>>>To: <oj...@db.apache.org>
> >>>>Sent: Wednesday, June 25, 2003 4:46 PM
> >>>>Subject: [jBoss] multiuser problems
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>Hi all,
> >>>>>
> >>>>>I have a j2ee client app that talks to the database via jboss and
> >>>>
> > ojb.
> >
> >>>>>This app works fine when there is only one client talking to
jboss
> >>>>
> > at
> >
> >>>>
> >>>>a
> >>>>
> >>>>
> >>>>>time. It even works fine when I create several pseudo-clients in
> >>>>
> > the
> >
> >>>>>same app running separate connections in their own threads
> >>>>
> > (similar to
> >
> >>>>>the ojb ejb stress tests). However when I run this test with two
> >>>>>separate client machines, each writing to completely different
> >>>>
> > sets of
> >
> >>>>>objects, things silently hang in jBoss, and I cannot make any
> >>>>
> > further
> >
> >>>>>remote calls. Note that there should not be a problem of
> >>>>
> > simultaneous
> >
> >>>>>access to the same persistent object. I need to restart jBoss to
> >>>>
> > be
> >
> >>>>
> >>>>up
> >>>>
> >>>>
> >>>>>again.
> >>>>>
> >>>>>I realize that I am only giving a general description of the
> >>>>
> > problem,
> >
> >>>>>and I intend to investigate further so that I have (hopefully)
> >>>>
> > some
> >
> >>>>>stack traces instead of silent death. But first a few pointers
> >>>>
> > to
> >
> >>>>
> >>>>help
> >>>>
> >>>>
> >>>>>me in my investigation would be very welcome.
> >>>>>
> >>>>>First my setup is the following:
> >>>>>WinNT - jBoss 3.0.6 - ojb1.0rc2 - Oracle 8.1.6
> >>>>>
> >>>>>I've held off moving up to rc3/4 due to the myriad of sequence
> >>>>
> >>>>
> >>>>problems
> >>>>
> >>>>
> >>>>>that I and numerous other Oracle users experienced with rc3. I'm
> >>>>>willing to roll up my sleeves and move to rc4 if required (is it
> >>>>>possible that this is a bug that has been address recently -- I
> >>>>
> > don't
> >
> >>>>>see any bug reports quite like this). Hopefully the sequence
> >>>>
> > problems
> >
> >>>>>have been addressed by now?
> >>>>>
> >>>>>This is the last leg of a long journey to go into production with
> >>>>
> > ojb
> >
> >>>>>and add another "success story" to the list.
> >>>>>
> >>>>>Thanks,
> >>>>>
> >>>>>Phil
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>