This issue was related to the fact that we are using XAPool.  Here is
the explanation from the experts.  I've cc'd them in case you have any
questions.  They patched our OJB 1.0.4 jar as a temporary solution.

_________________________________________________

The problem here is the unwrapStatement method in the
PlatformOracle9iImpl.  Basically what this method is trying to do is
unwrap the actual OraclePreparedStatement from the connections Statement
(which will be different depending on the pooling technology).  Here is
the configuration of how it searches (found in the PlatformOracle9iImpl
class):

/** Method names used by [EMAIL PROTECTED] #unwrapStatement}. */
    protected static final String UNWRAP_PS_METHOD_NAMES[] =
            {
                "getInnermostDelegate"      /* Commons DBCP */,
                "getUnderlyingStatement"    /* JBoss */,
                "getJDBC"                   /* P6Spy */
            };

As you can see, XAPool (which is the connection pooling used by workflow
for JTA purposes) is not represented in this list.  Therefore, it can't
unwrap the statement and ends up deferring to the PlatformOracleImpl.

We'll take a look into the best method for fixing this tomorrow but
preliminary examination makes me think we may need to patch the ojb jar
or subclass the PlatformOracle9iImpl and add support for XAPool.
__________________________________________________

-----Original Message-----
From: Byrne, Ailish M 
Sent: Friday, March 03, 2006 2:49 PM
To: OJB Users List
Subject: OJB 1.0.4 Error: Oracle thin driver cannot insert CLOB values
with length>4000

We can't figure out why we are sporadically receiving the exception
below.  We are using OJB 1.0.4, and our platform is set to Oracle9i.
Any help would be much appreciated.

Thank you,
Ailish

2006-03-03 14:25:59,107 [TP-Processor16] ERROR
org.apache.ojb.broker.accesslayer.JdbcAccessImpl :: 
* SQLException during execution of sql-statement:
* sql statement was 'UPDATE FP_MAINTENANCE_DOCUMENT_T SET
VER_NBR=?,FDOC_EXPLAIN_TXT=?,LOCK_REPRESENTATION_TXT=?,LOCKED_IND=?,DOCU
MENT_CONTENTS=? WHERE FDOC_NBR = ?  AND VER_NBR = ? '
* Exception message is [Oracle thin driver cannot insert CLOB values
with length>4000. (Consider using Oracle9i as OJB platform.)]
* Vendor error code [0]
* SQL state code [null]
* Target class is 'org.kuali.core.document.MaintenanceDocumentBase'
* PK of the target object is [financialDocumentNumber=97177]
* Source object:
maintenanceDocumentBasedocumentHeaderId(versionNumber,level,comp,app,ack
,fyi)=97177(2,0,false,false,false,false)
* The root stack trace is --> 
* java.sql.SQLException: Oracle thin driver cannot insert CLOB values
with length>4000. (Consider using Oracle9i as OJB platform.)
        at
org.apache.ojb.broker.platforms.PlatformOracleImpl.setObjectForStatement
(Unknown Source)
        at
org.apache.ojb.broker.platforms.PlatformOracle9iImpl.setObjectForStateme
nt(Unknown Source)
        at
org.apache.ojb.broker.accesslayer.StatementManager.setObjectForStatement
(Unknown Source)
        at
org.apache.ojb.broker.accesslayer.StatementManager.bindUpdate(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeUpdate(Unknown
Source)
...

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to