Les problèmes suivants concernent le courtier de Message Queue.
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)