第14章

トラブルシューティング

この章では、Novell exteNd Application Serverをトラブルシューティングする場合に使用できる方法と手順の一部について説明します。この章は、次の節で構成されています。

 
Top of page

エラーログ出力機能の使用

サーバの実行中は、エラーログ出力機能を常にオンにすることが推奨されます。エラーログ出力は、SilverMasterのAgErrorLogテーブルまたは指定したファイルのいずれかにエラーメッセージに関する詳細な情報を出力する、軽量なプロセスです。ログ出力機能は、SMCを使用して有効にできます。詳細については、サーバのログ機能の使用を参照してください。

SilverMasterにログ出力する場合、ツールバーから[監視]アイコンを選択し、続けて[ログ]を選択すると、SMCでログを表示することができます。

For more information    詳細については、ログの表示を参照してください。

 
Top of page

低レベルのデバッグ

SMCのデバッグオプションを使用すると、サーバデバッグメッセージをサーバコーンソールに出力できるようになります。オプションには、クライアント要求、Webアプリケーション、およびSQLステートメントのデバッグが含まれます。デバッグオプションは、アプリケーションのデバッグ目的でのみ有効にします。これは、デバッグアクティビティによって、サーバのパフォーマンスが大幅に妨げられるためです。

注記:   Windowsのサービスとしてサーバを実行している場合、出力は、コンソールウィンドウではなくエラーログに出力されます。

Procedure デバッグメッセージを出力する

  1. SMCを開始します。

  2. ツールバーから[環境設定]アイコンを選択します。

  3. 詳細]を選択します。

  4. デバッグ]タブを選択します。

    debugtab

  5. デバッグするアクティビティのタイプに対する値を変更します。

    入力する数は、表示する詳細のレベルを示します。0という値は、メッセージが出力されないことを意味します。デバッグオプションは、次のとおりです。

    フィールド

    説明

    Client

    このパラメータを1に設定した場合、サーバでは、各クライアントの情報(http GET、PUT、POSTなど)をログ出力します。

    このパラメータを2以上に設定した場合、サーバでは、「完全」な要求/応答メッセージをコンソールウィンドウにログ出力します。

    ヒント:   このオプションは、HTTP、サーブレット、および他のクラ イアントに関する問題に役立ちます。

    Web Application

    このパラメータを1以上に設定した場合、サーバでは、実行中の各Webアプリケーションの実行に関する情報を次のようにログ出力します。

    • 1または2に設定した場合、パブリックAPIでコールされたメソッドに関する最小情報または最大情報が表示されます。

    • 3または4に設定した場合、コールされたすべてのメソッド(パブリックAPI外でコールされたメソッドも含む)に関する最小情報または最大情報が表示されます。

    • 5に設定した場合、ビジネスオブジェクトから出力されるものを表示できるように、すべての出力がServletOutputStreamsにエコーされます。

    • 6に設定した場合、コールが行われた場所を表示できるように、さまざまなコールのスタックトレースが含められます。

    SQL

    このパラメータを1に設定した場合、サーバでは、クライアントデータのデータベースに対して実行された各SQLステートメントをログ出力します。

    このパラメータを2以上に設定した場合、サーバでは、サーバの問題を追跡するためにテクニカルサポートで使用できる追加の情報をログ出力します。

    ヒント:   このオプションは、データベースに関する問題のデバッグ に役立ちます。

    Class Loader

    このパラメータを1以上に設定した場合、サーバでは、(各J2EEアプリケーションに対して使用される) J2EE ClassLoaderに関する情報を次のようにログ出力します。

    1 - リポジトリのリスト(何かを検索するときにClassLoaderが参照する場所)のみを表示します(リポジトリが追加されている場合)。これは、ClassLoaderによって何かが検索される場所を見つける場合に使用します。

    2 - findClass()、loadClass()、getResource()など、基本的なAPIコールに対する引数を表示します。これは、基本的なAPIコールがいつ行われるかを確認する場合に使用します。

    3 - 追加の内部情報を表示します。この設定は、さまざまな検索場所からのクラスまたはリソースの検索をトレースする場合に使用します。

    4 - 主要な領域のスタックトレースを表示します。これは、特定のクラスをロードしているユーザを知る必要がある場合に使用します。

 
Top of page

JDBCトレースの設定

データベース接続に関する問題が解決しない場合は、JDBCトレースを使用します。

