- PR -

setBufferSizeでの設定サイズ

1
投稿者投稿内容
市長
会議室デビュー日: 2005/09/09
投稿数: 2
投稿日時: 2005-09-09 16:56
皆さん、こんにちは。

現在、下記の現象による対策を考えています。

現象--------------
レスポンスに全て書き出される前に、最初に表示された、上部にあるリンクより遷移しようとした場合、下部のhiddenのパラメータが書き出されていない為に、遷移先でエラーになってしまう。
------------------


そこで、
javax.servlet.ServletResponseインタフェースのsetBufferSize(int size)を利用して、
バッファサイズを4K->100Kにして、なるべく一気に、HTMLを出力しようと考えましたが、
setBufferSizeでの設定サイズに上限はあるのでしょうか?
また、バッファサイズを増やすことによる懸念点は何か考えられるでしょうか?

情報をお持ちの方がいらっしゃったら、どうぞよろしくお願いします。

システム構成
OS:RedHauLinux6.2
WAS:WebSphere3.5.4
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2005-09-09 17:54
> setBufferSizeでの設定サイズに上限はあるのでしょうか?

実装によると思います。が、もし実装内部でBufferedOutputStreamを利用していると仮定すると、特にないと思います。

> また、バッファサイズを増やすことによる懸念点は何か考えられるでしょうか?

・クライアントの描画が最初のバッファ分だけ遅れます。
・アプリケーションサーバーのメモリ消費量がバッファ分増大します。出力ストリームは再利用していないと思いますので、バッファを25倍増やすとガーベジコレクションがかなり増えることになると思います。
市長
会議室デビュー日: 2005/09/09
投稿数: 2
投稿日時: 2005-09-09 18:19
Anthyhimeさん、回答ありがとうございました。

> 実装によると思います。が、もし実装内部でBufferedOutputStreamを利用していると仮定す> ると、特にないと思います。

RequestDispatcherでResponseをフォワードするだけなので、
BufferedOutputStreamの利用は特に考えていませんでした。
利用しない場合、上限はサーバーのメモリの使用量を調査して決めるしかないでしょうかね。

> ・クライアントの描画が最初のバッファ分だけ遅れます。
> ・アプリケーションサーバーのメモリ消費量がバッファ分増大します。出力ストリームは再利> 用していないと思いますので、バッファを25倍増やすとガーベジコレクションがかなり増え> ることになると思います。

最初の描画が遅れるのは、しょうがないですが、
ガーベジコレクションの増加は、アクセスが頻繁なシステムにとっては、結構致命的ですね。

色々と参考になりました。ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)