【发布时间】:2010-05-25 10:56:35
【问题描述】:
我正在运行两个包含无状态会话 EJB 的 glassfish v2 域。在少数情况下,一个域中的 EJB 必须调用另一个域中的 EJB。
我的问题是,当被调用的 EJB 异常中止时,调用者不会收到异常消息,而是报告一个内部错误,这对诊断问题毫无帮助。发生的事情似乎是这样的:
- 在传输层创建了一个
org.omg.CORBA.portable.ApplicationException,它已经丢失了除其类之外的异常的所有详细信息。 -
在
com.sun.jts.CosTransactions.TopCoordinator.get_txcontext()内部,事务ass 回滚的状态会导致org.omg.CosTransactions.Unavailable被抛出,该org.omg.CosTransactions.Unavailable被包装并传递了几次,最终导致向用户显示此错误:org.omg.CORBA.INVALID_TRANSACTION: vmcid: 0x0 minor code: 0 completed: No at com.sun.jts.CosTransactions.CurrentTransaction.sendingRequest(CurrentTransaction.java:807) at com.sun.jts.CosTransactions.SenderReceiver.sending_request(SenderReceiver.java:139) at com.sun.jts.pi.InterceptorImpl.send_request(InterceptorImpl.java:344) at com.sun.corba.ee.impl.interceptors.InterceptorInvoker.invokeClientInterceptorStartingPoint(InterceptorInvoker.java:271) at com.sun.corba.ee.impl.interceptors.PIHandlerImpl.invokeClientPIStartingPoint(PIHandlerImpl.java:348) at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:284) at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:184) at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:186) at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152) at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
我可以在这里做些什么来保存有关问题的实际原因的信息吗?
【问题讨论】:
标签: glassfish ejb-3.0 corba iiop