ArcGIS Desktop

  • ドキュメント
  • サポート

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS Desktop

完全なプロ仕様の GIS

ArcGIS Enterprise

エンタープライズ GIS

ArcGIS for Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ヘルプ

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • その他...

SQL を使用してジオデータベースにアクセスするための Oracle extproc の構成

  • Oracle 11g および 12c
  • Oracle 10g

Oracle の ST_Geometry と ST_Raster という SQL 関数が使用する共有ライブラリには、Oracle の外部プロシージャ エージェント (extproc) を経由してアクセスします。ST_Geometry または ST_Raster を含む SQL を使用したり、GDB_ITEMS_VW および GDB_ITEMRELATIONSHIPS_VW ビュー内の ArcSDE XML 列にアクセスするには、Oracle がこれらの共有ライブラリにアクセスできるようにする必要があります。したがって、ライブラリは Oracle サーバー上に存在している必要があり、これらのライブラリを Oracle の外部プロシージャ フレームワークを通して呼び出す必要があります。

Oracle extproc を設定しなくても、ArcGIS で ST_Geometry と ST_Raster を使用することは可能です。ただし、ArcGIS クライアントの一部の機能と、SQL クライアントの機能すべて (SQL*Plus など) が使用できなくなります。たとえば、extproc が構成されていない場合、ArcMap のクエリ レイヤーの ST_Geometry 列で SQL 関数を使用したり、データベースのビュー内のフィーチャを特定したり、ST_Raster 列を含むバージョン テーブルを使用したり、ST_Raster 列を含む行を削除したり、ST_Geometry データを含むフィーチャ サービスを公開したり、SQL クライアントから SQL 関数を実行することはできません。

注意:

Oracle データベースが Windows サーバー上にインストールされている場合、Microsoft Visual C++ 2008 SP1 Redistributable Package (x64) のインストールが必要になることがあります。Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x64) が Oracle サーバーにない場合は、Microsoft のサイトからダウンロードしてインストールしてください。

Oracle 11g または 12c を使用している場合は、extproc.ora ファイルを編集して、Oracle の外部プロシージャ フレームワークを通して関数を呼び出すようにします。Oracle 10g を使用している場合は、Oracle リスナーを構成します。

Oracle 11g および 12c

Oracle では、Oracle 11g および 12c のリスナーを構成するのではなく、extproc.ora ファイルを変更して extproc を構成することを推奨しています。extproc.ora ファイルは、ORACLE_HOME\hs\admin ディレクトリに格納されています。

  1. extproc.ora ファイルのバックアップ コピーを Oracle サーバーに作成します。
  2. extproc.ora ファイルを開き、ST_Geometry (st_shapelib) ライブラリまたは ST_Raster ライブラリ (あるいは、その両方) の場所を指定するように変更します。

    Windows サーバー上のこの例では、次の行を追加して、mylibraries という名前のフォルダー内の ST_Geometry ライブラリを指定します。

    SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll

    ST_Geometry ライブラリと ST_Raster ライブラリを両方とも使用する場合は、次のように、両方のエントリを 1 行に配置できます。

    SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll;C:\\mylibraries\\libst_raster_ora.dll

    Linux または UNIX サーバー上のこの例では、次の行を追加して、ユーザーの esrilibs ディレクトリ内の ST_Geometry ライブラリを指定しています。esrilibs ディレクトリは、ライブラリを格納するために Oracle サーバー上に作成されています。

    SET EXTPROC_DLLS=ONLY:/user/esrilibs/libst_shapelib.so

    ST_Geometry ライブラリと ST_Raster ライブラリを両方とも使用する場合は、次のように、両方のエントリを 1 行に配置できます。

    SET EXTPROC_DLLS=ONLY:/user/esrilibs/libst_shapelib.so:/user/esrilibs/libst_raster_ora.so

  3. extproc.ora ファイルを保存して閉じます。
  4. ライブラリ (Web サービスを含む) にアクセスする必要のあるすべてのクライアントは、データベースに再接続する必要があります。

Oracle 10g

リスナーの構成において最も重要な部分は、共有ライブラリの場所を extproc に指定することです。共有ライブラリの場所を指定するためにリスナー構成を変更して Oracle リスナー プロセスを再起動すると、構成変更が反映されます。

2 つの標準 Oracle リスナー構成ファイル (tnsnames.ora および listener.ora) が関与します。通常は ORACLE_HOME/network/admin にあります。このドキュメントでは必要とされる構成設定を提示します。

設定を管理する方法はいくつかあります。テキスト エディターでテキスト ファイルを編集するか、Oracle Net Manager を使用するか、Oracle Net Configuration Assistant を使用できます。Oracle からは、リスナーの構成方法に関するドキュメントが提供されています。詳細については、『Oracle Database Net Services 管理者ガイド』をご参照ください。

tnsnames.ora ファイルには、既知のデータベース サービスのディレクトリが含まれています。このファイルによって、ローカル データベースまたはリモート サーバー上のサービスを定義できます。あるエントリは、ローカル データベースサーバーから、プロセス間通信 (IPC) を介して extproc に関数呼び出しをするためのものです。このエントリには EXTPROC_CONNECTION_DATA というラベルが付いています。このエントリの Key 値と SID 値はユーザーが変更できます。

これらのアイテムは、listener.ora ファイル内の対応する情報にこのエントリをリンクするために使用されます。キーには任意のショート ネームを付けることができますが、listener.ora ファイル内と tnsnames.ora ファイル内で同じ名前にする必要があります。これらの値では大文字と小文字が区別されます。これらを使用するのはリスナー プロセスのみで、ユーザーやアプリケーションが使用することはありません。

