| Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU - | 
			目次
			索引
			![]()  
		 | 
	
アプリケーションのコンパイル・リンク時および実行時の動作環境のチューニングは、環境変数で指定できます。
LANG

RDBDB
SQLPC
SQLPCOB
INCDIR

INCLUDE
LD_LIBRARY_PATH_64
LD_LIBRARY_PATH
RDBNAME
SQLRTENV
このほかに、アプリケーションの動作環境ファイルの実行パラメタに関する環境変数もあります。アプリケーションの動作環境のチューニングは、主に動作環境ファイルで行いますが、一部の環境については、環境変数で指定することもできます。環境変数に指定するパラメタはrdbuptコマンドおよびrdbunlsqlコマンドでも有効になります。
環境変数による指定と動作環境ファイルによる指定が重複する場合は、環境変数による指定が優先されます。
環境変数と動作環境ファイルの実行パラメタの対応を以下に示します。
| 
 環境変数名  | 
 動作環境ファイルの実行パラメタ  | 
|---|---|
| 
 CHAR_SET  | 
|
| 
 COREFILE_PATH  | 
|
| 
 CLUSTER_SERVICE_NAME  | 
|
| 
 DIV_TRACE_FILE  | 
|
| 
 INCLUSION_DSI  | 
|
| 
 DSO_LOCK  | 
|
| 
 ISOLATION_WAIT  | 
|
| 
 SQL_LEVEL  | 
|
| 
 MSG_PRINT  | 
|
| 
 NCHAR_CODE  | 
|
| 
 DEFAULT_OBJECT_TABLE_SIZE  | 
|
| 
 DEFAULT_INDEX_SIZE  | 
|
| 
 DEFAULT_TABLE_SIZE  | 
|
| 
 DEFAULT_DSI_TYPE  | 
|
| 
 PARALLEL_SCAN  | 
|
| 
 RCV_MODE  | 
|
| 
 R_LOCK  | 
|
| 
 ROUTINE_SNAP  | 
|
| 
 SIGNAL_INF  | 
|
| 
 SET_CALLBACK  | 
|
| 
 SORT_MEM_SIZE  | 
|
| 
 DSI_EXPAND_POINT  | 
|
| 
 TRAN_SPEC  | 
|
| 
 SQL_SNAP  | 
|
| 
 WORK_MEM_SIZE  | 
|
| 
 WORK_PATH  | 
各環境変数の指定形式と意味は、以下のとおりです。

LANG = {ja | ja_JP.PCK | ja_JP.UTF-8 | C}

LANG = {ja_JP.UTF-8 | C}
UNIX系システムにおいて、アプリケーションのロケールを指定します。
指定したロケールからアプリケーションの言語や文字コード系が決まります(下表参照)。具体的には、以下に影響を与えます。
アプリケーションのソースコード
アプリケーションの入出力ファイル
クライアント用の動作環境ファイル
SQLメッセージ(SQLMSG)
SQLメッセージは、以下のロケールの強度に従ってロケールが決まります。
(強い)LC_ALL > LC_MESSAGE > LANG(弱い)
Symfoware/RDBは、ロケールの言語がjaで始まる場合は日本語のメッセージを出力し、それ以外のロケール(Cロケールなど)の場合は英語でメッセージを出力します。
| 
 対象OS  | 
 ロケール  | 
 文字コード系  | 
|---|---|---|
| 
 
  | 
 ja  | 
 EUCコード  | 
| 
 ja_JP.PCK  | 
 シフトJISコード  | 
|
| 
 ja_JP.UTF-8  | 
 UNICODE  | 
|
| 
 C  | 
 インストール時の文字コード系が設定されます。(注)  | 
|
| 
 
  | 
 ja_JP.UTF-8  | 
 UNICODE  | 
| 
 C  | 
 インストール時の文字コード系が設定されます。(注)  | 
注) アプリケーションのデフォルトの文字コード系は、アプリケーションが動作する環境により決まります。
| 
 アプリケーションが動作する環境  | 
 アプリケーションのデフォルトの文字コード系  | 
|---|---|
| 
 Symfoware/RDBと同一サーバのアプリケーション  | 
 データベースの文字コード系  | 
| 
 Connection Managerを利用するアプリケーション  | 
 Connection Managerインストール時の文字コード系  | 
| 
 クライアント端末のアプリケーション  | 
 Symfoware Server クライアント機能インストール時の文字コード系  | 
