Propriétés personnalisées de transport HTTP pour les applications de services Web
Utilisez les propriétés de transport HTTP pour des services Web JAX-WS (Java™ API for XML-Based Web Services) et JAX-RPC (Java API for XML-based RPC) pour gérer le pool de connexions pour les connexions HTTP sortantes, configurer l'encodage du contenu du message HTTP, activer la connexion HTTP persistante et renvoyer la demande HTTP en cas d'expiration du délai.
L'établissement d'une connexion monopolise d'importantes ressources. Il est judicieux de placer les connexions dans un pool pour améliorer les performances et réduire les temps de création et de déconnexion des connexions. Lorsqu'une application appelle un service Web sur un transport HTTP, le connecteur sortant HTTP du service Web recherche une connexion existante dans un pool de connexions, et l'utilise. Une fois la réponse reçue, le connecteur restitue la connexion au pool pour la rendre à nouveau disponible. Aucune ressource n'est alors requise pour créer et déconnecter cette connexion.
- com.ibm.websphere.webservices.http.connectionIdleTimeout
- com.ibm.websphere.webservices.http.connectionKeepAlive
- com.ibm.websphere.webservices.http.connectionPoolCleanUpTime
- com.ibm.websphere.webservices.http.connectionTimeout
- com.ibm.websphere.webservices.http.maxConnection
- com.ibm.websphere.webservices.http.responseContentEncoding
- com.ibm.websphere.webservices.http.requestContentEncoding
- com.ibm.websphere.webservices.http.requestResendEnabled
- com.ibm.websphere.webservices.http.SocketTimeout
- com.ibm.ws.webservices.enableHTTPPrefix
- enableMultiThreadedSession
- HttpInboundPersistReadTimeout
- http.nonProxyHosts
- http.proxyHost
- http.proxyPort
- https.proxyHost
- https.proxyPort
- timeout
- write_timeout
com.ibm.websphere.webservices.http.connectionIdleTimeout
Cette propriété spécifie le délai au bout duquel une connexion n'est pas réutilisée, en secondes.
Lorsqu'une application demande une nouvelle connexion, le connecteur sortant HTTP effectue une recherche parmi les connexions non utilisées existantes. S'il trouve une connexion dont la durée d'inactivité est supérieure au délai spécifié par cette propriété, la connexion est libérée. S'il trouve une connexion dont la durée d'inactivité est inférieure au délai spécifié par cette propriété, la connexion est réutilisée et la recherche s'arrête. Etant donné qu'il ne recherche qu'un noeud final et qu'il s'arrête avant d'avoir vu toutes les connexions, il se peut que des connexions inactives soient conservées.
La tâche de nettoyage vérifie régulièrement la durée d'inactivité de toutes les connexions inutilisées. Si elle trouve une connexion dont la durée d'inactivité est supérieure au délai spécifié par cette propriété, la connexion est libérée. Par conséquent, des connexions inactives peuvent être conservées pendant l'intervalle au bout duquel la tâche de nettoyage est exécutée plus la valeur de cette propriété. Par exemple, si l'intervalle d'exécution de la tâche de nettoyage est de 180 secondes et que la propriété com.ibm.websphere.webservices.http.connectionIdleTimeout est associée à la valeur par défaut de 5 secondes, il se peut que des connexions soient inactives pendant 185 secondes avant d'être libérées. La propriété JVM qui contrôle l'intervalle d'exécution de la tâche de nettoyage est com.ibm.websphere.webservices.http.connectionPoolCleanUpTime.
Cette propriété s'applique à toutes les connexions HTTP de services Web effectuées dans une machine JVM.
Information | valeur |
---|---|
Type de données | Entierr |
Unité | Valeur par défaut |
Valeut par défaut | 5 |
Intervalle | 0 (zéro) à entier maximal |

Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration de propriétés HTTP supplémentaires à l'aide de la console d'administration.
com.ibm.websphere.webservices.http.connectionKeepAlive
Cette propriété définit si le connecteur doit maintenir une connexion HTTP active ou persistante. Il s'agit d'une propriété de transport HTTP que vous pouvez configurer pour des applications de services Web.
Si la propriété est définie à true, le connecteur maintient la connexion dans le pool de connexions et la réutilise pour des demandes HTTP ultérieures. Toutefois, la connexion est fermée si le délai syncTimeout(Read timeout) arrive à expiration ou que le serveur a raccroché la connexion. Une connexion inactive est fermée par l'unité d'exécution de maintenance du pool si le délai d'inactivité est supérieur au délai d'expiration des connexions inactives. Si la propriété est définie à false, la connexion est fermée une fois la demande HTTP envoyée. Si une nouvelle demande est prête et qu'aucune connexion n'est définie, le connecteur HTTP crée une connexion.
Une demande HTTP 200 de requête indique que la requête a été reçue et que la connexion utilisée pour cette dernière est active et disponible pour une réutilisation lors du prochain appel. Une réponse HTTP 202 à une requête indique que la requête a été reçue mais que la connexion utilisée pour cette dernière n'est pas disponible pour une réutilisation.

