Yes, when I use tx demarcation, it work perfectly.

What I have to do, finally, is a client-server application under tomcat. So
many client can call simultanouesly
PersistenceBrokerFactory.createPersistenceBroker(key). It may happen that
more than 8 PersistenceBroker are instanciated in the same time, and so this
SocketClosed exception happen, even if I use tx demarcation...

So is it normal that the SocketClosed exception occurs wherever I have not
exaust the connection-pool ?




----- Original Message ----- 
From: "Armin Waibel" <[EMAIL PROTECTED]>
To: "OJB Users List" <[EMAIL PROTECTED]>
Sent: Wednesday, October 15, 2003 4:06 PM
Subject: Re: Multiple PersistenceBroker instances - Socket Close


> Hi,
>
> On Wed, 15 Oct 2003 15:55:35 +0200, Vincent ARBONA
> <[EMAIL PROTECTED]> wrote:
>
> > Hi Armin,
> >
> > In fact, my problem is that I did not exhaust my pool (max-Active=100,
> > max-Idle=100).
> > After only 8 instanciations of a PersistenceBroker, I have the
> > SocketClosed
> > exception.
> > (in my test,  I intentionally comment the "p.close()" instruction to
> > exhaut
> > my pool)
> >
> You have to differ between the PB pool and the connection-pool
> (depends on the used ConnnectionFactory implementation - by default
> non DataSources will be pooled) and the maximal supported connections
> of your RDBMS.
> When using OJB default settings the connection pool size is 21, thus
> your RDBMS should support >=21 active connections.
>
> Did you test using PB tx-demarction in your test? This will close/return
to
> pool the connection, but do not close the PB instance.
>
> regards,
> Armin
>
> > Logically an exception would occur after 101 instanciations of a
> > PersistenceBroker not after 8 (and this exception not expected to be a
> > SocketClosed Exception)
> >
> >
> >
> >
> >
> > ----- Original Message -----
> > From: "Armin Waibel" <[EMAIL PROTECTED]>
> > To: "OJB Users List" <[EMAIL PROTECTED]>
> > Sent: Wednesday, October 15, 2003 3:40 PM
> > Subject: Re: Multiple PersistenceBroker instances - Socket Close
> >
> >
> >> Hi,
> >>
> >> On Wed, 15 Oct 2003 15:29:39 +0200, Vincent ARBONA
> >> <[EMAIL PROTECTED]> wrote:
> >>
> >> > Hi,
> >> >
> >> > I have the following problem :
> >> >
> >> > I execute this code to test "connection pool max-active" parameter :
> >> >
> >> >
> >> >   public void testMultipleBroker() {
> >> >     int nbBroker = 200;
> >> >
> >> >     PersistenceBroker b = null;
> >> >     PBKey key = new PBKey("varbona"); //varbona is my jdc-alias
> >> >
> >> >     try {
> >> >       for (int i = 0; i < nbBroker; i++) {
> >> >         System.out.println("cnx n�" + i);
> >> >
> >> >         b = PersistenceBrokerFactory.createPersistenceBroker(key)
> >> >
> >> >         QueryByCriteria q = new
> >> > QueryByCriteria(org.udb.candisup.back.dto.domain.CiviliteDTO.class);
> >> >
> >> >         Collection c = b.getCollectionByQuery(q);
> >> >
> >> >         // I do not close the persistence broker !!
> >> >         //b.close();
> >>
> >> if do not close the broker instance the associated connection
> >> (assosiated on getCollectionByQuery) wasn't closed too --> then
> >> your connection pool can exhaust. If you
> >> don't want to close the PB instance (for your special test case), then
> >> use PB-tx demarcation around the query. On PB.commitTransaction()
> >> the associated connection will be closed.
> >>
> >> regards,
> >> Armin
> >>
> >>
> >> >       }
> >> >     }
> >> >     catch (SystemException ex) {
> >> >       System.out.println(ex.getMessage());
> >> >     }
> >> >   }
> >> >
> >> > After eight instanciation of PersistanceBroker (nbBroker=7), I always
> >> > have this error :
> >> >
> >> > java.sql.SQLException: Exception d'E/S: Socket closed
> >> >  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
> >> >  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
> >> >  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
> >> >  at
> >> >
> >>
oracle.jdbc.driver.OracleConnection.rollback(OracleConnection.java:1380)
> >> >  at
> >> >
> >
org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.localRollback(Unknow
> > n
> >> > Source)
> >> >  at
> >> >
> >
org.apache.ojb.broker.core.PersistenceBrokerImpl.abortTransaction(Unknown
> >> > Source)
> >> >
> >> > [org.apache.ojb.broker.accesslayer.ConnectionManagerImpl] ERROR:
> >> > Rollback on the underlying connection failed
> >> > Exception d'E/S: Socket closed
> >> >  at org.apache.ojb.broker.core.PersistenceBrokerImpl.close(Unknown
> >> > Source)
> >> >  at org.apache.ojb.broker.core.PersistenceBrokerImpl.finalize(Unknown
> >> > Source)
> >> >  at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
> >> >  at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
> >> >  at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
> >> >  at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
> >> >
> >> > java.sql.SQLException: Exception d'E/S: Socket closed
> >> >  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
> >> >  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
> >> >  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
> >> >  at
> >> >
> >>
oracle.jdbc.driver.OracleConnection.rollback(OracleConnection.java:1380)
> >> >  at
> >> >
> >
org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.localRollback(Unknow
> > n
> >> > Source)
> >> >  at
> >> >
> >
org.apache.ojb.broker.core.PersistenceBrokerImpl.abortTransaction(Unknown
> >> > Source)
> >> >  at org.apache.ojb.broker.core.PersistenceBrokerImpl.close(Unknown
> >> > Source)
> >> >  at org.apache.ojb.broker.core.PersistenceBrokerImpl.finalize(Unknown
> >> > Source)
> >> >  at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
> >> >  at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
> >> >  at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
> >> >  at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
> >> > [org.apache.ojb.broker.accesslayer.ConnectionManagerImpl] ERROR:
> >> > Rollback on the underlying connection failed
> >> > Exception d'E/S: Socket closed
> >> >
> >> >
> >> > Here is my connection descriptor
> >> >
> >> >    <jdbc-connection-descriptor
> >> >      jcd-alias="varbona"
> >> >      default-connection="false"
> >> >      platform="Oracle9i"
> >> >      jdbc-level="2.0"
> >> >      driver="oracle.jdbc.driver.OracleDriver"
> >> >      protocol="jdbc"
> >> >      subprotocol="oracle"
> >> >      dbalias="thin:@192.168.1.202:1525:TEST"
> >> >      username="varbona"
> >> >      password="opiweb"
> >> >         eager-release="false"
> >> >      batch-mode="false"
> >> >         useAutoCommit="2"
> >> >         ignoreAutoCommitExceptions="true"
> >> >      >
> >> >         <connection-pool
> >> >             maxActive="100"
> >> >             maxIdle="50"
> >> >             whenExhaustedAction="2"
> >> >             validationQuery="" />
> >> >
> >> >         <sequence-manager
> >> >
> >
className="org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl">
> >> >             <attribute attribute-name="grabSize"
> >> attribute-value="20"/>
> >> >             <attribute attribute-name="autoNaming"
> >> > attribute-value="true"/>
> >> >             <attribute attribute-name="globalSequenceId"
> >> > attribute-value="false"/>
> >> >             <attribute attribute-name="globalSequenceStart"
> >> > attribute-value="10000"/>
> >> >         </sequence-manager>
> >> >    </jdbc-connection-descriptor>
> >>
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> 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]

Reply via email to