RDBCHARSET = {EUC_S90|EUC_U90|EUC|SJIS|UTF8}
文字列型のホスト変数、文字列型の動的パラメタ、および、SQLMSGの文字コード系を指定します。この指定は、アプリケーションをC言語で記述している場合に有効です。
データベースに格納される文字列型データの文字コード系とRDBCHARSETとの関係を以下に示します。
| 
 データベースの文字コード系  | 
 RDBCHARSETの指定  | 
||||
|---|---|---|---|---|---|
| 
 EUC_S90  | 
 EUC_U90  | 
 EUC  | 
 SJIS  | 
 UTF8  | 
|
| 
 EUCコードのS90コード  | 
 ◎  | 
 ×  | 
 ○  | 
 ○  | 
|
| 
 EUCコードのU90コード  | 
 ×  | 
 ◎  | 
 ○  | 
 ○  | 
|
| 
 シフトJISコード  | 
 ○  | 
 ○  | 
 ◎  | 
 ○  | 
|
| 
 UNICODE  | 
 ○  | 
 ○  | 
 ○  | 
 ◎  | 
|
◎:指定可能(省略値)
○:指定可能
×:指定不可能

アプリケーションをCOBOLで記述している場合は、本パラメタは無視されます。詳細は、“文字コード系の決定”を参照してください。

RDBCOREPATH = 絶対パス名
アプリケーションまたはRDBコマンドで異常が発生した場合のダンプ出力先ディレクトリを指定します。省略した場合は、カレントディレクトリに出力します。
RDBCSNAME = クラスタサービス名
PRIMECLUSTERまたはSafeCLUSTERと連携する場合、アプリケーションが登録されている、クラスタシステム上のクラスタサービス名を指定します。
RDBDIVTRC = ({YES | NO})
複数のアプリケーションが動作する場合、出力ファイル名(SQL_SNAP機能やROUTINE_SNAP機能によって出力されるファイル、および、アクセスプラン情報やSQL性能情報を取得するファイル)の後ろに、プロセスIDなどの情報を付加して個別のトレース情報を出力するか否かを指定します。省略した場合は、NOが指定されたとみなします。
ログイン名
プロセスID
セション開始時間
出力ファイル名をsqlsnap.lstとし、ログイン名がtest、プロセスIDが288、セション開始時間が2007年4月16日12時34分56秒であるとした場合、以下のファイルに情報が出力されます。
sqlsnap_test_288_20070416123456.lst

アプリケーションがマルチスレッド環境で動作する場合は、RDBDIVTRCの指定に関係なく、自動的に以下の情報を出力ファイル名の後に付加して、個別のトレース情報を出力します。
ログイン名
プロセスID
セションID
セション開始時間
RDBDSI = データベース名.DSI名[,データベース名.DSI名・・・]
アプリケーションで、DSIを限定したい表のDSI名を指定します。
アプリケーションでは、限定されたDSIを含む表に対しては、そのDSIだけがデータ操作の範囲となります。また、本実行パラメタの指定により、アプリケーション中での探索条件の記述が省略できます。なお、アプリケーションでDSIを限定していない表に対しては、データ操作をすることができます。
RDBDSO = DSO名[/[P][占有モード]][,DSO名[/[P][占有モード]]・・・]
アプリケーションで使用するDSOおよびその占有の単位、占有モードを指定します。RDBDSOが指定された場合、SET TRANSACTION文は指定できません。
また、環境変数RDBRLOCK=YESを指定することはできません。
データベース名.DSO名
RDBLOCK = DYNAM[,{WAIT | REJECT}]
あるトランザクションで資源にアクセスしようとしたとき、別のトランザクションがその資源を占有していた場合に、資源の占有が解除されるまで待つか否かを指定します。省略した場合は、WAITが指定されたとみなします。
RDBLSQL = ({SQL88 | SQL92 | SQL95 | SQL96 | SQL2000})
アプリケーションの予約語のレベルを設定します。環境変数の指定を省略した場合は、SQL2000が指定されたとみなします。
予約語のレベルを設定することで、キーワードの範囲を変更できます。
ファンクションルーチンおよびロールを利用する場合は、SQL2000が指定されていなければなりません。
プロシジャルーチンで、条件宣言、ハンドラ宣言、SIGNAL文およびRESIGNAL文を利用する場合は、SQL2000が指定されていなければなりません。これらを利用しないプロシジャルーチンの場合は、SQL95、SQL96またはSQL2000のいずれかを指定します。
トリガ、行識別子または並列指定を利用する場合は、SQL96またはSQL2000を指定します。

