Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Inserting Blob data using CMP bean in Websphere throwing error "No more data to read from socket"

5 views
Skip to first unread message

Raju R

unread,
Apr 22, 2004, 11:39:49 AM4/22/04
to
We are using Websphere 5.0.1 with Oracle 8i DB (with JDBC thin
drivers). We have developed an entity bean representing data in a
table. This table has one Blob column, which stores PDF files in them.
The corresponding field in the Entity bean is defined with data type
byte[] and mapped accordingly (Using VapByteStreamToSerializedObject
converter). The client reads the PDF file from the disk, converts it
into a byte[] and sends it to the create calls. And the bean simply
sets this byte[] parameter to the field. Here are the corresponding
code snippets.

// Create VO with data
File testFile = new File("c:\\temp\\file.txt");
int size = (int) testFile.length();
byte[] attachmentData = new byte[size];
FileInputStream inputStream = new FileInputStream(testFile);
inputStream.read(attachmentData);

attachmentVO.setID(new Long(765));
attachmentVO.setAttachmentData(attachmentData);

//Call the create method
beanHome.create(attachmentVO);

// Create in the bean
public java.lang.Long ejbCreate(AttachmentVO attachmentVO)
throws javax.ejb.CreateException {
Long attachmentRowid;
try {
attachmentRowid = RowIDGenerator.getRowID();
setAttachmentRowID(attachmentRowid);
return null;
}
// Post Create
public void ejbPostCreate(AttachmentVO attachmentVO)
throws javax.ejb.CreateException {
setDataToBean(attachmentVO);
}

// Setting data to bean
private void setDataToBean(attachmentVO attachmentVO) {
setAttachmentData(attachmentVO.getAttachmentData());
}

// The attachmentData is declared as byte[] in the descriptor.

When I try to execute the client, the ejbCreate fails with the
following error message and no data is being stored in the DB.

"Mapping the following SQLException, with ErrorCode 17,410
and SQLState <null>, to a StaleConnectionException:
java.sql.SQLException: No more data to read from socket"

This test being done on the embedded server within the WSAD (Websphere
App Developer).

Looking at the error message I believe the container is trying to
commit on a closed connection/and or trying to re-commit data that is
already commited by the connection. We have problems with this bean
only. All other beans with simple data types works fine.

Has any one tried using CMPs fpr Blob fields on Websphere before? Are
there any specific settings that I need to do before trying to do
this?

Any help is highly appreciated.

Thank you,

Raju

*******Here's the complete stack trace************

[4/21/04 18:49:05:186 EDT] 433ee4cc SystemOut O ejbRef
ejb/BillingAttachment is a local reference.
[4/21/04 18:49:11:936 EDT] 433ee4cc StaleConnecti A CONM7007I: Mapping
the following SQLException, with ErrorCode 17,410
and SQLState <null>, to a StaleConnectionException:
java.sql.SQLException: No more data to read from socket
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:169)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:211)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:957)
at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:743)
at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:702)
at oracle.jdbc.ttc7.Ocommoncall.receive(Ocommoncall.java:108)
at oracle.jdbc.ttc7.TTC7Protocol.commit(TTC7Protocol.java:380)
at oracle.jdbc.driver.OracleConnection.commit(OracleConnection.java:918)
at com.ibm.ws.rsadapter.spi.WSRdbSpiLocalTransactionImpl.commit(WSRdbSpiLocalTransactionImpl.java:181)
at com.ibm.ejs.j2c.LocalTransactionWrapper.commit(LocalTransactionWrapper.java:217)
at com.ibm.ejs.jts.jta.onephase.OnePhaseResourceImpl.commit_one_phase(OnePhaseResourceImpl.java:147)
at com.ibm.ejs.jts.jts.ResourceVector.beforePrepare(ResourceVector.java:339)
at com.ibm.ejs.jts.tran.EventCallback.executeCallback(EventCallback.java:161)
at com.ibm.ejs.jts.tran.EventCallback.executeCallbackTree(EventCallback.java:132)
at com.ibm.ejs.jts.tran.EventCallback.executeCallbackTree(EventCallback.java:123)
at com.ibm.ejs.jts.tran.EventPrepare.ExecuteBeforePrepareCallbacks(EventPrepare.java:312)
at com.ibm.ejs.jts.tran.EventPrepare.event_LocalPrepareWork(EventPrepare.java:287)
at com.ibm.ejs.jts.tran.EventPrepare.event_BecomeCoordinator(EventPrepare.java:970)
at com.ibm.ejs.jts.tran.EventControl.event_EndTopLevel(EventControl.java:295)
at com.ibm.ejs.jts.tran.TrecInterface.end(TrecInterface.java:89)
at com.ibm.ejs.jts.jts.TerminatorImpl.commit(TerminatorImpl.java:104)
at com.ibm.ejs.jts.jts.CurrentImpl.commit(CurrentImpl.java:248)
at com.ibm.ejs.jts.jts.CurrentSet.commit(CurrentSet.java:316)
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:540)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:128)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:531)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:2801)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:2681)
at gov.rsc.cats.ejb.voucher.EJSRemoteStatelessBillingFacade_a5217444.addAttachmentToBill(EJSRemoteStatelessBillingFacad
e_a5217444.java:553)
at gov.rsc.cats.ejb.voucher._EJSRemoteStatelessBillingFacade_a5217444_Tie.addAttachmentToBill(_EJSRemoteStatelessBillin
gFacade_a5217444_Tie.java:425)
at gov.rsc.cats.ejb.voucher._EJSRemoteStatelessBillingFacade_a5217444_Tie._invoke(_EJSRemoteStatelessBillingFacade_a521
7444_Tie.java:138)
at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:582)
at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:437)
at com.ibm.rmi.iiop.ORB.process(ORB.java:320)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:1544)
at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2063)
at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:63)
at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:95)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:592)

