Hallo,
there is a thing with OJB I can�n understand.
schnipp -----
PersistenceBroker myBroker =
PersistenceBrokerFactory.defaultPersistenceBroker();
private void processObjects(ArrayList anObjectList)
{ int theSize = anObjectList.size();
for (int i = 0 ; i < theSize; i++) {
myBroker.beginTransaction();
myBroker.store(anObjectList.get(i));
myBroker.commitTransaction();
}
System.out.println("Writer wrote: "+theSize+ " Objects");
}
schnapp -----
works without problem. No exceptions , all objects in the database.
---
Writer wrote: 10 Objects
Writer wrote: 41 Objects
Writer wrote: 50 Objects
---
fine :-)
but when I try do write a bulk of objects within one transaction I get an
exception:
schnipp -----
private void processObjects(ArrayList anObjectList)
{ int theSize = anObjectList.size();
myBroker.beginTransaction(); // <------------
for (int i = 0 ; i < theSize; i++) {
myBroker.store(anObjectList.get(i));
}
myBroker.commitTransaction();// <------------
System.out.println("Writer wrote: "+theSize+ " Objects");
}
[org.apache.ojb.broker.accesslayer.ConnectionManagerImpl] ERROR: Commit on
underlying connection failed, try to rollback
java.lang.NullPointerException
java.sql.SQLException: java.lang.NullPointerException
at
org.apache.ojb.broker.util.batch.PreparedStatementInvocationHandler.doExecute(Unknown
Source)
at
org.apache.ojb.broker.util.batch.PreparedStatementInvocationHandler.invoke(Unknown
Source)
at $Proxy0.doExecute(Unknown Source)
at
org.apache.ojb.broker.util.batch.BatchConnection.executeBatch(Unknown
Source)
at org.apache.ojb.broker.util.batch.BatchConnection.commit(Unknown
Source)
at
org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.localCommit(Unknown
Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.commitTransaction(Unknown
Source)
at
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.commitTransaction(Unknown
Source)
at
de.intersoft.dacapo.model.batchjobs.DBWriterThread.processObjects(DBWriterThread.java:91)
at
de.intersoft.dacapo.model.batchjobs.DBWriterThread.run(DBWriterThread.java:76)
[org.apache.ojb.broker.accesslayer.ConnectionManagerImpl] INFO: Rollback
was called, do rollback on current connection
[EMAIL PROTECTED]
org.apache.ojb.broker.TransactionAbortedException
at
org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.localCommit(Unknown
Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.commitTransaction(Unknown
Source)
at
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.commitTransaction(Unknown
Source)
at
de.intersoft.dacapo.model.batchjobs.DBWriterThread.processObjects(DBWriterThread.java:91)
at
de.intersoft.dacapo.model.batchjobs.DBWriterThread.run(DBWriterThread.java:76)
schnapp -----
Here are my OJB parameters:
<descriptor-repository version="1.0" isolation-level="read-uncommitted">
<jdbc-connection-descriptor
jcd-alias="default"
default-connection="true"
platform="Oracle"
jdbc-level="2.0"
driver="oracle.jdbc.driver.OracleDriver"
protocol="jdbc"
subprotocol="oracle"
dbalias="thin:@192.168.90.15:1521:db"
username="xxx"
password="xxx"
batch-mode="true"
useAutoCommit="0"
ignoreAutoCommitExceptions="true"
>
<connection-pool
maxActive="21"
validationQuery="" />
</jdbc-connection-descriptor>
Is this a known bug or am I missing a point.
Thanks in advance.
Michael Ruppert