ヘッダーをスキップ
Oracle® Databaseインストレーションおよび構成ガイド
11gリリース2 (11.2) for Fujitsu BS2000/OSD
E49830-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

11 外部プロシージャ

この章では、外部プロシージャコールを操作できるBS2000/OSDでの環境の作成方法を説明します。『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』の基礎セクションにある外部ルーチンに関する章を補完します。

11.1 外部プロシージャのロード

この項では、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』の対応する部分を補完します。

次の手順に従って、外部プロシージャをロードします。

  1. 環境を設定します。

    外部プロシージャは、コール元と同じプロセスおよびアドレス空間では実行されません。安全性の高い方法で操作するために、Oracleでは別個のプロセスが作成されます。この目的のためにOracle Net Services機能が使用され、ユーザーは、適切なOracle Net Servicesのパラメータ・ファイルを指定する必要があります。この項では、動作方法の例を記載しています。詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』Oracle Databaseデータ・カートリッジ開発者ガイドおよびOracle Database Net Servicesのドキュメント・セットを参照してください。

    listener.oraファイルには、次のエントリが必要です。

    (SID_DESC = (SID_NAME = ep_agt1)
                (ENVS = EXTPROC_DLLS=ANY)
                (ORACLE_SID = sid_of_your_database)
                (PROGRAM = EXTPROC)
    )
    

    tnsnames.oraファイルには、次のエントリが必要です。

    extproc_connection_data = (DESCRIPTION =(ADDRESS =(PROTOCOL=ipc)
    (KEY = sid_of_your_database)(CONNECT_DATA =(PRESENTATION=RO)
    (SID = ep_agt1)))
    

    その後、リスナーを開始できます。

  2. DLLを識別します。

    BS2000環境のDLLは、外部プロシージャと呼ばれる関数が含まれているBS2000 LMSライブラリです。EXTPROCがロードされると、これらの関数がプログラムに動的にバインドされます。

    次のコマンドを使用してOracleに対するライブラリを識別します。

    CREATE LIBRARY my_c_library AS '$myuserid.my-modlib';
    

    外部Cルーチンはコンパイルされ、生成されたLLMがLMSライブラリに格納される必要があります。MODULE-PROPERTIESオプションをLOWER-CASE-NAMES=*NOに設定している場合は、エントリ名に使用されているすべての小文字が大文字に変換されます。

    さらに、MODULE-PROPERTIESオプションにSPECIAL-CHARACTERS=*CONVERT-TO-DOLLARを設定している場合、エントリ名に使用されているすべてのアンダースコア(_)がドル記号($)に変換され、この記号は外部プロシージャの発行時に考慮される必要があります。

  3. 外部プロシージャの発行および実行は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』の説明と同じです。外部プロシージャの実行に関する結果メッセージは、L.sid.EXTP.SYSOUT.tsnという名前のファイルにあります。