java - JBoss集群: how to find/list all members forming the cluster

标签 java jboss jboss5.x

我有几个以集群模式运行的 JBoss 5.1 实例。

我需要找到一种方法,如何以编程方式获取形成集群的所有节点/成员(主机:端口)的列表。该代码应该在 EJB 容器内运行。

感谢您的任何提示!

最佳答案

您可以通过查询 JMX MBean 服务器以编程方式获取此信息。您将需要查询 MBean jboss:partition=DefaultPartition,service=HAPartition 并查找属性 CurrentView 的值。 CurrentView 将提供集群中的当前节点及其主机/IP 地址。您还可以通过将其与来自同一 MBean 的 jmx-console 的数据进行匹配来验证此数据。

您可以将此逻辑放入 EJB 中。您需要注意的一个问题是,您不希望在部署并启动集群服务之前部署 EJB。否则,您的 EJB 可能会抛出异常(例如InstanceNotFoundException)。因此,请在 EJB 部署包的 jboss-web.xml 中为集群 MBean (jboss:service=DefaultPartition) 添加一个 depends 子句。

关于java - JBoss集群: how to find/list all members forming the cluster,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19927751/

相关文章:

java - 我的代码运行了 15 分钟但只有白色输出?

mysql - 在 JBoss 上部署时出现 C3P0ConnectionProvider 错误

java - 从单元测试连接时,HSQL 立即关闭连接

jboss - 同一主机上不同版本的 JBoss

java - 如何使用 Jackson 区分 JSONArray 和 JSONObject 与 InputStream?

java - 异常后从下一行继续

java - "=="在 Java 中的字符串连接的情况下

web-applications - JBoss Seam教程

java - jboss 不使用 logback 进行日志记录

java - 改善 JBoss 5 慢启动