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