IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
  • 1.  Serialization exception

    Posted Fri June 05, 2015 02:47 PM

    Hi

    I am getting the following error when running a Java service, this service creates an oracle descriptor and polls oracle types and ultimately returns an oracle struct type object. The connection is to Oracle Database XE 11.2 from webMethods IS 9.7 using JDBCAdapter 6.5.

    java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: oracle.jdbc.driver.T4CConnection
    at com.wm.util.coder.IDataBinCoder.doJavaSerializationDecode(IDataBinCoder.java:1199)
    at com.wm.util.coder.IDataBinCoder._decode(IDataBinCoder.java:1163)
    at com.wm.util.coder.IDataBinCoder._decode(IDataBinCoder.java:798 )
    at com.wm.util.coder.IDataBinCoder._decode(IDataBinCoder.java:798 )
    at com.wm.util.coder.IDataBinCoder.decode(IDataBinCoder.java:294)
    at com.wm.driver.comm.b2b.http.SessionHTTPLink.transportMsg(SessionHTTPLink.java:89)
    at com.wm.driver.comm.b2b.http.HTTPLink$HTTPSendReceive.run(HTTPLink.java:362)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: java.io.NotSerializableException: oracle.jdbc.driver.T4CConnection
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508 )
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
    at com.wm.util.coder.IDataBinCoder.doJavaSerializationEncode(IDataBinCoder.java:632)
    at com.wm.util.coder.IDataBinCoder._encode(IDataBinCoder.java:612)
    at com.wm.util.coder.IDataBinCoder._encode(IDataBinCoder.java:461)
    at com.wm.util.coder.IDataBinCoder._encode(IDataBinCoder.java:461)
    at com.wm.util.coder.IDataBinCoder.encode(IDataBinCoder.java:268 )
    at com.wm.app.b2b.server.ServerHTTPLink.send(ServerHTTPLink.java:69)
    at com.wm.app.b2b.server.comm.DefaultServerRequestHandler.handleMessage(DefaultServerRequestHandler.java:143)
    at com.wm.app.b2b.server.HTTPMessageHandler.process(HTTPMessageHandler.java:164)
    at com.wm.app.b2b.server.HTTPDispatch.handleRequest(HTTPDispatch.java:174)
    at com.wm.app.b2b.server.Dispatch.run(Dispatch.java:384)
    at com.wm.util.pool.PooledThread.run(PooledThread.java:127)
    … 1 more

    Anyone experienced similar issue…if so could please share the resolution… :smiley:


    #Adapters-and-E-Standards
    #webMethods
    #Integration-Server-and-ESB


  • 2.  RE: Serialization exception

    Posted Sat June 06, 2015 09:45 AM

    I am not sure if this helps but give it a try - change the return type from struct type object to byte array?.


    #Integration-Server-and-ESB
    #webMethods
    #Adapters-and-E-Standards


  • 3.  RE: Serialization exception

    Posted Mon June 08, 2015 04:49 PM

    Please try this and if it helps:

    Resolution:

    According to the JDBC Adapter documentation:
    When using the java.sql.Array or java.sql.Struct as the output field type for a database column of type array or struct, JDBC Adapter returns the java.sql.Array and the java.sql.Struct objects, respectively, as returned by the driver. However, when serializing the data across the JVMs, this returned data may not be serializable and may result into a java.io.NotSerializableException. Therefore, before serializing the data across the JVMs, it is important that you use a Java or a flow service to process the java.sql.Struct and java.sql.Array objects as required, and then drop them from the pipeline.

    Is it possible this is the cause of your issue? If so, then you may need to do as the documentation suggests, process the java.sql.Struct, and then drop the Struct.

    HTH,
    RMG


    #Integration-Server-and-ESB
    #Adapters-and-E-Standards
    #webMethods