listener.ora ファイルには、リスナーがリクエストを処理するサービスの一部 (すべてである必要はない) が記述されます。

このファイル内で変更可能な値には、次のようなものがあります。

  • SID_LIST_LISTENER

    このラベルは、LISTENER (デフォルト リスナー名) という名前のリスナーで処理される SID のリストの最初に存在します。

  • SID_LIST および SID_DESC

    見出しの SID_LIST の下にある SID_DESC エントリは、サービスを定義します。リストの 1 番目は extproc リクエストを処理し、2 番目はクライアント セッションを処理します。

  • SID_NAME

    この値は、tnsnames.ora ファイル内で extproc に指定されている SID と一致させる必要があります。

  • ORACLE_HOME

    このサービスの Oracle ホームの場所を定義します。extproc プログラム ファイルはこの場所の下にあるフォルダーから読み込みます。

  • PROGRAM

    extproc 実行可能ファイルのファイル名を指定します。この名前は大文字と小文字が区別され、オペレーティング システムの種類によって extproc または extproc.exe になります。このファイルは ORACLE_HOME/bin に配置されています。

  • ENVS

    extproc が実行時に使用する環境変数のリストです。このリストはコロン区切りです。このリストには、環境変数 EXTPROC_DLLS と、extproc が実行時に使用するその他の環境変数 (UNIX および Linux システムでは LD_LIBRARY_PATH、SHLIB_PATH、または LIBPATH、Windows サーバーでは PATH などを含む) の定義を含めなくてはなりません。PATH 変数には、多くの場合、ジオメトリと投影エンジンのライブラリの場所が含まれています。

  • EXTPROC_DLLS

    この環境変数は、extproc が読み込んで、関数を直接呼び出すことのできるライブラリのリストを定義します。ここでは、shape ライブラリ (ST_Geometry タイプにアクセスしたり、SQL を使用して GDB_ITEMS_VW および GDB_ITEMRELATIONSHIPS_VW ビューにアクセスするために必要) と、st_raster ライブラリ (SQL を使用して ST_Raster タイプにアクセスするために必要) を含むファイルへのパスを指定する必要があります。

    UNIX にインストールされた Oracle サーバーではリストはコロン区切りで、Windows にインストールされた Oracle サーバーではセミコロン区切りです。パスはすべて、絶対パスでローカル ディレクトリを指しているか、Oracle システム ユーザーがアクセスできる UNC パスでなければなりません。これは、Oracle とは別のサーバーに ArcSDE アプリケーション サーバーをインストールした場合は、Oracle サーバーに SDEHOME 環境変数で指定されたフルパス名の下にあるbin ディレクトリから ST_SHAPELIB と LIBST_RASTER ライブラリをコピーする必要があるということでもあります。

    環境変数の代替は存在しません。

    オプションのキーワードである ANY および ONLY を使用することで、extproc によるライブラリ ファイルの使用を開放または制限できます。パスの先頭に ANY を付けると、Oracle は指定したパスからすべてのライブラリを読み込むことができます。ライブラリ名を指定する必要はありません。パスの先頭に ONLY を付けると、Oracle はパス内に指定された特定のライブラリのみを使用します。

  • KEY

    この項目で設定した値によって、tnsnames.ora ファイルの該当するサービス項目にこのリスナーがリンクされます。これによって、このリスナーは同じデータベース サーバー上に存在する IPC リスナーと区別されます。KEY は任意の短い名前ですが、listener.ora ファイルと tnsnames.ora ファイルで同じでなければなりません。KEY は大文字と小文字が区別されます。

  1. 変更を行う前に、tnsnames.ora ファイルと listener.ora ファイルのバックアップ コピーを作成します。
  2. Oracle サーバーで tnsnames.ora ファイルを開きます。
  3. tnsnames.ora ファイルの EXTPROC_CONNECTION_DATA で Key と SID の値を変更します。

    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(Key = EXTPROC1))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
    )

    この項目のラベルは必ず EXTPROC_CONNECTION_DATA でなければなりません。この項目は、データベース サーバーがプロセス間通信を介して extproc に関数呼び出しを送信するときに使用されます。

  4. 変更内容を保存して tnsnames.ora を閉じます。
  5. Oracle サーバーで listener.ora ファイルを開きます。
  6. 必要な項目を変更して、リスナーがリクエストを受け付けるサービスを設定します。

    以下の最初の例は、Windows オペレーティング システム用です。ST_Geometry ライブラリと ST_Raster ライブラリは、gislibs という名前のフォルダーにあります。

    LISTENER =
    (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = svr1.dmn1.com)(PORT = 1521))
        )
     )
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
          (PROGRAM = extproc)
             (ENVS="EXTPROC_DLLS=C:\gislibs\st_shapelib.dll;C:\gislibs\libst_raster_ora.dll")
     )  
    )

    次の例は、ST_Geometry ライブラリと ST_Raster ライブラリが /arcgis/libs に格納されいている Linux または UNIX サーバー用のエントリを示しています。

    LISTENER =
    (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = svr1.dmn1.com)(PORT = 1521))
        )
    )
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /servit/oracle/product/10.2.0/db_1)
          (PROGRAM = extproc)
             (ENVS="EXTPROC_DLLS=/arcgis/libs/libst_shapelib.so:/arcgis/libs/libst_raster_ora.so")
        )
       )

  7. listener.ora ファイルを変更して保存した後に、Oracle リスナーを再起動します。

ArcGIS Desktop

  • ホーム
  • ドキュメント
  • サポート

ArcGIS プラットフォーム

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • スタッフ ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
ご意見・ご感想をお寄せください。
Copyright © 2017 Esri. | プライバシー | リーガル