2009-09-02 4 views
0

J'utilise le fournisseur de messagerie par défaut de Websphere Application Server (WAS) 6.1 pour JMS. Mon application client distante crée une connexion, puis effectue un setExceptionListener pour enregistrer le rappel.javax.jms.ExceptionListener retarde le rappel onException lorsque la connexion réseau tombe en panne?

Lorsque j'arrête simplement le moteur de messagerie à l'aide de la console WAS Integrated Solutions, mon application se comporte comme prévu, c'est-à-dire que onException est appelée immédiatement et mon application réagit en conséquence. Cependant, lorsque je tire sur le câble réseau, le rappel onException n'est pas rappelé pour quelque part entre 30 et 60 secondes.

Le résultat moche est que mon application essaie simplement de continuer à envoyer des messages à WAS pendant cette période de 30 à 60 secondes et ces messages sont juste perdus. J'ai fait plusieurs recherches en essayant d'en savoir plus sur le ExceptionListener (par exemple, y a-t-il un paramètre de configuration utilisé pour spécifier un délai de rappel), mais cela n'a pas réussi.

Espérons que cela a du sens pour quelqu'un là-bas. Des suggestions comment je pourrais être en mesure de détecter plus rapidement le scénario "coupe" du câble? Merci de votre aide.

-Kris

Répondre

1

Vous ne disposeriez pas un délai d'attente de 30 secondes TCP défini? Si tel est le cas, MQ a transféré temporairement sa responsabilité à la JVM/OS et l'attend avec ACK, quelle que soit l'opération réseau demandée. Essayez peut-être d'abaisser la valeur du délai d'attente TCP ...

Questions connexes