我有一个网络应用程序,我部署在 Tomcat 6 上,它使用 Hibernate。它在 JMS 队列上接收消息,这些消息通过 Hibernate 和我的对象 () 触发对我的数据库的更改Agent
。
Web 请求还通过 Hibernate 访问数据库,并访问共享对象(有一个ConcurrentHashMap<AgentId,Agent>
由单例持有)。
我的问题是我有一条 JMS 消息,它更改了几个不同Agent
的 s 和几个表,Agent
当且仅当 DB 事务成功完成时,我需要 s 中的更改可用。此外,我不想使用读锁,因为这对我来说有太大的性能风险。
我正在考虑以某种方式实施XAResource
我的单例接口,然后使用 JTA 来管理我的单例和 Hibernate 事务。
你怎么看?听起来合理吗?我走远了吗?
如果需要任何其他详细信息,请随时询问
Ittai