奇怪的 CORBA RMi 异常 org.omg.CORBA.MARSHAL:发送片段时出错
我们有一个在 WebSphere 6.1 上运行的重负载 EJB 应用程序。最近,我们遇到了很多连接问题,客户端应用程序(独立的java应用程序)出现以下异常并且请求未完成。服务器已启动并正在运行,ping 正常,其他客户端可以连接并发送请求,因此这不是连接问题。我们无法在我们的测试服务器上重现此问题。谁能帮助我们找出导致此问题的原因吗?我们是否缺少一些 WebSphere 配置参数?
编辑 我们还发现,当服务器给出此异常时,我们也无法在该端口上进行远程登录。那么这意味着我们的服务器端 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
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
启用 ORBRas=all 跟踪字符串 并重现问题。 trace.log 应包含异常的根本原因。我的猜测是网络 I/O 错误或产品缺陷。
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.
是否可以选择使用 JacORB 作为客户端 ORB?
Would it be an option to use JacORB as client ORB?