2010-09-13 21 views
1

Je suis confronté à deux problèmes lorsque je tente de se connecter à MQ qui est déployé sur un serveur distant à partir Weblogic Server (WLS) en créant un serveur étranger. 1. Lorsque je tente de se connecter à MQ QueueManager en mode Liaisons (après avoir importé le fichier .bindings) Je continue à obtenir l'erreur ci-dessous dans la console WLS:MQ avec WLS étrangères serveur

java.lang.UnsatisfiedLinkError: no mqjbnd05 in java.library.path

  1. Si i Mettez le transport au client Je continue à obtenir:

JMSWMQ0018: Failed to connect to queue manager '' with connection mode 'Client' and host name 'localhost'. Check the queue manager is started and if running in client mode, check there is a listener running. Please see the linked exception for more information.

quelqu'un at-il vu cela, et quels sont les implications sur les performances qui imposent l'utilisation du client sur les liaisons et vice-versa?

TIA

Répondre

1

Enfin, j'ai été en mesure de résoudre ce problème, j'ai dû recréer le fichier .bindings en mode client, avec des modifications à l'IVTsetup.bat qui est probablement présent dans C: \ Program Files \ IBM \ WebSphere MQ \ java \ bin, je devais exécuter ce def qcf (psQCF) TRANSPORT (CLIENT) HOST (SMEKA) PORT (1415) CANAL (ps_SRV_CHANNEL) QMGR (PSQM) pour générer le fichier .bindings.

Se reporter à ce lien pour plus de détails:

http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=/com.ibm.wbia_adapters.doc/doc/peoplesoft/peopleso103.htm

+0

Mes soupçons étaient corrects alors. Votre FC a été désignée "localhost". Heureux de vous voir réglé. –

1

Lorsque la question précise que je tente de se connecter à MQ qui est déployé sur un serveur distant à partir du serveur Weblogic Je suppose que cela signifie que WLS et WMQ sont sur deux hôtes différents. Si tel est le cas, une connexion en mode liaison (qui repose sur des segments de mémoire partagée) ne fonctionnera pas.

La connexion en mode client semble utiliser un CF qui est pointé localhost plutôt que l'adresse IP ou le nom d'hôte du serveur WMQ. Cela fonctionnerait pour une application sur le même hôte que le gestionnaire de files d'attente, mais pas lorsque l'application et QMgr sont sur des serveurs distincts.

En ce qui concerne le choix entre le client et le mode de liaisons, la réponse est que si le QMGR est des liaisons d'utilisation locale. Cela fournit la plus haute fiabilité, la meilleure performance et la transactivité XA. Lors de l'utilisation du mode client, la validation XA à deux phases n'est pas prise en charge sans le client transactionnel étendu. Selon la spécification JMS, il existe une ambiguïté qui peut exister si une application perd la connexion lors d'un appel COMMIT. Selon la façon dont l'application gère cela, il est possible de se retrouver avec des messages en double. (La spécification JMS fait référence à ces derniers comme « doublon fonctionnel. ») Cette ambiguïté est beaucoup moins susceptibles de se produire avec une connexion en mode de liaisons car il n'y a pas de temps de latence du réseau et même pas traversal de la pile IP ou de l'interface. Utilisez donc le mode bindings lorsque cela est possible.

MISE À JOUR:
Remarque sur le client Suppression transactionnelles étendue étant un composant charge. As of April 24th, XTC est gratuit pour toutes les versions de WMQ sur toutes les plateformes.

+0

Hey Rob, Merci de vous assurer de répondre à mes questions, fait beaucoup parler ces derniers temps, mon client App est également sur une autre machine que WMQ. J'ai changé l'adresse IP dans le fichier de liaison, comme le serveur étranger dans WLS fait usage de la même chose, est-il là où je dois faire le changement ..? – hakish

+1

La valeur par défaut pour le nom d'hôte est localhost donc il peut y avoir un CF dans votre fichier .bindings qui est tout simplement manquant cette valeur. Par exemple, deux CF où l'on a le bon nom d'hôte, on ne le fait pas et c'est celui sans lequel on se réfère.Les classes JMS ne prendront la valeur du CF que si une table de définition de canal client (CCDT) est présente pour les surcharger. Cet artefact est pointé dans le CF par la propriété CCDTURL. –

+0

Bien sûr Rob, point pris .. :) – hakish