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