Zugriff auf MQ mit JMS

8

Ich verwende MQ7 und versuche, mit JMS-APIs auf eine Warteschlange zuzugreifen. Dieser Fehler wird angezeigt. Hat es schon mal jemand gesehen? Wie löse ich das? TIA

  

Ausnahme im Thread "main" com.ibm.msg.client.jms.DetailedJMSException:   JMSFMQ6312: In Java (tm) MQI ist eine Ausnahme aufgetreten. Der Java (tm) -MQI hat eine Ausnahme ausgelöst, die das Problem beschreibt. Weitere Informationen finden Sie in der verknüpften Ausnahme.

     

Erstellt von: com.ibm.mq.jmqi.JmqiException: CC = 2; RC = 2495; AMQ8568: Die native JNI-Bibliothek 'mqjbnd' wurde nicht gefunden. [3 = mqjbnd]

     

Erstellt von: java.lang.UnsatisfiedLinkError: no mqjbnd in java.library.path

    
hakish 09.09.2010, 10:58
quelle

6 Antworten

3

Dies wird fast immer durch eine Kombination aus einer unvollständigen Client-Installation und / oder einem CLASSPATH-Problem verursacht. Viele Leute greifen die JAR-Dateien, anstatt die komplette Installation durchzuführen, und erhalten nicht unbedingt alle. Neben der Sicherstellung, dass alle erforderlichen Binärdateien vorhanden sind, bietet die Verwendung des Installationsmediums mehrere zusätzliche Funktionen, z. B. Diagnose und Trace. Es stellt auch sicher, dass Wartung angewendet werden kann. Die WMQ-Client-Installationsmedien können kostenlos als SupportPac MQC7 heruntergeladen werden. Die CLASSPATH-Einstellung sollte wie in WebSphere beschrieben sein MQ Verwenden von Java Handbuch.

Wenn die Clientinstallation von IBM-Medien durchgeführt wird und die Umgebung gemäß den Dokumenten eingerichtet wird, werden dadurch fast alle Fälle behoben, die Sie hier gemeldet haben. Es gibt ein paar Install Verification Test-Apps (einige dieser Diagnoseprogramme sind mit den vollständigen Medien installiert, die ich erwähnt habe) die hier beschrieben werden und mit denen festgestellt werden kann, ob ein Problem mit der Installation oder mit dem Code verbunden ist.

    
T.Rob 09.09.2010, 11:13
quelle
6

Wahrscheinlich ein bisschen spät, aber ich hatte das gleiche Problem und festgestellt, dass dies vermieden werden kann, wenn Sie einen anderen Verbindungsmodus beim Herstellen einer Verbindung zu einer Remote-Warteschlange verwenden. Standardmäßig verwendet der MQConnectionFactory WMQ_CM_BINDINGS als Verbindungsmodus. Wenn Sie es in WMQ_CM_CLIENT ändern (oder den Verbindungsmodus, der keine systemeigenen Bibliotheken benötigt), sollten Sie in Ordnung sein.

%Vor%     
johnam 07.01.2015 06:20
quelle
2

Vereinbaren Sie mit Johnam, es passiert, weil die ConnectionFactory als Server standardmäßig festgelegt wurde, muss es als Client festgelegt werden, Sie sagten, dass es auf demselben Computer funktioniert. Weil ich auch die gleiche Situation getroffen habe, läuft es auf demselben Rechner, in diesem Fall, weil Ihr Rechner als WMQ-Server das tut, aber wenn Sie auf einem anderen Rechner laufen, dann muss Ihr Programm als Client eingestellt werden.

Ich repariere es, indem ich einen Parameter auf ConnectionFactory setze:

%Vor%     
Imam Baihaqi 03.02.2015 05:08
quelle
1

Der VM-Parameter -Djava.library.path=/opt/mqm/java/lib64 funktioniert für mich. Meine Umgebung ist 64bit Suse mit MQ installiert und mein Programm verwendet 'Bindings' Transporttyp

    
Tomboy 26.05.2014 23:46
quelle
0

Das Problem tritt mit der Path-Variable bei Systemeigenschaften auf. Versuchen Sie, Code auszuführen, indem Sie MQInstallation Dir: \ Lib64 path before MQInstallation Dir: \ Lib

angeben     
user5061020 29.06.2015 11:18
quelle
0

Fügen Sie die folgenden Argumente zu Ihren Tomcat-Argumenten hinzu:

%Vor%

Wenn das Installationsverzeichnis anders als das obige ist, verwenden Sie den entsprechenden Speicherort.

    
Rams 18.09.2015 13:40
quelle

Tags und Links