EJB:websphere liberty 中的远程事务传播

EJB: Remote transaction propogation in websphere liberty

我正在努力将 ejb 应用程序从传统的 websphere 9 迁移到 liberty。

我的应用程序源代码使用远程事务传播。 websphere liberty 是否支持远程事务传播?任何解决方法?

不,Liberty 不支持事务传播。检查此页面 - Using enterprise JavaBeans with remote interfaces on Liberty.

Liberty does not support outbound or inbound transaction propagation... The client can start the EJB if the EJB is changed to use the RequiresNew or NotSupported transaction attributes. However, the transactional work that is done by the EJB is not committed as part of the transactions of the client.

所以我对这种情况的典型建议是:

  • 检查你是否真的需要远程接口 - 这通常是遗留代码,默认情况下有远程接口,但实际上所有调用都是本地的(相同 app/jvm) - 如果为真,则切换到本地接口
  • 检查是否可以 'safely' 将 Required 更改为 RequiresNewNotSupported,而不影响应用程序逻辑
  • 如果您不能使用以上任何一项,您将不得不 redesign/rearchitecture 您的应用程序,或添加一些自定义代码来手动处理这些交易,现在这些交易将被分开。