BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

WebLogic Server FAQ 集

 Previous Next Contents PDF で侮ヲ  

FAQ: サーバ関連の質問

Q. サーバが「ハング」または「フリーズ」してしまった場合は、どうすればよいでしょうか。

A. WebLogic Server が「フリーズ」した場合は、BEA テクニカル サポートに連絡する前に、スレッド ダンプや Java ガベージ コレクション メトリックなどの診断情報を収集する必要があります。詳細については、「ログ ファイルの生成」および「ガベージ コレクションのチェック」を参照してください。

Q. SOCKS プロキシを使用するように WebLogic をコンフィグレーションする方法を教えてください。

A. SOCKS を使用するように java.net ソケットをコンフィグレーションするには、Java システム プロパティを設定します。詳細については、「How do I make Java work with a proxy server?」を参照してください。プロパティを設定すると、WebLogic ソケット接続で SOCKS プロキシが使用されます。

Q. 接続の応答はどのようにしたら速くできますか。

A. 接続の遅延は、たいていは DNS の問題によって生じます。WebLogic では、新しい接続が行われるホスト名の逆引き参照が実行されます。プロキシ サーバからの接続であるために DNS の逆引き参照が正しく機能していない場合は、それが遅延の原因として考えられます。システム管理者との共同作業で、DNS およびサードパーティのネットワーキング ソフトウェアが正しく機能しているかどうかを確認する必要があります。あらゆる接続で逆引き参照を実行する単純なサーバ プログラムを記述してみてください。その参照が遅延する場合は、プロキシ サーバが問題の発生源となっています。

Q. IIOP を介した CORBA とクライアントの通信を WebLogic はどのようにサポートしているのですか。

A. 「CORBA」のサポートとは、さまざまな意味を含んでいます。たいていの場合、それは単純に IIOP/ORB のサポートを意味し、CORBA サービスはあまり重要ではありません。WebLogic では、多様な方法で CORBA をサポートしています。WebLogic Server 7.0 の RMI-IIOP 実装では、標準 IIOP プロトコルを用いて Java RMI クライアントを WebLogic Server に接続でき、CORBA/IDL クライアント (C++ で書かれたものを含む) を WebLogic Server に接続でき、WebLogic Server と Tuxedo クライアントの間で相互運用ができ、さまざまなクライアントを WebLogic Server 上に提供されている EJB に接続できます。詳細については、『WebLogic RMI over IIOP プログラマーズ ガイド』を参照してください。

Q. HTTP トンネリングはどのようにしたら速くできますか。

A. 残念ながら、HTTP トンネリングを使用するときには著しくパフォーマンスが低下します。ある程度は最適化していますが、すべてが HTTP でカプセル化されるので、HTTP トンネリングは Java-to-Java のダイレクトな TCP/IP 接続より低速になります。

必ず、本当に HTTP トンネリングが必要なのかを確認してください。たとえば、IP パケットがポート 80 を通じてファイアウォールを通過できる場合は、ポート 80 で高速な t3 プロトコルを使用できます。

HTTP トンネリングを使用してファイアウォールを通過する必要がある場合、e-Borderは HTTP プロキシより性能が良い製品を提供しています。

Q. WebLogic Server は UNIX の起動と同時に起動できますか。

A. UNIX rc スクリプトに起動スクリプトを追加すると、UNIX の起動時に WebLogic Server を実行できます。起動スクリプトの作成の詳細情報については、『管理者ガイド』の「スクリプトを使用した管理サーバの起動」を参照してください。

Q. クライアントとトラフィック以外に、サーブレットのパフォーマンスには何が影響しますか。

A. マシンでスクリーン セーバー (特に OpenGL スクリーン セーバー) を実行している場合は、サーブレットの応答時間が約 5 倍遅くなります。スクリーン セーバーをオフにして、速度が向上するか確認してください。

Q. Solaris で「NoClassDefFound」/「Too Many Open files」というメッセージが表示されるのはなぜですか。

問題 : Solaris で WebLogic Server を使用している状況でアプリケーションを実行しようとすると、「NoClassDefFound」エラーが発生します。ただし、エラーを生じさせたクラスは存在しており、適切なディレクトリに配置されています。同じディレクトリにはロードされる他のクラスが存在し、「Too many open files」エラーも発生します。

A. この状況は、ユーザ アカウントでファイル記述子が足りないときに見受けられます。Solaris では、各ユーザ アカウントに特定の数のファイル記述子があります。ファイル記述子の数は、csh で limit コマンドを使用して確認できます。

十分な権限があれば、csh で ulimit コマンドを使用してファイル記述子を増やすことができます。権限がない場合は、システム管理者に依頼して、プロセスで利用可能なファイル記述子を増やしてもらいます。

Q. WebLogic Server のメモリを増やすにはどのようにしますか。

A. WebLogic Server に対する Java ヒープ メモリの割り当てを増やします。最小値と最大値は両方とも同じサイズに設定する必要があります。この例では 200MB の固定ヒープ サイズでサーバを起動します。

  $ java ... -ms200m -mx200m ... 

これで 32MB の Java ヒープ メモリが WebLogic Server に割り当てられるので、パフォーマンスが向上し、WebLogic Server ではより多くの同時接続を処理できます。この値は必要に応じて増やすことができます。

Q. Java と CORBA の統合 : RMI-IIOP または Java IDL

