当客户端应用程序与代理被防火墙隔开时,需要使用一些特殊的方法来建立连接。一种方法是使用 httpjms 或 httpsjms 连接服务(可以使用“隧道”通过防火墙);有关详细信息,请参见附录 C,HTTP/HTTPS 支持。但是 HTTP 连接比其他连接服务慢,一种更快的选择是绕过 Message Queue 端口映射器,并明确地为所需的连接服务指定静态端口地址,然后在防火墙中打开该特定端口。可以使用该方法以及 jms 或 ssljms 连接服务(在特殊情况下,使用 admin 或 ssladmin 连接服务)通过防火墙建立连接。
表 7–8 静态端口地址的代理配置属性
连接服务 |
配置属性 |
---|---|
jms |
imq.jms.tcp.port |
ssljms |
imq.ssljms.tls.port |
admin |
imq.admin.tcp.port |
ssladmin |
imq.ssladmin.tls.port |
为要使用的连接服务指定静态端口地址。
要绕过端口映射器直接为某个连接服务指定静态端口号,请设置代理配置属性 imq.serviceName. protocolType.port,其中 serviceName 是连接服务的名称,而 protocolType 是其协议类型(请参见表 7–8)。与所有代理配置属性一样,您可以在代理的实例配置文件中指定该属性,也可以在启动代理时通过命令行指定。例如,要为 jms 连接服务指定端口号 10234,可以在配置文件中包括以下命令行:
imq.jms.tcp.port=10234
也可以在启动代理时使用以下命令:
imqbrokerd -name myBroker -Dimq.jms.tcp.port=10234
配置防火墙以允许连接到为连接服务指定的端口号。
您还必须允许连接能通过防火墙连接到 Message Queue 的端口映射器端口(通常是 7676,除非将端口映射器重新指定到其他一些端口)。例如,在上面的示例中,需要在防火墙中打开端口 10234 和 7676。