Procedure JDBCトレースを設定する

  1. 必要に応じて、トレースデータを保存するためのログファイルを作成します。

  2. サーバをシャットダウンします(アプリケーションサーバのシャットダウンを参照)。

  3. httpd.propsファイルを開きます(サーバの\Resourcesディレクトリにあります)。

  4. http-server.Jdbc.DriverManager.LogFileエントリをpropsファイルに追加し、ログファイルを指すようにします。たとえば、ログファイルがd:\test\jdbc.logの場合、httpd.propsファイルに次の行を作成します。

      http-server.Jdbc.DriverManager.LogFile=d:\\test\\jdbc.log
    
  5. サーバを再起動します。

    注記:   JDBCトレースはトラブルシューティングに対してのみ使用してください。これは、サーバの処理速度が低下し、非常に多くのディスク容量が使用されるためです。

 
Top of page

サーバのコマンドシェルの使用

サーバのコンソールウィンドウ(サーバが起動された元のウィンドウ)にコマンドを入力すると、サーバの状態に関する診断情報を取得することができます。 たとえば、メモリ使用状況、スレッド、セッション、およびサーバシステムプロパティに関する情報を取得できます。 また、異なるサブシステムに対してトレース機能を有効にすることも可能です。

Procedure サーバが起動した後で詳細を取得する

Procedure コマンドでヘルプを表示する

Procedure コマンドシェルを無効にする

  1. 次の行をhttpd.propsファイルに入力します。

      http-server.com.sssw.srv.commandshell=false
    
  2. サーバを再起動します。

 
Top of page

Watcherの使用

Watcherツールを使用すると、サーバが応答しなくなった場合にサーバの状態を把握できるようになります。 有効にすると、Watcherは、1分ごとにサーバの状態をログ出力します。

ヒント:   デバッグの困難な問題が発生した場合には、Watcherの変数を見つけることが推奨さ れます。

Procedure Watcherを使用する

  1. 次のプロパティをhttpd.propsファイルに追加します。

      http-server.com.sssw.srv.httpdwatcher
    
  2. プロパティの値をウォッチャー設定ファイルのパス名に設定します。例:

      http-server.com.sssw.srv.httpdwatcher=c:\\temp\\watchconfig.txt
    

    ヒント:   httpd.propsファイルでは、円記号をエスケープしてください。

結果

サーバの起動時にこのプロパティが設定されている場合、サーバでは、「ウォッチャースレッド」を作成します。ウォッチャースレッドは通常はスリープ状態にあり、1分ごとに、httpdwatcherプロパティの値として指定されたウォッチャー設定ファイルの存在をチェックするために起動します。

ウォッチャー設定ファイルが存在しない場合   設定ファイルが存在しない場合、Watcherは何も実行せず、単にスリープ状態に戻ります。このような状況では、Watcherによるサーバのパフォーマンスへの影響は最小です。また、サーバがハングした場合でも、Watcherがハングすることはめったにありません。

ウォッチャー設定ファイルが存在する場合   Watcherでは、ウォッチャー設定ファイルが存在していることを検出すると、この設定ファイルを読み込み、さらなる操作を制御するために使用します。

ウォッチャー設定ファイルについて   ウォッチャー設定ファイルは、次が含まれていなければならないASCIIテキストファイルです。

一般的なウォッチャ設定ファイル」は、次のようになります。

  7
  c:\temp\watchout.txt

このファイルでは、スレッド、セッション、およびデータベース接続に関する情報を、指定した出力ファイルに1分ごとにダンプするようWatcherに通知します。

 
Top of page

サーバの起動に関する一般的な問題

この節では、アプリケーションサーバの起動に失敗する理由の一部と、この問題の解決方法について説明します。サーバに関する問題のトラブルシューティングの詳細については、SilverMasterInitを使用したSilverMasterの再作成または更新を参照してください。

注記:   サーバエラーは、使用している特定のデータベースに関連していることがあります。データベース固有の情報については、『データベース設定ガイド』を参照してください。

 
Top of section

システムリソースに関する問題

不適切なシステムリソースのために発生するサーバエラーの原因には、次の2つがあります。

原因

説明

操作内容

ディスク容量が足りない

オペレーティングシステムでは、ディスクにファイルを書き込むためにより多くの容量が必要です。

ファイルを削除または移動してより多くのディスク容量を作成し、サーバを再び起動してみます。

メモリが足りない

これは一時的な問題である場合や、リソースが足りないことを示している場合があります。

他のプログラムをシャットダウンするか、スワップファイルを拡大するか、またはサーバマシンにメモリをさらに追加します。

 
Top of section

同期化されていないデータベース

データベースの整合性に関連したエラーが表示された場合は、SMCに移動して[データベーススキーマの同期化]オプションを実行し、サーバを再起動します。

For more information    詳細については、データベーススキーマの同期化を参照してください。

 
Top of page

SilverMonitorの使用

