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();
      }
    }
    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(Unknown 
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(Unknown 
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>

Reply via email to