ORACLE JAPAN Server Release 6.1

 

  |  

  WebLogic Server ホーム   |     FAQ   |   前へ   |   次へ   |   目次   |   PDF 版

FAQ: サーバ関連の質問

 


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

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


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

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


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

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


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

「CORBA」のサポートとは、さまざまな意味を含んでいます。たいていの場合、それは単純に IIOP/ORB のサポートを意味し、CORBA サービスはあまり重要ではありません。WebLogic では、多様な方法で CORBA をサポートしています。

まず、Java クライアントは CORBA 環境をトンネリングして WebLogic Server にアクセスできます。これは「IIOP トンネリング」と呼ばれる機能で、IONA Wonderwall などの IIOP ファイアウォールを経由するアプレットで使用します。これは、IIOP 通信フレームワーク上で機能する Java-to-Java モデルです。

WebLogic RMI over IIOP は、IIOP を介して多くのクライアント(CORBA クライアントを含む)に RMI サービスを提供します。詳細については、「WebLogic RMI over IIOP の使い方」を参照してください。

WebLogic Enterprise Connectivity を使用すると、BEA WebLogic Enterprise System への IIOP 接続プールを作成でき、WebLogic Server サーブレットおよびエンタープライズ JavaBean から WebLogic Enterprise CORBA オブジェクトを実行できるようになります。


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

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

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

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


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

UNIX rc スクリプトに起動スクリプトを追加すると、UNIX の起動時に WebLogic Server を実行できます。次に、JDK 1.1 で動作する、HP-UX 11 からの例を示します。WebLogic Server の URL とシステム パスワードを指定する必要があります。このファイル wlstart/sbin/init.d ディレクトリに配置し、/sbin/rc2.d ディレクトリにはこのファイルへのリンクがあります。

export SHLIB_PATH=\
/home/user1/weblogic/lib/hpux11:/oracle/8.0.4/lib
export CLASSPATH=/home/user1/weblogic/classes:
\
/home/user1/weblogic/lib/weblogicaux.jar
export ORACLE_HOME=/oracle/8.0.4
export ORACLE_SID=DEMO
export ORACLE_TERM=vt100
export QAT=/home/user1/weblogic
cd $QAT
PATH=/sbin:/usr/sbin:/usr/bin:/opt/java/bin
export PATH
case $1 in
'start')
java -ms64m -mx64m -verbosegc weblogic.Server >
\
/home/user1/weblogic/server.out 2>&1
;;
'stop')
java weblogic.Admin
URL shutdown system password
;;
*)
echo "usage: $0 {start|stop}"
;;
esac

このようなスクリプトを設定する場合には、UNIX のシステム管理者と共同で作業する必要があります。


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

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


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

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

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

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


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

WebLogic Server に対する Java ヒープ メモリの割り当てを増やします。最小値と最大値は両方とも同じサイズに設定する必要があります。次の例のように、-ms32m オプションを使用して WebLogic Server を起動すると、割り当てを増やすことができます。

$ java ...-ms32m -mx32m ...

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


ログ ファイルで Java.io 例外を引き起こす原因は何ですか。

ログ ファイルで以下のようなメッセージが示される場合があります。

(Windows NT)

java.io.IOException Connection Reset by Peer
java.io.EOFException Connection Reset by Peer

(Solaris)

java.io.Exception: Broken pipe

これらのメッセージは、サーブレットの使用時に発生します。クライアントは HTTP リクエストを開始し、ブラウザで以下の一連のアクションを実行します。

  1. [Stop] をクリックするか、同等のコマンドを入力するか、または同等のキーを押します。

  2. [Refresh] をクリックするか、同等のコマンドを入力するか、または同等のキーを押します。

  3. 新しい HTTP リクエストを送信します。

上記のメッセージは、WebLogic Server が割り込まれた HTTP リクエストを検出して回復したことを示します。


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

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

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

Java IDL は、CORBA IDL で定義されたインタフェースに基づく Java でプログラミングを行う CORBA プログラマが使用します。これは「通常どおり」の CORBA プログラミングであり、C++ や COBOL といった他の言語とまったく同じように Java がサポートされます。


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

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

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

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

  2. インタフェースに対して rmic -iiop を実行し、RMI-IIOP クライアントのスタブを生成します。

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

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


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

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 間の通信に使用できます。これは何をするのかに依存し、たとえば以下のように使い分けます。


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

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 Window プラットフォーム版の J2SE SDK 1.2.2 に JPDA サポートを追加するためのダウンロードを利用できます。これらのプラットフォームで J2SE SDK 1.2.2 を使用している場合、まずこのダウンロードを取得する必要があります。

WebLogic が動作する仮想マシンにデバッガを接続するには、WebLogic をデバッグ モードで起動する必要があります。Sun 仮想マシンを使用してWebLogic をデバッグ モードで起動するには、次の手順に従います(Solar プラットフォームを使用している場合は手順 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 page next page