Problème de clôture de session TCP après un appel de web service
Bonjour,
Je ne sais pas trop à quel niveau se situe mon problème alors je l'ai posté dans cette catégorie. Excusez-moi par avance si je me suis trompé.
Je développe actuellement une application en J2ME CDC et j'ai quelques difficultés à appeler des web services. Ces web services sont fournis par JBoss. L'application est à destination d'un Windows CE 5.0 sur lequel j'ai installé la JVM NSIcom CrE-Me.
Le problème :
Lorsque j'appelle un web service, mon programme bloque pendant exactement 20 secondes sur l'instruction appelant ce web service. Visiblement cet intervalle de 20 secondes correspond au timeout du serveur JBoss puisqu'en changeant cette valeur à 10 secondes, mon programme bloque pendant 10 secondes sur l'instruction en question. J'ai analysé les trames entrantes et sortantes de l'appareil embarquant Windows CE, et apparemment ce qui pose problème c'est une demande de clôture de session TCP que mon appareil n'envoie pas.
Voici les trames entrantes et sortantes de l'appareil embarquant Windows CE (192.168.0.66 : Windows CE ; 192.168.0.40 : serveur JBoss) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
No. Time Source Destination Protocol Info Remarques
1 0.000000 SymbolTe_9c:15:0f Broadcast ARP Who has 192.168.0.40? Tell 192.168.0.66
2 0.000000 Micro-St_75:f3:fd SymbolTe_9c:15:0f ARP 192.168.0.40 is at 00:1d:92:75:f3:fd
3 0.000000 192.168.0.66 192.168.0.40 TCP nim > http-alt [SYN] Seq=0 Win=32768 Len=0 MSS=1460 --> Etablissement de la connexion TCP <--
4 0.000000 192.168.0.40 192.168.0.66 TCP http-alt > nim [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1460 --> Etablissement de la connexion TCP <--
5 0.000000 192.168.0.66 192.168.0.40 TCP nim > http-alt [ACK] Seq=1 Ack=1 Win=33580 Len=0 --> Etablissement de la connexion TCP <--
6 0.000000 192.168.0.66 192.168.0.40 HTTP POST /keyshoppingmiddle/services/referentiel HTTP/1.1 Continuation or non-HTTP traffic --> Appel du web service par le client <--
7 0.000000 192.168.0.40 192.168.0.66 TCP http-alt > nim [ACK] Seq=1 Ack=720 Win=7190 Len=0 --> Acquittement du serveur JBoss <--
8 0.000000 192.168.0.40 192.168.0.66 HTTP HTTP/1.1 200 OK --> Réponse du serveur : flux XML contenant les informations que le client a demandé <--
9 0.951424 192.168.0.66 192.168.0.40 TCP nim > http-alt [ACK] Seq=720 Ack=511 Win=33070 Len=0 --> Acquittement du client <--
10 20.077056 192.168.0.40 192.168.0.66 TCP http-alt > nim [FIN, ACK] Seq=511 Ack=720 Win=7190 Len=0 --> Timeout du serveur JBoss : demande de fin de la connexion TCP <--
11 20.077056 192.168.0.66 192.168.0.40 TCP nim > http-alt [ACK] Seq=720 Ack=512 Win=33070 Len=0 --> Acquittement de la demande de fin de connexion TCP <--
12 21.028480 192.168.0.66 192.168.0.40 TCP nim > http-alt [FIN, ACK] Seq=720 Ack=512 Win=33070 Len=0 --> Demande de fin de connexion TCP de la part du client <--
13 21.028480 192.168.0.40 192.168.0.66 TCP http-alt > nim [ACK] Seq=512 Ack=721 Win=7190 Len=0 --> Acquittement de la demande de fin de connexion TCP <-- |
A priori, le problème se situe au niveau de mon client, mais je sais pas à quel niveau :
- La librairie de connexion que j'utilise ne gère pas correctement les sessions TCP ?
- Windows CE 5.0 gère-t-il mal la pile TCP ?
- Aurais-je omis quelque chose dans mon programme ?
Avez-vous une piste ?
Merci d'avance.