SilverMonitorは、サーバで実行されるバックグラウンドプロセスで、サーバのステータスを監視し、サーバが異常終了した場合にサーバの再起動を試みます。デフォルトでは、このプロセスは、サーバが起動されるとアクティブになります。SilverMonitorは、変更可能なデフォルトのパラメータを使用して開始します。また、SilverMonitorなしでサーバを実行することもできます。

パラメータは、次の2とおりの方法で変更できます。

優先順位

優先順位は次のとおりです。

パラメータの要約

SilverMonitorパラメータの要約は、次のとおりです。

起動オプション

レジストリオプション(NT)

説明

デフォルト

/X

SilverMonitorを開始する、レジストリ内のコマンド。

-retry number

/C_number

再開試行数。デフォルトは3です。

-minspan number

/M_minutes

再開試行の期間(分単位)。デフォルトは10です。

/D

SilverMonitorプロセスに関するデバッグ情報。

-nomonitor

SilverMonitorなしでサーバを実行します。

Procedure NTレジストリでSilverMonitorパラメータを変更する

  1. [スタート]メニューから、[ファイル名を指定して実行]を選択します。

  2. regedit」と入力します。

    レジストリエディタが表示されます。

    SilverMonitor1

  3. 次のようにツリーを移動します。

    HKEY_LOCAL_MACHINE>SOFTWARE>Novell>exteNd>AppServer>version number

  4. SilverMonitor process]をダブルクリックします。

  5. 次のダイアログボックスが表示されたら、前に説明したオプションの1つまたは複数を入力します。複数のオプションを指定する場合は、各オプションをスペースで区切ります。

    次の図は、SilverMonitorを起動するためのオプションを示します。

    SilverMonitor2

  6. OK]をクリックします。

結果

SilverMonitorでは、サーバを再起動するとNT EventLogに書き込みを行います。また、SilverMonitorが実行されるディレクトリ(通常は、サーバの\binディレクトリ)にあるSilverMonitor.logファイルにも書き込みを行います。このログファイルでは、監視が開始されるたびにエントリを取得します。

SilverMonitorを再開すると、ログファイルは空になり、最初から開始します。

 
Top of page

SilverMasterInitプログラムの使用

アプリケーションサーバは、全体的なシステム管理を行うためにSilverMasterデータベースに依存しています。SilverMasterInitは、SilverMasterデータベースで複数のタイプのプロセスを実行するコマンドラインプログラムです。SilverMasterInit実行可能ファイルは、サーバの\binディレクトリにあります。SilverMasterInitを使用すると、次の操作を実行できます。

この節では、次のトピックについて説明します。

 
Top of section

コマンドラインオプション

次の表は、SilverMasterInitコマンドラインオプションのそれぞれを実行する方法と場合を示します。オプションのリストを表示するには、コマンドプロンプトで次を入力します。

  SilverMasterInit -? 

管理アカウント   管理アカウントには、「データベース」と「サーバ」の2つがあります。両方のアカウントは、インストール中に定義されます。サーバ管理アカウントでは、アプリケーションサーバにログインして管理できるユーザが制限されます。サーバ管理アカウントは、SilverMasterInitを使用して定義します。デフォルトのインストール後、サーバ管理者ユーザアカウントの保持者は、定義済みのAdministratorsグループのメンバーになり、Locksmith権限が与えられます。

アプリケーションサーバでは、SilverMasterデータベースに接続するときにデータベース管理者アカウントを使用します。SilverMasterデータベースアカウントを指定する必要があるのは、SilverMasterInitを実行する場合のみです。

オプションの入力   すべてのコマンドラインオプションに対しては、データベースユーザアカウント名とパスワードを入力する必要があります。また、次の表で記されているものを除くすべてのSilverMasterInitオプションに対して、FullまたはRefreshモードを指定する必要もあります。Fullモードのデータベース初期化を指定した場合は、3つのオプション(-A、-n、および-W)に対して、サーバ管理アカウント名とパスワードをコマンドラインで定義する必要もあります。

パラメータは、コマンドラインでSilverMasterInit起動オプションとして指定します。

SilverMasterInit起動オプション

説明

用途

-?

SilverMasterInitの使用状況を表示します。

オプションの使用状況をチェックする場合に使用します。

+cp:a path

指定したpathをクラスパスに追加します。

このオプションは、指定したパスをクラスパスに追加することによって、追加のJavaクラスをアプリケーションに対して使用可能にします。

注記:   Javaクラスを拡張するには、AGCLASSPATH環境変数を使用します。

例:

  SilverMasterInit [-f or -r] +cp:a path -U dbusername -P dbpassword

