Hitachi

ノンストップデータベース HiRDB Version 9 XDM/RD E2接続機能


4.4.2 クライアント環境定義の設定内容

ここでは,XDM/RD E2接続機能使用時の環境変数(表「XDM/RD E2接続機能使用時の環境変数の差異」の◎,○,△,および□の項目)の設定内容について説明します。

〈この項の構成〉

(1) システム構成に関する環境変数

システム構成に関する環境変数には,XDM/RD E2と接続するときに必要な情報を指定します。

PDHOST=DBコネクションサーバのホスト名〔,予備系のホスト名〕

〜<識別子>

接続するDBコネクションサーバのホスト名を指定します。

また,ホスト名はIPアドレスで指定できます。

IPアドレスは,バイトごとにピリオド(.)で区切られた10進数で次の形式で指定します。

IPアドレスの形式: NNN.OOO.PPP.QQQ

通常は初めに指定したホスト名に対して接続します。初めに指定したホスト名に対して接続できなかった場合に,予備系のホスト名に対して接続します。

PDNAMEPORT=DBコネクションサーバのポート番号

〜<符号なし整数>((5001〜65535))《20000》

接続するDBコネクションサーバのポート番号を指定します。ポート番号には,DBコネクションサーバのコントロール空間起動制御文およびサーバ空間起動制御文のSCHEDULENOオペランドで指定するサーバスケジュール番号を指定します。なお,SCHEDULENOオペランドを省略した場合はサーバスケジュール番号(ポート番号)に40179が仮定されています。

PDSRVTYPE=VOS3

サーバの種別を指定します。

XDM/RD E2をサーバとする場合は,PDSRVTYPEにVOS3を必ず指定してください。

(2) OLTP下のX/Openに準拠したAPIを使用するクライアントの環境変数

PDXAMODE={0|1}

OLTPシステムと連携する場合に,トランザクションの移行機能を使用するかどうかを指定します。

0:

トランザクションの移行機能を使用しません。

1:

トランザクションの移行機能を使用します。

XDM/RD E2をサーバとする場合は,1は指定できません。

PDXARCVWTIME=トランザクション回復不可時の待ち合わせ時間

〜<符号なし整数>((0〜270))《2》(単位:秒)

XDM/RD E2をサーバとする場合,このオペランドは指定できません。

