ArcSDE サービスの概要
このトピックでは、ArcSDE サービスの仕組みと ArcSDE サービスを使用してクライアントが接続する際の処理を説明します。
ArcSDE サービスの仕組み
ArcSDE サービス(ArcSDE アプリケーション サーバ)を使用してデータベースに接続する際、各 ArcSDE サービスは giomgr プロセスを通じて、特定の TCP/IP サービス名とポート番号でユーザ接続を待ち受けます。デフォルトのサービス名は「esri_sde」、ポート番号は 5151 です。
UNIX または Linux システムでは、サービス名とポート番号は $SDEHOME/etc/services.sde ファイルに登録されています。このファイルの詳細については、「services.sde ファイル」をご参照ください。
Windows システムでは、ArcSDE サービスは ArcSDE のポスト インストール セットアップ時に Windows サービスとして作成されます。この ArcSDE サービスは、サーバ ホストの再起動時に自動的に開始されるように設定されます。すべての Windows サービスと同様に、ArcSDE サービスは通常、Windows の [サービス] メニューから開始または停止します。ポスト インストール ウィザードにより、デフォルト サービスのサービス名とポート番号がレジストリおよび Windows サービス ファイルと ArcSDE サービス ファイルの両方に自動的に設定されます。
サポートされているほとんどの DBMS(database management systems)では、サーバに複数のデータベースを配置できます。データベースごとに独自の ArcSDE サービスを使用する必要がありますが、各ArcSDE サービスを使用してデータベースに複数のクライアントが接続できます。
ArcSDE サービスを使用したクライアント アプリケーションからの接続
ArcSDE クライアント アプリケーションが ArcSDE サービスを使用して ArcSDE ジオデータベースに接続する際には、以下の処理が順番に実行されます。
-
giomgr プロセスが TCP/IP ポートで接続を待ち受ける
giomgr プロセスが接続リクエストを処理するには、事前に待ち受けを開始していなければなりません。ArcSDE サービスが起動し UNIX および Linux 上で待ち受けを開始していることを確認するには、sdemon -o status コマンドを使用して giomgr プロセスの状態を確認します。
Windows では、ArcSDE アプリケーション サービスの状態を [サービス] メニューから確認します。Windows の [管理ツール] を開きます。[サービス] アイコンをダブルクリックして [サービス] メニューを起動します。ArcSDE サービスの [状態] は [開始] に設定されているはずです。Windows でも、[サービス] メニューのかわりに [コマンド プロンプト] から sdemon -o status コマンドを使用することができます。
-
アプリケーションが ArcSDE サービスに接続リクエストを送信する
giomgr プロセスは、接続リクエストを順番に処理します。使用している DBMS によっては、giomgr プロセスが接続リクエストを確認するのに 1 ~ 5 秒ほどかかる場合があります。多くのアプリケーションが同時に ArcSDE 接続を確立しようとした場合、TCP/IP の標準タイムアウトである 75 秒を超えてしまうことがあります。
-
giomgr プロセスがアプリケーション コンピュータのクロック タイムとホストのクロック タイムを比較する
アプリケーション コンピュータのクロック タイムがサーバのクロック タイムよりも MAXTIMEDIFF 値の秒数以上経過していた場合、giomgr プロセスはそのアプリケーションの接続を許可しません。MAXTIMEDIFF は、SERVER_CONFIG テーブルで設定されます。詳細については、「giomgr.defs ファイルと SERVER_CONFIG システム テーブル」をご参照ください。
-
giomgr プロセスがクライアント アプリケーションのバージョンと ArcSDE サービスのバージョンを比較する
ArcGIS 9.2 の SP5 以降のサービス パックをインストールしているクライアント以外は、クライアント アプリケーションのバージョンがアプリケーション サーバのバージョンよりも古い場合、接続することはできません。一般的に、ArcSDEアプリケーションには後方互換性があります。たとえば、ArcGIS Desktop 9.2 など ArcSDE 9.2 の API で開発されたアプリケーションは、ArcSDE サービスを通じて ArcSDE 9.1 以前のデータベースに接続することができます。ArcSDE の以前のバージョンの API で開発されたアプリケーションは、ArcSDE 9.2 のアプリケーション サーバに接続することはできません。たとえば、ArcGIS Desktop 9 から ArcSDE 9.2 のジオデータベースに接続することはできません。サポートされている ArcSDE のバージョンについては、Esri サポート サイトをご参照ください。
-
giomgr プロセスがアプリケーションを処理する gsrvr プロセスを開始する
giomgr プロセスは、gsrvr プロセスを生成できなければなりません。現在のオペレーティング システムによって制限されているプロセスの最大数に達した場合、この処理は失敗し、gsrvr プロセスは生成されません。
-
gsrvr プロセスが DBMS に接続する
giomgr プロセスに接続リクエストを送信する際、クライアント アプリケーションは有効なユーザ名、パスワード、データベース名(Oracle DBMS の場合は不要)を提供する必要があります。無効な情報を指定すると、-9 SE_INVALID_USER エラーになります。
-
giomgr プロセスがアプリケーションを gsrvr プロセスにアタッチする
アプリケーションを gsrvr プロセスにアタッチした giomgr プロセスは、新しい接続の待ち受けと他の ArcSDE サービス管理タスクの実行に戻ります。アプリケーションと DBMS との通信はすべて、gsrvr プロセスを通じて処理されます。