A. Java と CORBA を統合するこれら 2 つの方法の違いを理解する必要があります。

RMI-IIOP は、RMI インタフェースをプログラミングするが、基盤の転送には IIOP を使用する Java プログラマが使用します。RMI-IIOP はさまざまな言語で実装された他の CORBA オブジェクトとの相互運用を実現しますが、それはすべてのリモート インタフェースが元々 Java RMI インタフェースとして定義されている場合に限られます。この方法は、エンタープライズ JavaBean (EJB) を利用するプログラマにとって特に有効です。なぜなら、EJB のリモート オブジェクト モデルが RMI に基づいているからです。またこの方法では、標準 IIOP プロトコルを使用することができ、軽量 (最低限の weblogic クラス群) クライアントを持つことができます。

Java IDL は、CORBA IDL で定義されたインタフェースに基づく Java でプログラミングを行う CORBA プログラマが使用します。これは「通常どおり」の CORBA プログラミングであり、C++ や COBOL といった他の言語とまったく同じように Java がサポートされます。C++ (または orb によってサポートされているその他の言語を IDL へ) 統合したい場合には、CORBA IDL メソッドのプログラミングを利用することになるでしょう。

Q. RMI-IIOP アプリケーションと既存の CORBA オブジェクトはどのように相互運用されるのですか。

A. 既存の CORBA オブジェクトのリモート インタフェースが元々 CORBA IDL で定義されている場合は、相互運用はできません。RMI-IIOP アプリケーションが他の CORBA オブジェクトと相互運用できるのは、それらのリモート インタフェースが元々 Java RMI インタフェースとして定義されている場合に限られます。

たとえば、RMI-IIOP クライアントと C++ オブジェクトの相互運用を実現するには、次のようにする必要があります。

  1. オブジェクトのリモート インタフェースを Java で RMI インタフェースとして定義します。

  2. インタフェースに対して rmic -idl を実行し、RMI インタフェースと互換の IDL を生成します。

  3. IDL ファイルに対して C++ スタブ コンパイラを実行し、C++ サーバ オブジェクトの C++ スケルトンを生成します。

Q. WebLogic Server で T3 はどのように機能するのですか。

A. T3 は、省略形、およびオブジェクトの置換 (WebLogic Server クラスタと HTTP トンネリングおよび他の製品のトンネリングのコンテキストで有効) のような機能などの、パフォーマンスの向上をサポートするメッセージのフレームワークを WebLogic Server で提供します。

T3 は Java オブジェクトの直列化および RMI より先に開発されたものですが、これらの仕様をしっかり学習して利用しています。T3 は Java Object Serialization または RMI のスーパーセットです。Java Object Serialization および RMI で実行できることは T3 でもすべて可能です。

T3 は WebLogic Server 間、およびプログラムに基づくクライアントと WebLogic Server クラスタ間では必須です。HTTP と IIOP はオプションのプロトコルであり、他のプロセスと WebLogic Server 間の通信に使用できます。これは何をするのかに依存し、たとえば以下のように使い分けます。

Q. WebLogic Server で実行されている Java コードをデバッグする方法を教えてください。

A. WebGain、JBuilder、NetBeans、JDB などのツールを使用できます。これらのツールは、Java Platform Debugger Architecture (JPDA) に基づいて WebLogic Server で実行されている Java コードをデバッグします。

JPDA は、すべてのプラットフォーム用の Java 2 Platform, Standard Edition (J2SE) SDK 1.3 と、Linux 用の SDK 1.2.2 に統合されています。Sun のサイトでは、Solaris と Microsoft Windows プラットフォーム版の J2SE SDK 1.2.2 に JPDA サポートを追加するためのダウンロードを利用できます。これらのプラットフォームで J2SE SDK 1.2.2 を使用している場合、まずこのダウンロードを取得する必要があります。

WebLogic が動作する仮想マシンにデバッガを接続するには、WebLogic をデバッグ モードで起動する必要があります。Sun 仮想マシンを使用して WebLogic をデバッグ モードで起動するには、次の手順に従います (Solaris プラットフォームを使用している場合は手順 1 から始めてください)。

  1. Solaris プラットフォームを使用している場合は、LD_LIBRARY_PATH 環境変数の前に $JAVA_HOME/lib/sparc を付加します。
    export LD_LIBRARY_PATH=$JAVA_HOME/lib/sparc:$LD_LIBRARY_PATH

  2. WebLogic サーバを起動する java コマンド ラインに次のパラメータを追加します (「weblogic.Server」という文字列の前)。
    -Xdebug
    -Xnoagent
    -Xrunjdwp:transport=dt_socket
    server=y
    address=<port_for_debugger_to_connect>
    suspend=n
    -Djava.compiler=NONE

Hotspot Performance エンジンを使用する場合、-Xnoagent および -Djava.compiler=NONE オプションは必要ありませんが、互換性を保持するため、正常に受け付けられて無視されます。

server=y パラメータが追加され、address パラメータが追加されない場合、WebLogic Server は転送アドレスを選択し、それを標準出力ストリームに出力します。たとえば、次のような行があるとします。

Listening for transport dt_socket at address: 46666

上の行では、サーバの起動時に標準出力ストリームに出力されます。46666 はポート番号です。このポート番号は、WebLogic の仮想マシンに接続するリモート デバッガに提供されます。

 

Back to Top Previous Next