Frage

Unsere Java-Anwendung schreibt MQ Series Warteschlangen über ein Weblogic JMS-Message-Bridge. Die tatsächlichen MQ Series-Anschluss / Warteschlange Details werden in der MQ Series .bindings Datei auf dem Applikationsserver gespeichert. Ich habe noch nie habe wirklich meinen Kopf um die Bindungsdatei und was alle Einträge bedeuten. Kann jemand Führung bietet diese Datei zu verstehen?

War es hilfreich?

Lösung

Vor der .bindings Datei Adressierung, müssen wir ein bisschen Schritt zurück und schauen Sie JNDI - der Java Naming and Directory Interface - und wie wird es von JMS verwendet. Die Queue, Thema und verschiedene Arten von Verbindungsfactory sind alle Laufzeit JMS-Objekte mit Methoden und Attributen. Aber man kann sie vordefinieren und speichern sie in einem Register in dem der JMS-Anwendung abrufen können sie JNDI-Lookups verwenden.

Dies ist hilfreich, da die Objekte wie Münzen, dass sie sind eine JMS-Seite und eine providerspezifische Seite haben. Auf der JMS Seite, jede verabreichte Objekt sieht in etwa gleich. Unabhängig von den zugrundeliegenden Transportanbietern hat ein ConnectionFactory- die gleichen Methoden und Attribute. Doch auf der providerspezifischen Seite sehen die administrierten Objekte sehr unterschiedlich von einem Transportanbieter zum nächsten. Zum Beispiel kann die ConnectionFactory- mit einem WebSphere MQ Transport verwendet wird ein Attribut für den Queue Manager hat. Kein anderer Transportanbieter hat einen „WS-Manager“ so dieses Attribut ist nur gültig in einem WMQ Kontext.

Die beiden Aspekte der administrierten Objekte sind der „Klebstoff“, der JMS ermöglicht unabhängig von Transportanbieter zu arbeiten. In Ihrem Code haben Sie nur einen ConnectionFactory- nachzuschlagen und Sie bekommen ein Objekt geeignete Methode auszuführen ruft gegen. Unter den Abdeckungen Verwenden des Anbieters JMS Klassen die providerspezifischen Objektattribute Kontext zu liefern, um die generischen JMS-API-Aufrufe in providerspezifischen Anrufe zu konvertieren. Somit ist das Verbindungsobjekt, das Sie führt zu einem WMQ CONNECT Anruf instanziiert, die einen QMgr Namen, Host, Port, Kanal und eine Vielzahl anderer Parameter.

gibt

OK, versprach ich in die .bindings-Datei zu erhalten. Ich sagte vorher, dass die JNDI-Suche gegen eine „Registry“ war und dass in der Regel bedeutet, LDAP oder ähnliches. Aber Sun entwickelte JNDI wie JMS, dass es eine API, die Ihr Programm verwendet und ein SPI oder Service Provider Interface, die von der Registrierung verwendet wird. Also, auch wenn JNDI können in LDAP implementiert werden, es gibt nichts, das es sagt, muss in LDAP implementiert werden. Einer der Basis-Implementierungen, die Sun zur Verfügung gestellt direkt aus der Box war das lokale Dateisystem als die Registrierung zu verwenden. In dieser Implementierung ist der Root-Kontext ein Dateiordner. Jeder Kontext speichern kann entweder ein anderen Unterkontext (ein anderen Dateiordner) oder Objektdefinitionen. Typischerweise gibt es einen Ordner für den Root-Kontext und alle Objekte werden auf dieser Ebene definiert. Die Datei, die die Objektdefinitionen hält, ist ... Sie ahnen es ... die .bindings Datei.

Die Objekte in der .bindings Datei in Name / Typ / Wert Drillinge dargestellt. So wird jede .bindings Datei typischerweise viele Objekte hat. Jedes Objekt hat viele Attribute. Jedes Attribut hat einen Namen, einen Wert und den Typ der Variable, die den Wert enthält. Der beste Weg, einen Griff an der .bindings Datei zu erhalten, ist es zu sortieren, das alle Objekte gesetzt werden und deren Attribute zusammen und machen es in lesbarer Form. Eine Liste der möglichen Eigenschaften finden Sie unter das Handbuch .

Natürlich wird die .bindings Datei eine kompilierte Artefakt sein soll und nicht als Menschen lesbare gedacht. IBM stellt das JMSAdmin Werkzeug zu erzeugen und die .bindings Datei zu lesen. Sie können auch WMQ Explorer verwenden, um die verwaltete Objekte in einer .bindings Datei zu verwalten. Diese werden auch im Handbuch oben diskutiert verbunden. Es gibt auch ein (manche sagen) gutes Tutorial in developer hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top