各予約語のレベルにおけるキーワードについては、“SQLリファレンス”を参照してください。
RDBMSG = E
SQL文実行時に、エラーメッセージを標準エラー出力に出力するか否かを指定します。エラーメッセージを出力する場合は、Eを指定します。エラーメッセージを標準エラー出力に出力しない場合は、この環境変数を指定しません。
RDBNCHAR = {EUC_S90|EUC_U90|EUC|COBOL_EUC_S90|COBOL_EUC_U90|COBOL_EUC|SJIS |UTF8|UCS2|UCS2B}
各国語文字列型のホスト変数、各国語文字列型の動的パラメタの文字コード系を指定します。この指定は、アプリケーションをC言語で記述している場合に有効です。
データベースに格納される各国語文字列型データの文字コード系とRDBNCHARとの関係を以下に示します。
| 
 データベースの文字コード系  | 
 RDBNCHARの指定  | 
|||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 
 EUC_S90  | 
 COBOL_EUC_S90  | 
 EUC_U90  | 
 EUC  | 
 COBOL_EUC_U90  | 
 COLBOL_EUC  | 
 SJIS  | 
 UTF8  | 
 UCS2  | 
 UCS2B  | 
|
| 
 EUCコードのS90コード  | 
 ◎  | 
 ×  | 
 ○  | 
 ○  | 
||||||
| 
 EUCコードのU90コード  | 
 ×  | 
 ◎  | 
 ○  | 
 ○  | 
||||||
| 
 シフトJISコード  | 
 ○  | 
 ○  | 
 ◎  | 
 ○  | 
||||||
| 
 UNICODE  | 
 ○  | 
 ○  | 
 ○  | 
 ◎  | 
||||||
◎:指定可能(省略時は、RDBCHARSETに設定される値かRDBCHARSETの省略値)
○:指定可能
×:指定不可能

アプリケーションをCOBOLで記述している場合は、本パラメタは無視されます。詳細は、“文字コード系の決定”を参照してください。
RDBOBJTB = ページ長,初期量[,拡張量,拡張契機]
動的SQLを使用して格納構造定義を簡略化した表を定義する場合、OBJECT構造の表のデータ格納域の割付け量、ページ長などを指定します。単位はキロバイトです。この環境変数を省略した場合は、以下の値が指定されたとみなします。
RDBOBJTB = 32,32768,32768,0
RDBODBIX = ベース部ページ長,インデックス部ページ長,ベース部初期量,インデックス部初期量[,拡張量,拡張契機]
動的SQLを使用して格納構造定義を簡略化したインデックスを定義する場合、インデックスのベース部とインデックス部の割付け量、ページ長などを指定します。単位はキロバイトです。この環境変数を省略した場合は、以下の値が指定されたとみなします。
RDBODBIX = 2、2、168、32、32、0
RDBODBTB = ページ長,初期量[,拡張量,拡張契機]
動的SQLを使用して格納構造定義を簡略化した表を定義する場合、表のデータ格納域の割付け量、ページ長などを指定します。単位はキロバイトです。この環境変数を省略した場合は、以下の値が指定されたとみなします。
RDBODBTB = 4,256,64,0
RDBODBTY = {SEQUENTIAL | OBJECT}
格納構造定義を簡略化した表を定義する場合に、Symfoware/RDBが自動的に生成する表のDSOの格納構造を選択します。本パラメタにより格納構造の選択ができるのは、表の形式が以下の条件をすべて満たしている場合のみです。
表の最後に1つだけ、BLOB型でサイズに32キロバイト以上を指定している場合
BLOB型以外の列は固定長属性の場合
BLOB型の列にNOT NULL制約を指定している場合
上記以外の場合は、表のDSOはSEQUENTIAL型となります。
RDBPSCAN = {YES | NO}
アプリケーション単位またはコネクション単位に、データベースを並列に検索する(並列クエリ)か否かを指定します。省略した場合は、NOが指定されたとみなします。
表がDSI分割されていない、または1つのDSIに対するアクセスの場合
クラスタキーを利用したデータベースアクセスが可能な場合
探索条件にROW_IDを指定した検索の場合
インデックスを利用したデータベースアクセスが可能な場合
RDBRCVL = {RCV | NRCV}
アプリケーションのリカバリ水準を指定します。環境変数の指定を省略した場合はRCVが指定されたとみなします。
RDBRLOCK = {YES | NO}
占有の単位を行とするかどうかを指定します。省略した場合は、NOが指定されたとみなします。

