2009-08-20 5 views

Répondre

1

Ce n'est pas vraiment le regroupement de connexions, mais le mécanisme de conservation HTTP que ce document décrit. Si vous pouvez inspecter le trafic réseau de quelque manière que ce soit, un moyen simple de détecter cela consiste à examiner la demande. S'il utilise HTTP/1.1 et qu'il n'y a pas de "Connection: close", ou qu'il utilise HTTP/1.0 et que vous voyez "Connection: Keep-Alive", alors cela fonctionne aussi loin que la requête.

Sinon, il s'agit d'un détail d'implémentation. Vous pouvez utiliser un débogueur pour examiner l'état interne de l'implémentation et voir s'il semble avoir un jeu de champs qui active keep-alive. Vous auriez besoin de regarder la source pour cela.

Votre document suggère également que vous pouvez consulter System.getProperty ("http.keepAlive"). Si c'est null ou "true" alors il semble que keep-alive est activé.

1

Pour le gestionnaire de protocole HTTP de Sun inclus dans Sun JDK 5, vous pouvez examiner la classe sun.net.www.http.HttpClient. Le membre KeepAliveCache kac contient les connexions persistantes. Si votre connexion est dans HashTable, elle sera réutilisée.

En fonction de votre modèle d'utilisation, le support de Keepalive dans le gestionnaire HTTP peut être problématique. Lorsque la connexion reste dans le cache, aucun thread ne répond à la modification d'état et la connexion devient obsolète. Vous pouvez obtenir une exception d'E/S quand elle est réutilisée. Nous désactivons donc normalement keepalive.

Si vous avez vraiment besoin de connexions groupées, une meilleure option est Apache HttpClient avec le gestionnaire de connexions multi-thread groupé.

Questions connexes