サーバ オブジェクト エクステンションのデバッグ

SOE(サーバ オブジェクト エクステンション)のデバッグでは、サービス プロセスの実行が必要になるため、いくつかの課題に直面することがあります。ArcGIS Server Manager には、Java SOE のデバッグに役立ついくつかの設定が用意されています。これらの設定については以下で詳しく説明します。.NET SOE のデバッグは、Visual Studio デバッガを使用して、ArcObjects .NET SDK のヘルプで説明されているワークフローを利用して実行できます。

Java SOE のデバッグ ワークフロー

SOE をデバッグするには、次の操作を行う必要があります。

手順:
  1. ArcGIS Server Manager を使用して、SOE を配置します。
  2. ArcGIS Server Manager を使用して、SOE のデバッグを有効にし、デバッグの設定を行います。これらの内容については以下で詳しく説明します。
  3. SOE コードの任意の場所にブレークポイントを設定します。
  4. サービスを停止した後、開始します。
  5. すぐに、サービスを実行しているオペレーティング システムのプロセスにデバッガをアタッチします。ブレークポイントが SOE イニシャライズ コードの中にあるときは、サービスが起動したときにブレークポイントに到達します。それ以外の場合は、SOE を使用したときにブレークポイントに到達します。
  6. ArcGIS Server Manager を使用してデバッグを無効にします。

ArcGIS Server Manager での Java SOE デバッグ設定の構成

デバッグを容易にするために、ArcGIS Server Manager では SOE の振舞いを変更することができます。サービスの起動を中断して、SOE イニシャライズ メソッドが呼び出される前にデバッガをサービス プロセスにアタッチできます。また、サービスのデバッグ中に使用されるさまざまなポートを指定することもできます。

ArcGIS Server Manager でこれらのデバッグの設定にアクセスするには、次の手順に従います。

手順:
  1. ArcGIS Server Manager にログインし、[サイト] をクリックします。
  2. [GIS サーバ] をクリックし、左側のメニューで [エクステンション] をクリックします。
  3. [デバッグ設定] をクリックします。
  4. [エクステンションのデバッグを有効化] をオンにします。

    これにより、ダイアログ ボックスの他のオプションが有効になります。

  5. 必要に応じて、[サービスの起動の一時停止] をオンにし、サービスの起動を遅らせる秒数を入力します。

    一部の SOE コードは、サービスの起動時に 1 回だけ実行されます。このコードは通常、IObjectConstruct インタフェースの Construct メソッドに置かれています。サービスの起動を中断すると、Construct メソッドを実行する前にデバッガをサービス プロセスにアタッチする時間が得られます。それにより、そのメソッドのコードに設定したブレークポイントに到達させることが可能になります。

  6. 必要に応じて、デバッグするときに使用するさまざまなポートを指定することができます。
  7. [保存] をクリックします。

これで、サービスの停止と開始を行い、サービスを実行しているオペレーティング システムのプロセスにデバッガをアタッチして、エクステンションをデバッグできます。サービスの起動を中断するタイム ウィンドウを設定した場合は、そのウィンドウに達する前にデバッガをサービス プロセスにアタッチする必要があります。そうしないと、SOE の Construct メソッドに設定したいずれのブレークポイントにも到達しません。

デバッグ処理の間は、必要な回数だけサービスの停止と開始を行えます。

注意注意:

エクステンションのデバッグが終了したら、デバッグの設定に戻り、[エクステンションのデバッグを有効化] をオフにします。これを行わずに、サービスの起動を中断する設定にしている場合は、サービスを起動するたびに遅れが生じます。

5/20/2014