[4/21/04 18:49:11:951 EDT] 433ee4cc ConnectionEve A J2CA0056I: The
Connection Manager received a fatal connection error
from the Resource Adaptor for resource jdbc/CatsDev. The exception
which was received is DSRA0080E: An exception was re
ceived by the Data Store Adapter. See original exception message: No
more data to read from socket.
[4/21/04 18:49:12:233 EDT] 433ee4cc OnePhaseResou u Encountered an XA
resource error during an XA commit operation: erro
r code: 0
javax.transaction.xa.XAException:
Exception: com.ibm.ws.rsadapter.exceptions.DataStoreA
dapterException: DSRA0080E: An exception was received by the Data
Store Adapter. See original exception message: No more
data to read from socket.
at com.ibm.ejs.j2c.LocalTransactionWrapper.commit(LocalTransactionWrapper.java:238)
at com.ibm.ejs.jts.jta.onephase.OnePhaseResourceImpl.commit_one_phase(OnePhaseResourceImpl.java:147)
at com.ibm.ejs.jts.jts.ResourceVector.beforePrepare(ResourceVector.java:339)
at com.ibm.ejs.jts.tran.EventCallback.executeCallback(EventCallback.java:161)
at com.ibm.ejs.jts.tran.EventCallback.executeCallbackTree(EventCallback.java:132)
at com.ibm.ejs.jts.tran.EventCallback.executeCallbackTree(EventCallback.java:123)
at com.ibm.ejs.jts.tran.EventPrepare.ExecuteBeforePrepareCallbacks(EventPrepare.java:312)
at com.ibm.ejs.jts.tran.EventPrepare.event_LocalPrepareWork(EventPrepare.java:287)
at com.ibm.ejs.jts.tran.EventPrepare.event_BecomeCoordinator(EventPrepare.java:970)
at com.ibm.ejs.jts.tran.EventControl.event_EndTopLevel(EventControl.java:295)
at com.ibm.ejs.jts.tran.TrecInterface.end(TrecInterface.java:89)
at com.ibm.ejs.jts.jts.TerminatorImpl.commit(TerminatorImpl.java:104)
at com.ibm.ejs.jts.jts.CurrentImpl.commit(CurrentImpl.java:248)
at com.ibm.ejs.jts.jts.CurrentSet.commit(CurrentSet.java:316)
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:540)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:128)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:531)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:2801)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:2681)
at gov.rsc.cats.ejb.voucher.EJSRemoteStatelessBillingFacade_a5217444.addAttachmentToBill(EJSRemoteStatelessBillingFacad
e_a5217444.java:553)
at gov.rsc.cats.ejb.voucher._EJSRemoteStatelessBillingFacade_a5217444_Tie.addAttachmentToBill(_EJSRemoteStatelessBillin
gFacade_a5217444_Tie.java:425)
at gov.rsc.cats.ejb.voucher._EJSRemoteStatelessBillingFacade_a5217444_Tie._invoke(_EJSRemoteStatelessBillingFacade_a521
7444_Tie.java:138)
at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:582)
at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:437)
at com.ibm.rmi.iiop.ORB.process(ORB.java:320)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:1544)
at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2063)
at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:63)
at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:95)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:592)

