Cette section contient une liste des problèmes connus concernant Message Queue 4.4 Mise à jour 1. Les domaines suivants du produit sont abordés :
Pour obtenir une liste des bogues actuels, de leur état et de leurs solutions, les membres de Java Developer Connection™ peuvent consulter la « Bug Parade » sur le site Web de Java Developer Connection. Avant de signaler tout nouveau bogue, merci de consulter cette page. Bien que tous les bogues de Message Queue n'y soient pas répertoriés, il est préférable ce consulter cette page pour savoir si un problème a déjà été signalé.
http://bugs.sun.com/bugdatabase/index.jsp
L'adhésion à Java Developer Connection est gratuite, mais elle requiert une inscription. Pour savoir comment devenir membre de Java Developer Connection, consultez la page Web « For Developers » de Sun .
Pour signaler un nouveau bogue ou soumettre une demande d'amélioration, envoyez un e-mail à l'adresse suivante : imq-feedback@sun.com .
Cette section décrit les problèmes liés à l'installation de Message Queue version 4.4 Mise à jour 1.
Message Queue 4.4, tout comme Message Queue 4.2 et 4.1, est installé par un programme d'installation relativement nouveau qui installe et met à niveau les composants partagés de Java Enterprise System (Java ES) requis par Message Queue ; par exemple, JDK, NSS, JavaHelp, etc.
Le nouveau programme d'installation Message Queue et l'ancien programme d'installation de Java ES utilisé pour installer les versions précédentes de Message Queue, ne partagent pas le même registre de produit. Si une version de Message Queue, précédemment installée avec Java ES, est supprimée, puis que Message Queue &; 4.4 est installé via le programme d'installation de Message Queue, le registre de produit Java ES peut alors se trouver dans un état incohérent. Ainsi, si le programme de désinstallation de Java ES est exécuté, il est possible qu'il supprime par accident Message Queue 4.4 et les composants partagés dont il dépend, même s'il ne les a pas installés.
Le meilleur moyen de mettre à niveau le logiciel Message Queue installé par le programme d'installation de Java ES est de :
Supprimer Message Queue et ses composants partagés avec le programme de désinstallation de Java ES.
Installer le programme d'installation de Message Queue pour installer Message Queue 4.4.
Ces problèmes affectent le processus d'installation sur toutes les plates-formes.
L'écran Prêt à installer affiche le nom du produit comme « mq » plutôt que comme Sun Java System Message Queue 4.3. (Bogue 6650841)
Lorsque le programme d'installation est en cours d'exécution pour l'installation de Message Queue 4.3 et que l'écran de progression est affiché, le bouton Annuler est actif. Si vous sélectionnez ce bouton à ce stade, l'installation sera incomplète ou endommagée. (Bogue 6595578)
L'écran de synthèse du programme d'installation contient certains liens qui, lorsque vous cliquez dessus, lancent un visualiseur de page de synthèse ou de journal. Si vous fermez la fenêtre du visualiseur en utilisant le bouton « X » au lieu du bouton Fermer, il sera alors impossible de la faire réapparaître. (Bogue 6587138)
Solution : utilisez le bouton Fermer pour fermer la fenêtre.
L'exécution du programme d'installation en mode d'enregistrement seul (installer -r) après avoir effectué une installation en mode silencieux au cours de laquelle l'enregistrement a été ignoré entraîne un échec de l'enregistrement avec une erreur « Fin prématurée de fichier ». (Bogue 6767988)
Lors de l'exécution du programme d'installation de Message Queue sur un ordinateur sur lequel le JDK n'est pas installé, le message d'erreur suivant s'affiche : « Racine incorrecte dans la clé de registre HKLM\SOFTWARE\JavaSoft\Java Runtime Environment\CurrentVersion ». (Bogue 6764358)
Solution : installez le JDK avant de lancer le programme d'installation.
Le répertoire mqInstallHome est créé par le programme d'installation de Message Queue avant que vous ne cliquiez sur le bouton Installer sur l'écran Prêt pour l'installation. (Bogue 6595590)
Lorsque vous installez Message Queue sous Windows, veuillez prendre en compte les limitations suivantes.
La structure de répertoires installée de Message Queue 4.3 sur la plate-forme Windows est différente de celle des versions précédentes. Reportez-vous à la section Installed Directory Structure du Sun Java System Message Queue 4.3 Installation Guide.
Le programme d'installation n'ajoute pas d'entrées pour Message Queue dans le menu Démarrer >Programmes. (Bogue 6567258)
Solution : pour démarrer la console d'administration, utilisez la ligne de commande comme décrit à la section Starting the Administration Console du Sun GlassFish Message Queue 4.4 Administration Guide.
Le programme d'installation n'ajoute pas le répertoire IMQ_HOME\mq\bin à la variable d'environnement PATH.(Bogue 6567197)
Solution : les utilisateurs doivent ajouter cette entrée à leur variable d'environnement PATH ou fournir un nom de chemin complet lorsqu'ils invoquent les utilitaires de Message Queue (IMQ_HOME\mq\bin\ commande).
Le programme d'installation n'ajoute pas d'entrée dans le registre Windows pour indiquer que Message Queue a été installé. (Bogue 6586389)
Le programme d'installation n'ajoute pas le courtier de Message Queue en tant que service Windows.
Solution : ajoutez manuellement le courtier de Message Queue en tant que service Windows à l'aide de la commande imqsvcadm.
Si le JDK n'est pas installé, le programme d'installation renvoie l'erreur suivante : « Racine incorrecte dans la clé de registre HKLM\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\CurrentVersion ». (Bogue 6764358)\par
Solution : si cette erreur s'affiche, installez un JDK et poursuivez.
Lorsqu'il est exécuté en mode silencieux avec un fichier de réponse, le programme d'installation réapparait immédiatement. L'installation s'effectue mais l'utilisateur n'a pas la possibilité de savoir quand l'installation en mode silencieux est réellement exécutée. (Bogue 6586560)
Le programme d'installation installe Message Queue sur C :\ même si le système d'exploitation est installé sur un autre lecteur. (Bogue 6673511)
Pour l'installation et la désinstallation sous Windows, il n'existe aucun fichier .bat que l'utilisateur puisse exécuter, et celui-ci ne peut pas non plus effectuer une désinstallation par le biais de Ajouter/Supprimer des programmes dans le panneau de configuration de Windows. (Bogue 6673417)
Sous Windows Vista, vous ne pouvez pas installer Message Queue sous C:\Program Files, sauf si vous procédez à l'installation à partir d'une invite de commande en tant qu'administrateur. (Bogue 6701661)
Solution : pour installer à partir de l'invite de commande en tant qu'administrateur :
1. Démarrer->Programmes->Accessoires->Invite de commande.
2. Cliquez avec le bouton droit sur l'invite de commande.
3. Sélectionnez Exécuter en tant qu'administrateur.
4. Changez le répertoire vers l'image d'installation de Message Queue 4.2.
5. Exécutez installer.vbs.
Lorsque le programme de désinstallation est exécuté en mode de simulation (uninstaller -n), il exécute de façon incorrecte une désinstallation. (Bogue 6719051)
Solution : exécutez une installation silencieuse à l'aide de la commande suivante :
uninstaller -s
La chaîne “Install Home” sur la page d'accueil du programme d'installation n'est pas localisée. (Bogue 6592491)
Le programme de désinstallation basé sur un zip de Message Queue se bloque sous Windows 2003. (Bogue 6764370)
Solution : supprimez manuellement le répertoire mqInstallHome.
Lorsque le programme d'installation est exécuté en mode de simulation (installer –n ), l'écran de synthèse affiche des messages d'erreur, ainsi qu'un état d'installation « Incomplet ». Cela est incorrect et peut prêter à confusion ; l'installation en mode de simulation n'installe aucun élément sur le système mais crée uniquement un fichier de réponse qui peut être utilisé par la suite pour exécuter l'installation silencieuse. (Bogue 6594351)
Le programme d'installation n'exécute pas l'enregistrement Sun Connection lorsque l'exécution se fait en mode silencieux avec un fichier de réponse (installer -a filename -s). (Bogue 6710268)
Les problèmes suivants affectent le processus d'installation sur une plate-forme Linux :
Sous Red Hat Linux 5, la bibliothèque compat-libstdc++ nécessaire à l'exécution des applications clientes C n'est pas incluse dans la distribution de Message Queue et n'est donc n'est pas installée par le programme d'installation de Message Queue. Si vous développez et exécutez des clients C, vous devez installer cette bibliothèque manuellement.
Le rpm compat-libstdc++ se trouve généralement sur le support d'installation de la version Linux que vous utilisez. Elle peut être installée à l'aide de la commande suivante :
rpm -ivh compat-libstdc++-x-x.x.x.x..rpm
où x représente le numéro de version.
Pour vérifier que la bibliothèque a bien été installée, utilisez la commande suivante :
rpm -qa | grep compat-libstdc++
Sous Red Hat Linux 5, les clients C peuvent échouer avec une erreur PR_LOAD_LIBRARY_ERROR (bogue 6885978).
Sous Red Hat Linux 5, les clients C peuvent échouer en affichant le message suivant :
"Preparing for NSS initialization ..." "Initializing NSS ..." "Could not connect to broker because 'PR_LOAD_LIBRARY_ERROR' (-5977)." producer(): Error: PR_LOAD_LIBRARY_ERROR |
Cette erreur survient parce que les bibliothèques NSS/NSPR ne sont pas accessibles.
Pour résoudre ce problème, définissez la variable d'environnement LD_LIBRARY_PATH de façon à inclure le chemin des bibliothèques NSS/NSPR, imq_home/nss/lib.
Sur le panneau de sélection du JDK, la liste déroulante n'affiche qu'un seul élément. Il est donc difficile de sélectionner tout autre JDK dans la liste. (Bogue 6584735)
Si le JDK est actif et que l'utilisateur sélectionne « Installer le JDK par défaut » sur l'écran de sélection du JDK, le programme d'installation tente toujours de l'installer et signale qu'il n'est pas en mesure d'installer le package. L'installation se termine correctement malgré ce problème. (Bogue 6581310)
Si la version de JDK actuellement installée est ultérieure à JDK 1.5.0_15 (la version installée normalement par le programme d'installation Message Queue), alors le programme de désinstallation de Message Queue ne peut pas trouver le répertoire par défaut IMQ_JAVAHOME et renvoie une erreur. (Bogue 6673415)
Solution : installez JDK 1.5 manuellement comme suit avant d'exécuter le programme de désinstallation de Message Queue.
# cd installImage/Product/UNIX/LINUX/X86/2.4/Packages
# rpm -i --force jdk-1.5.0_15–linux- arch.rpm
où arch est soit i586 soit amd64.
Lorsque le programme d'installation est exécuté en mode de simulation (installer –n ), l'écran de synthèse affiche des messages d'erreur, ainsi qu'un état d'installation « Incomplet ». Cela est incorrect et peut prêter à confusion ; l'installation en mode de simulation n'installe aucun élément sur le système mais crée uniquement un fichier de réponse qui peut être utilisé par la suite pour exécuter l'installation silencieuse. (Bogue 6594351)
Le programme d'installation affiche en opaque les informations de version de Message Queue. (Bogue 6586507)
Sur la plate-forme Solaris, reportez-vous au tableau suivant pour déterminer la version de Message Queue affichée par le programme d'installation.
Tableau 1–13 Traduction de la chaîne de version
Version telle qu'affichée par le programme d'installation sur le SE Solaris |
Version de Message Queue correspondante |
---|---|
4.4.1.0 |
4.4 Update 1 |
4.4.0.0 |
4.4 |
4.3.0.0 |
4.3 |
4.2.0.0 |
4.2 |
4.1.0.2 |
4.1 Patch 2 |
4.1.0.1 |
4.1 Patch 1 |
4.1.0.0 |
4.1 |
3.7.2.1 |
3.7 UR2 Patch 1 |
3.7.0.2 |
3.7 UR2 |
3.7.0.1 |
3.7 UR1 |
3.6.0.0 |
3.6 |
3.6.0.4 |
3.6 SP4 |
3.6.0.3 |
3.6 SP3 |
3.6.0.2 |
3.6 SP2 |
3.6.0.1 |
3.6 SP1 |
Pour les versions de patch jusqu'au 3.6 SP4 (par exemple, 3.6 SP4 Patch 1), la chaîne de version affichée par le programme d'installation reste la même. Vous devez exécuter la commande imqbrokerd –version pour déterminer la version exacte.
Sur la plate-forme Linux, le numéro de version affiché par le programme d'installation se fait sous la forme suivante.
majorReleaseNumber.minorReleaseNumber-someNumber
Par exemple, 3.7–22. Ce numéro signale uniquement qu'il s'agit de l'une des versions 3.7 sans spécifier laquelle. Pour déterminer la version Message Queue installée, exécutez la commande :
imqbrokerd -version.
Les bogues suivants sont liés aux problèmes de localisation.
Lorsque le programme d'installation est exécuté en mode texte (installer –t ), dans une langue non anglaise, les caractères multi-octets apparaissent corrompus. (Bogue 6586923)
Sur l'écran de progression de l'installation, la barre de progression affiche des caractères inconnus. L'infobulle est codée en dur pour les langues non anglaises. (Bogue 6591632)
L'écran relatif à la licence du programme d'installation affiche le texte correspondant en anglais, quelle que soit la langue d'exécution du programme. (Bogue 6592399)
Solution : pour accéder aux fichiers de licence localisés, consultez le fichier LICENSE_MULTILANGUAGE.pdf.
L'aide relative à l'utilisation du programme d'installation n'est pas localisée. (Bogue 6592493)
La chaîne « None » apparaissant sur la page HTML de synthèse du programme d'installation est codée en dur en anglais. (Bogue 6593089)
Lorsque le programme d'installation est exécuté dans un environnement linguistique allemand, l'écran d'accueil n'affiche pas le texte complet qui apparaît pour les autres langues. (Bogue 6592666)
La chaîne « Install Home » apparaissant sur la page d'accueil de l'installation n'est pas localisée. Elle s'affiche en anglais même si le programme d'installation est exécuté en langues non anglaises. (Bogue 6592491)
Lorsque le programme d'installation est exécuté en mode texte (installer –t ), les choix de réponse en anglais « Yes » et « No » sont utilisés quelle que soit la langue d'exécution choisie. (Bogue 6593230)
L'infobulle du bouton Parcourir à l'écran de sélection du JDK est codée en dur en anglais. (Bogue 6593085)
Dans les versions précédentes de Message Queue, vous aviez la possibilité d'utiliser l'option —p ou —password pour spécifier un mot de passe, de manière interactive, pour les commandes suivantes : imqcmd, imqbrokerd et imdbmgr. À partir de la version 4.0, ces options ont été désapprouvées.
À la place, vous pouvez créer un fichier de mots de passe spécifiant les mots de passe pertinents et référencer le fichier de mots de passe à l'aide de l'option de commande -passfile, ou saisir simplement un mot de passe lorsque vous y êtes invité par la commande.
Un fichier de mots de passe peut contenir un ou plusieurs des mots de passe énumérés ci-dessous :
Un mot de passe de keystore utilisé pour ouvrir le keystore SSL. Utilisez la propriété imq.keystore.password pour spécifier ce mot de passe.
Un mot de passe de référentiel LDAP utilisé pour se connecter, de manière sécurisée, à l'aide d'un répertoire LDAP si la connexion n'est pas anonyme. Utilisez la propriété imq.user_repository.ldap.password pour spécifier ce mot de passe.
Un mot de passe de base de données JDBC utilisé pour se connecter à une base de données compatible JDBC. Utilisez la propriété imq.persist.jdbc.vendorName.password pour spécifier ce mot de passe. Le composant nomFournisseur du nom de la propriété est une variable spécifiant le fournisseur de la base de données. Vous avez le choix entre hadb, derby, pointbase, oracle ou mysql.
Un mot de passe pour la commande imqcmd (en vue d'effectuer des tâches d'administration du courtier). Utilisez la propriété imq.imqcmd.password pour spécifier ce mot de passe.
Dans l'exemple suivant, le mot de passe pour la base de données JDBC est défini dans le fichier mots de passe sur abracadabra.
imq.persist.jdbc.mysql.password=abracadabra
Vous pouvez utiliser un fichier de mots de passe de l'une des façons suivantes.
Configurez le courtier pour utiliser le fichier de mots de passe en paramétrant les propriétés suivantes dans son fichier config.properties.
imq.passfile.enabled=trueimq.passfile.dirpath= passwordFileDirectory imq.passfile.name=passwordFileName
Utilisez l'option -passfile de la commande pertinente, par exemple :
imqbrokerd -passfile passwordFileName
Les problèmes suivants sont liés à l'administration et à la configuration de Message Queue.
Sur les plates-formes Windows, vous devez ajouter manuellement le courtier de Message Queue en tant que service Windows à l'aide de la commande imqsvcadm. Le programme d'installation n'effectue pas cela pour vous.
Sur les plates-formes Windows, le pare-feu Windows intégré, activé par défaut, doit être configuré manuellement avec une règle de pare-feu qui permet au courtier d'accepter les connexions entrantes des clients. (Bogue 6675595)
Double-cliquez sur le pare-feu Windows dans le panneau de configuration
Cliquez sur Continuer dans la boîte de dialogue de configuration du compte utilisateur pour ouvrir la boîte de dialogue Paramétrage du pare-feu Windows.
Dans la boîte de dialogue de paramétrage du pare-feu Windows, cliquez sur l'onglet Exceptions.
Cliquer sur Ajouter un programme.
Dans la boîte de dialogue Ajouter un programme, sélectionnez java.exe et cliquez sur Naviguer.
Windows identifie le processus de courtier comme système binaire de Java Platform SE. Par conséquent, localisez java.exe utilisé par le courtier (habituellement sur jdk1.5.0_15\jre\bin\java.exe).
Cliquez sur Changement de portée.
Dans la boîte de dialogue Changement de portée, sélectionnez « Tout ordinateur (y compris ceux situés sur Internet. »
Cliquez sur OK.
Dans la boîte de dialogue Ajouter un programme, cliquez sur OK.
Dans la boîte de dialogue Paramétrer le pare-feu Windows, cliquez sur OK.
Sur les plates-formes Windows, les commandes imqadmin et imqobjmgr envoient une erreur lorsque CLASSPATH contient des guillemets. (Bogue 5060769)
Solution : ouvrez une fenêtre d'invite de commande et désactivez CLASSPATH :
set classpath=
Exécutez ensuite la commande souhaitée, la même fenêtre d'invite de commande, par exemple :
mqInstallHome\mq\bin\imqadmin
L'option -javahome dans tous les scripts Solaris et Windows ne fonctionne pas si la valeur fournie contient un espace. (Bogue 4683029)
L'option javahome est utilisée par les commandes et utilitaires de Message Queue pour spécifier une autre exécution Java 2 compatible à utiliser. Cependant, le nom de chemin vers l'exécution Java alternative ne doit pas contenir d'espace. Voici quelques exemples de chemins contenant des espaces :
Windows : C:\jdk 1.4
Solaris : /work/java 1.4
Solution : installez Java Runtime à un emplacement ou un chemin ne contenant pas d'espace.
L'attribut imqQueueBrowserMaxMessagesPerRetrieve spécifie le nombre maximal de messages pouvant être récupérés en une seule fois par l'exécution client lors de la navigation dans une file d'attente. L'attribut affecte la façon dont les messages en file d'attente sont regroupés pour être délivrés à l'exécution client, mais cela n'affecte pas le nombre total de messages faisant l'objet de la navigation. L'attribut affecte uniquement le mécanisme de navigation, cela n'affecte pas la livraison de messages en file d'attente. (Bogue 6387631)
Sur les plates-formes Linux exécutant SELinux, la commande pkg du centre de mises à jour échoue (bogue 6892062).
Solution : il s'agit d'un problème connu lié au centre de mises à jour (https://updatecenter2.dev.java.net/issues/show_bug.cgi?id=1211). La commande suivante permet d'activer pkg pour permettre son fonctionnement sous SELinux avec activation de la mise en application :
# chcon -f -t textrel_shlib_t $IMAGE/pkg/vendor-packages/OpenSSL/crypto.so |
Les problèmes suivants concernent le courtier de Message Queue.
Les clients Message Queue 4.4 reçoivent un avertissement incompréhensible lors de la connexion aux courtiers Message Queue 3.7 (bogue 6899886).
Lorsqu'un client Message Queue 4.4 se connecte à un courtier Message Queue 3.7, le client reçoit un message d'avertissement qui se présente comme suit :
WARNING [I500]: Caught JVM exception: ... [C4036]: A broker error occurred. :[505] bad version ...
Cet avertissement de "version incorrecte" indique que le client doit se reconnecter au courtier à un niveau de protocole inférieur.
Lors de l'utilisation d'un magasin de données JDBC, le mot de passe de la base de données est stocké dans du texte en clair (bogue 6691717).
Solution : sécurisez le fichier de mot de passe contenant le mot de passe de la base de données comme indiqué dans la section Password Files du Sun GlassFish Message Queue 4.4 Administration Guide.
Le courtier devient inaccessible lorsque le magasin de données persistant ouvre trop de destinations. (Bogue 4953354)
Solution : ce problème est dû au fait que le courtier atteint la limite du descripteur de fichier ouvert définie pour le système. Sur Solaris et Linux, utilisez la commande ulimit pour augmenter cette limite.
Les consommateurs sont orphelins lorsqu'une destination est supprimée. ( Bogue 5060787)
Les consommateurs actifs sont orphelins lorsqu'une destination est supprimée. Une fois orphelins, ils ne peuvent plus recevoir de messages (même si la destination est recréée).
Lorsqu'un client JMS utilisant le service de connexion HTTP met brutalement fin à la connexion (en utilisant, par exemple, Ctrl+C), le courtier met environ une minute avant de libérer la connexion client et toutes les ressources associées.
Si une autre instance du client est démarrée dans la minute d'attente en essayant d'utiliser le même ID client, la même souscription durable ou file d'attente, il est possible que celle-ci reçoive une exception « L'ID client est déjà utilisé ». Il ne s' agit pas d'un vrai problème, mais d'un effet secondaire du processus de fin décrit précédemment. Si un client est démarré après un délai d'environ une minute, tout doit fonctionner correctement.
Lors de l'utilisation d'une base de données MySQL pour un magasin de données, le stockage de messages supérieurs à 1 Mo envoie une exception SQL « Packet de requête trop grand ». (Bogue 6682815)
Solution : démarrez le serveur MySQL avec l'option --max_allowed_packet paramétrée sur une valeur supérieure à 1 Mo par défaut. Par exemple, utilisez la valeur suivante :
--max_allowed_packet=60M
Lors de l'utilisation d'une base de données MySQL pour un magasin de données partagées hautement disponible, un mécanisme est nécessaire pour configurer le moteur de stockage de MySQL comme NDBCLUSTER . (Bogue 6691394)
Solution : ajoutez la valeur de propriété suivante au fichier config.properties du courtier (voir la section Enhanced Clusters: JDBC Configuration Properties du Sun GlassFish Message Queue 4.4 Administration Guide).
imq.persist.jdbc.mysql.tableoption=EMGINE=NDBCLUSTER
Lors de l'utilisation du pilote 9i (JDBC 9.2.0.x) d'Oracle, le courtier renvoie une exception « Échec de persistance de la propriété... ». (Bogue 6626825)
Solution : utilisez le pilote 10g (JDBC 10.2.0.x) d'Oracle, pour lequel le courtier est optimisé.
imq.persist.jdbc.derby.table.MYCONSTATE41.index.IDX2=CREATE INDEX &(index) ON $(name) (MESSAAGE_ID)
Lors de l'utilisation de la base de données Java DB pour un magasin de données, le stockage d'un message envoie une exception SQL « Verrouillage impossible à obtenir dans le délai requis ». (Bogue 6691394)
Solution : ajoutez la valeur de propriété suivante au fichier config.properties du courtier :
imq.persist.jdbc.derby.table.MYCONSTATE41.index.IDX2=CREATE INDEX &(index) ON $(name) (MESSAAGE_ID)
Lorsque vous utilisez JVM IBM sur AIX, le courtier s'exécute parfois dans des conditions de mémoire faible ou RED sans raison apparente (bogue 6899526).
Solution : utilisez la dernière version de JVM IBM (Java Runtime 1.6.0 IBM Corporation ou version supérieure) et donnez la valeur imqbrokerd à l'option GC de JVM IBM suivante :
# imqbrokerd -vmargs -Xgcpolicy:gencon |
Les problèmes suivants affectent les clusters de courtiers.
Le courtier à haute disponibilité avec le magasin de données de clusters MySQL ne parvient pas à redémarrer s'il se termine de façon anormale (bogue 6896877).
Solution : il s'agit d'un problème connu lié au cluster MySQL (http://bugs.mysql.com/bug.php?id=47955). Une correction destinée à résoudre ce problème a été appliquée aux versions MySQL 5.1.39-ndb-6.3.28, 5.1.39-ndb-7.0.9 et 5.1.39-ndb-7.1.0.
Seuls les clusters de courtiers complètement connectés sont pris en charge par cette version. Autrement dit, tous les courtiers d'un cluster doivent communiquer directement avec tous les autres. Si vous essayez de connecter les courtiers dans un cluster conventionnel à l'aide de l'argument de ligne de commande imqbrokerd -cluster, assurez-vous que tous les courtiers du cluster sont bien inclus.
Si un client est connecté à un courtier dans un cluster de courtiers amélioré, l'exécution client tentera de se reconnecter jusqu'à ce qu'elle y parvienne (elle ignore la valeur de l'attribut de connexion par défaut imqAddressListIterations).
Un client ne peut naviguer que dans les contenus des files d'attente situées sur le courtier qui l'héberge. Il peut toutefois continuer d'envoyer des messages vers les files d'attente ou de consommer les messages provenant des files d'attente sur n'importe quel courtier du cluster, la restriction ne s'appliquant qu'à la navigation.
Dans un cluster conventionnel avec des courtiers de version 4.3, tous les courtiers doivent avoir la version 3.5 ou ultérieure.
Les courtiers de Message Queue 4.1, 4.2 et 4.3 ne peuvent pas interopérer dans un cluster par défaut avec les courtiers de Message Queue 3.6 ou 3.7 car la valeur par défaut de imq.autocreate.queue.maxNumActiveConsumers a été modifiée entre ces versions. (Bogue 6716400)
Solution : vérifiez que tous les courtiers ont la même valeur ou modifiez la valeur de imq.autocreate.file.maxNumActiveConsumers, généralement appliquée par la modification de la configuration de Message Queue 4.1, 4.2 et 4.3 afin de correspondre à celle utilisée par les courtiers de la version 3.6 ou 3.7 (par défaut, de la valeur de -1 à 1, valeur par défaut de la version précédente).
Pour ajouter un courtier de Message Queue 4.3 (ou 4.x) à un cluster de courtiers de Message Queue 3.x, un courtier maître doit être en cours d'exécution. (Bogue 6763796)
Lors de la conversion d'un cluster conventionnel en cluster amélioré, vous pouvez utiliser l'utilitaire de gestionnaire de bases de données de Message Queue (imqdbmgr ) pour convertir un magasin de données basé sur JDBC autonome existant en magasin de données basé sur JDBC partagé comme indiqué à la section Cluster Conversion: JDBC-Based Data Store du Sun GlassFish Message Queue 4.4 Administration Guide.
Un courtier utilisant HADB ne peut pas gérer des messages supérieurs à 10 Mo. (Bogue 6531734)
Ce processus de conversion, effectué à l'aide de la commande imqdbmgr upgrade hastore, peut échouer. Le message « nombre de verrous trop élevé » s'affiche si le magasin contient plus de 10 000 messages. (Bogue 6588856)
Solution : utilisez la commande suivante pour augmenter le nombre de verrous.
hadbm set NumberOfLocks=<desiredNumber>
Pour de plus amples informations, reportez-vous à la section « HADB Problems » du Sun Java System Application Server 9.1 Enterprise Edition Troubleshooting Guide.
Si plus de 500 messages distants sont validés dans une transaction, le courtier peut renvoyer l'erreur « HADB-E-12815 : espace de mémoire tableau épuisé ». (Bogue 6550483)
Pour de plus amples informations, reportez-vous à la section « HADB Problems » du Sun Java System Application Server 9.1 Enterprise Edition Troubleshooting Guide.
Dans un cluster de courtiers, un courtier place des messages en file d'attente sur une connexion distante qui n'a pas été initiée. (Bogue 4951010)
Solution : le consommateur recevra les messages dès qu'il se connecte. Les messages seront renvoyés à un autre consommateur si la connexion du consommateur reste fermée.
Lorsque plusieurs messages sont consommés à partir d'un courtier distant dans une transaction, il est possible que le message d'erreur suivant soit consigné vers le courtier. Celui-ci n'est pas important et peut donc être ignoré :
[26/Jul/2007:13:18:27 PDT] WARNING [B2117]: Message acknowledgement failed from mq://129.145.130.95:7677/?instName=a&brokerSessionUID=3209681167602264320: ackStatus = NOT_FOUND(404)\ Reason = Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed. AckType = MSG_CONSUMED MessageBrokerSession = 3209681167602264320 TransactionID = 3534784765719091968 SysMessageID = 8-129.145.130.95(95:fd:93:91:ec:a0)-33220-1185481094690 ConsumerUID = 3534784765719133952\par [26/Jul/2007:13:18:27 PDT] WARNING Notify commit transaction [8-129.145.130.95(95:fd:93:91:ec:a0)-33220-1185481094690, [consumer:3534784765719133952, type=NONE]] TUID=3534784765719091968 got response: com.sun.messaging.jmq.jmsserver.util.BrokerException: Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed.: com.sun.messaging.jmq.jmsserver.util.BrokerException: Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed.r
Ce message est consigné lors de la notification de validation au courtier de base du message pour les prochains messages de la transaction lorsque la valeur de la propriété imq.txn.reapLimit est faible par rapport au nombre de messages distants contenus dans une transaction. (Bogue 6585449)
Solution : pour ne pas recevoir ce message, augmentez la valeur de la propriété imq.txn.reapLimit.
Sur les plates-formes Windows, la méthode getTransactionInfo du MBean de contrôle du gestionnaire de transactions renvoie des informations de transaction comportant des heures de création incorrectes. (Bogue 6393359)
Solution : utilisez plutôt la méthode getTransactionInfoByID du MBean de contrôle du gestionnaire de transactions.
Deux problèmes principaux à prendre en compte pour la prise en charge de SOAP.
À partir de la version 4.0 de Message Queue, la prise en charge des objets administrés par SOAP a été interrompue.
Le développement de SOAP dépend de plusieurs fichiers : SUNWjaf, SUNWjmail, SUNWxsrt et SUNWjaxp. Dans la version 4.1 de Message Queue, ces fichiers sont uniquement disponibles lorsque Message Queue est exécuté avec JDK version 1.6.0 ou version supérieure.
Précédemment, l'implémentation de SAAJ 1.2 .jar référençait directement mail.jar. Dans SAAJ 1.3, cette référence a été supprimée ; par conséquent, les clients Message Queue doivent explicitement placer mail.jar dans CLASSPATH.