Symfoware(R) Server RDBユーザーズガイド 応用プログラム開発編 - FUJITSU -
目次 索引 前ページ次ページ

上へ第3章 ルーチンを利用する応用プログラムの作成方法
上へ3.2 ファンクションルーチンを利用する場合

3.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システム内で一つを指定します。実効ユーザIDの指定は、システム用の動作環境ファイルの実行パラメタEXTERNAL_PROCESS_USERで行います。システム用の動作環境ファイルの実行パラメタについては、UNIX系の場合は“セットアップガイド”を、Windowsの場合は“RDB管理者ガイド”を参照してください。

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

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

[UNIX系の場合]

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

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

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

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

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

[Windows 2000およびWindows Server 2003の場合]

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

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

 

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

 

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

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


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

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