Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU -
目次 索引 前ページ次ページ

第4章 ルーチンを利用するアプリケーションの作成> 4.2 ファンクションルーチンを利用する場合

4.2.5 ファンクションルーチンの実行

関数として定義したファンクションルーチンを実行するには、SQL文の選択リストや値指定などに指定して実行します。ファンクションルーチンを呼び出すアプリケーションのコンパイル・リンクでは、sqlcc、sqlfcc、sqlpcobコマンドに、-W2000オプションを指定してください。以下に、SQL文の記述例を示します。

スキーマ名およびルーチン名は、それぞれ、“SCM1”、“USERFUNC001”であるとします。
SELECT SCM1.USERFUNC001(NAME, CODE, AGE)
       FROM SCM1.CUSTOMER
       WHERE AGE BETWEEN :AGE1 AND :AGE2 ;

ファンクションルーチンは、Symfoware/RDBから新たに起動されるプロセスで実行されます。ファンクションルーチンが動作するプロセスの実効ユーザIDは、RDBシステム内で1つを指定します。実効ユーザIDの指定は、システム用の動作環境ファイルの実行パラメタEXTERNAL_PROCESS_USERで行います。

システム用の動作環境ファイルの実行パラメタについては“セットアップガイド”を参照してください。

■ファンクションルーチンを実行するプロセスが異常終了した場合の注意事項

ファンクションルーチンを実行するプロセスが何らかの原因で異常終了した場合、以下のエラーメッセージが出力されます。

コンソールおよびRDBREPORTで指定したメッセージログファイルに、以下のエラーメッセージが出力されます。

Tue Apr 17 17:47:07 2007
rdb: INFO: qdg13783i:ファンクショルーチンを実行したプロセスのコアファイルを採取しました コアファイル名は
/usr/local/rdb1/rdbcore/core_fnc_9356.070417.174709です (システム名=rdb1)

Tue Apr 17 17:47:08 2007
rdb: ERROR: qdg13781u:ファンクションルーチンを実行するプロセスが異常終了しました 原因=signal number : 11 (システム名=rdb1)

Tue Apr 17 17:47:09 2007
rdb: ERROR: qdg13782u:ファンクションルーチンのライブラリ内で異常が発生しました (システム名=rdb1)    (注)

注) qdg13782uのメッセージが出力された場合は、ファンクションルーチンのライブラリ内で、何らかの原因で異常が発生したことを示します。メッセージに示された原因の情報をもとに、異常終了した原因を調査してください。

イベントログに以下のエラーメッセージが出力されます。

qdg13783i:ファンクショルーチンを実行したプロセスのコアファイルを採取しました コアファイル名はcore_fnc_1496.20070417.205903です (システム名=RDB1)

 

qdg13781u:ファンクションルーチンを実行するプロセスが異常終了しました 原因=exception code : 0xc0000005 (システム名=RDB1)

 

qdg13782u:ファンクションルーチンのライブラリ内で異常が発生しました (システム名=RDB1)    (注)

注) qdg13782uのメッセージが出力された場合は、ファンクションルーチンのライブラリ内で、何らかの原因で異常が発生したことを示します。メッセージに示された原因の情報をもとに、異常終了した原因を調査してください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007-2008