Denis Tulskiy
Denis Tulskiy

Reputation: 19177

Strange CORBA RMi exception org.omg.CORBA.MARSHAL: Error sending fragment

we have a heavy load EJB application running on WebSphere 6.1. Lately, we've been having a lot of connection problems, Client application (standalone java app) gets the exception below and the request is not completed. The server is up and running, pings are fine and other clients can connect and send requests, so it is not a connection issue. We couldn't reproduce this problem on our test servers. Could anyone please help us figure out what's causing this problem? Is there some WebSphere config param we're missing?

EDIT We also found that during times when the server gives this exception we can not telnet on that port either. So it means our server-side ORB is not working properly?

Thank you.

 Caused by: java.rmi.MarshalException: CORBA MARSHAL 1229125820 No; nested exception is: 
    org.omg.CORBA.MARSHAL: Error sending fragment  vmcid: IBM  minor code: 8BC  completed: No
    at com.sun.corba.se.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:197)
    at javax.rmi.CORBA.Util.mapSystemException(Util.java:67)
    at com.xyz.facade.ejb.api.remote._FnoDataFacadeRemote_Stub.findDocs(_FnoDataFacadeRemote_Stub.java)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.xyz.app.util.locator.RemoteServiceInterceptor$1.call(RemoteServiceInterceptor.java:200)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
    at java.util.concurrent.FutureTask.run(FutureTask.java:123)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
    at java.lang.Thread.run(Thread.java:595)
Caused by: org.omg.CORBA.MARSHAL: Error sending fragment  vmcid: IBM  minor code: 8BC  completed: No
    at com.ibm.rmi.iiop.IIOPOutputStream.sendFragment(IIOPOutputStream.java:196)
    at com.ibm.rmi.iiop.CDROutputStream.completeFragment(CDROutputStream.java:666)
    at com.ibm.rmi.iiop.CDROutputStream.alignAndReserve(CDROutputStream.java:643)
    at com.ibm.rmi.iiop.CDROutputStream.writeOctetArrayPiece(CDROutputStream.java:1100)
    at com.ibm.rmi.iiop.CDROutputStream.write_octet_array(CDROutputStream.java:1076)
    at com.ibm.rmi.iiop.CDROutputStream.writeRepositoryId(CDROutputStream.java:2445)
    at com.ibm.rmi.iiop.CDROutputStream.writeString(CDROutputStream.java:2737)
    at com.ibm.rmi.iiop.CDROutputStream.fast_write_value_internal(CDROutputStream.java:1580)
    at com.ibm.rmi.iiop.CDROutputStream.fast_write_value(CDROutputStream.java:1623)
    at com.ibm.rmi.iiop.CDROutputStream.fast_write_value(CDROutputStream.java:1554)
    at com.ibm.rmi.io.IIOPOutputStream.writeValueType(IIOPOutputStream.java:1142)
    at com.ibm.rmi.io.IIOPOutputStream.writeObjectField(IIOPOutputStream.java:1090)
    at com.ibm.rmi.io.IIOPOutputStream.outputClassFields(IIOPOutputStream.java:1021)
    at com.ibm.rmi.io.IIOPOutputStream.outputObject(IIOPOutputStream.java:1005)
    at com.ibm.rmi.io.IIOPOutputStream.writeSerializable(IIOPOutputStream.java:1050)
    at com.ibm.rmi.io.IIOPOutputStream.simpleWriteObjectInternal(IIOPOutputStream.java:427)
    at com.ibm.rmi.io.IIOPOutputStream.simpleWriteObjectLoop(IIOPOutputStream.java:455)
    at com.ibm.rmi.io.IIOPOutputStream.simpleWriteObject(IIOPOutputStream.java:512)
    at com.ibm.rmi.io.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:159)
    at com.ibm.rmi.iiop.CDROutputStream.write_value(CDROutputStream.java:1502)
    at com.ibm.rmi.iiop.CDROutputStream.write_value(CDROutputStream.java:1522)
    at com.ibm.rmi.iiop.ClientRequestImpl.write_value(ClientRequestImpl.java:857)
    ... 11 more

Upvotes: 1

Views: 2482

Answers (2)

Johnny Willemsen
Johnny Willemsen

Reputation: 3002

Would it be an option to use JacORB as client ORB?

Upvotes: 0

Brett Kail
Brett Kail

Reputation: 33946

Enable the ORBRas=all trace string and reproduce the problem. trace.log should contain the root cause of the exception. My guesses would be either a network I/O error or a product defect.

Upvotes: 2

Related Questions