+cp:p path

指定したpathをクラスパスに追加します。

このデバッグオプションは、Novell exteNd テクニカルサポートに連絡せずに使用しないでください。代わりに、AGCLASSPATHを使用して、追加のJavaクラスをアプリケーションに対して使用可能にします。AGCLASSPATH変数の設定を参照してください。

-A adminname

アプリケーションサーバにログインして管理するために使用されるサーバ管理者ユーザ名を指定します。

このオプションを使用すると、新しいSilverMasterデータベースカタログを作成するときにサーバ管理アカウント名(およびパスワード)を定義できます。

指定したサーバユーザアカウントの保持者は、Administratorsグループのメンバーになり、完全なLocksmith権限が与えられます。サーバを管理するには、このアカウントを使用します。管理者アカウントについてを参照してください。

Fullモードのデータベース初期化を実行する場合は、サーバ管理アカウント名とパスワードを指定する必要があります。

例:

  SilverMasterInit -f -U dbusername -P dbpassword -A adminusername -W adminpassword

-a

アプリケーションサーバでユーザが自分自身を認証しなければならないようにします。

このパラメータは、SilverMasterデータベースへの読み込みアクセス(ログインリソースを含む)を誤って制限してしまった場合に設定します。また、このオプションを使用すると、SMCを実行せずに認証をすばやく設定できます。サーバ認証を使用したログインリソースへのアクセスを参照してください。

-aオプションを実行している場合は、RefreshモードまたはFullモードを指定する必要はありません。

例:

  SilverMasterInit -a -U dbusername -P dbpassword

-b

起動環境設定を表示します。

FullモードまたはRefreshモードによって使用される初期SilverMaster環境プロパティを表示する場合に実行します。

例:

  SilverMasterInit [-f or -r] -b -U dbusername -P dbpassword

-c

blobがデータベースに正しく挿入されていることをチェックします。

これらのオブジェクトが正しく保存されていることを確認する場合に実行します。

例:

  SilverMasterInit [-f or -r] -c -U dbusername -P dbpassword

-C properties file

指定したproperties fileからnameServicePortポートまたはIIOP SSLポートのプロパティを読み込みます。

properties fileの構文は、プロパティの前にhttp-serverを指定しないという点以外は、httpd.propsファイルの構文と同じです。代わりに、次のように指定します。

  <hostname>.<portnumber>

hostnameportnumberは、ドット(コロンではありません)で区切ります。

portnumberは管理ポートで、値が80以外の場合にのみ必要です。

nameServicePortを設定するには、次のプロパティを設定します。

  <hostname>.<portnumber>.com.sssw.srv.nameServicePort=<nameServicePort>

例:

  tundra.8080.com.sssw.srv.nameServicePort=55597

IIOP SSLポート範囲を設定するには、次のプロパティを使用します。

  <hostname>.<portnumber>.com.sssw.srv.port_iiop_ssl_min
  <hostname>.<portnumber>.com.sssw.srv.port_iiop_ssl_max

port_iiop_ssl_minプロパティは、IIOP SSLに対する下限を指定します。範囲を指定しなかった場合、ORBでは、最初に使用可能なポートを取得します。範囲を指定する必要がない場合は、「-1」を使用します。port_iiop_ssl_maxプロパティは、IIOP SSL通信に対する上限を指定します。上限がない場合は、「-1」を使用します。

既存のSilverMasterを更新するには、SilverMasterInitを-rオプションとともに実行します。

例:

  SilverMasterInit -C port.props -U smbb -P password -A administrator -W admin -r

-D database

指定したSilverMasterデータベースからすべてのAgテーブルを削除します。

指定したSilverMasterデータベースから既存のアプリケーションサーバシステムテーブル(ユーザ、グループ、およびライセンスデータを含む)をすべて削除します。サーバから展開データベースを削除する場合に使用します。

Fullモードとは異なり、このオプションを使用すると、アプリケーションサーバシステムデータが削除されますが、データが初期プロパティに置換されることはありません。

例:

  SilverMasterInit -U dbusername -P dbpassword -D Agdb

-e error log file

必要に応じて作成される指定のファイルにエラーを書き込みます。

エラーが見つからなかった場合、ログファイルは作成されません。

パスを指定しないと、エラーログファイルは、SilverMasterInitを実行した元のディレクトリに保存されます。デフォルトのファイル名はsminit.logです。

例:

  SilverMasterInit [-f or -r] -U dbusername -P dbpassword -e c:\ServerLogs\sminit.log

-f

新しいSilverMasterデータベースを作成するためにFullモードで実行します。

