首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有两个同时处理队列的JavaEE服务器的JBoss锁定机制?

是否有两个同时处理队列的JavaEE服务器的JBoss锁定机制?
EN

Stack Overflow用户
提问于 2013-01-12 06:23:31
回答 2查看 128关注 0票数 0

我有两个相同的,独立的JBoss 5.1服务器。我正在编写一个应用程序,该应用程序定期唤醒以处理队列,该队列作为Oracle数据库中的一个表实现。

伪码是:

  1. 醒醒吧。
  2. 现在的时间是早上7点到晚上7点吗?如果是,请继续。如果没有,回去睡5分钟。
  3. 读取“queue”表中第一行的内容
  4. 向另一个服务器发送HTTP,其中包含步骤3中读取的内容。
  5. 如果POST成功,请删除该行。否则,将行留在表中。
  6. 移到下一行,重复步骤3-5,直到表的末尾。
  7. 睡5分钟吧。

我的问题是:如何确保一个行不会被处理两次(导致两个帖子)?

我是否可以利用JavaEE注释,或者内置到JBoss中的锁定机制?

理想的解决方案将导致应用程序以相同的方式部署到两个服务器;也就是说,相同的应用程序驻留在两个节点中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-19 20:46:22

您可以对多个使用者使用JMS队列。

如果配置正确,每个消息将只传递给一个使用者,JMS提供者将在多个使用者之间“负载平衡”。

票数 0
EN

Stack Overflow用户

发布于 2013-06-19 21:06:18

如果您不能使用JMS队列(在本例中这应该是一种自然的选择),则可以使用。它的工作方式类似于集群范围的单例,当服务器发生活动单例崩溃时,单例在第二台服务器上被激活。

在您的示例中,单例bean可以在两个服务器(本地服务器和远程服务器)之间分离工作,因此不需要使用任何锁。

我在JBoss 7.1上使用过ha-singleton,但是这个特性也适用于JBoss5.x (检查这里)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14290887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档