私は、ネットワーク経由でサーバー間を移動する必要があるhashMapを持っています。ソケットバッファで提供される制限を超えてサイズが増加すると、次の例外がスローされます。 weblogic.socket.MaxMessageSizeExceededException:によって引き起こさWeblogic 11gサーバーのネットワーク上でhashMapを送信中に圧縮を実装します
サイズの受信メッセージ: '3002880' バイトの構成された最大値を超え: '3000000' はプロトコルのバイト: 'T3'
はそれをグーグルものの私は、ソケットのサイズを増やす必要があることを発見しましたが、これはそのような良い解決策ではないので、必要ではありません。
次に、 "DeflaterOutputStream/InflaterInputStream"を使用して送信する前に、HashMapを圧縮しようとしています。しかし、ここでの課題は、 "ObjectOutputStream"オブジェクトがweblogicクラスによって作成され、圧縮処理を行うためにObjectOutputStreamを作成しようとしているときにdeflater/Inflaterストリームが埋め込まれることです。
これを行う方法はありますか?
また、weblogicが自動的に圧縮を使用するt3プロトコルで圧縮を有効にする方法もあります。私はそれがt3プロトコルで可能かどうかについていくつかの研究を行ったが、t3プロトコルはこれをサポートしていないようだ。しかし、私はweblogicの新しいバージョンがこれをサポートするかどうかは分かりません。
また、「ソケットバッファサイズ」のチャンクにHashMapを分割することも考えていましたが、既存のデザインを変更する必要があり、今のところ好まれません。
ご意見をお寄せください。
3000000はあなたのためにいくつかの聖なる限界ですか?もしそうでなければ、これを修正することができれば、 'System.setProperty(" weblogic.MaxMessageSize "、" BiggerValueAsString ")'を試すことができます。 https://blogs.oracle.com/LuzMestre/entry/how_to_fix_weblogic_socket – patrik
@patrikの詳細については、実際に私たちのチームは解決策を求めていません。データが増えるたびにすぐにサイズを設定する必要があります。 –