Information | valeur |
---|---|
Type de données | String (chaîne) |
Valeut par défaut | True |
Valeurs admises | True, false |
Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration des propriétés de transport HTTP supplémentaires à l'aide de wsadmin et à la configuration des propriétés de transport HTTP supplémentaires à l'aide d'un outil d'assemblage.
com.ibm.websphere.webservices.http.connectionPoolCleanUpTime
Cette propriété définit l'intervalle, en secondes, entre deux exécutions consécutives de l'unité d'exécution de maintenance du pool de connexions.
Elle s'applique à toutes les connexions HTTP pour des services Web effectuées dans une machine JVM. Si la propriété est définie à 180, l'unité d'exécution de maintenance du pool est exécutée toutes les 180 secondes. Lorsque l'unité d'exécution de maintenance du pool est exécutée, le connecteur ignore les connexions dans la file d'attente de nettoyage.
Information | valeur |
---|---|
Type de données | Entierr |
Unité | Valeur par défaut |
Valeut par défaut | 180 |
Intervalle | 0 (zéro) à entier maximal |

Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration de propriétés HTTP supplémentaires à l'aide de la console d'administration.
com.ibm.websphere.webservices.http.connectionTimeout
Cette propriété définit le délai d'expiration (en secondes) d'une demande de connexion et le moment où l'erreur WebServicesFault("Expiration de la connexion") est générée.
La valeur s'applique à toutes les demandes de connexion HTTP effectuées par le connecteur sortant HTTP. Le temps d'attente doit être défini lorsque le nombre maximal de connexions dans le pool de connexions a été atteint. Par exemple, si la propriété est définie à 300 et que le nombre maximal de connexions est atteint, le connecteur attend qu'une connexion devienne disponible pendant 300 secondes. Au bout de cette durée, l'erreur WebServicesFault("Expiration de la connexion" ) est générée si aucune connexion n'est disponible. Si la propriété est définie à 0 (zéro), le connecteur attend indéfiniment qu'une connexion se libère.
Si l'erreur WebServicesFault("Expiration de la connexion") est générée dans l'application, définissez la propriété com.ibm.websphere.webservices.http.connectionTimeout à une valeur plus élevée. Vérifiez également l'utilisation de l'application. Si la propriété com.ibm.websphere.webservices.http.maxConnection est définie à 0 (zéro), est qu'elle est activée pour un nombre illimité de connexions, la valeur de la propriété com.ibm.websphere.webservices.http.connectionTimeout est ignorée.
Information | valeur |
---|---|
Type de données | Entierr |
Unité | Valeur par défaut |
Valeut par défaut | 300 |
Intervalle | 0 (zéro) à entier maximal |

Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration de propriétés HTTP supplémentaires à l'aide de la console d'administration.
com.ibm.websphere.webservices.http.maxConnection
Cette propriété définit le nombre maximal de connexions créées dans le pool de connexions associé au connecteur sortant HTTP.
Cette propriété s'applique à toutes les connexions HTTP de services Web effectuées dans une machine JVM. Lorsque le nombre maximal de connexions est atteint, aucune autre connexion n'est créée et le connecteur HTTP attend qu'une connexion soit restituée au pool de connexions. Si le connecteur HTTP n'attend pas de connexion car la demande de connexion a expiré, l'erreur WebServicesFault("Expiration de la connexion") est générée. Par exemple, si la propriété est définie à 5, et que cinq connexions sont en cours d'utilisation, le connecteur HTTP attend qu'une connexion se libère pendant toute la durée définie par la propriété com.ibm.websphere.webservices.http.connectionTimeout.

