openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeremy Bauer (JIRA)" <>
Subject [jira] Resolved: (OPENJPA-743) OptimisticLockException persisting collection containing Lob fields with Oracle
Date Sat, 11 Oct 2008 04:22:44 GMT


Jeremy Bauer resolved OPENJPA-743.

    Resolution: Fixed

When setting up a parameters of a prepared statement, OpenJPA sets null clob field values
to an empty clob parameter type, while it sets non-null values to a character stream.  When
statement batching is enabled, the Oracle 1.4 driver fails to insert all the batched rows
due to using mixed parameter types, even though the parameter types/values are compatible
with the table column and can be inserted using separate statements.  

This problem no longer exists in version of the Oracle JDK 5 JDBC driver, ojdbc5.jar.
 It was not, however resolved in the latest 1.4 driver, version  Preferably, get
the latest  ojdbc5 driver to correct the problem.  If use of ojdbc14.jar is necessary, the
recommended workaround is to disable statement batching.

> OptimisticLockException persisting collection containing Lob fields with Oracle
> -------------------------------------------------------------------------------
>                 Key: OPENJPA-743
>                 URL:
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 1.2.0
>         Environment: OpenJPA 1.2.0, Oracle 10g ojdbc14.jar, version
>            Reporter: Jeremy Bauer
>            Assignee: Jeremy Bauer
> Persisting an object graph with an entity containing a persistent collection of objects
which contain a Lob field may fail on Oracle if statement batching is enabled.  The failure
will depend on the order of operations, which can be somewhat intermittent.  If more than
one insert into the table containing the Lob column are batched together and there is a mix
of null and non-null data value parameters, the batch insert operation will fail with an OptimisticLockException.
> A simple (but not especially performance friendly) way to work around the problem is
to disable statement batching via: 
> <property name="openjpa.jdbc.DBDictionary" value="oracle(batchLimit=0)"/>  Otherwise,
if possible, make sure all Lob fields are set to a non-null value.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message