Comme on peut le voir dans this document, un certain nombre de conditions préalables doivent être remplies avant que le regroupement de connexions TCP "fonctionne" dans Java en utilisant URLConnection. Comment puis-je déterminer si les connexions sont en cours de regroupement? Y a-t-il des objets que je peux inspecter dans le jdk du soleil pour cela?Comment déterminer si le regroupement de connexions java fonctionne avec URLConnection?
Répondre
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é.
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é.
- 1. Comment le regroupement de connexions DB fonctionne-t-il pour les applications Web si les connexions HTTP sont sans état?
- 2. Quel est le paramètre manquant dans le regroupement de connexions?
- 3. Java UrlConnection HTTP 1.0
- 4. Comment désactiver le pooling de connexions psycopg2?
- 5. Déterminer si un WCH ServiceHost a des connexions actives
- 6. Comment puis-je déterminer le nombre de connexions requises pour la mise en pool des connexions?
- 7. s'authentifier avec ntlm (ou kerberos) en utilisant java UrlConnection
- 8. Java URLConnection bloque le processus entier lorsque j'appelle getInputStream
- 9. Meilleur moyen de déterminer si le fichier * .doc est RTF avec Java ou ColdFusion
- 10. Existe-t-il un moyen d'utiliser System.Transactions avec le regroupement de connexions?
- 11. Comment déterminer si un caractère est une lettre en Java?
- 12. Quelle est la meilleure solution pour le regroupement de connexions de bases de données en python?
- 13. Java URLConnection: comment connaître la taille d'un fichier web?
- 14. Regroupement de connexions dans SQL SERVER (express) - montant recommandé?
- 15. Regroupement Connexion Regroupement
- 16. Quelle est la meilleure façon de gérer le regroupement de connexions à l'aide de threads?
- 17. Comment puis-je tester si mon pool de connexions fonctionne correctement?
- 18. C# Comment déterminer si HTTPS
- 19. Pourquoi le regroupement de connexions se comporte-t-il différemment sur différents serveurs?
- 20. Regroupement de PyQwt avec py2exe
- 21. Websphere lente URLConnection
- 22. Comment déterminer si le canal distant est déjà enregistré
- 23. Ajout de règles pour valider() avec le regroupement
- 24. Regroupement Django ne fonctionne pas comme prévu
- 25. Comment contrôler le regroupement Regex?
- 26. Comment déterminer si une adresse IP appartient à un pays
- 27. Comment réduire le pool de connexions DB?
- 28. Comment déterminer si un fichier est chiffré avec EFS?
- 29. Comment déterminer si une date tombe le week-end?
- 30. Comment déterminer si un paramètre a été "posté" ou "récupéré" à partir de Java?