0

我目前正在开发一个在共同化 WebSphere 上运行的 Web 应用程序。此应用程序使用数据源(与其他应用程序共享)和持久 EJB 计时器。

由于 EJB Timer 是持久的,WebSphere 使用它自己的数据源来将 EJB Timer 状态持久化到数据库中。(用于WebSphere的内部管理)

应用程序的 EJB 计时器调用 DAO 我的“创建方法”。

所有这些都通过 JTA 事务进行管理。

我想找到适用于数据源的最佳“策略”。在互联网上搜索了几次后,我仍然一无所知。

如何配置数据源?

  • XA 中应该使用两个数据源吗?
  • 是否可以使用非 XA 数据源来管理我的 EJB 计时器 (WebSphere) 和 XA 数据源来在我的 EJB(创建方法)中完成的处理?

在我看来,所有数据源都应该在非 XA 中......

当我们在互惠环境中使用数据源时,最佳实践是什么,是每个应用程序使用一个数据源(指向同一个数据库)还是每个数据库只有一个数据源?

非常感谢 :)

4

1 回答 1

0

我不确定您所说的“相互化”WebSphere 是什么意思,但我假设您指的是运行多个应用程序的应用服务器实例。你的问题:

XA 中应该使用两个数据源吗? 不一定是两个数据源,但通常是两个或更多资源。数据源以外的资源可以参与 XA 事务。通常,如果一个事务不涉及多个数据库资源,您希望使用非 XA 数据源来执行该事务。 是否可以使用非 XA 数据源来管理我的 EJB 计时器和 XA 数据源来在我的 EJB 中完成的处理?是的。您还说 由于 EJB Timer 是持久的,WebSphere 使用它自己的数据源...... 默认情况下使用默认数据源是正确的,但是您可以使用另一个数据源自由配置 ejb 定时器服务。 是每个应用程序使用一个数据源(指向同一个数据库)还是每个数据库只有一个数据源? 不需要为每个应用程序使用 DS,但根据您的要求可能需要。由于企业环境的复杂性,没有简单的最佳实践。显然,如果您的数据存储在多个后端,您将需要多个数据源。如果您的所有数据都存储在单个后端中,则使用单个 DS 可能有意义。

于 2018-01-19T13:09:38.523 回答