アプリケーションのコンパイル・リンク時および実行時の動作環境のチューニングは、環境変数で指定できます。
アプリケーションのコンパイル・リンク時に指定する環境変数
LANG(Solaris/Linuxの場合)
RDBDB
SQLPC
SQLPCOB
INCDIR(Solaris/Linuxの場合)
INCLUDE(Windowsの場合)
アプリケーションの実行時に指定する環境変数
LD_LIBRARY_PATH_64(Solarisの場合)
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 |
各環境変数の指定形式と意味は、以下のとおりです。
Solarisの場合
LANG = {ja | ja_JP.PCK | ja_JP.UTF-8 | C}
Linuxの場合
LANG = {ja_JP.UTF-8 | C}
UNIX系システムにおいて、アプリケーションのロケールを指定します。
指定したロケールからアプリケーションの言語や文字コード系が決まります(下表参照)。具体的には、以下に影響を与えます。
アプリケーションのソースコード
アプリケーションの入出力ファイル
クライアント用の動作環境ファイル
SQLメッセージ(SQLMSG)
SQLメッセージは、以下のロケールの強度に従ってロケールが決まります。
(強い)LC_ALL > LC_MESSAGE > LANG(弱い)
Symfoware/RDBは、ロケールの言語がjaで始まる場合は日本語のメッセージを出力し、それ以外のロケール(Cロケールなど)の場合は英語でメッセージを出力します。
対象OS | ロケール | 文字コード系 |
---|---|---|
[Solaris] | ja | EUCコード |
ja_JP.PCK | シフトJISコード | |
ja_JP.UTF-8 | UNICODE | |
C | インストール時の文字コード系が設定されます。(注) | |
[Linux] | 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 | ○ | ○ | ○ | ◎ |
◎:指定可能(省略値)
○:指定可能
×:指定不可能
ホスト変数内文字列のデータの文字コード系がEUCコードのS90コードの場合に指定します。
ホスト変数内文字列のデータの文字コード系がEUCコードのU90コードの場合に指定します。EUCは互換として存在します。
ホスト変数内文字列のデータの文字コード系がシフトJISコードの場合に指定します。
ホスト変数内文字列のデータの文字コード系がUTF-8形式の場合に指定します。
注意
アプリケーションをCOBOLで記述している場合は、本パラメタは無視されます。詳細は、“2.5.1 文字コード系の決定”を参照してください。
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名・・・]
RDBDSO = DSO名[/[P][占有モード]][,DSO名[/[P][占有モード]]・・・]
アプリケーションで使用するDSOおよびその占有の単位、占有モードを指定します。RDBDSOが指定された場合、SET TRANSACTION文は指定できません。
また、環境変数RDBRLOCK=YESを指定することはできません。
アプリケーションで使用するDSO名を以下の形式で指定します。
データベース名.DSO名
DSOの占有の単位をページとします。省略した場合は、占有の単位はDSIとなります。
占有のモードとして以下のいずれかを指定します。省略した場合は、EXが指定されたとみなします。
非共有モードの排他を行います。
共有モードの排他を行います。
RDBLOCK = DYNAM[,{WAIT | REJECT}]
あるトランザクションで資源にアクセスしようとしたとき、別のトランザクションがその資源を占有していた場合に、資源の占有が解除されるまで待つか否かを指定します。省略した場合は、WAITが指定されたとみなします。
この環境変数を指定する場合には必ず指定します。
資源の占有が解除されるまで待ちます。
エラーとしてアプリケーションに復帰します。
RDBLSQL = ({SQL88 | SQL92 | SQL95 | SQL96 | SQL2000})
アプリケーションの予約語のレベルを設定します。環境変数の指定を省略した場合は、SQL2000が指定されたとみなします。
予約語のレベルを設定することで、キーワードの範囲を変更できます。
ファンクションルーチンおよびロールを利用する場合は、SQL2000が指定されていなければなりません。
プロシジャルーチンで、条件宣言、ハンドラ宣言、SIGNAL文およびRESIGNAL文を利用する場合は、SQL2000が指定されていなければなりません。これらを利用しないプロシジャルーチンの場合は、SQL95、SQL96またはSQL2000のいずれかを指定します。
トリガ、行識別子または並列指定を利用する場合は、SQL96またはSQL2000を指定します。
RDBMSG = 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の省略値)
○:指定可能
×:指定不可能
ホスト変数内文字列のデータの文字コード系がEUCコードのS90コードの場合に指定します。
ホスト変数内文字列のデータの文字コード系がEUCコードのU90コードの場合に指定します。EUCは互換として存在します。
ホスト変数内文字列のデータの文字コード系がEUCコードのS90コードのCOBOLの内部表現形式(COBOL_EUC)の場合に指定します。
ホスト変数内文字列のデータの文字コード系がEUCコードのU90コードのCOBOLの内部表現形式(COBOL_EUC)場合に指定します。COBOL_EUCは下位互換として存在します。
ホスト変数内文字列のデータの文字コード系がシフトJISコードの場合に指定します。
ホスト変数内文字列のデータの文字コード系がUTF-8形式の場合に指定します。
ホスト変数内文字列のデータの文字コード系がUCS-2形式の場合に指定します。
ホスト変数内文字列のデータの文字コード系がバイトスワップしたUCS-2形式の場合に指定します。
注意
アプリケーションをCOBOLで記述している場合は、本パラメタは無視されます。詳細は、“2.5.1 文字コード系の決定”を参照してください。
RDBOBJTB = ページ長,初期量[,拡張量,拡張契機]
格納構造定義を簡略化した表を定義する場合、OBJECT構造の表のデータ格納域の割付け量、ページ長などを指定します。単位はキロバイトです。この環境変数を省略した場合は、以下の値が指定されたとみなします。
RDBOBJTB = 32,32768,32768,0
データ格納域のページ長を指定します。必ず32を指定します。
データ格納域の初期量を2~2097150の範囲で指定します。
データ格納域の拡張量を1~2097150の範囲で指定します。省略した場合は、32768が指定されたとみなします。
データ格納域の拡張を行うタイミングとして、表のDSIの空き容量を指定します。つまり、表のDSIの空き容量がここで指定した値になると、表のデータ格納域の拡張が行われます。省略した場合は、0が指定されたとみなします。
注意
自動容量拡張の拡張量と拡張契機は、ページ長単位に繰り上げますので、ページ長の倍数で指定してください。
RDBODBIX = ベース部ページ長,インデックス部ページ長,ベース部初期量,インデックス部初期量[,拡張量,拡張契機]
格納構造定義を簡略化したインデックスを定義する場合、インデックスのベース部とインデックス部の割付け量、ページ長などを指定します。単位はキロバイトです。この環境変数を省略した場合は、以下の値が指定されたとみなします。
RDBODBIX = 2、2、168、32、32、0
ベース部のページ長を1、2、4、8、16、32の中から指定します。
インデックス部のページ長を1、2、4、8、16、32の中から指定します。
ベース部の初期量を2~2097150の範囲で指定します。
インデックス部の初期量を2~2097150の範囲で指定します。
ベース部の拡張量を1~2097150の範囲で指定します。省略した場合は、32が指定されたとみなします。インデックス部の拡張量は、ベース部の5分の1の値となります。
インデックスのベース部およびインデックス部の拡張を行うタイミングとして、DSIの空き容量を指定します。つまり、インデックスのDSIの空き容量がここで指定した値になると、インデックスのベース部とインデックス部の拡張が行われます。省略した場合は、0が指定されたとみなします。
注意
自動容量拡張の拡張量と拡張契機は、ページ長単位に繰り上げますので、ページ長の倍数で指定してください。
ベース部の5分の1がインデックス部のページ長の倍数でない場合、インデックス部のページ長の倍数に繰り上げます。
RDBODBTB = ページ長,初期量[,拡張量,拡張契機]
格納構造定義を簡略化した表を定義する場合、表のデータ格納域の割付け量、ページ長などを指定します。単位はキロバイトです。この環境変数を省略した場合は、以下の値が指定されたとみなします。
RDBODBTB = 4,256,64,0
データ格納域のページ長を1、2、4、8、16、32の中から指定します。
データ格納域の初期量を2~2097150の範囲で指定します。
データ格納域の拡張量を1~2097150の範囲で指定します。省略した場合は、64が指定されたとみなします。
データ格納域の拡張を行うタイミングとして、表のDSIの空き容量を指定します。つまり、表のDSIの空き容量がここで指定した値になると、表のデータ格納域の拡張が行われます。省略した場合は、0が指定されたとみなします。
注意
自動容量拡張の拡張量と拡張契機は、ページ長単位に繰り上げますので、ページ長の倍数で指定してください。
RDBODBTY = {SEQUENTIAL | OBJECT}
格納構造定義を簡略化した表を定義する場合に、Symfoware/RDBが自動的に生成する表のDSOの格納構造を選択します。本パラメタにより格納構造の選択ができるのは、表の形式が以下の条件をすべて満たしている場合のみです。
表の最後に1つだけ、BLOB型でサイズに32キロバイト以上を指定している場合
BLOB型以外の列は固定長属性の場合
BLOB型の列にNOT NULL制約を指定している場合
上記以外の場合は、表のDSOはSEQUENTIAL型となります。
表のDSOとしてSEQUENTIAL格納構造のDSOを定義します。
表のDSOとしてOBJECT格納構造のDSOを定義します。
RDBPSCAN = {YES | NO}
RDBRCVL = {RCV | NRCV}
RDBRLOCK = {YES | NO}
占有の単位を行とします。このパラメタを指定した場合、環境変数RDBDSOを指定することはできません。
占有の単位は、RDBDSOの指定に従います。このパラメタを指定し、かつRDBDSOが指定されていない場合は、Symfoware/RDBによって自動的に占有の単位が選択されます。詳細については、“2.3.5 排他制御”を参照してください。
注意
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機能の詳細および使用方法については、“6.2 アプリケーションのデバッグ”を参照してください。
出力する情報のレベルとして、1または2を指定します。省略した場合は、2が指定されたとみなします。出力レベルの指定と出力情報の対応については、“表6.3 出力レベルの指定と出力情報の対応”
SQL手続き文の実行情報の出力先のサーバ側のファイル名を、絶対パスで指定します。
複数のアプリケーションが動作する場合は、環境変数RDBDIVTRCの指定により、出力ファイル名の後にプロセスIDなどの情報を付加して、個別のトレース情報を出力します。
アプリケーションがマルチスレッド環境で動作する場合は、RDBDIVTRCの指定に関係なく、出力ファイル名の後にプロセスIDやセションIDなどの情報を自動的に付加して、個別のトレース情報を出力します。
RDBSETCALLBACK = ライブラリ名
アプリケーションの起動時にコールバック関数を登録する場合、動的ライブラリ名を指定します。
動的ライブラリ名が絶対パスでの指定でない場合は、以下のディレクトリにライブラリを格納する必要があります。
Solaris/Linuxの場合
環境変数LD_LIBRARY_PATHに指定したディレクトリ
Windowsの場合
PATHに指定したディレクトリ
RDBSMEM = メモリサイズ
RDBTRAN = {SC | TC}
各プラットフォームのトランザクションの仕様に従います。
SQL文の実行がエラーとなった場合に、トランザクションをロールバックします。
RDBTRC = 出力レベル,ファイル名[,繰り返し幅]
SQL_SNAP機能の出力レベルと、出力先ファイル名を指定します。環境変数の指定を省略した場合は、SQL_SNAP機能を利用しません。
SQL_SNAP機能は、アプリケーションが実行したSQL文の情報をファイルに出力する機能です。ROUTINE_SNAP機能の詳細および使用方法については、“6.2 アプリケーションのデバッグ”を参照してください。
出力する情報のレベルとして、1~3のいずれかを指定します。ただし、レベル2とレベル3の出力情報は同じです。出力レベルの指定と出力情報の対応については、“表6.3 出力レベルの指定と出力情報の対応”を参照してください。
SQL_SNAP機能が出力するSQL文の実行情報の出力先ファイル名を指定します。ファイル名にディレクトリの指定がない場合は、カレントディレクトリが指定されたとみなします。
複数のアプリケーションが動作する場合は、環境変数RDBDIVTRCの指定により、出力ファイル名の後にプロセスIDなどの情報を付加して、個別のトレース情報を出力します。
アプリケーションがマルチスレッド環境で動作する場合は、RDBDIVTRCの指定に関係なく、出力ファイル名の後にプロセスIDやセションIDなどの情報を自動的に付加して、個別のトレース情報を出力します。
出力する情報を、ファイルに繰り返し幅でサイクリックに出力する場合に指定します。繰り返し幅は、1~32768の幅で指定します。出力する情報の単位は、1つのSQL文を1単位とします。省略した場合は、先頭からの情報をすべて出力します。
RDBWMEM = メモリサイズ