13.12.1 ODBCエラーログ
トラブルシュート情報として,ODBCエラーログを取得できます。ODBCエラーログファイルには,ODBC3.5ドライバ内で検知した一部の障害について,障害要因が出力されます。
(1) エラーログの対象
エラーログの対象となるエラーを次の表に示します。
|
SQLSTATE |
エラーメッセージ |
エラー内容 |
|---|---|---|
|
22003 |
Numeric value out of range |
データ変換失敗(バッファサイズ指定誤り) |
|
22005 |
Error in assignment |
データ変換失敗(データ不正) |
|
HYC00 |
Optional feature not implemented |
HiRDB ODBCでは未サポートのオプション要求 |
(2) ODBCエラーログの取得方法
ODBCエラーログの取得方法及び仕様について次に示します。
- 取得方法
-
クライアント環境定義PDODBERRTRCで指定します。
-
YES:ODBCエラーログを出力します。
-
NO:ODBCエラーログを出力しません(従来の動作)。
-
- 出力先ファイル名
-
下記2つのファイルを作成し,ラップアラウンドして出力します。
-
pdodberr1.trc
-
pdodberr2.trc
-
- 出力先ディレクトリ
-
クライアント環境定義PDCLTPATHで指定します。省略時はUAP実行ディレクトリに出力します。
出力先ディレクトリが存在する又は書き込み権限がある場合に出力します。
- 出力先ファイルサイズ
-
クライアント環境定義PDODBERRTRCSIZEで指定します。
エラーログ出力時,出力先ファイルサイズがPDODBERRTRCSIZEを超えていた場合,出力先が切り替わります。
(3) ODBCエラーログの見方
ODBCエラーログの出力例とその説明を次に示します。
[出力例]
[1] [2] [3] [4]
** HiRDB ODBC DRIVER ERROR CLT(ODBC):10-09 SVR:10-09 US UTF8 **
CONNECTION STATUS :[5]
CURHOST(XXX.XXX.XXX.XXX)
CURPORT(22201) SVRNAME(sds01)
CNCTNO(242) SVRPID(29580) CLTPID(31508) CLTTID(33476) CLTCNCTHDL(0xf84a06e0)
ODBC ENVIRONMENT :[6]
PDCLTCNVMODE(NOUSE);PDJETCOMPATIBLE(YES);PDODBSTATCACHE(0);PDODBESCAPE(0);PDGDATAOPT(NO);PDODBLOCATOR(YES);PDODBSPLITSIZE(102400);PDODBCWRNSKIP(YES);PDODBGINFOSUPPRESS(YES);PDODBSTANDARDARGSIZE(YES);PDODBSTANDARDSQLSTATE(YES);PDODBSTANDARDDESCCOL(YES);PDODBSTANDARDGTYPEINFO(YES);PDODBCOLSIZEUNIT(CHAR);PDODBSETATEXECLEN(YES);PDODBSYSUNSIGNED(YES);PDODBSYSKEYS(YES)
HIRDBINIPATH : C:\windows\HiRDB.ini[7]
2024/10/02 18:32:16[8]
od3dcnvl.c(1769)[9]
SECNO(1)[10]
*SQL* CALL P1(?)[11]
SQLExecDirect([12]
StatementHandle 0x000002114D9348E0
StatementText 0x000002114D92AE60
TextLength 10
)
DIAG [22005] [HITACHI][HiRDB]Error in assignment.[13]
SQLBindParameter([14]
StatementHandle 0x000002114D9348E0
ParameterNumber 1
InputOutputType 2
ValueType -8
ParameterType 91
ColumnSize 10
DecimalDigits 0
ParameterValuePtr 0x00007FF6C80AD248
BufferLength 10
StrLen_or_IndPtr 0x00007FF6C80AD750
)
DATA=32 00 30 00 32 00 34 00 2d 00 *2.0.2.4.-. *[15]
[説明]
-
タイトル
ODBCエラーログのタイトルを表示します。
-
ODBC作成バージョン
ODBCドライバの作成バージョンを表示します。
-
サーババージョン
接続先HiRDBのバージョンを表示します。
-
サーバの文字コード
接続先HiRDBサーバの文字コードを表示します。
-
UAP実行ステータス
ODBCドライバを使用したアプリケーションを実行したときのサーバとの接続状態を表示します。
-
CURHOST:接続先ホスト名
-
CURPORT:接続ポート番号
-
SRVNAME:フロントエンドサーバ名,又はシングルサーバ名
-
CNCTNO:コネクト通番
-
SVRPID:接続サーバのプロセス番号
-
CLTPID:UAPのプロセス番号
-
CLTTID:UAPのスレッド番号
-
CLTCNCTHDL:コネクションハンドル
なお,取得できる情報の値だけを表示します。
-
-
UAP実行環境
ODBCドライバを使用したアプリケーションを実行したときのODBC関連のクライアント環境変数の値を表示します。
-
HiRDB.iniのパス
有効となっているHiRDB.iniのパスを表示します。
- Windows版:
-
データソースで設定したHiRDBクライアント環境変数ファイル名,又はWindowsディレクトリ下のHiRDB.ini
- UNIX版:
-
データソースで設定したHiRDBクライアント環境変数ファイル名
-
エラー検知日時
エラーを検知した日時を表示します。
-
エラー発生個所
ODBCドライバ内でエラーを検知したファイル名及び行番号を表示します。
-
セクション番号
SQLの対応を格納するための番号を表示します。番号はODBCドライバが自動で付与します。
-
SQL文
エラー発生時にSQL文を表示します。エラー検知箇所によってはSQL文が表示されないこともあります。
-
エラーを検知したODBC関数
エラーを検知したODBC関数について,引数情報を表示します。なお引数の値については,ODBC仕様を参照してください。
-
エラーメッセージ
エラーメッセージを表示します。
-
パラメタ又は結果セットのバインド情報
SQLSTATEが22003又は22005エラーでは,エラーを検知したパラメタや結果セットに対するバインド情報(SQLBindParameter及びSQLBindColの引数)を表示します。なお引数の値については,ODBC仕様を参照してください。
-
パラメタ又は結果セット
SQLSTATEが22003又は22005エラーでは,エラーとなったパラメタや結果セットのデータを表示します。