PDXATRCFILEMODE={LUMP|SEPARATE

X/Openに従ったAPIを使用した接続形態での,各種トレースファイル名の形式を指定します。X/Openに従ったAPIを使用した接続形態以外の場合,PDXATRCFILEMODEの指定は無視されます。

LUMP:

各種トレースファイル名に実行プロセスIDを付けないで出力します。

UAPが非常駐で何回も実行されて,プロセスIDがそのつど変わる場合には,LUMPを指定することをお勧めします。LUMPを指定した場合,非常駐のUAPを実行するたびに各種トレースファイルが増えて,OSや他プログラムの動作が不安定になることを防げます。

なお,LUMPを指定した場合,トレース情報の出力先が限定されるため,トレース出力サイズを大きくする必要があります。また,トレース出力時に別プロセスの出力と競合するため,処理時間が長くなることがあります。

SEPARATE:

各種トレースファイル名に実行プロセスIDを付けて出力します。

UAPが常駐している場合は,SEPARATEを指定することをお勧めします。

HiRDB_PDHOST=DBコネクションサーバのホスト名〔,予備系のホスト名〕

〜<識別子>

このオペランドに指定した値が,環境変数PDHOSTの設定値に置き換わります。指定方法については,PDHOSTを参照してください。

HiRDB_PDNAMEPORT=DBコネクションサーバのポート番号

〜<符号なし整数>((5001〜65535))《20000》

このオペランドに指定した値が,環境変数PDNAMEPORTの設定値に置き換わります。指定方法については,PDNAMEPORTを参照してください。

HiRDB_PDTMID=OLTP識別子

〜<識別子>((4文字))

複数のOLTPからX/Openに準拠したAPIを使用して一つのXDM/RD E2システムをアクセスする場合,それぞれのOLTPにユニークな識別子を指定してください。この環境変数に指定した値が,PDTMIDの設定値に置き換わります。

なお,この環境変数の指定で次に示す条件のどちらかに該当する場合,どのOLTPからのトランザクションであるかが識別されないため,OLTP内でシステムダウンやトランザクション異常が発生すると,トランザクション決着の同期が合わなくなります。

  • 複数のOLTPからアクセスする運用形態で,この環境変数を省略し,PDTMIDの指定も省略した場合

  • 複数のOLTPからアクセスする運用形態で,OLTPごとに指定する識別子がユニークでない場合

HiRDB_PDXAMODE={0|1}

このオペランドに指定した値が,環境変数PDXAMODEの設定値に置き換わります。指定方法については,PDXAMODEを参照してください。

(3) ユーザ実行環境に関する環境変数

PDUSER=ユーザ名〔/パスワード〕

〜《パスワードなしのカレントユーザ名》

XDM/RD E2と接続するときの認可識別子(ユーザ名)とパスワードを指定します。ただし,CONNECT文で認可識別子(ユーザ名)を指定した場合は,CONNECT文で指定した値が優先されます。

パスワードの指定が必要ない場合は,パスワードを省略できます。

ユーザ名,パスワードに指定した文字列は,大文字と小文字が区別されます。

Windows環境の場合,この環境変数は省略できません。ただし,パスワードは省略できます。

OpenTP1下のUAPをクライアントとする運用形態の場合,「’ユーザ名/パスワード’」の形式で指定します。

PDCLTAPNAME=実行するUAPの識別名称

〜<文字列>((30文字))《unknown》

XDM/RD E2に対してアクセスするUAPの識別情報(UAP識別子)を指定します。これは,どのUAPを実行しているのかを認識するための名称です。

XDM/RD E2のオン中UAPトレースで出力される情報や,SQLトレースファイルの情報などのUAPの名称に,この環境変数で指定した名称が表示されます。

PDCLTLANG={SJIS|UJIS}

プリプロセサが処理する,UAPの記述に使われている文字コード種別を指定します。

XDM/RD E2をサーバとする場合は,XDM/RD E2のバージョンが09-01以降の時に,SJIS(シフトJIS漢字)とUJIS(日本語EUC)が使用できます。それ以外のバージョンの時は,SJISしか使用できません。

使用できる値以外を設定した場合は,エラーとなります。

Linuxは,日本語EUCしか使えないため,サーバとしてXDM/RD E2を使用する場合は,XDM/RD E2のバージョンは09-01以降にする必要があります。

UAPのプリプロセス時,文字コード種別は次のように判断されます。

PDCLTLANG

クライアントのOS

HP-UX

AIX

Linux

Windows

SJIS

ja_JP.

SJIS

Ja_JP

エラー

ja_JP.

SJIS

UJIS

ja_JP.

eucJP

ja_JP

ja_JP.

eucJP

エラー

設定なし

ja_JP.

SJIS

Ja_JP

ja_JP.

eucJP

ja_JP.

SJIS

注※

プリプロセス時,環境変数LANGに文字コードを設定している場合は,その文字コードが仮定されます(ただし,クライアントがWindowsの場合を除きます)。

PDLANG={UTF-8|SJIS|CHINESE}

UAP実行時の文字コード種別を指定します。また,HiRDBクライアントがLinux版でSJISを使用する場合,SJISを指定します。省略した場合,環境変数LANGの指定値が仮定されます。

UTF-8:

文字コード種別にUnicodeを指定します。

SJIS:

文字コード種別にシフトJIS漢字コードを指定します。

CHINESE:

文字コード種別にEUC中国語漢字コードを指定します。

PDEXWARN={YES|NO

XDM/RD E2からの拡張警告事象の返却を許可するかしないかを指定します。

拡張警告事象とは,+100,+110以外の正の値のSQLCODEが返却されることを示します。

この環境変数にYESを指定した場合,SQLCODEが0,+100,または+110以外をすべてエラーとして処理しているUAP(ストアドプロシジャを含む)は,エラーの判定方法を変更する必要があります。SQLのエラーの判定と処置については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。

YES:

拡張警告事象の返却を許可します。

NO:

拡張警告事象の返却を許可しません。XDM/RD E2で+100,+110以外の正のSQLCODEを検知した場合,UAPにはSQLCODE=0で返却されます。

このオペランドを省略すると,NOが仮定されます。

したがって,このようなUAPの作りでない場合は,PDEXWARNにYESを指定することをお勧めします。

PDAUTORECONNECT={YES|NO

自動再接続機能を使用するかどうかを指定します。

再接続する場合の動作は,次に示すクライアント環境定義で設定できます。

  • CONNECTリトライ回数:PDRCCOUNT

  • CONNECTリトライ間隔:PDRCINTERVAL

  • 再接続契機:PDRCTIMING

CONNECT以外のSQLで自動再接続機能が動作している間もPDCWAITTIMEの時間監視に入ります。PDCWAITTIMEの値を超えた場合,自動再接続処理を打ち切ります。

自動再接続が失敗した場合は,自動再接続が動作する要因となったエラーをアプリケーションへ返します。

XDM/RD E2のバージョンが10-02以前の場合,XDM/RD E2接続機能を使用すると,SQLのCONNECT文のときにだけ自動再接続機能が有効となります。XDM/RD E2のバージョンが11-00以降の場合,SQLのCONNECT文以外でも自動再接続機能が有効になります。ただし,自動再接続機能が適用できないことがあります。詳細については,マニュアル「VOS3 データマネジメントシステム XDM E2系 XDM/RD E2 使用の手引−運用編−」の「HiRDBクライアント接続機能に関する留意事項」を参照してください。

X/Openに準拠したAPIを使用してアクセスしているアプリケーションでは指定を無視し,常にNOを仮定します。

YES:

自動再接続機能を使用します。

サーバプロセスダウン,系切り替え,ネットワーク障害などの要因でHiRDBサーバとの接続が切れた場合に,自動的に再接続できます。

オンライン中のシステム構成変更,プログラムメンテナンス機能を使用する場合,YESを設定することで,アプリケーションへエラーを返すことなく処理を続行できます。

NO:

自動再接続機能を使用しません。

PDRCCOUNT=自動再接続機能でのCONNECTリトライ回数 

〜〈符号なし整数〉((1〜200)) 《5》

自動再接続機能で再接続する場合のCONNECTのリトライ回数を指定します。PDAUTORECONNECTにYESを設定したときだけ有効となります。

PDRCINTERVAL=自動再接続機能でのCONNECTリトライ間隔 

〜〈符号なし整数〉((1〜600)) 《5》(単位:秒)

自動再接続機能で再接続する場合のCONNECTのリトライ間隔を秒単位で指定します。PDAUTORECONNECTにYESを設定したときだけ有効となります。

PDRCTIMING={ALL|再接続契機[,再接続契機[,再接続契機]]}

自動再接続機能で再接続する場合の再接続契機を指定します。

この環境定義の指定方法については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。

ALL:

すべての契機で自動再接続を適用します。

再接続契機:

次のどれか1つ,または複数を組み合わせて指定してください。

  • CNCT

    CONNECT文を実行した場合で接続障害を検知したときに,自動再接続を適用します。

  • NOTRN

    トランザクション未発生で実行したSQLが接続障害を検知した場合に,自動再接続を適用します。

  • TRN

    トランザクション発生中に実行したSQLが接続障害でエラーとなった後,CONNECT文を実行しないでSQLを実行した場合に,自動再接続を適用します。

PDDEFAULTOPTION={RECOM|V0904}

クライアント環境定義およびプリプロセスオプションについて,省略時の動作を指定します。通常は,この環境変数を指定する必要はありません。互換モードを適用したい場合に,指定してください。

バージョンによって,省略値が異なるクライアント環境定義およびプリプロセスのオプションについては,マニュアル「HiRDB Version 9 UAP開発ガイド」の「バージョン,リビジョンによるクライアント環境定義及びプリプロセスオプションの変更点」を参照してください。

RECOM:

推奨モードを適用します。

V0904:

0904互換モードを適用します。

(4) システム監視に関する環境変数

PDCWAITTIME=クライアントの最大待ち時間

〜<符号なし整数>((0〜65535))《0》(単位:秒)

HiRDBクライアントからXDM/RD E2へ要求をしてから応答があるまでのHiRDBクライアントの最大待ち時間を,秒単位で指定します。

0を指定した場合,HiRDBクライアントはXDM/RD E2からの応答があるまで待ち続けます。

留意点

最大待ち時間を経過してもXDM/RD E2から応答がない場合は,UAPにエラーリターンします。このときXDM/RD E2との接続は切り離され,トランザクション処理中の場合はロールバックされます。

(5) HiRDBの通信処理に関する環境変数

PDNBLOCKWAITTIME=ノンブロックモードでのコネクション確立監視時間

〜<符号なし整数>((0〜120))《0》(単位:秒)

XDM/RD E2とHiRDBクライアント間でコネクション接続完了を監視する場合,ノンブロックモード時のコネクション確立監視時間を指定します。

XDM/RD E2をサーバとするときは,UNIX版HiRDBクライアントを使用時だけ指定できます。Windows版HiRDBクライアント使用時は,指定しても無効となります。

この環境変数に1以上を指定すると,XDM/RD E2とHiRDBクライアント間の通信をノンブロック通信にして,connect()システムコールの終了を監視します。これをノンブロックモードといいます。0を指定したときは,OSのタイムアウト時間までコネクション接続完了を待ちます。これをブロックモードといいます。

この環境変数の適用基準および指定値の見積もり方法については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。

(6) トラブルシュートに関する環境変数

PDCLTPATH=トレースファイル格納ディレクトリ

〜<パス名>《カレントディレクトリのパス名》

HiRDBクライアントが作成するSQLトレースファイルおよびクライアントエラーログファイルの格納先ディレクトリを指定します。

PDSQLTRACE=SQLトレースファイルのサイズ

〜<符号なし整数>((0,4096〜2000000000))(単位:バイト)

UAPのSQLトレースを出力するSQLトレースファイルのサイズを,バイト単位で指定します。

0を指定した場合はファイルの最大サイズとなり,最大サイズを超えるとSQLトレースは出力されません。4,096〜2,000,000,000を指定した場合は指定値のサイズとなり,指定値のサイズを超えると出力先が切り替わります。省略した場合は,SQLトレースを出力しません。

SQLトレース機能については,「SQLトレース機能」を参照してください。

ほかの環境変数との関係

SQLトレースは,PDCLTPATHで指定したディレクトリに出力されます。PDCLTPATHの指定がない場合,UAPを起動したときのカレントディレクトリOpenTP1から起動されるUAPの場合,OSがUNIXのときは$DCDIR/tmp/home/サーバ名xxのディレクトリ,OSがWindowsのときは%DCDIR%\tmp\home\サーバ名xxのディレクトリの下に出力されます。

見積もり方法

SQLトレースファイルのサイズは,取得したいSQL文の数から求めてください。取得したいSQL文の,それぞれの「1行(80バイト)+SQL文のサイズ」を求めて,すべてを合計した値を指定値の目安としてください。

PDUAPERLOG=クライアントエラーログファイルのサイズ

〜<符号なし整数>((0,4096〜2000000000))《4096》(単位:バイト)

UAPのエラーログを出力するクライアントエラーログファイルのサイズを,バイト単位で指定します。

0を指定した場合はファイルの最大サイズとなり,最大サイズを超えるとクライアントエラーログは出力されません。4,096〜2,000,000,000を指定した場合は指定値のサイズとなり,指定値のサイズを超えると出力先が切り替わります。

省略時のファイルサイズは4,096となりますが,PDUAPEXERLOGUSEにYESを指定している場合,またはシステム定義のpd_uap_exerre_log_useオペランドにYESを指定している場合,ファイルサイズは65,536となります。

クライアントエラーログ機能については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。

ほかの環境変数との関係

クライアントエラーログは,PDCLTPATHで指定したディレクトリに出力されます。PDCLTPATHの指定がない場合,UAPを起動したときのカレントディレクトリOpenTP1から起動されるUAPの場合,OSがUNIXのときは$DCDIR/tmp/home/サーバ名xxのディレクトリ,OSがWindowsのときは%DCDIR%\tmp\home\サーバ名xxのディレクトリの下に出力されます。

PDERRSKIPCODE=SQLCODE〔,SQLCODE〕…

クライアントエラーログへのメッセージ出力を抑止するSQLCODEを指定します。SQLCODEは最大10個指定できます。

例えば,SQLCODE-901と-917を抑止する場合は,次のように指定します。

 PDERRSKIPCODE=-901,-917
利点

UAPの構造によっては,SQLの処理で必然的にエラーが発生することがあります。通常の業務でこのようなエラーが頻繁に発生すると,ファイルシステムを圧迫してしまうおそれがあります。特に,X/Openに従ったAPIを使用するUAPの場合,UAPごとにクライアントエラーログファイルを二つ作成してしまいます。この環境変数を指定すると,特定のエラーについてはメッセージの出力を抑止できるので,ファイルシステムへの負荷を軽減できます。

適用基準

次の条件をすべて満たす場合に適用してください。

  • UAPの構造上エラーが頻繁に発生する。

  • あらかじめ障害の原因が特定できて,その要因を調査する必要がない。

この環境変数を指定すると,不慮の障害が発生したときにその原因を調査できなくなります。適用する場合には注意してください。

PDPRMTRC={YES|NO|IN|OUT|INOUT}

SQLトレースにパラメタ情報,および検索データ情報を出力するかどうかを指定します。出力内容については,「SQLトレース機能」を参照してください。

YES:

SQLトレースに入力用パラメタ情報を出力します。YESを指定した場合,検索データ情報と入力パラメタを出力します。

NO:

SQLトレースにパラメタ情報を出力しません。

IN:

SQLトレースに入力用パラメタ情報を出力します。CALL文のINパラメタとINOUTパラメタも含みます。

OUT:

SQLトレースに出力用パラメタ情報,および検索データ情報を出力します。CALL文のOUTパラメタとINOUTパラメタも含みます。

INOUT:

SQLトレースに入力用パラメタ情報,出力用パラメタ情報,および検索データ情報を出力します。CALL文のINOUTパラメタは2回出力します。

注※

CALL文のINOUTパラメタの情報は,出力データだけになります。

PDPRMTRCSIZE=SQLトレースに出力するパラメタ情報の最大データ長

〜<符号なし整数>((4〜32008))《256》(単位:バイト)

SQLトレースに出力するパラメタ情報および検索データの最大データ長を指定します。可変長文字列型データ,BLOB型データ,BINARY型データの場合は,文字列長領域もデータ長に含みます。

この指定は,PDPRMTRCにNO以外を指定した場合だけ,有効になります。

この環境変数の指定値を大きくすると,出力する情報量が増えます。そのため,SQLトレースファイルのサイズ(PDSQLTRACEの指定値)も大きくする必要があります。

PDTRCMODE={ERR|NONE}

SQLトレース以外のトラブルシュート情報(pderr*.trcの情報)を出力するかどうかを指定します。

ERR:

pderr*.trcの情報を出力します。

NONE:

pderr*.trcの情報を出力しません。

PDUAPREPLVL={〔s〕〔u〕〔p〕〔r〕|a}

sまたはaを指定します。

この環境変数を指定する場合は,PDREPPATHを指定してください。

s:SQLトレース情報を出力します。

u:指定しても無視されます。

p:指定しても無視されます。

r:指定しても無視されます。

a:sを指定した場合と同様です。

s,u,pおよびrを組み合わせて指定できます。suprと指定した場合は,aと同じ意味になります。u,p,r,up,ur,pr,およびuprを指定した場合,SQLトレース情報は出力されません。sおよびaを指定した場合だけSQLトレース情報が出力されます。

PDREPPATH=SQLトレースファイルの格納ディレクトリ 〜<パス名>

〜<パス名>

PDUAPREPLVLを指定する場合に,SQLトレースファイルを出力するディレクトリを指定します。出力ファイル名については,マニュアル「HiRDB Version 9 UAP開発ガイド」の「SQLトレース機能」を参照してください。

PDTRCPATH=動的SQLトレースファイルの格納ディレクトリ

〜<パス名>((最大256バイト))

HiRDBクライアントが作成する動的SQLトレースファイルの格納先ディレクトリを指定します。トレース取得コマンド(pdtrcmgr)で動的SQLトレースファイルを取得する場合には,この環境変数を必ず指定してください。

ここで指定したディレクトリをpdtrcmgrで指定すると,次回のCONNECTから,指定したディレクトリにSQLトレースファイルが作成されます。

pdtrcmgrについては,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。ただし,XDM/RD E2をアクセスする場合,pdtrcmgrの-kオプションは指定しても無視されます。SQLトレースについては,マニュアル「HiRDB Version 9 UAP開発ガイド」の「SQLトレース機能」を参照してください。

PDSQLTRCOPENMODE={CNCT|SQL

SQLトレースファイルのオープンモードを指定します。

CNCT:

CONNECT,DISCONNECT単位にSQLトレースファイルをオープン,クローズして,トレース情報を出力します。CNCTを指定した場合,PDSQLTRCOPENMODEにSQLを指定するよりオーバヘッドが削減されるため,SQLトレースを出力するための時間が短縮できます。

なお,CNCTを指定した場合,SQLトレースファイルをオープンしたままで情報を書き込むため,正常にDISCONNECTできなかったときには,SQLトレース情報が欠落することがあります。

CNCTを指定する場合は,ほかのクライアント環境変数の指定が必要となります。必要となるクライアント環境変数については,マニュアル「HiRDB Version 9 UAP開発ガイド」の「クライアント環境定義の設定内容」を参照してください。

SQL:

オペレーション単位(SQL単位)にSQLトレースファイルをオープン,クローズして,トレース情報を出力します。

PDSQLTEXTSIZE=SQL文のサイズ

〜<符号なし整数>((4096〜2000000))《4096》(単位:バイト)

SQLトレースに出力するSQL文のサイズを指定します。

アクセスパス取得時に省略した場合,4,096ではなく,2,000,000が仮定されます。

PDSQLEXECTIME={YES|NO

SQLトレースにSQL実行時間を出力するかどうかを指定します。

YES:

SQL実行時間を出力します。

出力されるSQL実行時間の単位はマイクロ秒となります。SQLトレースに出力される値は,実行時間が24時間以上のものは正常に出力されません。

NO:

SQL実行時間を出力しません。

PDWRTLNPATH=WRITE LINE文の値式の値を出力するファイルの格納先ディレクトリ

〜<パス名>((最大256バイト))

WRITE LINE文の値式の値を出力する,ファイルの格納先ディレクトリを指定します。WRITE LINE文については,マニュアル「HiRDB Version 9 SQLリファレンス」を参照してください。

この環境変数を省略した場合,PDCLTPATHで指定したディレクトリが仮定されます。

ファイルは,指定したディレクトリ(省略した場合はPDCLTPATHで指定したディレクトリ)に二つ作成されます。作成されるファイルは,X/Openに従がったAPI(TX_関数)の使用有無で異なります。作成されるファイル名を次に示します。

TX_関数を使用していない場合:

pdwrtln1.trc,およびpdwrtln2.trc

TX_関数を使用している場合:

pdwrtlnxxxxx-1.trc,およびpdwrtlnxxxxx-2.trc

xxxxx:UAP実行時のプロセスID

PDWRTLNFILSZ=WRITE LINE文の値式の値を出力するファイルの最大サイズ

〜<符号なし整数>((0,4096〜2000000000))(単位:バイト)

WRITE LINE文の値式の値を出力する,ファイルの最大サイズを指定します。

0を指定した場合のファイルの最大サイズは,OSで管理できる最大サイズとなります。省略した場合は,WRITE LINE文の値式の値は出力されません。また,FETCH文実行時は,WRITE LINE文の情報は出力されません。

PDWRTLNCOMSZ=クライアントから実行要求したSQLで出力されるWRITE LINE文の値式の値の合計長

〜<符号なし整数>((1024〜131072))《1024》(単位:バイト)

WRITE LINE文の値式の値の合計サイズを指定します。

WRITE LINE文の値式の値の合計サイズが,この環境変数の指定値を超えた場合,超えた分の情報は無視されます。また,この場合,次の行に「**PDWRTLNCOMSZover**」が出力されます。

PDSQLTRCFMT={1|2}

SQLトレースの出力形式を指定します。指定値によって出力ファイル名称が異なります。出力ファイル名称および指定値ごとの出力形式については,マニュアル「HiRDB Version 9 UAP開発ガイド」の「SQLトレース機能」を参照してください。

出力形式2は,出力形式1よりも詳細情報を出力します。このため,通常は指定値を省略するか2を指定してください。

1:

出力形式1で出力します。

2:

出力形式2で出力します。

《注意事項》

HiRDB SQL Tuning Advisor 08-03以前を使用してSQLトレースの解析を行う場合,出力形式2には対応していないため1を指定してください。

(7) SQLに関する環境変数

PDPRPCRCLS={YES|NO

開いているカーソルで使用しているSQL識別子を再度PREPRARE文で使用する場合,開いているカーソルを自動的にクローズするかどうかを指定します。

この環境変数は,プリプロセス時に-Xeオプションを指定しない場合に有効となります。プリプロセスについては,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。

YES:開いているカーソルを自動的にクローズします。

NO:開いているカーソルを自動的にクローズしません。

PDAUTOCONNECT={ON|OFF}

XDM/RD E2と接続していない状態でSQL文を実行した場合,自動的にCONNECTするかどうかを指定します。

ON:自動的にCONNECTしてからSQL文を実行します。

OFF:自動的にCONNECTしません。このときSQL文はエラーとなります。

XDM/RD E2と接続していない状態でSET SESSION AUTHORIZATION文を実行した場合,この環境変数の指定に関係なく常にエラーとなります。

UAPを開発する場合は,XDM/RD E2に正しくCONNECTしているかどうかを判断する必要があるため,この環境変数にはOFFを指定することをお勧めします。

(8) ブロック転送機能に関する環境変数

PDBLKF=ブロック転送の行数

〜<符号なし整数>((1〜4096))《1》

XDM/RD E2からHiRDBクライアントに検索結果を転送するときの,1回の転送処理で送られる行数を指定します。

オペランドの値を大きく指定すると通信オーバヘッドが減り,検索時間を短縮できますが,その分メモリが余計に必要です。クライアント側に必要なメモリは次に示す計算式で求められます。VOS3側に必要なメモリはマニュアル「VOS3 データマネジメントシステム XDM E2 系 XDM/RD E2 使用の手引−システム作成・維持編−」の「HiRDBクライアント接続機能使用時のメモリ所要量」を参照してください。

計算式

864+16×a+(6×a+b)×c (単位:バイト)

a:SELECT句で指定する項目数

b:1回の転送処理で出力されるデータ長の総和

c:PDBLKFオペランドの指定値

(9) XDM/RD E2接続機能専用の環境変数

PDCLTRDNODE=データベース識別子

〜<識別子>

接続するXDM/RD E2のデータベース識別子を指定します。

データベース識別子とは,XDMのサブシステム定義で指定するRDノード名称を示します。

PDTP1SERVICE={YES|NO

XDM/RD E2にOpenTP1のサービス名称を通知するかどうかを指定します。サーバがHiRDBの場合,指定を無視します。

Windows版HiRDBクライアントライブラリでcltdll.dllを使用している場合,本機能は使用できません。pdcltm32.dll等ほかのHiRDBクライアントライブラリと再リンケージする必要があります。

YES:

OpenTP1のサービス名称をXDM/RD E2に通知します。

XDM/RD E2にサービス名称を通知することで,XDM/RD E2の統計情報がサービス単位に分析できるようになります。ただし,この場合,XDM/RD E2 09-01以降が必要となります。

OpenTP1を使用しない場合,およびOpenTP1のサービスではない場合(SUP等)はYESを指定してもXDM/RD E2にサービス名称は通知されません。

NO:

XDM/RD E2にサービス名称を通知しません。

PDRDCLTCODE={SJIS|UTF-8}

この環境変数は,Windows版クライアントの場合に有効となります。UNIX版クライアントの場合は指定しても無効となります。

XDM/RD E2接続機能使用時に,クライアントで使用する文字コード種別を指定します。

SJIS:

シフトJIS漢字コードを使用します。

UTF-8:

Unicode(UTF-8)を使用します。UTF-8を指定する場合,クライアント環境定義PDCLTCNVMODEにはNOUSEを指定するか,または省略してください。

《UTF-8指定時の規則》
  1. 埋込み変数で扱う入出力データ,および?パラメタで扱うデータにUTF-8を使用できます。

  2. UAPで記述するSQL文には,ASCIIコードだけ指定できます。SQL文中でASCIIコード以外の文字(漢字,半角カタカナ,外字など)を指定する場合,PREPARE文またはEXECUTE IMMEDIATE文を使用して,埋込み変数でSQL文を指定してください。

  3. XDM/RD E2から返される,SQL連絡領域に格納されるエラーメッセージ,列名記述領域に格納される列名,型名記述領域に格納されるデータ型名など,UTF-8となります。このため,これらの値にASCIIコード以外の文字が含まれている場合,シフトJIS漢字コードとして出力すると,正しく表示されないないことがあります。

  4. XDM/RD E2側で,文字コードをUTF-8からEBCDIKコードもしくはKEISコード,またはEBCDIKコードもしくはKEISコードからUTF-8に変換する場合,データの長さが変化することがあります。このため,埋込み変数の定義長などに注意してください。

(10) ODBC関数に関する環境変数

PDODBSTATCACHE={0|1}

ODBC関数のSQLColumns()関数,SQLStatistics()関数で,一度発行して取得したカラム情報またはインデクス情報をキャッシュするかどうかを指定します。

0:

キャッシュしません。

SQLColumns()関数,SQLStatistics()関数を呼び出すごとにサーバにアクセスして,カラム情報またはインデクス情報を取得します。

1:

一度取得したカラム情報およびインデクス情報をキャッシュします。

ただし,サーバと接続中のときはキャッシュのリフレッシュはしません。したがって,接続中にテーブル定義を変更した場合は,実際の定義と異なるカラム情報またはインデクス情報を返すことになるため,一度サーバとの接続を切り離す必要があります。

利点

SQLColumns()関数,SQLStatistics()関数が同一のパラメタで呼び出された場合は,キャッシュ上の検索結果をAPに返すことで,サーバとの通信回数を削減できます。

留意点

このオプションの指定が効果的かどうかを判断するには,ODBCのトレースを取得し同一接続中に同じパラメタのSQLColumns()関数,SQLStatistics()関数が発行されているかどうかを調査する必要があります。

キャッシュできる行数を次に示します。

SQLColumns():

約60,000/(50+表オーナ名長+表名長+列名長+コメント長)行数文

SQLStatistics():

約60,000/(50+表オーナ名長+表名長+インデクス名長+列名長)行数文

PDODBESCAPE={0|1

カタログ系のODBC関数(SQLTables(),SQLColumns()など)の検索で,パターン文字に対してESCAPE文字('&')を指定するかどうかを指定します。

0:

パターン文字に対してESCAPE文字('&')を指定しません。

1:

パターン文字に対してESCAPE文字('&')を指定します。

各国文字識別子を使用しない環境(XDM/RD E2のRD初期設定ユティリティでKANJINAME=NOを指定するかKANJINAMEオペラントを省略)でかつ表名および列名にXDM/RD E2上のコードでX'50'を含む各国文字(2バイトコード)を使用している場合,この指定を0にしてください。この指定を1のままODBC経由でアクセスした場合,特定の表および列が認識されないことがあります。

また,表名などの識別子に下線(_)を使用している場合,この指定を1にしてください。この指定を0で運用した場合,一部のODBC対応製品から下線(_)を使用した識別子にアクセスできないことがあります。

留意点

XDM/RD E2で各国文字識別子を使用しない環境では,表名や列名に2バイト文字を使用しないことをお勧めします。

表名や列名に2バイト文字を使用する場合は,XDM/RD E2のRD初期設定ユティリティまたはデータベース構成変更ユティリティでKANJINAME=YESを指定してください。

PDGDATAOPT={YES|NO

ODBC関数のSQLGetData関数を使用してデータを取り出す場合,データ取得が完了した列に対して繰り返しデータを取得するときに指定します。

通常,データ取得が完了した列に対して繰り返しデータを取得すると,戻り値としてSQL_NO_DATAが返ります。

YES:

SQLGetData関数でデータ取得が完了した列に対して,繰り返しデータを取得できます。

NO:

SQLGetData関数でデータ取得が完了した列に対して,繰り返しデータを取得し,戻り値としてSQL_NO_DATAが返ります。

適用基準

同じ列に対して複数回データ取得をしたい場合に指定します。例えば,複数回のデータ取得でSQL_SUCCESSを期待する上位APなどを使用する場合にこの環境変数を指定してください。

PDODBLOCATOR={YES|NO

DBアクセス部品を使用して,BLOB型,またはBINARY型の列を検索する場合に,位置付け子機能を使用してデータを分割取得するかどうかを指定します。DBアクセス部品とは,ODBCドライバ,OLE DBプロバイダ,およびHiRDBデータプロバイダ for .NET Frameworkを示します。

YES:

DBアクセス部品を使用して,BLOB型,またはBINARY型の列を検索する場合に,位置付け子機能を使用してデータを分割取得します。

NO:

DBアクセス部品を使用して,BLOB型,またはBINARY型の列を検索する場合に,位置付け子機能を使用しません。

《適用基準》

NOを指定した場合(省略時仮定値の場合),DBアクセス部品側が列の定義長分のデータ受信領域を確保します。また,HiRDBクライアント側でも列の定義長分のデータ受信領域を必要とします。

列の定義長が大きいと,実行時にメモリ不足になったりすることがあるため,メモリ不足になることを回避する場合はYESを指定してください。なお,YESを指定すると,HiRDBサーバとの通信回数が分割取得回数分増えます。

PDODBSPLITSIZE=分割取得サイズ

〜<符号なし整数>((4〜2097152))《100》(単位:キロバイト)

PDODBLOCATOR=YESを指定している場合に,分割取得のサイズを指定します。

《指定値の目安》

実データ長の分布を考慮して,分割取得回数が少なくなり,かつメモリ不足が発生しない値を指定してください。

PDODBCWRNSKIP={YES|NO

ODBC,OLE DB接続時のワーニングを回避するかどうかを指定します。なお,ODBC,OLE DB接続以外の場合,この環境変数を指定しても無視されます。

YES:

ODBCドライバ使用時にSQLFetch()の延長でSQLWARNが設定された場合でも,ODBCドライバでSQLFetch()の戻り値としてSQL_SUCCESSを返却します。

OLE DBプロバイダ使用時にSQLWARNが設定された場合でも,エラーオブジェクトの生成をスキップします。

NO:

ODBCドライバ使用時にSQLFetch()の延長でSQLWARNが設定された場合,ODBCドライバでSQLFetch()の戻り値としてSQL_SUCCESS_WITH_INFOを返却します。

OLE DBプロバイダ使用時にSQLWARNが設定された場合,エラーオブジェクトを生成します。

《適用基準》

ODBCドライバでは,検索処理でHiRDBのSQL連絡領域のSQLWARNが設定された場合,SQLFetch()の戻り値としてSQL_SUCCESS_WITH_INFOを返却します。しかし,ODBCドライバを呼び出す上位アプリケーションによっては,SQL_SUCCESS_WITH_INFOで検索処理を打ち切るものがあります。この環境変数にYESを指定すると,検索処理でSQL連絡領域のSQLWARNが設定された場合でも,SQLFetch()の戻り値をSQL_SUCCESSとすることで,検索処理が続行できるようになります。

OLE DBプロバイダでは,SQL実行時にHiRDBのSQL連絡領域のSQLWARNが設定された場合,エラーオブジェクトを生成します。しかし,OLE DBプロバイダを呼び出す上位アプリケーションによっては,エラーオブジェクトの生成に伴い例外が発生する場合があります。この機能を適用すれば,SQL実行時に警告が発生した場合でもエラーオブジェクトの生成をスキップすることで,上位アプリケーションによる例外の発生を回避できるようになります。

注※

例えば,ADO.NETを使用してODBC経由でHiRDBに接続している場合,SQL_SUCCESS_WITH_INFOで検索処理が打ち切られることがあります。

PDJETCOMPATIBLE={YES|NO

ODBC3.5ドライバを,ODBC3.5の規格ではなくMicrosoft Access互換モードで動作させるかどうかを指定します。

YES:

ODBC3.5ドライバは,Microsoft Access互換モードで動作します。

NO:

ODBC3.5ドライバは,ODBC3.5の規格どおりに動作します。

《適用基準》

Microsoft Accessを使用してデータベースにアクセスする場合に指定します。この環境変数を指定しないと,検索結果が"#Delete"と表示されたり,挿入したデータが不正に変換されることがあります。なお,Microsoft社が提供するほかの製品やインタフェースでこのような現象が発生した場合,この環境変数を指定することで回避できることがあります。