新しいSilverMasterシステムデータとリソースを作成します。このオプションを使用すると、既存のユーザ、グループ、およびライセンスデータが削除されます。

注記:   デフォルトでは、サーバは、Fullモードで実行すると制限されます。(開発環境に対して)制限されないようにサーバをインストールするには、SilverMasterInitを、Fullモードで-nとともに実行します。

Fullモードのデータベース初期化を実行する場合は、サーバ管理アカウント名とパスワードを指定する必要があります。

例:

  SilverMasterInit -f -U dbusername -P dbpassword -A adminusername -W adminpassword

-L jdbc log file

指定したログファイルにJDBCデバッグ情報を書き込みます。

ログファイル名を指定しなかった場合、このオプションは無視されます。

パスを指定しないと、JDBCログファイルは、サーバの\binディレクトリに保存されます。

例:

  SilverMasterInit [-f or -r] -L c:\ServerLogs\logs\jdbclogfile.log

-l locksmith account

Locksmith権限を持たせるユーザまたはグループ(のアカウント)を指定します。

このオプションは、Locksmith権限が与えられているアカウントの保持者を誤ってすべて削除してしまった場合に使用します。SilverMasterへのアクセスの再取得を参照してください。

-lオプションを実行している場合は、RefreshモードまたはFullモードを指定する必要はありません。

例:

  SilverMasterInit -l -U dbusername -P dbpassword

-n

アプリケーションサーバへのアクセスを無制限にします。

システムデータへのアクセスをロックしたり、ユーザ認証を要求したくない場合に使用します。

このオプションは、許可を設定することによってアクセスをロックするまで、ユーザが管理操作を実行したり、ディレクトリリストを表示したりすることができることを意味します。サーバとオブジェクトに対するデフォルトのセキュリティを参照してください。

-nオプションを実行している場合は、Fullモードを指定して、サーバ管理ユーザ名とパスワードも指定する必要があります。

例:

  SilverMasterInit -n -f -U dbusername -P dbpassword -A adminusername -W adminpassword

-O table space

SilverMasterに対して指定したOracleテーブルスペースにすべてのAgテーブルを作成します。

このオプションは、Oracleを使用してSilverMasterデータベースを作成する場合に使用します。Oracleデータベースによってデータが保存される方法のために、SilverMasterテーブルオブジェクトに対しては、(デフォルトよりも)さらにスペースを割り当てる必要があります。

例:

  SilverMasterInit [-f or -r] -U dbusername -P dbpassword -O tablespacename

-P dbpassword

SilverMasterにアクセスするためにアプリケーションサーバによって使用されるデータベースパスワードを指定します。

データベース管理パスワードと関連ユーザアカウントは、サーバのインストール中に、暗号化されてレジストリに保存されます。サーバでは、指定したアカウント名とパスワードを起動時に使用して、SilverMasterデータベースにアクセスします。

例:

  SilverMasterInit [-f or -r] -U dbusername -P dbpassword

-p properties file

指定したファイルから起動プロパティを読み込みます。

デフォルトは、サーバの\Resourcesディレクトリにあるhttpd.propsです。

デフォルト以外のSilverMaster起動プロパティファイルの名前と場所を指定する場合に使用します。

プロパティファイルオプションをSilverMasterInitで設定したら、新しいプロパティファイルを使用するために、コマンドラインからアプリケーションサーバを-pオプションとともに起動する必要があります。

例:

  SilverMasterInit [-f or -r] -p c:\Program Files\Novell\exteNdn\AppServer\Resources\httpd.newprops -U dbusername -P dbpassword

-r

SilverMasterリソースを更新するためにRefreshモードで実行します。

このプロセスでは、Fullモードによって使用されるデータベースのインストール手順の一部をスキップします。このオプションは、既存のユーザ、グループ、およびライセンスデータを削除したくない状況においてSilverMasterシステムデータとリソースを更新する場合に使用します。

例:

  SilverMasterInit -r -U dbusername -P dbpassword

-W adminpassword

アプリケーションサーバにログインして管理するために使用されるサーバ管理者アカウントパスワードを指定します。

サーバを管理するには、サーバ管理者ユーザとアカウントパスワードを使用します。

Fullモードのデータベース初期化を実行する場合は、サーバ管理アカウント名とパスワードを指定する必要があります。

例:

  SilverMasterInit -f -U dbusername -P dbpassword -A adminusername -W adminpassword

-U dbusername

アプリケーションサーバのSilverMasterデータベースユーザアカウントを指定します。

データベース管理ユーザアカウントと関連パスワードは、暗号化されてレジストリに保存されます。サーバでは、指定したアカウント名とパスワードを起動時に使用して、SilverMasterデータベースにアクセスします。

