我目前正在开发一个运行在一个互化WebSphere上的web应用程序。该应用程序使用数据源(与其他应用程序共享)和持久EJB计时器。
由于EJB是持久化的,WebSphere使用自己的数据源将EJB状态持久化到数据库中。(用于WebSphere的内部管理)
应用程序的EJB计时器将DAO称为我的“创建方法”。
所有事务都是用JTA事务管理的。
我想找到最好的“策略”应用于数据源。在互联网上搜索了几次之后,我仍然处于黑暗之中。
如何配置数据源?
在我看来,所有数据源都应该是非XA的.
当我们在交互环境中使用数据源时,每个应用程序是否需要使用一个数据源(指向相同的DB),还是每个DB只有一个数据源?
非常感谢:)
发布于 2018-01-19 05:09:38
我不确定您所说的“互化”WebSphere是什么意思,但我假设您指的是运行多个应用程序的应用服务器实例。你的问题:
应该在XA?中使用两个数据源,而不是两个数据源,而是两个或更多的资源。数据源以外的资源可以参与XA事务。通常,如果事务不涉及多个数据库资源,则需要使用非XA数据源来执行该事务。是否可以使用非XA数据源来管理我的EJB和XA数据源,用于在EJB中完成的处理?是的,是的。您还声明了,因为EJB是持久化的,WebSphere使用它自己的数据源.默认使用默认数据源,但是您可以使用另一个数据源来配置ejb服务。每个应用程序是否需要使用一个数据源(指向相同的DB),还是每个应用程序只有一个数据源?每个应用程序不需要使用DS,但可能需要使用DS,这取决于您的需求。由于企业环境的复杂性,没有简单的最佳实践。显然,如果数据存储在多个后端,则需要多个数据源。如果您的所有数据都存储在一个后端中,那么使用一个DS可能是有意义的。
https://stackoverflow.com/questions/48331527
复制