[4/21/04 18:49:12:233 EDT] 433ee4cc OnePhaseResou W WTRN0081E: An
attempt by the transaction manager to call one phase c
ommit on a transactional resource has resulted in an unexpected error.
The XA error code was 0.
[4/21/04 18:49:13:045 EDT] 433ee4cc WSRdbManagedC W DSRA0180W:
Exception detected during ManagedConnection.destroy(). T
he exception is: com.ibm.ws.exception.WsException: DSRA0080E: An
exception was received by the Data Store Adapter. See
original exception message: Io exception: Connection aborted by peer:
socket write error.
at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:251)
at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:172)
at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:125)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupTransactions(WSRdbManagedConnectionImpl.java:1815)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.destroy(WSRdbManagedConnectionImpl.java:1389)
at com.ibm.ejs.j2c.MCWrapper.destroy(MCWrapper.java:1032)
at com.ibm.ejs.j2c.poolmanager.FreePool.cleanupAndDestroyMCWrapper(FreePool.java:402)
at com.ibm.ejs.j2c.poolmanager.FreePool.returnToFreePool(FreePool.java:235)
at com.ibm.ejs.j2c.poolmanager.PoolManager.release(PoolManager.java:777)
at com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager(MCWrapper.java:1304)
at com.ibm.ejs.j2c.LocalTransactionWrapper.afterCompletionCode(LocalTransactionWrapper.java:1060)
at com.ibm.ejs.j2c.LocalTransactionWrapper.afterCompletion(LocalTransactionWrapper.java:997)
at com.ibm.ejs.jts.jta.TransactionImpl$SyncronizationWrapper.after_completion(TransactionImpl.java:1246)
at com.ibm.ejs.jts.jts.CoordinatorImpl$Sync.afterResolution(CoordinatorImpl.java:1234)
at com.ibm.ejs.jts.tran.EventCallback.executeCallback(EventCallback.java:178)
at com.ibm.ejs.jts.tran.EventCallback.executeCallback(EventCallback.java:137)
at com.ibm.ejs.jts.tran.EventAbort.CompleteUndo(EventAbort.java:682)
at com.ibm.ejs.jts.tran.EventAbort.AttemptUndo(EventAbort.java:629)
at com.ibm.ejs.jts.tran.EventAbort.PerformUndo(EventAbort.java:567)
at com.ibm.ejs.jts.tran.EventAbort.event_Kill(EventAbort.java:510)
at com.ibm.ejs.jts.tran.EventAbort.AbortSomething(EventAbort.java:978)
at com.ibm.ejs.jts.tran.EventAbort.event_Abort(EventAbort.java:915)
at com.ibm.ejs.jts.tran.EventAbort.event_AbortRequest(EventAbort.java:112)
at com.ibm.ejs.jts.tran.TrecInterface.abort(TrecInterface.java:71)
at com.ibm.ejs.jts.tran.TransactionContextCallback.abort(TransactionContextCallback.java:74)
at com.ibm.ejs.jts.jts.ResourceVector.beforePrepare(ResourceVector.java:367)
at com.ibm.ejs.jts.tran.EventCallback.executeCallback(EventCallback.java:161)
at com.ibm.ejs.jts.tran.EventCallback.executeCallbackTree(EventCallback.java:132)
at com.ibm.ejs.jts.tran.EventCallback.executeCallbackTree(EventCallback.java:123)
at com.ibm.ejs.jts.tran.EventPrepare.ExecuteBeforePrepareCallbacks(EventPrepare.java:312)
at com.ibm.ejs.jts.tran.EventPrepare.event_LocalPrepareWork(EventPrepare.java:287)
at com.ibm.ejs.jts.tran.EventPrepare.event_BecomeCoordinator(EventPrepare.java:970)
at com.ibm.ejs.jts.tran.EventControl.event_EndTopLevel(EventControl.java:295)
at com.ibm.ejs.jts.tran.TrecInterface.end(TrecInterface.java:89)
at com.ibm.ejs.jts.jts.TerminatorImpl.commit(TerminatorImpl.java:104)
at com.ibm.ejs.jts.jts.CurrentImpl.commit(CurrentImpl.java:248)
at com.ibm.ejs.jts.jts.CurrentSet.commit(CurrentSet.java:316)
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:540)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:128)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:531)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:2801)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:2681)
at gov.rsc.cats.ejb.voucher.EJSRemoteStatelessBillingFacade_a5217444.addAttachmentToBill(EJSRemoteStatelessBillingFacad
e_a5217444.java:553)
at gov.rsc.cats.ejb.voucher._EJSRemoteStatelessBillingFacade_a5217444_Tie.addAttachmentToBill(_EJSRemoteStatelessBillin
gFacade_a5217444_Tie.java:425)
at gov.rsc.cats.ejb.voucher._EJSRemoteStatelessBillingFacade_a5217444_Tie._invoke(_EJSRemoteStatelessBillingFacade_a521
7444_Tie.java:138)
at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:582)
at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:437)
at com.ibm.rmi.iiop.ORB.process(ORB.java:320)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:1544)
at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2063)
at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:63)
at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:95)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:592)
---- Begin backtrace for nested exception
java.sql.SQLException: Io exception: Connection aborted by peer:
socket write error
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:169)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:211)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:324)
at oracle.jdbc.driver.OracleConnection.rollback(OracleConnection.java:951)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupTransactions(WSRdbManagedConnectionImpl.java:1807)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.destroy(WSRdbManagedConnectionImpl.java:1389)
at com.ibm.ejs.j2c.MCWrapper.destroy(MCWrapper.java:1032)
at com.ibm.ejs.j2c.poolmanager.FreePool.cleanupAndDestroyMCWrapper(FreePool.java:402)
at com.ibm.ejs.j2c.poolmanager.FreePool.returnToFreePool(FreePool.java:235)
at com.ibm.ejs.j2c.poolmanager.PoolManager.release(PoolManager.java:777)
at com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager(MCWrapper.java:1304)
at com.ibm.ejs.j2c.LocalTransactionWrapper.afterCompletionCode(LocalTransactionWrapper.java:1060)
at com.ibm.ejs.j2c.LocalTransactionWrapper.afterCompletion(LocalTransactionWrapper.java:997)
at com.ibm.ejs.jts.jta.TransactionImpl$SyncronizationWrapper.after_completion(TransactionImpl.java:1246)
at com.ibm.ejs.jts.jts.CoordinatorImpl$Sync.afterResolution(CoordinatorImpl.java:1234)
at com.ibm.ejs.jts.tran.EventCallback.executeCallback(EventCallback.java:178)
at com.ibm.ejs.jts.tran.EventCallback.executeCallback(EventCallback.java:137)
at com.ibm.ejs.jts.tran.EventAbort.CompleteUndo(EventAbort.java:682)
at com.ibm.ejs.jts.tran.EventAbort.AttemptUndo(EventAbort.java:629)
at com.ibm.ejs.jts.tran.EventAbort.PerformUndo(EventAbort.java:567)
at com.ibm.ejs.jts.tran.EventAbort.event_Kill(EventAbort.java:510)
at com.ibm.ejs.jts.tran.EventAbort.AbortSomething(EventAbort.java:978)
at com.ibm.ejs.jts.tran.EventAbort.event_Abort(EventAbort.java:915)
at com.ibm.ejs.jts.tran.EventAbort.event_AbortRequest(EventAbort.java:112)
at com.ibm.ejs.jts.tran.TrecInterface.abort(TrecInterface.java:71)
at com.ibm.ejs.jts.tran.TransactionContextCallback.abort(TransactionContextCallback.java:74)
at com.ibm.ejs.jts.jts.ResourceVector.beforePrepare(ResourceVector.java:367)
at com.ibm.ejs.jts.tran.EventCallback.executeCallback(EventCallback.java:161)
at com.ibm.ejs.jts.tran.EventCallback.executeCallbackTree(EventCallback.java:132)
at com.ibm.ejs.jts.tran.EventCallback.executeCallbackTree(EventCallback.java:123)
at com.ibm.ejs.jts.tran.EventPrepare.ExecuteBeforePrepareCallbacks(EventPrepare.java:312)
at com.ibm.ejs.jts.tran.EventPrepare.event_LocalPrepareWork(EventPrepare.java:287)
at com.ibm.ejs.jts.tran.EventPrepare.event_BecomeCoordinator(EventPrepare.java:970)
at com.ibm.ejs.jts.tran.EventControl.event_EndTopLevel(EventControl.java:295)
at com.ibm.ejs.jts.tran.TrecInterface.end(TrecInterface.java:89)
at com.ibm.ejs.jts.jts.TerminatorImpl.commit(TerminatorImpl.java:104)
at com.ibm.ejs.jts.jts.CurrentImpl.commit(CurrentImpl.java:248)
at com.ibm.ejs.jts.jts.CurrentSet.commit(CurrentSet.java:316)
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:540)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:128)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:531)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:2801)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:2681)
at gov.rsc.cats.ejb.voucher.EJSRemoteStatelessBillingFacade_a5217444.addAttachmentToBill(EJSRemoteStatelessBillingFacad
e_a5217444.java:553)
at gov.rsc.cats.ejb.voucher._EJSRemoteStatelessBillingFacade_a5217444_Tie.addAttachmentToBill(_EJSRemoteStatelessBillin
gFacade_a5217444_Tie.java:425)
at gov.rsc.cats.ejb.voucher._EJSRemoteStatelessBillingFacade_a5217444_Tie._invoke(_EJSRemoteStatelessBillingFacade_a521
7444_Tie.java:138)
at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:582)
at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:437)
at com.ibm.rmi.iiop.ORB.process(ORB.java:320)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:1544)
at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2063)
at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:63)
at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:95)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:592)
.

rrudr...@fry.com

unread,
Apr 22, 2004, 11:53:21 AM4/22/04
to

Raju R

unread,
Apr 27, 2004, 2:24:02 PM4/27/04
to
We finally found a simple solution to this problem.

We updated the server configuration to use OCI8 driver instead of thin
driver and every thing works fine. It appears that CMP transactions
for Blobs do not work well with thin driver even the data is within
the limits.

Thanks

Raju

<rrudr...@fry.com> wrote in message news:<1795596555.1082649200791.JavaMail.wasadmin@swg3ws006>...

0 new messages