例:

  SilverMasterInit [-f or -r] -U dbusername -P dbpassword

-v

SilverMasterInitが実行されているときに詳細出力を生成します。

プロセスに失敗した場合に、このオプションを実行して、エラーが発生した場所を識別します。

例:

  SilverMasterInit [-f or -r] -v -U dbusername -P dbpassword

-x

SilverMaster初期化プロパティを表示した後、SilverMasterInitを開始せずに終了します。

ローカルサーバ起動プロパティを表示する場合に実行します。このオプションを使用しても、プロパティは変更または更新されません。このデバッグオプションは、誤って指定されている初期化設定をチェックするために使用します。

例:

  SilverMasterInit -x

 
Top of section

SilverMasterInitを使用したSilverMasterの再作成または更新

インストール中に作成されるSilverMasterデータベースは、SilverMasterInitを使用して再作成したり更新したりすることもできます。SilverMasterデータベースでは、アプリケーションサーバによって使用されるすべての展開データベースを追跡し、また、アプリケーションサーバのシステムテーブル(グループ、ユーザ、およびライセンス情報のテーブルを含む)も保持します。各サーバまたはクラスタには、SilverMasterカタログが1つ存在します。

For more information    SilverMasterデータベースの詳細については、展開データベースの設定を参照してください。

SilverMasterデータベースが壊れた場合は、SilverMasterInitを実行できます。アプリケーションサーバを起動できず、他に何をしても解決できない場合は、次のいずれかの方法を試してください。

警告:    接続に関する問題は、壊れたドライバ接続、壊れた展開データベース、またはネットワーク問題が原因の可能性があります。サーバに関する問題の原因について質問がある場合は、SilverMasterInitを実行する前にNovell exteNd テクニカルサポートまでご連絡ください。SilverMasterInitをFullモードで実行すると、既存のシステムテーブルのコンテンツがすべて削除され、初期化されたデータで置換されてしまいます。既存のシステムテーブル(展開済みのJ2EEアーカイブ、グループ、およびユーザデータのテーブルを含む)を保持する場合は、Fullモードで実行しないでください。

SilverMasterInitを使用したSilverMasterデータベースの更新

SilverMasterInitは、Refreshモードで実行して、SilverMasterプロパティをアップグレードしたり、SilverMasterプロパティにアクセスしたりできます。更新プロセスでは、Fullモードによって使用されるデータベースのインストール手順の一部をスキップします。既存のユーザ、グループ、および展開済みのJ2EEアーカイブを削除せずにSilverMasterシステムデータとリソースを更新するには、SilverMasterInitをRefreshモードで実行してください。

注記:   アプリケーションサーバのインストールプロセスの一環として、SilverMasterInitではリソースを更新します。アプリケーションサーバは、インストールプログラムを実行することによって、通常は更新します。

Procedure SilverMasterInitをRefreshモードで実行する

  1. アプリケーションサーバをシャットダウンします。

  2. サーバの\binディレクトリから、次のように入力します。

      SilverMasterInit -r options
    

    Creating Resources will take a few minutes; please wait」というメッセージが表示されます。

  3. エラーなしでSilverMasterInitが完了したら、アプリケーションサーバを再起動します。

SilverMasterInitを使用した新しいSilverMasterデータベースの作成

SilverMasterInitでは、SilverMasterが依存しているファイルやテーブルを誰かが削除または名前変更したことによって発生した問題を修正できる場合があります。アプリケーションサーバを起動できない場合、またはSilverMasterデータベースに接続できない場合は、SilverMasterInitの実行が必要な可能性があります。

SilverMasterInitでは、壊れたSilverMasterプロパティをリセットできますが、このプログラムでは、データベースに関連付けられている壊れたレジストリキー、設定ファイル、サンプルデータベース、またはファイルを修復することはできません。このようなタイプの問題を解決するには、インストールプログラムを実行してください。

データベーステーブルがすべて削除されないようにするためには、(Fullモードで実行する前に)SilverMasterInitをRefreshモードで実行してみて、サーバの問題が解決されるかどうかを確認してください。

SilverMasterInitをFullモードで実行して新しいSilverMasterプロパティを再生成する場合は、Silver Securityのユーザとグループの再作成、展開データベースの再追加、およびSilverMasterに展開されていたJ2EEアーカイブの再展開を行う必要があります。

Procedure SilverMasterInitをFullモードで実行する

  1. アプリケーションサーバをシャットダウンします。

  2. サーバの\binディレクトリから、次のように入力します。

      SilverMasterInit -f options
    

    Creating Resources will take a few minutes; please wait」というメッセージが表示されます。

  3. このコマンドからのエラーを記録します。

  4. アプリケーションサーバを起動します。

  5. 展開データベースを再び追加します。

  6. ユーザとグループを再作成します。

  7. SilverMasterに展開されていたJ2EEアーカイブを再展開します。

