Oracle® Databaseインストレーションおよび構成ガイド 11gリリース2 (11.2) for Fujitsu BS2000/OSD E49830-02 |
|
前 |
次 |
この章では、外部プロシージャコールを操作できるBS2000/OSDでの環境の作成方法を説明します。『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』の基礎セクションにある外部ルーチンに関する章を補完します。
この項では、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』の対応する部分を補完します。
次の手順に従って、外部プロシージャをロードします。
環境を設定します。
外部プロシージャは、コール元と同じプロセスおよびアドレス空間では実行されません。安全性の高い方法で操作するために、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)))
その後、リスナーを開始できます。
DLLを識別します。
BS2000環境のDLLは、外部プロシージャと呼ばれる関数が含まれているBS2000 LMSライブラリです。EXTPROC
がロードされると、これらの関数がプログラムに動的にバインドされます。
次のコマンドを使用してOracleに対するライブラリを識別します。
CREATE LIBRARYmy_c_library
AS '$myuserid.my-modlib
';
外部Cルーチンはコンパイルされ、生成されたLLMがLMSライブラリに格納される必要があります。MODULE-PROPERTIES
オプションをLOWER-CASE-NAMES
=*NO
に設定している場合は、エントリ名に使用されているすべての小文字が大文字に変換されます。
さらに、MODULE-PROPERTIESオプションにSPECIAL-CHARACTERS
=*CONVERT-TO-DOLLAR
を設定している場合、エントリ名に使用されているすべてのアンダースコア(_
)がドル記号($
)に変換され、この記号は外部プロシージャの発行時に考慮される必要があります。
外部プロシージャの発行および実行は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』の説明と同じです。外部プロシージャの実行に関する結果メッセージは、L
.sid
.EXTP
.S
YSOUT
.tsn
という名前のファイルにあります。