Hallo,
OJB version: 1.0rc1
DBMS: Oracle 8.1.7.4.1
JDBC driver: Oracle thin driver 8.1.7.4.0 (taken from the 8.1.7.4.1 Patch) - by the
way: same problem with 8.1.7.0.0 an 8.1.7.1.0
I have two inserts each on a table with a LONG field. When I commit the transaction i
get the following exception:
2003-03-25 08:39:37,975 [HttpProcessor[80][3]] ERROR
org.apache.ojb.odmg.ObjectEnvelopeTable PC-10-SONNAUJ.AKDB.NET - Commit on object
level failed for tx [EMAIL PROTECTED]
java.sql.SQLException: Vorgang nicht zul�ssig: streams type cannot be used in batching
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
at
oracle.jdbc.driver.OraclePreparedStatement.addBatch(OraclePreparedStatement.java:2781)
at java.lang.reflect.Method.invoke(Native Method)
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.accesslayer.ConnectionManagerImpl.executeBatch(Unknown Source)
at org.apache.ojb.odmg.ObjectEnvelopeTable.commit(Unknown Source)
at org.apache.ojb.odmg.TransactionImpl.doCommitOnObjects(Unknown Source)
at org.apache.ojb.odmg.TransactionImpl.prepare(Unknown Source)
at org.apache.ojb.odmg.TransactionImpl.commit(Unknown Source)
at
de.akdb.ok.komm.persistence.OdmgTransactionImpl.commit(OdmgTransactionImpl.java:71)
at de.akdb.ok.komm.service.AbstractService.destroy(AbstractService.java:76)
[...]
Although I set batch-mode="false" in the repository, OJB seems to override this
setting an uses batching. As far as i understand, the Oracle JDBC driver cannot use
batching with LONG field.
So my question: can anyone tell me, how i can carry out more than one
insert/update/delete on tables with LONG fields in one transaction? Or how can i
prevent OJB from using batching (as batch-mode="false" doesn't seem to enforce this)?
Or did i get the whole thing completely wrong?
Thanks in advance
Max