Hi Joe, I don't have any Oracle instances to ping at the moment, but I was recently writing BLOBs to Oracle 11 using the ojdbc4.jar driver (if my memory is correct) with Cayenne 3.0.2. I'm not sure if this tidbit will help you at all, but thought I'd toss it out.
mrg On Mon, Jul 2, 2012 at 5:19 PM, Joseph Senecal <sene...@apple.com> wrote: > 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