Information | valeur |
---|---|
Type de données | Entierr |
Valeut par défaut | 25 pour les applications JAX-RPC 50 pour les applications JAX-WS |
Intervalle | 5 jusqu'au nombre entier maximal, qui est inférieur ou égal à la moitié de la taille du pool d'unités d'exécution du conteneur Web |

Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration de propriétés HTTP supplémentaires à l'aide de la console d'administration.
com.ibm.websphere.webservices.http.responseContentEncoding
Cette propriété définit le type d'encodage à utiliser dans le message d'une réponse HTTP. Il s'agit d'une propriété de transport HTTP que vous pouvez configurer pour des applications de services Web.

Les formats d'encodage pris en charge sont conformes à la spécification du protocole HTTP 1.1 ; ils comprennent gzip, x-gzip et deflate. Si cette propriété est configurée, l'en-tête "Content-Encoding" dans la réponse HTTP est également défini à la même valeur. Toutefois, si cette propriété n'est pas définie, le message de la réponse HTTP n'est pas encodé. La valeur par défaut est sans encodage.
Si la propriété est définie, le client de demande doit également prendre en charge le même encodage. Sinon, un problème peut se produire et générer l'erreur WebServicesFault().
Le format d'encodage 'compress' n'est pas pris en charge et l'encodage 'x-gzip' est équivalent à l'encodage 'gzip'.
Information | valeur |
---|---|
Type de données | String (chaîne) |
Valeurs admises | gzip, x-gzip et deflate |
Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration des propriétés de transport HTTP supplémentaires à l'aide de wsadmin et à la configuration des propriétés de transport HTTP supplémentaires à l'aide d'un outil d'assemblage.
com.ibm.websphere.webservices.http.requestContentEncoding
Cette propriété définit le type d'encodage à utiliser dans le message d'une demande sortante HTTP. Il s'agit d'une propriété de transport HTTP que vous pouvez configurer pour des applications de services Web.
Les formats d'encodage pris en charge sont conformes à la spécification du protocole HTTP 1.1 ; ils comprennent gzip, x-gzip et deflate. Si cette propriété est configurée, les en-têtes "Content-Encoding" et "Accept-Encoding" dans la demande HTTP sont également définis à la même valeur. Par exemple, si la propriété est définie à gzip, les en-têtes sont définis à "Content-Encoding: gzip" et "Accept-Encoding: gzip". Toutefois, si cette propriété n'est pas définie, le message de requête HTTP n'est pas encodé. Par défaut, aucun encodage n'est défini.
Vérifiez si le serveur Web cible est capable de décoder le format de codage configuré. Par exemple, si la propriété est définie à 'gzip', le serveur Web cible doit également prendre en charge l'encodage gzip. Sinon, un problème peut se produire et provoquer un code d'état 415 Unsupported Media Type (Type de support non pris en charge).
Le format d'encodage 'compress' n'est pas pris en charge et l'encodage 'x-gzip' est équivalent à l'encodage 'gzip'.
Information | valeur |
---|---|
Type de données | String (chaîne) |
Valeurs admises | gzip, x-gzip et deflate |
Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration des propriétés de transport HTTP supplémentaires à l'aide de wsadmin et à la configuration des propriétés de transport HTTP supplémentaires à l'aide d'un outil d'assemblage.
com.ibm.websphere.webservices.http.requestResendEnabled
Cette propriété indique au connecteur HTTP de renvoyer le message SOAP sur une demande HTTP après l'enregistrement d'une erreur java.net.ConnectException: read timed out. Il s'agit d'une propriété de transport HTTP que vous pouvez configurer pour des applications de services Web.
Cette propriété indique au connecteur HTTP de renvoyer le message SOAP sur une demande HTTP après l'enregistrement d'une erreur java.net.ConnectException: read timed out. L'erreur java.net.ConnectException est générée à l'expiration du délai ou à la fermeture du serveur alors que la demande est en cours d'envoi. Si la propriété est activée, le connecteur tente de se reconnecter une seule fois et renvoie le même message SOAP sur HTTP. Sinon, le connecteur arrête l'envoi du message SOAP et une erreur WebServicesFault est enregistrée.
Des problèmes peuvent se poser pour l'application lorsque cette propriété est activée. La requête HTTP qui est renvoyée peut être reçue deux fois par le serveur et peut entraîner un résultat inattendu.
Information | valeur |
---|---|
Type de données | String (chaîne) |
Valeut par défaut | False |
Valeurs admises | True, false |
Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration des propriétés de transport HTTP supplémentaires à l'aide de wsadmin et à la configuration des propriétés de transport HTTP supplémentaires à l'aide d'un outil d'assemblage.
com.ibm.websphere.webservices.http.SocketTimeout
Cette propriété indique la durée, en secondes, d'attente que la connexion sortante soit établie avec le serveur distant.
Cette propriété s'applique à toutes les connexions HTTP de services Web effectuées dans une machine JVM. Si une valeur non valide est fournie, celle-ci est remplacée par la valeur par défaut.
Information | valeur |
---|---|
Type de données | Entierr |
Unité | Valeur par défaut |
Valeut par défaut | 180 Avertissement : Si une valeur non valide est fournie, celle-ci est remplacée par la valeur par défaut.
|
Intervalle | 0 (zéro) à entier maximal (2147482) |

Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration de propriétés HTTP supplémentaires à l'aide de la console d'administration.
com.ibm.ws.webservices.enableHTTPPrefix
Cette propriété indique si la valeur hostname:port qui est définie comme un préfixe d'URL HTTP personnalisé dans le panneau "URL de points de contact HTTP" de la console d'administration est renseignée avec la zone URL dans la copie du fichier WSDL qui est renvoyée du service au client. Il s'agit d'une propriété de transport HTTP que vous pouvez configurer pour des applications de services Web.
Configurez cette propriété avec la valeur true de sorte que le préfixe d'URL HTTP personnalisé spécifié soit correctement spécifié dans le fichier WSDL qui est renvoyé du service au client. Si cette propriété n'est pas configurée avec la valeur true, le hostname:port personnalisé spécifié du noeud du serveur qui répond à la demande n'est alors pas renseigné dans la zone URL de la copie du fichier WDL qui est renvoyée au client.
Information | valeur |
---|---|
Type de données | String (chaîne) |
Valeut par défaut | False |
Valeurs admises | True, false |

