Question

Nous avons un service Web exécuté sur Websphere 6.1 à l'aide des services Web IBM JAX-RPC. Le client envoie des demandes sans en-tête HTTP de transfert-encodage: chunked (Ils spécifient la longueur du contenu). Websphere a toujours répondu transfer-encoding: chunked dans l'en-tête HTTP. Je suppose que cela entraînera l'envoi de la réponse en plusieurs morceaux. Dans un système où le demandeur de services et le fournisseur de services sont séparés par de nombreux intermédiaires (tels que des pare-feu et des équilibreurs de charge (T1 / F5)), ce type de segmentation peut entraîner une latence importante.

This link et ce link parle de la division des demandes mais ne mentionne rien dans la réponse.

Existe-t-il un moyen de configurer Websphere pour ne pas ajouter le codage de transfert: inséré dans la réponse de l'en-tête HTTP?

Était-ce utile?

La solution

Dans Websphere, la taille du bloc est contrôlée par l'option "Taille du tampon d'écriture". dans la chaîne de transport du canal entrant du conteneur Web. De leur documentation:

Si plusieurs écritures sont nécessaires pour gérer les réponses au client, remplacez la valeur spécifiée pour le paramètre Taille de la mémoire tampon en écriture par une valeur plus appropriée pour vos clients. Le paramètre Write buffer size contrôle la quantité maximale de données par thread que le conteneur Web met en mémoire tampon avant l'envoi de la demande pour traitement. La valeur par défaut est 32 768 octets, ce qui est suffisant pour la plupart des applications. Si la taille d'une réponse est supérieure à la taille du tampon d'écriture, la réponse est fragmentée et écrite en plusieurs écritures TCP.

Autres conseils

Je ne pense pas que vous puissiez configurer Websphere pour le faire, mais de plus, cela ne devrait pas avoir d'importance. Je recommande de lire ce que RFC 2616 a à dire sur le codage en bloc; cela ne fait pas ce que vous croyez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top