我正在运行JBoss EAP 6.2
(嵌入式HornetQ 2.3.12.Final
)作为独立消息服务器,它将托管JMS队列和主题。
将有其他JBoss服务器远程连接到消息传递服务器的队列和主题。
使用这个Stackoverflow答案:将JBoss AS 7绑定到所有接口
我对我的standalone-full.xml
配置做了以下更改:
<interfaces>
...
<interface name="public">
<!--<inet-address value="${jboss.bind.address:127.0.0.1}"/>-->
<any-address/>
</interface>
</interfaces>
在做了这个改变之后,我可以通过端口4447 (JBoss Remoting)从其他JBoss服务器成功连接,并编写JMS客户端代码(ConnectionFactory, Connection, MessageProducer等)。
JBoss日志有以下内容,这让人放心:
[org.jboss.as.remoting] (MSC service thread 1-3) JBAS017100:
Listening on 0.0.0.0:4447
但是,我不能通过远程MDB连接。我需要弄清楚这一点,因为我们做mdb而不是JMS客户端代码。
我查看了我的JBoss日志,看到了下面的错误:
HQ121005: Invalid "host" value "0.0.0.0" detected for "netty" connector.
Switching to "ptenn-fc20.arbfile.org". If this new address is incorrect please
manually configure the connector to use the proper one.
我浏览了<subsystem xmlns="urn:jboss:domain:messaging:1.4"><hornetq-server> ...
部分,没有看到任何关于如何为"netty"连接器指定不同地址的内容。
显然Netty正在使用我指定的公共接口,我很困惑为什么JBoss Remoting(端口4447)可以很好地监听0.0.0.0
,而Netty(端口5445)却不能。
如果任何人有任何想法,见解或建议,我将衷心感谢。: -)
谢谢,菲利普
Philip,
主机是通过standalone-full-ha.xml的interfaces元素指定的。
然后在同一个配置文件的socket-bindings元素中引用该接口。
。下面的示例将JMS绑定到一个特定的IP地址,而不再是0.0.0.0…
<interfaces>
<interface name="management">
<!--<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>-->
<inet-address value="0.0.0.0"/>
</interface>
<interface name="public">
<inet-address value="0.0.0.0"/>
<!--just an FYI that we can use the following syntax too-->
<!--<any-address/>-->
</interface>
<interface name="jms"> <-- HERE
<inet-address value="${jboss.bind.address}"/>
</interface>
<!-- TODO - only show this if the jacorb subsystem is added -->
<interface name="unsecure">
<!--
~ Used for IIOP sockets in the standard configuration.
~ To secure JacORB you need to setup SSL
-->
<inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
</interface>
</interfaces>
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
.
.
.
<!--JMS-->
<socket-binding name="messaging" port="5445" interface="jms"/> <-- HERE
.
.
.
</socket-binding-group>
Rob