Vous devez redémarrer le serveur d'applications une fois que cette propriété personnalisée a été définie, afin qu'elle soit utilisée par le système.
enableMultiThreadedSession
Cette propriété indique si un client est autorisé à partager les informations de session HTTP entre des unités d'exécution pour la même instance de client. Pour activer ce comportement, affectez la valeur true à cette propriété en appelant la méthode _setProperty sur le module de remplacement client. A défaut, le comportement par défaut est de rendre les sessions locales pour l'unité d'exécution sur laquelle le client a été invoqué.
Ces informations ne s'appliquent qu'aux services Web JAX-RPC (Java API for XML-based RPC).
Properties prop = new Properties();
InitialContext ctx = new InitialContext(prop);
Service service = (Service)ctx.lookup("java:comp/env/service/StockQuoteService");
QName portQname = new QName("http://httpchannel.test.wsfvt.ws.ibm.com", "StockQuoteHttp");
StockQuote sq = (StockQuote)service.getPort(portQname, StockQuote.class);
((javax.xml.rpc.Stub) sq)._setProperty(com.ibm.wsspi.webservices.Constants.ENABLE_MULTITHREADED_SESSION, Boolean.TRUE);
Information | valeur |
---|---|
Type de données | Booléenne |
Valeut par défaut | False |
Valeurs admises | True, false |
Vous devez redémarrer le serveur d'applications une fois que cette propriété personnalisée a été définie, afin qu'elle soit utilisée par le système.
HttpInboundPersistReadTimeout
Cette propriété indique le délai d'attente, en secondes, avant l'expiration du délai de lecture persistant des applications JAX-WS.

