客户端应用程序必须使用正确配置的连接工厂受管理对象来建立与代理的 HTTP 连接。 本节介绍了 HTTP 连接配置问题。
要启用 HTTP 支持,必须将连接工厂的 imqAddressList 属性设置为 HTTP 隧道 Servlet URL。 HTTP 隧道 Servlet URL 的一般语法如下:
http://hostName:portNumber /contextRoot/tunnel
其中 hostName:portNumber 是作为 HTTP 隧道 Servlet 宿主的 Web 服务器/应用服务器的名称和端口,而 contextRoot 是在该 Web 服务器/应用服务器上部署隧道 Servlet 时设置的路径。
有关连接工厂属性,特别是有关 imqAddressList 属性的详细信息,请参见 Message Queue Developer's Guide for Java Clients。
可以使用以下方法之一设置连接工厂属性:
在创建连接工厂受管理对象的 imqobjmgr 命令中使用 -o 选项(请参见添加连接工厂),或者在使用管理控制台 (imqadmin) 创建连接工厂受管理对象时设置属性。
在启动客户端的命令中使用 -D 选项(请参见 Message Queue Developer's Guide for Java Clients)。
以编程方式在客户端代码中创建连接工厂之后,使用 API 调用来设置其属性(请参见 Message Queue Developer's Guide for Java Clients)。
如果正在运行多个代理,您不必配置多个 Web 服务器/应用服务器和多个 Servlet 实例。 可以在并发运行的多个代理之间共享一个 Web 服务器/应用服务器和一个 HTTP 隧道 Servlet 实例。如果多个代理实例共享一个隧道 Servlet,则必须如下所示配置 imqAddressList 连接工厂属性:
http://hostName:portNumber /contextRoot/tunnel?ServerName= bkrHostName:instanceName
其中 bkrHostName 是代理实例主机名,instanceName 是您希望客户端访问的特定代理实例的名称。
要查看是否为 bkrHostName 和 instanceName 输入了正确的字符串,可以通过从浏览器访问 Servlet URL 来生成 HTTP 隧道 Servlet 的状态报告。 状态报告将列出 Servlet 正在访问的所有代理:
HTTP tunnel servlet ready. Servlet Start Time : Thu May 30 01:08:18 PDT 2005 Accepting TCP connections from brokers on port : 7675 Total available brokers = 2 Broker List : jpgserv:broker2 cochin:broker1 |
如果使用 HTTP 代理访问 HTTP 隧道 Servlet:
将 http.proxyHost 系统属性设置为代理服务器主机名。
将 http.proxyPort 系统属性设置为代理服务器端口号。
可以通过在启动客户端应用程序的命令中使用 -D 选项来设置这些属性。