注記:   データへのアクセスをロックしたり、ユーザ認証を要求したくない場合は、-nオプションをFullモードで実行できます。

 
Top of section

SilverMasterへのアクセスの再取得

SilverMasterInitを使用すると、ロックされたリソースへのアクセスを再取得できます。SilverMasterデータベースは、アプリケーションサーバによってシステムリソースと他のデータベースへのリンクがすべて保存される場所です。デフォルトでは、Locksmith権限を持つユーザには、SilverMasterへの読み込みアクセス許可が与えられます。SilverMasterデータベースへのアクセスを全ユーザに対して誤って拒否してしまった場合、SMCからアプリケーションサーバに誰もアクセスできなくなります。

SilverMasterへの読み込みアクセスが制限されている疑いがある場合は、次の節を参照してください。

ロックされたリソースへのLocksmithオプションを使用したアクセス

デフォルトでは、Locksmith権限を持つ管理者と他のユーザは、データベース内にあるリソースのデータアクセス許可を取得して設定したり、すべてのSilverMasterリソースを読み込んだり、Locksmith権限を他のユーザやグループに与えたりすることができます。Locksmith権限を与えることのできるユーザは、Locksmith権限をすでに持っているユーザだけです。Locksmith権限が与えられているアカウントをすべて削除してしまった場合は、SilverMasterInit Locksmithオプションを使用してこの権限をユーザに与え、リソースへのアクセスを再取得できるようにしてください。

注記:   デフォルトでは、新しいインストールの後、またはSilverMasterInitをFullモードで実行した後、Locksmith権限が与えられた管理者アカウントが自動的に作成されます。

Locksmith権限を持つユーザは、SilverMasterにアクセスできると、リソースをロック解除したり、アクセス権限をリセットしたりできるようになります。

For more information    詳細については、Locksmith権限の使用を参照してください。

Procedure Locksmith権限をリセットする

  1. アプリケーションサーバをシャットダウンします。

  2. サーバの\binディレクトリから、次のように入力します。

      SilverMasterInit -l -U dbusername -P dbpassword
    

    これで、Locksmith権限を持つユーザは、SMCを使用してリソースをロック解除できます。

サーバ認証を使用したログインリソースへのアクセス

SMCまたはSilverMasterInitコマンドラインのいずれかから、サーバ認証を設定することができます。サーバ認証は、SilverMasterデータベースに対する読み込みアクセスを誤って制限してしまった場合に設定する必要があります。ユーザがSilverMasterにアクセスできない場合は、SilverMasterInitサーバ認証オプションを実行して、ユーザが最初にサーバに接続するときに自分自身を認証できるようにしてください。ユーザがSMCからアプリケーションサーバにログインすると、ログインリソースに対する要求が発行されます。SilverMasterへのアクセスが制限されている場合、ユーザは、データベースへの読み込みアクセスがないのでログインダイアログにアクセスできません。これは、SilverMasterに「ログイン」リソースが含まれているためです。

サーバ認証オプションを実行する場合は、FullモードまたはRefreshモードを指定する必要はありません。サーバ認証の設定後にサーバを再起動すると、サーバに初めてアクセスしたときに資格情報ダイアログボックスが表示され、ログインすることができます。

Procedure サーバ認証を設定する

  1. アプリケーションサーバをシャットダウンします。

  2. サーバの\binディレクトリから、次のように入力します。

      SilverMasterInit -a -U dbusername -P dbpassword
    
  3. アプリケーションサーバを再起動します。

    ユーザは、ログインするように指示されます。

 
Top of page

スタックオーバフローの処理

あいまいな状況では、スタックの制限を超えてしまう可能性があり、このような場合は、JVM (Java仮想マシン)によってjava.lang.StackOverflowErrorがスローされます。

 
Top of section

スタックについて

Java環境におけるWindowsシステムでは、少なくとも2つのプログラムスタックがあり(JVM実装によってはさらに多いこともあります)、そのいずれかがオーバフローしてStackOverflowErrorをスローする可能性があります。

JVMで作成された各スレッドには、独自のハードウェアスタックとJavaスタックがあります。

 
Top of section

スタックオーバフローになった場合の操作

