WMQInitialContextFactory是一个通过WebSphere MQ队列实现JNDI提供程序的类.它们不是将托管对象存储在.bindings文件或LDAP中,而是序列化并存储在队列中,此类允许您将该队列视为另一个JNDI存储.此类只是作为JNDI提供程序,而不是实际IBM JMS实现的替代.由于在主题上存储托管对象不起作用,因此这些类中没有主题工厂.这是预期的.
在我看来,WMQInitialContextFactory的问题在于它必须首先连接到WebSphere MQ才能获得连接工厂,然后告诉应用程序 – 您猜对了 – 如何连接到WebSphere MQ.这使得链接的文章变得令人困惑,因为看起来所有配置,WMQ连接细节等等都是为了应用程序的利益,而实际上它们只是引导JNDI提供程序,该提供程序需要定义连接工厂对象.所有这些相同的信息.
本文缺少的是作者必须使用IBM的JMSAdmin工具连接到MQInitialContext,并在将应用程序连接到同一个初始上下文之前定义ConnectionFactory和其他受管对象才能访问它们.
为了记录,WebSphere MQ JMS类已经支持JMS 1.1 ConnectionFactory和Destination类很长一段时间了.在此之前,他们根据JMS 1.0规范支持队列和主题.
您可以将IBM WMQ JMS实现下载为SupportPac MQC7.除了jar文件之外,还有很多其他内容.例如,您可以获得大量示例代码,诊断和跟踪实用程序,文档等.您还可以获得正确的jar文件.
如果要使用.bindings文件(文件系统初始上下文)而不是WMQInitialContextFactory,请将最新的WebSphere MQ资源管理器工具下载为SupportPac MS0T.您可以创建目录,将WMQ Explorer指向它并定义所有连接工厂和目标. (或者使用特定于域的QueueConnectionFactory和TopicConnectionFactory,如果您将它放在旧学校.)有关使用WMQ Explorer定义托管对象的更多信息,请访问:Creating and configuring JMS administered objects
如果您需要一个包含如何使用IBM JMSAdmin工具创建.bindings文件的演示的教程,请查看Running a standalone Java application on WebSphere MQ V6.0.(JMSAdmin工具随WMQ Server一起安装,我相信它还附带免费的MS0T WMQ客户端安装上面链接.)JMSAdmin工具的文档在这里:Using the WebSphere MQ JMS administration tool