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



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

我的应用程序源代码使用远程事务传播。Websphere liberty 是否支持远程事务传播?有什么解决方法吗?

不,Liberty 不支持事务传播。查看此页面 - 在 Liberty 上使用带有远程接口的企业 JavaBeans。

Liberty 不支持出站或入站事务传播... 如果将 EJB 更改为使用RequiresNewNotSupported事务属性,则客户端可以启动 EJB。但是,EJB 完成的事务性工作不会作为客户端事务的一部分提交。

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

  • 检查您是否真的需要远程接口 - 这通常是遗留代码,默认情况下具有远程接口,但实际上所有调用都是本地的(相同的应用程序/JVM( - 如果为 true,则切换到本地接口
  • 检查您是否可以"安全地"将Required更改为RequiresNewNotSupported,而不会影响应用程序逻辑
  • 如果您无法使用上述任何一项,则必须重新设计/重新构建您的应用程序,或添加一些自定义代码来手动处理这些事务,现在这些事务将是分开的。

最新更新