エクステンション (SOE または SOI) のデバッグでは、サービス プロセスの実行が必要になるため、いくつかの課題に直面することがあります。ArcGIS Server Manager には、Java エクステンションのデバッグに役立ついくつかの設定が用意されています。これらの設定については以下で詳しく説明します。
デバッグ ワークフロー
エクステンションをデバッグするには、次の操作を行う必要があります。
- ArcGIS Server Manager を使用して、エクステンションを配置します。
- ArcGIS Server Manager を使用して、エクステンションのデバッグを有効にし、デバッグの設定を行います。これらの内容については以下で詳しく説明します。
- エクステンション コードの任意の場所にブレークポイントを設定します。
- サービスを停止した後、開始します。
- すぐに、サービスを実行しているオペレーティング システムのプロセスにデバッガをアタッチします。ブレークポイントがエクステンション イニシャライズ コードの中にあるときは、サービスが起動したときにブレークポイントに到達します。それ以外の場合は、エクステンションを使用したときにブレークポイントに到達します。
- ArcGIS Server Manager を使用してデバッグを無効にします。
ArcGIS Server Manager でのデバッグ設定の構成
デバッグを容易にするために、ArcGIS Server Manager ではエクステンションの振舞いを変更することができます。サービスの起動を中断して、エクステンション イニシャライズ メソッドが呼び出される前にデバッガをサービス プロセスにアタッチできます。また、サービスのデバッグ中に使用されるさまざまなポートを指定することもできます。
ArcGIS Server Manager でこれらのデバッグの設定にアクセスするには、次の手順に従います。
- ArcGIS Server Manager にログインし、[サイト] をクリックします。
- [GIS サーバー] > [エクステンション] の順にクリックします。
- [デバッグ設定] をクリックして、[エクステンションのデバッグを有効化] をオンにします。これにより、ダイアログ ボックスの他のオプションが有効になります。
- 必要に応じて、[サービスの起動の一時停止] をオンにし、サービスの起動を遅らせる秒数を入力します。
一部のエクステンション コードは、サービスの起動時に 1 回だけ実行されます。このコードは通常、IObjectConstruct インターフェイスの Construct メソッドに置かれています。サービスの起動を中断すると、Construct メソッドを実行する前にデバッガをサービス プロセスにアタッチする時間が得られます。それにより、そのメソッドのコードに設定したブレークポイントに到達させることが可能になります。
- 必要に応じて、デバッグするときに使用するさまざまなポートを指定することができます。
- [保存] をクリックします。
これで、サービスの停止と開始を行い、サービスを実行しているオペレーティング システムのプロセスにデバッガをアタッチして、エクステンションをデバッグできます。サービスの起動を中断するタイム ウィンドウを設定した場合は、そのウィンドウに達する前にデバッガをサービス プロセスにアタッチする必要があります。そうしないと、エクステンションの Construct メソッドに設定したいずれのブレークポイントにも到達しません。
デバッグ処理の間は、必要な回数だけサービスの停止と開始を行えます。
注意:
エクステンションのデバッグが終了したら、デバッグの設定に戻り、[エクステンションのデバッグを有効化] をオフにします。これを行わずに、サービスの起動を中断する設定にしている場合は、サービスを起動するたびに遅れが生じます。