移植的本地事务化 JMS 会话在 Liberty 中不工作

即使 WebSphere Application Server Traditional 允许本地事务化的 JMS 会话,也不允许将 WebSphere Application Server Traditional 本地事务化的 JMS 会话移植到 Liberty。

transacted 布尔值为 true 或者 sessionModeSession.SESSION_TRANSACTEDJMSContext.SESSION_TRANSACTED 时,此规则将通过对以下方法的引用来标记 Java 代码:

调用带有这些特定值的方法可能会在 Liberty 中产生不同的行为。

根据 JMS 规范,在 Java EE Web 或 EJB 容器中:

在传统 WebSphere 中,在这些场景中不会忽略传入的参数,因此允许创建本地事务化的会话。 如果相同的应用程序未进行任何更改在 Liberty 上运行,那么可能会获取非事务化的会话,或者可在现有的全局事务中获取创建的会话。 在任一情况下,如果获取 SessionJMSContext,尝试对其调用 commit() 或 rollback() 都将导致抛出异常。

有关信息,请参阅 Liberty: Runtime environment known issues and restrictions