同步多个weblogic数据库访问

时间:2013-07-31 06:24:07

标签: java oracle weblogic

我们在服务器上运行了多个weblogic实例。 所有这些实例只访问一个数据库。

其中一个表存储了我们需要处理的请求。 问题是多个weblogic可以在给定时间访问数据库,并可以选择请求并处理它。 由于这一个请求被多次处理&制造问题。

这些不是在DB中创建额外属性,它存储标志是否处理该记录,因为2 weblogic可以在同一时间访问该记录。

访问数据库的代码是Java,但没有使用该部分进行同步,因为每个weblogic都有单独的代码副本。

请建议我们如何通过多个正在运行的网络逻辑确保一条记录只被处理一次。

1 个答案:

答案 0 :(得分:1)

嗯,答案取决于您如何访问数据库,使用像hibernate或简单JDBC这样的API。你可以做的一件事是,你可以管理这个会话。访问记录后,它将变为DIRTY,因此下次不会访问。你肯定需要添加一些机制,让你的应用程序知道“哪些请求被处理,哪些不是”。

  

2 weblogic可以在同一时间访问该记录。

这对我来说似乎很可怕,所以,你需要确保原子性。我猜,(不确定)当一个Web逻辑访问它时,它会占用事务锁。另一个Web逻辑应该有另一个相同记录的新副本,实际上在释放锁之后。)

希望这有帮助。