// 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)
.
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>...