これは InterSystems FAQ サイトの記事です。
ODBCクライアントからのアクセスでエラーが発生した場合、返ってきたエラーメッセージやコンソールログ上の情報だけでは原因がよくわからない場合があります。
そのような場合にODBCドライバのクライアントログを有効にすることで、エラーについての詳細情報を取得することができます
ODBCログの有効化については以下をご参照ください。
Windowsの場合は、上記に記載されている通り、2種類のログが取得できます。
- クライアント・ドライバのログを有効にするには、ODBCデータソースアドミニストレータで使用しているDSNの「ODBCログ」チェックボックスをチェックします。
- ドライバー・マネージャのログを有効にするには、[トレース]タブをクリックして[トレースの開始]ボタンをクリックします。
変更の反映にはODBCクライアントアプリケーションを再起動する必要があります。
既定のODBCクライアントログファイル名は IRISODBC.log で、既定の場所は C:¥Users¥Public¥Logs です。
既定のトレースログ名は、SQL.logで、既定の場所は、c:¥Users¥<ユーザー名>AppData¥Local¥Temp¥です。
(すべてのユーザーIDのコンピュータ全体のトレースをチェックしない場合)
複数回ODBCリクエストが実行された場合、上書きではなくログが追記されます。
クライアントのプロセス毎に個別にログを取得することもできます。
クライアントログが正常に取得できている場合、以下の様な内容が書き込まれます。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Started At: Tue Mar 25 22:44:02 2025
Driver Name: IrisODBC3564.DLL
Unicode Client Version: 2024.2.0.247.0
Compiled at: Jul 16 2024 09:17:19
ODBC Version: 03.51
Locale Setting: Japanese_Japan.932
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
LoadConnect returned: 0x4DBC0000
LoadConnect returned sm_pfnIRISconnectToHostPort: 0x4DBC6750
LoadConnect returned sm_pfnIRISconnectSend: 0x4DBC62B0
LoadConnect returned sm_pfnIRISconnectRecv: 0x4DBC5E70
LoadConnect returned sm_pfnIRISconnectClose: 0x4DBC2CA0
LoadConnect returned sm_pfnIRISconnectGetErrorCode: 0x4DBC34C0
LoadConnect returned sm_pIRISconnectGetErrorText: 0x4DBDC000
LoadConnect returned sm_pfnIRISconnectGetSecurityLevel: 0x4DBC35F0
LoadConnect returned sm_pfnIRISconnectSetSecurityLevel: 0x4DBC6670
LoadConnect returned sm_pfnIRISconnectGetSocketDescriptor: 0x4DBC3610
LoadConnect returned sm_pfnIRISconnectLoginToHostPort: 0x4DBC4AE0
LoadConnect returned sm_pfnIRISconnectGeneratePrincipalName: 0x4DBC3120
LoadConnect returned sm_pfnIRISconnectGetLicenseId: 0x4DBC3530
LoadConnect returned sm_pfnIRISconnectSetTraceFilePtr: 0x4DBC6740
LoadConnect returned sm_pfnIRISconnectGetTSClientName: 0x4DBC3620
LoadConnect returned sm_pfnIRISconnectSetLocalBindings: 0x4DBC64E0
LoadConnect returned sm_pfnIRISconnectSetMode: 0x4DBC6630
LoadConnect returned sm_pfnIRISconnectGetRdlen: 0x4DBC35E0
GetLocalizedResources: (03/25/25-22:44:02:636) Found resources for locale JPN (400) in C:\Program Files\Common Files\InterSystems\IRIS\IrisODBCJPN.DLL
--> ConfigDSNW: (03/25/25-22:44:02:636) hParent = 0x000a1350 request 2
<-- ConfigDSNW: (03/25/25-22:44:11:189) returning 1
トレースログが正常に取得できている場合、以下の様な内容が書き込まれます。
EXCEL acec-31b4 ENTER SQLAllocHandle
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 0x0000000000000000
SQLHANDLE * 0x000002D12FAA60A0
EXCEL acec-31b4 EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 0x0000000000000000
SQLHANDLE * 0x000002D12FAA60A0 ( 0x000002D11D6A1070)
EXCEL acec-31b4 ENTER SQLSetEnvAttr
SQLHENV 0x000002D11D6A1070
SQLINTEGER 200 <SQL_ATTR_ODBC_VERSION>
SQLPOINTER 3 <SQL_OV_ODBC3>
SQLINTEGER -6
ログの内容の解析は専門的な知識が必要となりますので、取得後インターシステムズサポートセンターまでお送りください。