【问题标题】:Strange CORBA RMi exception org.omg.CORBA.MARSHAL: Error sending fragment奇怪的 CORBA RMi 异常 org.omg.CORBA.MARSHAL:发送片段时出错
【发布时间】:2011-06-28 08:01:13
【问题描述】:

我们有一个在 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

【问题讨论】:

标签: java exception websphere rmi corba


【解决方案1】:

是否可以选择使用 JacORB 作为客户端 ORB?

【讨论】:

  • 我不这么认为。我们使用的是 EJB,它使用的是 RMI,它使用的是 CORBA 的一些实现,我真的怀疑这个实现是否可以改变。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 2015-02-23
    相关资源
    最近更新 更多