Application Server によって渡された IIOP メッセージを調査することが役立つ場合があります。サーバーが IIOP メッセージを server.log ファイルに保存するようにするには、JVM オプション -Dcom.sun.CORBA.ORBDebug=giop を設定します。クライアント ORB 上で同じオプションを使用します。
サーバーログに保存される IIOP メッセージの例を、次に示します。注意: 実際の出力では、各行の先頭に [29/Aug/2002:22:41:43] INFO (27179): CORE3282: stdout のようなタイムスタンプが付きます。
++++++++++++++++++++++++++++++ Message(Thread[ORB Client-side Reader, conn to 192.18.80.118:1050,5,main]): createFromStream: type is 4 < MessageBase(Thread[ORB Client-side Reader, conn to 192.18.80.118:1050,5,main]): Message GIOP version: 1.2 MessageBase(Thread[ORB Client-side Reader, conn to 192.18.80.118:1050,5,main]): ORB Max GIOP Version: 1.2 Message(Thread[ORB Client-side Reader, conn to 192.18.80.118:1050,5,main]): createFromStream: message construction complete. com.sun.corba.ee.internal.iiop.MessageMediator (Thread[ORB Client-side Reader, conn to 192.18.80.118:1050,5,main]): Received message: ----- Input Buffer ----- Current index: 0 Total length : 340 47 49 4f 50 01 02 00 04 0 0 00 01 48 00 00 00 05 GIOP.......H....
フラグ -Dcom.sun.CORBA.ORBdebug=giop を指定すると、多数のデバッグメッセージがログ内に生成されます。これは、メッセージが断片化している疑いがある場合にのみ使用します。
このサンプル出力では、createFromStream のタイプが 4 と表示されています。これは、このメッセージがより大きなメッセージのフラグメントであることを意味しています。メッセージの断片化を防ぐには、フラグメントのサイズを増やします。フラグメントのサイズを大きくすると、メッセージがいくつかのフラグメントとしてではなく、1 つの単位として送信されるため、複数メッセージのオーバーヘッドが抑えられ、そうした複数のメッセージを受信側で結合する処理も必要なくなります。
アプリケーションで送信されるメッセージのほとんどが断片化されている場合、フラグメントサイズを増やせばおそらく効率が改善されます。これに対し、いくつかのメッセージだけが断片化されている場合、フラグメントサイズを小さくしたほうがメッセージの書き込みに必要とされるバッファーも小さくなり、より効率的である可能性があります。