デフォルトのスタックサイズが小さすぎると判断した場合は、各スタックのサイズを変更できます。ただし、スタックオーバフローエラーの最も一般的な原因は、メソッドが何度も再帰的にコールされた場合に発生するプログラミングエラーにあります。このような場合は、スタックのサイズを大きくしても、スタックオーバフローに関する問題は解決されません。スタックサイズを大きくしてみる前に、この種類のエラーがコードに含まれていないことを確認してください。スタックオーバフローが無限な再帰エラーに起因していない場合は、スタックサイズを大きくすることによってスタックオーバフローを修正できます。スタックがオーバフローするかどうかについては、試行錯誤してみて判断してください。

ハードウェアスタックのサイズは、実行可能ファイルのヘッダに保存されている値を使用して、オペレーティングシステムにより判断されます。実行可能ファイル(SilverServer.exe)では、デフォルトのスタックサイズが256Kに指定されています。

 
Top of section

スタックサイズの変更

スタックサイズを変更するには、MicrosoftのEDITBINユーティリティを使用して、実行可能ファイルのヘッダを変更する必要があります。たとえば、SilverServer.exeのデフォルトのスタックサイズを512Kに変更するには、次のコマンドラインを使用します。

  EDITBIN /STACK:0x80000 SilverServer.exe

ヒント:   実行可能ファイルを変更する前に、バックアップを作成しておいてください。

 
Top of section

Javaスタックサイズの変更

ハードウェアスタックのサイズを大きくしても問題が解決されない場合は、Javaスタックに問題がある可能性があります。JDKのドキュメントには、スタックサイズに影響を与える次の2つのコマンドラインオプションが紹介されています。

デフォルトは、それぞれ128Kと400Kです。これらのオプションは、JDK 1.2 (Java 2)ではドキュメント化されなくなりましたが、非標準(-X)スイッチとして持ち越されています。アプリケーションサーバ実行可能ファイルに対してこれらのオプションを設定するには、-Xではなく+Xを使用してください(アプリケーションサーバ実行可能ファイルでは、+オプションを、JVMに渡すオプションとして解釈します)。

For more information    アプリケーションサーバ起動オプションの詳細については、起動オプションの使用を参照してください。

 
Top of section

たとえば、アプリケーションサーバに対するネイティブスタックとJavaスタックを両方とも最大の512Kに設定するには、次のコマンドラインを使用します。

  SilverServer +Xss512k +Xoss512k

注記:   デフォルトのスタックサイズ値を大きくすると、各スレッドに割り当てられる仮想メモリの量も増えます。仮想メモリは、有限なリソースではありますが、大きなものです(Windows NTのような32ビットのオペレーティングシステムでは、2Gまでの仮想メモリをプロセスで処理できます)。スレッドごとに必要な仮想メモリの量を増やすと、作成できるスレッドの数は少なくなります。(サーバでは、接続されているクライアントごとに1つのスレッドを使用するため)これによりサーバでサポートできる同時接続ユーザ数も少なくなることを理解しておくことは重要です。

 
Top of page

その他の問題

この節では、分類されていなかった問題で解決しなければならない可能性のあるものの一部について説明します。

 
Top of section

サーバがハングしているように見える

アプリケーションサーバがハングまたはループしているように見える場合は、各スレッドのリスト(スタックトレースも含む)を生成します。リストを生成しても、サーバは停止しません。

NetWareの場合   設定したロガーバッファサイズがスレッドスタック情報を処理するのに十分大きいことを確認してください(再コールおよびレイアウトは、大きな数に設定することが推奨されます)。

アプリケーションサーバプロセスのJVM IDを判断します。

  java -show

スタックトレースを生成するには、次のように入力します。

  java -showstacksXXXX

ここで、XXXXは、アプリケーションサーバプロセスのJVM IDです。

スタックトレースを表示するには、次の操作を実行できます。

UNIXの場合   アプリケーションサーバを実行しているプロセスを判断します。

  ps -all | grep Silver

次のようなコマンドを発行します。

  kill -3 SilverServer_process_ID

アプリケーションサーバにより、サーバが起動された元のウィンドウに、各スレッドがスタックトレースとともにリストされます。

Windowsの場合   サーバを起動したウィンドウで、<Ctrl>+<Break>キーを押します。アプリケーションサーバにより、各スレッドがスタックトレースとともにリストされます。

 
Top of section

ソケット例外

NTアプリケーションログでソケット例外メッセージを受け取る場合があります。 通常は、クライアントが一方的にソケットを閉じたことを示しているため、これが問題になることはありません。Internet Explorerなどのブラウザでは、接続がしばらくアイドル状態であるとこのような処理が実行され、デバッグ機能を使用して実行中に、サーバのコンソールにソケット例外として表示されます。

このような警告は、単に通常の状態を反映しているため、一般的に無視してかまいません。



Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...