奇怪的CORBA RMi异常org.omg.CORBA.MARSHAL:发送片段时出错

时间:2011-02-16 12:27:13

标签: java exception websphere rmi corba

我们在WebSphere 6.1上运行了一个负载很重的EJB应用程序。最近,我们遇到了很多连接问题,客户端应用程序(独立的Java应用程序)在下面获得了异常,并且请求未完成。服务器启动并运行,ping很好,其他客户端可以连接和发送请​​求,因此它不是连接问题。我们无法在测试服务器上重现此问题。有谁可以请帮助我们找出导致这个问题的原因?我们缺少一些WebSphere配置参数吗?

编辑我们还发现,在服务器发出此异常的时候,我们也无法在该端口上进行telnet。那么这意味着我们的服务器端ORB无法正常工作?

谢谢。

 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

2 个答案:

答案 0 :(得分:2)

启用ORBRas = all trace string并重现问题。 trace.log应该包含异常的根本原因。我的猜测可能是网络I / O错误或产品缺陷。

答案 1 :(得分:0)

使用JacORB作为客户端ORB是一种选择吗?