java.io.IOException: Async IO operation failed (1), reason: RC: 32 Broken pipe
Cette
exception se produit parce que le délai d'expiration de la persistance est dépassé sur le client et donc la connexion se ferme. Utilisez cette propriété lorsque vous lisez des données volumineuses ou lorsque le réseau est si lent que la lecture des données sur le serveur prend plus de sept secondes. Si vous recevez l'exception de pipe rompu sur le serveur, augmentez le délai de la propriété.
Information | valeur |
---|---|
Type de données | Entierr |
Unité | Valeur par défaut |
Valeut par défaut | 7 |
Valeurs admises | 0 (zéro) à entier maximal |
Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration de propriétés HTTP supplémentaires à l'aide de la console d'administration.
http.nonProxyHosts
Cette propriété système JVM se comporte comme un élément de remplacement des propriétés http.proxyHost et https.proxyHost et spécifie les noms d'hôte des machines auxquelles les demandes ne seront pas envoyées via le serveur proxy. Il s'agit d'une propriété de transport HTTP que vous pouvez configurer pour des applications de services Web.
Toutes les demandes appelées par l'application client et envoyées à un hôte dont le nom figure dans cette propriété ne passeront pas par le serveur proxy. Séparez chaque nom d'hôte de la liste par une barre verticale ("|"). Vous avez également la possibilité d'utiliser un astérisque (*) comme caractère générique.
La propriété http.nonProxyHosts s'applique aux connexions HTTP et HTTPS.
- Pour l'hôte proxy, entrez le nom http.proxyHost et la valeur myproxy.mycompany.com.
- Pour l'hôte non proxy, entrez le nom http.nonProxyHosts et la valeur host1.company1.com|host*.company2.com|*.company3.com.
- un hôte unique nommé host1.company1.com
- tout hôte se trouvant dans le domaine company2.com dont le nom commence par host
- tout hôte se trouvant dans le domaine company3.com
http.nonProxyHosts="host1.company1.com|host*.company2.com|*.company3.com|host1"

