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/06/25 16:46:10 UTC

[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
>
>



Re: [jBoss] multiuser problems

Posted by Phil Warrick <ph...@mcgill.ca>.
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,

> >  > - 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
> >>>
> >>>
> >>>
> >>
> >>
> >>
> >>
>
>> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> >> For additional commands, e-mail: ojb-user-help@db.apache.org
> >>
> >
> >
> >
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
>



Re: [jBoss] multiuser problems

Posted by Phil Warrick <ph...@mcgill.ca>.
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-property>
             <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=RARDeployment,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=CachedConnectionManager</depends>

     <depends 
optional-attribute-name="JaasSecurityManagerService">jboss.security:service=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
>>>
>>>
>>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>
> 
> 
> 




Re: [jBoss] multiuser problems

Posted by Phil Warrick <ph...@mcgill.ca>.
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
>>
>>
>>
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 




Re: [jBoss] multiuser problems

Posted by Armin Waibel <ar...@code-au-lait.de>.
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
>
>
>



Re[2]: Too stupid... :) or: a Bug in SqlGeneratorDefaultImpl?

Posted by Hinnerk Feldwisch <di...@yahoo.de>.
Hello Jakob,

Sunday, June 29, 2003, 4:54:41 PM, you wrote:

> hi hinnerk,

> could you please post the criteria you used ?

> jakob

But I don't understand your question - which criteria? I simply did a
retrieverReference("friends") (not exactly, I don't remember the exact
command at the moment) - but I didn't start a query/criteria.
Ok?


-- 
Best regards,
 Hinnerk                            mailto:dielisten@yahoo.de

> Hinnerk Feldwisch wrote:

>>Hello,
>>
>>after "hours" of debugging I found the problem with my m:n- mapping:
>>the cause of it was that I used the same name for the collection- name
>>and the (mysql- ) table.... very annoying, I should name all tables
>>like "table_friends" now! :/
>>
>>But perhabs the SQL- code which is generated by
>>SqlGeneratorDefaultImpl could be made more robust? It would be nice to
>>know that I'm the only one who had to find the sollution for this
>>problem :)
>>
>>Here is the crazy but  "faulty" code:
>>SELECT A0.password,A0.nickname,A0.gbId,A0.imageFileName, (...)
>>FROM USERS A0,friends INNER JOIN friends A1 ON A0.userId=A1.theUserId
>>INNER JOIN USERS A2 ON A1.friendId=A2.userId WHERE (A1.theUserId = 163 )
>>AND friendId = A0.userId
>>
>>And it should be:
>>SELECT A0.password,A0.nickname,A0.gbId,A0.imageFileName, (...)
>>FROM USERS A0,friends A1 WHERE (A1.theUserId = 163 ) AND
>>A1.friendId = A0.userId
>>
>>Thank you though for all your good work!,
>>Hinnerk
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>For additional commands, e-mail: ojb-user-help@db.apache.org
>>
>>
>>  
>>


> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org


Re: Too stupid... :) or: a Bug in SqlGeneratorDefaultImpl?

Posted by Jakob Braeuchi <jb...@gmx.ch>.
hi hinnerk,

could you please post the criteria you used ?

jakob

Hinnerk Feldwisch wrote:

>Hello,
>
>after "hours" of debugging I found the problem with my m:n- mapping:
>the cause of it was that I used the same name for the collection- name
>and the (mysql- ) table.... very annoying, I should name all tables
>like "table_friends" now! :/
>
>But perhabs the SQL- code which is generated by
>SqlGeneratorDefaultImpl could be made more robust? It would be nice to
>know that I'm the only one who had to find the sollution for this
>problem :)
>
>Here is the crazy but  "faulty" code:
>SELECT A0.password,A0.nickname,A0.gbId,A0.imageFileName, (...)
>FROM USERS A0,friends INNER JOIN friends A1 ON A0.userId=A1.theUserId
>INNER JOIN USERS A2 ON A1.friendId=A2.userId WHERE (A1.theUserId = 163 )
>AND friendId = A0.userId
>
>And it should be:
>SELECT A0.password,A0.nickname,A0.gbId,A0.imageFileName, (...)
>FROM USERS A0,friends A1 WHERE (A1.theUserId = 163 ) AND
>A1.friendId = A0.userId
>
>Thank you though for all your good work!,
>Hinnerk
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
>  
>


Too stupid... :) or: a Bug in SqlGeneratorDefaultImpl?

Posted by Hinnerk Feldwisch <di...@yahoo.de>.
Hello,

after "hours" of debugging I found the problem with my m:n- mapping:
the cause of it was that I used the same name for the collection- name
and the (mysql- ) table.... very annoying, I should name all tables
like "table_friends" now! :/

But perhabs the SQL- code which is generated by
SqlGeneratorDefaultImpl could be made more robust? It would be nice to
know that I'm the only one who had to find the sollution for this
problem :)

Here is the crazy but  "faulty" code:
SELECT A0.password,A0.nickname,A0.gbId,A0.imageFileName, (...)
FROM USERS A0,friends INNER JOIN friends A1 ON A0.userId=A1.theUserId
INNER JOIN USERS A2 ON A1.friendId=A2.userId WHERE (A1.theUserId = 163 )
AND friendId = A0.userId

And it should be:
SELECT A0.password,A0.nickname,A0.gbId,A0.imageFileName, (...)
FROM USERS A0,friends A1 WHERE (A1.theUserId = 163 ) AND
A1.friendId = A0.userId

Thank you though for all your good work!,
Hinnerk