Blocage du client lors d'une demande de souscription vers un topic inexistant
Ce problème est sans doute la cause de l'incident JORAM-12 "Blocage de threads / JORAM 5.2.3".
Quand le client tente de souscrire à un topic résident sur un serveur inconnu dans la configuration la notification de souscription est détruite et le client reste bloqué. Dans le serveur on observe la trace suivante :
Engine#4 WARNING 2012-01-06 23:19:13,891, Channel#4, can't post message: (fr.dyade.aaa.agent.Message@10485a,from=#4.4.11,to=#3.3.1026,not=(((org.objectweb.joram.mom.notifications.SubscribeRequest@a61d7,messageId=null,persistent=true,detachable=false,detached=false,context=null,expiration=0,priority=4,deadNotificationAgentId=null), clientContext=0),requestId=1),source=4,dest=4,stamp=4)
fr.dyade.aaa.agent.UnknownServerException: Unknow server id. #3
at fr.dyade.aaa.agent.AgentServer.getServerDesc(AgentServer.java:483)
at fr.dyade.aaa.agent.AgentServer.getConsumer(AgentServer.java:494)
at fr.dyade.aaa.agent.Channel.post(Channel.java:121)
at fr.dyade.aaa.agent.Engine.dispatch(Engine.java:315)
at fr.dyade.aaa.agent.Engine.commit(Engine.java:1021)
at fr.dyade.aaa.agent.Engine.run(Engine.java:986)
at java.lang.Thread.run(Unknown Source)
Il est probable que la souscription à un topic inexistant conduise au même problème.
Pour corriger ce problème il faudrait positionner un deadAgent et traiter la notificatio d'erreur correspondante. Il faut aussi faire un test mettant en évidence le problème ainsi que le problème lié à un topic inexistant et vérifier la correction.
[JORAM-14] created at 2012-01-24 14:41:39 by freyssinet, version JORAM_5_2_3