我目前正致力于在共享的WebSphere上运行的Web应用程序。此应用程序使用数据源(与其他应用程序共享)和持久EJB计时器。
由于EJB Timer是持久性的,因此WebSphere使用自己的数据源来将EJB Timer状态持久化到数据库中。 (用于WebSphere的内部管理)
Application的EJB Timer调用DAO我的“创建方法”。
所有都是通过JTA交易管理的。
我想找到适用于数据源的最佳“策略”。在互联网上进行了几次搜索后,我仍处于黑暗中。
如何配置数据源?
在我看来,所有数据源都应该在非XA ...
在共享环境中使用数据源时,最佳做法是什么?是否需要为每个应用程序使用一个数据源(指向同一个数据库)或每个数据库只有一个数据源?
非常感谢:)
答案 0 :(得分:0)
我不确定你对'共享'WebSphere的意思,但我认为你的意思是运行多个应用程序的app服务器的实例。 你的问题:
是否应在XA中使用两个数据源?一般不一定是两个数据源,而是两个或多个资源。数据源以外的资源可以参与XA事务。在 一般情况下,如果事务不涉及多个数据库资源,则需要 使用非XA数据源来执行该事务。 是否可以使用非XA 用于管理我的EJB Timer和XA数据源的数据源 在EJB中完成的处理?是的,确实如此。你也说过 由于EJB Timer是持久性的,因此WebSphere使用自己的数据源...... 确实使用了默认数据源 默认,但您可以自由配置ejb计时器服务 另一个数据源。 每个应用程序是否需要使用一个数据源(指向同一个数据库)或每个数据库只有一个数据源?不需要为每个应用程序使用DS,但可能需要依赖根据您的要求。由于企业环境的复杂性,没有简单的最佳实践。显然,如果您的数据存储在多个后端中,则需要多个数据源。如果您的所有数据都存储在一个后端中,则使用单个DS可能有意义。