Information | valeur |
---|---|
Type de données | String (chaîne) |

Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration de propriétés HTTP supplémentaires à l'aide de la console d'administration.
http.proxyHost
Cette propriété définit le nom d'hôte d'un proxy HTTP. Il s'agit d'une propriété de transport HTTP que vous pouvez configurer pour des applications de services Web.
Information | valeur |
---|---|
Type de données | String (chaîne) |
Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration des propriétés de transport HTTP supplémentaires à l'aide de wsadmin et à la configuration des propriétés de transport HTTP supplémentaires à l'aide d'un outil d'assemblage.
http.proxyPort
Cette propriété définit le port d'un proxy HTTP. Il s'agit d'une propriété de transport HTTP que vous pouvez configurer pour des applications de services web.
Information | valeur |
---|---|
Type de données | String (chaîne) |
Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration des propriétés de transport HTTP supplémentaires à l'aide de wsadmin et à la configuration des propriétés de transport HTTP supplémentaires à l'aide d'un outil d'assemblage.
https.proxyHost
Cette propriété définit le nom d'hôte d'un proxy HTTPS. Il s'agit d'une propriété de transport HTTP que vous pouvez configurer pour des applications de services Web.
Information | valeur |
---|---|
Type de données | String (chaîne) |
Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration des propriétés de transport HTTP supplémentaires à l'aide de wsadmin et à la configuration des propriétés de transport HTTP supplémentaires à l'aide d'un outil d'assemblage.
https.proxyPort
Cette propriété définit le port d'un proxy HTTPS. Il s'agit d'une propriété de transport HTTP que vous pouvez configurer pour des applications de services web.
Information | valeur |
---|---|
Type de données | String (chaîne) |
Pour plus d'informations sur la configuration de cette propriété, voir les informations relatives à la configuration des propriétés de transport HTTP supplémentaires à l'aide de wsadmin et à la configuration des propriétés de transport HTTP supplémentaires à l'aide d'un outil d'assemblage.
timeout
Cette propriété indique le délai d'attente, en secondes, avant l'expiration du temps de lecture.
Quand vous lisez un long message d'un service Web, vous pouvez recevoir des messages WSWS3228E avec des erreurs SocketTimeoutExceptions quand des appels au service Web sont émis.
La valeur s'applique à toutes les demandes de connexion HTTP effectuées par le connecteur entrant HTTP. Utilisez cette propriété de dépassement de temps de lecture quand vous lisez des données volumineuses ou quand le réseau est lent et qu'il faut plus de 300 secondes (temps par défaut) pour lire les données. S'il se produit des erreurs SocketTimeoutExceptions pendant la lecture du message, augmentez la valeur de cette propriété.
Information | valeur |
---|---|
Type de données | Entierr |
Unité | Valeur par défaut |
Valeut par défaut | 300 |
Intervalle | 0 (zéro) à entier maximal |

Pour les applications JAX-WS, vous pouvez aussi configurer cette propriété en personnalisant les règles de transport HTTP ou via des liaisons JAX-WS. Pour plus d'informations sur la configuration de cette propriété avec ces méthodes, voir les informations relatives à la configuration des propriétés de transport HTTP supplémentaires à l'aide de la console d'administration ou les informations relatives à la configuration des propriétés de liaisons et des règles de transport HTTP.
write_timeout
Cette propriété indique la durée, en secondes, du délai d'écriture lorsqu'un message est envoyé.
Quand vous écrivez un long message d'un service Web, vous pouvez recevoir des messages WSWS3228E avec des erreurs SocketTimeoutExceptions quand des appels au service Web sont émis.
La valeur s'applique à toutes les demandes de connexion HTTP effectuées par le connecteur sortant HTTP. Utilisez cette propriété de dépassement de temps d'écriture quand vous envoyez des données volumineuses ou quand le réseau est lent et qu'il faut plus de 300 secondes (temps par défaut) pour écrire les données. S'il se produit des erreurs SocketTimeoutExceptions pendant l'écriture du message, augmentez la valeur de cette propriété.
Information | valeur |
---|---|
Type de données | Entierr |
Unité | Valeur par défaut |
Valeut par défaut | 300 |
Intervalle | 0 (zéro) à entier maximal |

Pour les applications JAX-WS, vous pouvez aussi configurer cette propriété en personnalisant les règles de transport HTTP ou via des liaisons JAX-WS. Pour plus d'informations sur la configuration de cette propriété avec ces méthodes, voir les informations relatives à la configuration des propriétés de transport HTTP supplémentaires à l'aide de la console d'administration ou les informations relatives à la configuration des propriétés de liaisons et des règles de transport HTTP.