TIBCO BusinessWorks error: "Stream has already been closed SQL State: 99999, errorcode=17027".
book
Article ID: KB0089830
calendar_today
Updated On:
Products
Versions
TIBCO ActiveMatrix BusinessWorks
-
Not Applicable
-
Description
Description: TIBCO BusinessWorks throws "Stream has already been closed SQL State: 99999, errorcode=17027" error for wait / notify activities when using Oracle JBDC drivers. Symptoms: The BusinessWorks log contains the following error:
WaitNotifierDB4Impl.onMsgSQL Error: Stream has already been closed SQL State: 99999, errorcode=17027 at com.tibco.pe.waitnotify.WaitNotifierDB4Impl.onMsg(Unknown Source) at com.tibco.tibrv.TibrvListener.fire(TibrvListener.java:127) at com.tibco.tibrv.TibrvQueue.timedDispatch(TibrvQueue.java:215) at com.tibco.tibrv.TibrvDispatcher.run(TibrvDispatcher.java:117)caused by: java.sql.SQLException: Stream has already been closed at oracle.jdbc.driver.LongRawAccessor.getBytes(LongRawAccessor.java:162) at oracle.jdbc.driver.OracleResultSetImpl.getBytes(OracleResultSetImpl.java:708) at com.tibco.pe.waitnotify.WaitNotifierDB4Impl.onMsg(Unknown Source) at com.tibco.tibrv.TibrvListener.fire(TibrvListener.java:127) at com.tibco.tibrv.TibrvQueue.timedDispatch(TibrvQueue.java:215) at com.tibco.tibrv.TibrvDispatcher.run(TibrvDispatcher.java:117) Cause: An Oracle table has a LONGRAW field that, when referenced in a select statement, causes the error: "java.sql.SQLException: Stream has already been closed." If this field is removed, everything works. The Oracle JDBC driver automatically closes any pending inputstreams whenever another database access is made. Other JDBC drivers and the JDBC-ODBC bridge do not impose this restriction. This only affects queries where binary data is being returned.
Issue/Introduction
TIBCO BusinessWorks error: "Stream has already been closed SQL State: 99999, errorcode=17027".
Resolution
Switch to the Datadirect Oracle JDBC driver (TIBCO Database Drivers Supplement).