Binding 了解MQ系列绑定文件

Binding 了解MQ系列绑定文件,binding,weblogic,ibm-mq,Binding,Weblogic,Ibm Mq,我们的Java应用程序通过Weblogic JMS消息桥写入MQ系列队列。实际的MQ Series连接/队列详细信息存储在应用服务器上的MQ Series.bindings文件中。我从来没有真正了解过绑定文件以及所有条目的含义。有人能提供理解该文件的指导吗?在处理.bindings文件之前,我们需要退一步,看看JNDI(Java命名和目录接口)以及JMS是如何使用它的。队列、主题和各种类型的连接工厂都是具有方法和属性的运行时JMS对象。但是您可以预先定义它们并将它们存储在一个注册表中,JMS应用

我们的Java应用程序通过Weblogic JMS消息桥写入MQ系列队列。实际的MQ Series连接/队列详细信息存储在应用服务器上的MQ Series.bindings文件中。我从来没有真正了解过绑定文件以及所有条目的含义。有人能提供理解该文件的指导吗?

在处理.bindings文件之前,我们需要退一步,看看JNDI(Java命名和目录接口)以及JMS是如何使用它的。队列、主题和各种类型的连接工厂都是具有方法和属性的运行时JMS对象。但是您可以预先定义它们并将它们存储在一个注册表中,JMS应用程序可以使用JNDI查找来检索它们

这很有用,因为对象就像硬币一样,它们有JMS端和特定于提供者的端。在JMS方面,任何受管理对象看起来都差不多。无论底层传输提供程序是什么,ConnectionFactory都具有相同的方法和属性。但是,在特定于提供者的方面,受管对象在不同的传输提供者之间看起来非常不同。例如,与WebSphere MQ传输一起使用的ConnectionFactory将具有队列管理器的属性。没有其他传输提供程序具有“队列管理器”,因此此属性仅在WMQ上下文中有效

受管理对象的两个方面是允许JMS独立于传输提供者工作的“粘合剂”。在代码中,您只需查找ConnectionFactory,就可以得到一个适合对其执行方法调用的对象。在封面下,提供者的JMS类使用提供者特定的对象属性来提供上下文,以将通用JMS API调用转换为提供者特定的调用。因此,实例化的连接对象将导致WMQ CONNECT调用,该调用指定QMgr名称、主机、端口、通道和各种其他参数

好的,我答应过要转到.bindings文件。我之前说过JNDI查找是针对“注册表”的,这通常意味着LDAP或类似的。但是Sun设计的JNDI与JMS类似,因为您的程序使用一个API,注册中心使用一个SPI或服务提供者接口。因此,尽管JNDI可以在LDAP中实现,但没有任何规定必须在LDAP中实现。Sun提供的一种开箱即用的基本实现是使用本地文件系统作为注册表。在此实现中,根上下文是一个文件夹。每个上下文可以存储另一个子上下文(另一个文件夹)或对象定义。通常,根上下文有一个文件夹,所有对象都在该级别定义。保存对象定义的文件是…您猜对了。。。.bindings文件

.bindings文件中的对象以名称/类型/值三元组表示。因此,每个.bindings文件通常都有许多对象。每个对象都有许多属性。每个属性都有一个名称、一个值和保存该值的变量类型。获取.bindings文件句柄的最佳方法是对其进行排序,这将把所有对象及其属性放在一起,使其更具可读性。有关可能属性的列表,请参阅

当然,.bindings文件应该是一个已编译的工件,而不是人类可读的。IBM提供了JMSAdmin工具来生成和读取.bindings文件。您还可以使用WMQ资源管理器管理.bindings文件中的受管对象。上面链接的手册中也讨论了这些问题。developerWorks中还有一个(有人说)不错的教程