Question & Answer
Question
Windows の IIS (インターネット インフォメーション サービス) 上で稼働する .NET アプリケーションなどから Db2 へ接続すると、以下のようなエラーが発生します。
SQL1159 Initialization error with DB2 .NET Data Provider, reason code 10, tokens 0.0.0, 9.5.7
Cause
IIS 上で稼働するアプリケーションは、IIS のワーカー・プロセス (w3wp.exe) 内で稼働しており、このプロセスは通常は IIS 用のビルトイン・ユーザー・アカウントの権限で実行されています。
IIS が稼働するマシンにインストールされている Db2 クライアントで拡張セキュリティーが有効な場合、Db2 へ接続するアプリケーションが稼働するプロセスの実行ユーザーは DB2 管理者グループか Db2 ユーザー・グループのいずれかに所属している必要がありますが、IIS のビルトイン・アカウントがこれらのグループに所属していないため、Db2 のライブラリー・ファイルなどにアクセスできず、エラーになります。
IIS が稼働するマシンにインストールされている Db2 クライアントで拡張セキュリティーが有効な場合、Db2 へ接続するアプリケーションが稼働するプロセスの実行ユーザーは DB2 管理者グループか Db2 ユーザー・グループのいずれかに所属している必要がありますが、IIS のビルトイン・アカウントがこれらのグループに所属していないため、Db2 のライブラリー・ファイルなどにアクセスできず、エラーになります。
Answer
エラーを回避するためには、IIS のワーカー・プロセスがどのユーザー・アカウントで実行されているかを確認し、そのユーザー・アカウント、もしくはユーザー・アカウントが属するグループを Db2 管理者グループか Db2 ユーザー・グループに追加してください。
運用上の考慮点
関連情報
DB2ADMNS と DB2USERS グループの使用による拡張 Windows セキュリティー
SQL1159 rc=10 when running a DB2 .NET application
- プロセスの実行ユーザーを tasklist コマンドで確認します。
C:\>tasklist /v | findstr w3wp.exe w3wp.exe 2188 Services 0 10,084 K Unknown IIS APPPOOL\DefaultAppPool 0:00:00 N/A
- Db2 レジストリー変数の DB2_EXTSECURITY を確認しmす。YES となっている場合、拡張セキュリティーは有効です。
コマンドは Administrator としてログオンし「DB2 コマンド・ウインドウ - 管理者」から実行してください。C:\>db2set -all | findstr DB2_EXTSECURITY [g] DB2_EXTSECURITY=YES
- Db2 管理者グループと Db2 ユーザー・グループに設定されたグループを、Db2 レジストリー変数の DB2_ADMINGROUP と DB2_USERSGROUP から確認します。
たとえば以下の例では、ドメインに参加していないマシンの場合はローカル・グループの DB2ADMNS と DB2USERS が、ドメインに参加しているマシンの場合は DB2SRV ドメイン上のドメイン・ローカル・グループである DB2ADMNS と DB2USERS が、それぞれ Db2 管理者グループと Db2 ユーザー・グループに設定されています。C:\>db2set DB2_ADMINGROUP DB2SRV\DB2ADMNS C:\>db2set DB2_USERSGROUP DB2SRV\DB2USERS
- 上記で確認できたグループに、IIS のワーカー・プロセスの実行ユーザーもしくは実行ユーザーが所属するグループを追加し、OS を再起動した後、アプリケーションを再度実行してください。
運用上の考慮点
- グループにユーザーを追加した後に再起動をしていない場合、トークンなどの影響により変更が反映されない場合がありますので、必ず Windows の再起動を行ってください。
- V9.7 FP4 以降は、このエラーの出力にプロセスの実行ユーザーも記録されます。
IC73331: ADD TOKEN TO SQL1159N ERROR SHOWING THE USERID TRYING TO ACCESS IBM.DATA.DB2.DLL AND DB2APP.DLL.
関連情報
DB2ADMNS と DB2USERS グループの使用による拡張 Windows セキュリティー
SQL1159 rc=10 when running a DB2 .NET application
[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PkuAAE","label":"Security and Plug-Ins"}],"ARM Case Number":"","Platform":[{"code":"PF033","label":"Windows"}],"Version":"All Versions"}]
Was this topic helpful?
Document Information
Modified date:
25 August 2023
UID
swg21591320