Background:
Deploying Cayenne program to some new Linux servers, we're getting exceptions
when the program tries to write a blob:
Caused by: java.sql.SQLException: Invalid argument(s) in call
at
oracle.jdbc.driver.T4CConnection.newOutputStream(T4CConnection.java:2753)
~[ojdbc6.jar:11.2.0.1.0]
at oracle.sql.BLOB.setBinaryStream(BLOB.java:893)
~[ojdbc6.jar:11.2.0.1.0]
at
org.apache.cayenne.dba.oracle.OracleLOBBatchAction.writeBlob(OracleLOBBatchAction.java:255)
~[cayenne-server-3.1M3.jar:na]
at
org.apache.cayenne.dba.oracle.OracleLOBBatchAction.processLOBRow(OracleLOBBatchAction.java:211)
~[cayenne-server-3.1M3.jar:na]
at
org.apache.cayenne.dba.oracle.OracleLOBBatchAction.performAction(OracleLOBBatchAction.java:132)
~[cayenne-server-3.1M3.jar:na]
at
org.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:87)
~[cayenne-server-3.1M3.jar:na]
at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:278)
~[cayenne-server-3.1M3.jar:na]
at
org.apache.cayenne.access.DataDomainFlushAction.runQueries(DataDomainFlushAction.java:237)
~[cayenne-server-3.1M3.jar:na]
at
org.apache.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:154)
~[cayenne-server-3.1M3.jar:na]
at
org.apache.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:803)
~[cayenne-server-3.1M3.jar:na]
at
org.apache.cayenne.access.DataDomain$2.transform(DataDomain.java:767)
~[cayenne-server-3.1M3.jar:na]
at
org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:828)
~[cayenne-server-3.1M3.jar:na]
at
org.apache.cayenne.access.DataDomain.onSyncNoFilters(DataDomain.java:764)
~[cayenne-server-3.1M3.jar:na]
at
org.apache.cayenne.access.DataDomain$DataDomainSyncFilterChain.onSync(DataDomain.java:980)
~[cayenne-server-3.1M3.jar:na]
at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:735)
~[cayenne-server-3.1M3.jar:na]
at
org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:818)
~[cayenne-server-3.1M3.jar:na]
... 8 common frames omitted
As you can see from the trace, I'm still using M3. I found a couple of blogs
related to this issue:
One specific to Cayenne from 2010:
http://cayenne.195.n3.nabble.com/Cayenne-error-while-committing-CLOB-on-Oracle-td1475847.html
And one that describes what's happening (not Cayenne specific):
http://java.ittoolbox.com/groups/technical-functional/java-l/invalid-arguments-in-call-in-line-oraclesqlblobcreatetemporary-oracle-10g-1468092
Question:
Has this problem been fixed in 3.1B1? Or is our only option to find and use an
older Oracle JDBC adapter. Or is there more to this issue than what I've found?
Joe