RDBRLOCKを省略した場合、動作環境ファイルのDEFAULT_ISOLATIONにREPEATABLE_READを指定、またはSET TRANSACTION文にREPEATABLE READを指定しても、独立性水準はSERIALIZABLEになります。
RDBRLOCK = YESを指定した場合、動作環境ファイルのDEFAULT_ISOLATIONまたはSET TRANSACTION文にSERIALIZABLEを指定しても、独立性水準はREPEATABLE READになります。
RDBRTRC = 出力レベル,ファイル名
ROUTINE_SNAP機能の出力レベルと、出力先ファイル名を指定します。環境変数の指定を省略した場合は、ROUTINE_SNAP機能を利用しないとみなします。
ROUTINE_SNAP機能は、SQL手続き文の実行情報をファイルに出力する機能です。ROUTINE_SNAP機能の詳細および使用方法については、“アプリケーションのデバッグ”を参照してください。
複数のアプリケーションが動作する場合は、環境変数RDBDIVTRCの指定により、出力ファイル名の後にプロセスIDなどの情報を付加して、個別のトレース情報を出力します。
アプリケーションがマルチスレッド環境で動作する場合は、RDBDIVTRCの指定に関係なく、出力ファイル名の後にプロセスIDやセションIDなどの情報を自動的に付加して、個別のトレース情報を出力します。


RDBSIGINF = {YES | NO}
UNIX系システムにおいて、signal関数をアプリケーションで利用するか否かを指定します。指定を省略した場合は、YESが指定されたものとみなします。
RDBSETCALLBACK = ライブラリ名
アプリケーションの起動時にコールバック関数を登録する場合、動的ライブラリ名を指定します。
動的ライブラリ名が絶対パスでの指定でない場合は、以下のディレクトリにライブラリを格納する必要があります。


環境変数LD_LIBRARY_PATHに指定したディレクトリ

PATHに指定したディレクトリ
RDBSMEM = メモリサイズ
ソート処理のために作業用ソート領域としてサーバ側で使用するメモリの大きさを、64〜2097150の範囲で指定します。単位はキロバイトです。環境変数の指定を省略した場合は、2112が指定されたとみなします。この領域は、RDBプロセスのローカルメモリにセション単位に獲得されます。


RDBSYDSI
アプリケーションによるデータ操作で、DSIに定義された拡張契機(rdbalmdsiコマンドで定義します)を無効とする場合に、この環境変数を指定します。パラメタはありません。

RDBSYDSI = {YES | NO}
アプリケーションによるデータ操作で、DSIに定義された拡張契機(rdbalmdsiコマンドで定義します)を無効とするか否かを指定します。環境変数の指定を省略した場合は、NOが指定されたとみなします。
RDBTRAN = {SC | TC}
SQL文が実行中にエラーとなった場合のトランザクションの対処方法を指定します。環境変数の指定を省略した場合は、SCが指定されたとみなします。
RDBTRC = 出力レベル,ファイル名[,繰り返し幅]
SQL_SNAP機能の出力レベルと、出力先ファイル名を指定します。環境変数の指定を省略した場合は、SQL_SNAP機能を利用しません。
SQL_SNAP機能は、アプリケーションが実行したSQL文の情報をファイルに出力する機能です。SQL_SNAP機能の詳細および使用方法については、“アプリケーションのデバッグ”を参照してください。
複数のアプリケーションが動作する場合は、環境変数RDBDIVTRCの指定により、出力ファイル名の後にプロセスIDなどの情報を付加して、個別のトレース情報を出力します。
アプリケーションがマルチスレッド環境で動作する場合は、RDBDIVTRCの指定に関係なく、出力ファイル名の後にプロセスIDやセションIDなどの情報を自動的に付加して、個別のトレース情報を出力します。
RDBWMEM = メモリサイズ
作業用テーブルとしてサーバ側で使用するメモリのサイズを64〜2097150の範囲で指定します。単位はキロバイトです。省略した場合は、64が指定されたとみなします。この領域は、RDBプロセスのローカルメモリにセション単位に獲得されます。
RDBWPATH = パス名[[:パス名]・・・]
サーバ側で使用する作業用ソート領域および作業用テーブルとして、サーバ側での獲得先ディレクトリを指定します。
			目次
			索引
			![]()  
		 |