Domanda

Abbiamo un servizio Web in esecuzione su Websphere 6.1 utilizzando i servizi Web basati su IBM JAX-RPC. Il client invia richieste senza intestazione HTTP della codifica di trasferimento: chunked (specificano la lunghezza del contenuto). La risposta di websphere ha sempre la codifica di trasferimento: bloccata nell'intestazione HTTP. Presumo che ciò comporterà l'invio della risposta in più blocchi. In un sistema in cui il richiedente e il fornitore di servizi sono separati da molti intermediari (come i firewall e i sistemi di bilanciamento del carico (T1 / F5)) questo tipo di blocchi potrebbe causare una latenza significativa.

Questo link e questo link parla di richiesta di blocchi, ma non menziona nulla sulla risposta.

Esiste un modo per configurare websphere per non aggiungere la codifica di trasferimento: bloccato nella risposta dell'intestazione HTTP?

È stato utile?

Soluzione

In websphere, la dimensione del blocco è controllata da " Write Buffer Size " nella catena di trasporto del canale in entrata del contenitore web. Dalla loro documentazione:


Se per gestire le risposte al client sono necessarie più scritture, modificare il valore specificato per il parametro Dimensione buffer di scrittura su un valore più appropriato per i client. Il parametro Write buffer size controlla la quantità massima di dati per thread bufferizzata dal contenitore Web prima di inviare la richiesta per l'elaborazione. Il valore predefinito è 32768 byte, che è sufficiente per la maggior parte delle applicazioni. Se la dimensione di una risposta è maggiore della dimensione del buffer di scrittura, la risposta viene suddivisa e riscritta in più scritture TCP.

Altri suggerimenti

Non penso che tu possa configurare Websphere per farlo, ma inoltre, non dovrebbe importare. Consiglio di leggere ciò che RFC 2616 ha da dire sulla codifica a blocchi; non fa quello che pensi che faccia.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top