SQL1159 DB2 .NET Data Provider での初期化エラー、理由コード 7、トークン 9.5.0.DEF.2、SOFTWARE\IBM\DB2\InstalledCopies

StackOverflow https://stackoverflow.com/questions/29370

  •  09-06-2019
  •  | 
  •  

質問

Vista 64 で 32 ビット アプリケーションとして実行されている DB2 に接続するために、32 ビット .Net アプリケーションから DB2 データ プロバイダーを取得しようとしています (まだ十分に混乱していますか)。残念ながら、次のエラーが発生します。

SQL1159 DB2 .NET Data Provider での初期化エラー、理由コード 7、トークン 9.5.0.DEF.2、SOFTWARE\IBM\DB2\InstalledCopies

いくつかあります IBM フォーラムの投稿 それについては言及していますが、役立つガイダンスはほとんどありません。これを経験した人はいますか?それともそれを修正するためのより良いアイデアがありますか?

役に立ちましたか?

解決

x86 として実行する必要がありますか?Visual Studio の開発 Web サーバー (x86) の Web アプリでも同様の問題がありましたが、IIS (x64) に切り替えるとうまくいきました。IIS x64 に展開していたので、その時点で終わりにしました。

Filemon と Regmon でトレースを試みましたが、拒否またはキー不足のエラーは発生しませんでした。もう一度調べる場合は、HKLM\Software\WOW6432Node を確認します。インストーラーは x86 ノードではなく、x64 HKLM\Software ノードに書き込みを行うと推測します。

他のヒント

SQL 2005 から as/400 にリンク サーバーをセットアップしようとしたときに、DB2 for as/400 oledb ドライバーで同様の問題が発生したことを漠然と覚えています。これは権限の問題であり、最終的には、SQLサーバーアカウント(Windowsではない)のみがリンクサーバーを使用できることがわかりました。これは、ドライバーが偽装されたものではなくSQLの資格情報を使用して読み込まれていたためであると思います。「管理者として実行」したときに機能する場合は、権限がある必要があります。

という書き込みを見たことがあると思いますが、 SQL1159 の中に DB2 リファレンス ガイド?

残念ながら、理由コードは 6 で停止し、7 には続きません。それはこう言っています:

ユーザーの応答:DB2 のインストールに問題がありました。このコンピューターに DB2 を初めてインストールする場合は、インストール ログで考えられるエラーを確認し、コントロール パネルの [プログラムの追加と削除] アプレットから DB2 の修復を実行してください。インストール ログのデフォルトの場所は、インストールを実行したユーザーの My Documents/DB2LOG フォルダーです。これでも問題が解決しない場合は、IBM サポートに連絡し、このメッセージに関連付けられた理由コードをインストール ログとともに提供してください。

したがって、再インストールしてみて、問題が解決しない場合は、IBM に連絡する必要があると思います。

申し訳ありませんが、あまり役に立たないことは承知しています。

以前の 32 ビット バージョンをアンインストールし、64 ビットとして再インストールしたところ、まったく異なるエラーが発生しました。修正するにはFP2が必要であると記載されていますが、Express-Cを使用しているため、フィックスパックをインストールできません(IBMは無料のDB2製品用のフィックスパックを提供していません)。とにかく、助けてくれてありがとう。少なくとも今はつながることに近づくことができます。:)

Windows 2003 x86 サーバーでもこのエラーが発生しました。もともと私の問題は

要求された.NETフレームワークデータプロバイダーを見つけることができません。インストールされていない場合があります。

これにより、c:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config に DbProviderFactories セクションに必要なエントリが欠落しているというコメントが生成されました。そして確かに、そこには IBM DB2 エントリはありませんでした。エントリを手動で追加したときに、このエラーが発生しました。 もっと machine.config を編集するだけではありません。

最終的に、IBM DB2 ドライバー セットをアンインストールし、システムを再起動し、再インストールすると、接続が適切に初期化されました。

簡単なメモとして...

@マイケル:SQL1159 のリンクはバージョン 9.1 のドキュメントです。
バージョン 9.5 の資料では、理由コード 9 までが記載されています。
http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.messages.sql.doc/doc/msql01159n.html

残念ながら、文書化されていない 10 番目の理由コードがあると思いますが、developerWorks トピックに記載されています。
http://www.ibm.com/developerworks/wikis/display/DB2/DB2+and+.NET+FAQ#DB2and.NETFAQ-WhatisSQL1159InitializationError%3F

DB2 .netプロバイダーでも同じ問題が発生しました。

Windows 64ビットがある場合は、IBM Data Server Runtime Client(Windows AMD 64)バージョン9.5をダウンロードしてインストールします。
_https://www14.software.ibm.com/webapp/iwm/web/prelogin.do?lang = en_us&source = swg-idsrc11&s_tact = appddnet&s_cmp = ibm_imim

プログラムを実行すると、次の例外が発生します。

未処理の例外:System.Overflow 例外:算術操作によりオーバーフローが生じました。at ibm.data.db2.db2connpool.open(db2connection connection、stringszconnectionstringin、db2connsettings、db2connsettings、object&ppconn)ibm.data.db2.db2connection.open()

から db2 バージョンの修正をダウンロードしてインストールします。http://www-01.ibm.com/support/docview.wss?uid=swg1IZ09579

これで問題は解決します。

Win X64、バージョン9.7.1にDB2Express-Cをインストールすると機能します

私のマシンは64ビットなので、同様の問題がありました。32 ビットと 64 ビットの両方の db2 ランタイム クライアントをインストールし、プロジェクトでターゲット フレームワークを 32 ビットに設定したところ、完璧に動作しました。他の 64/32 ビット マシンでもアプリケーションを実行できましたが、マシンの OS に応じて、db2 ランタイム クライアントから 32 ビットまたは 64 ビットのいずれかをインストールする必要があります。

はい。これは Windows 7 では発生しますが、Windows XP では発生しません。魂は次のとおりです。

  • ソリューション エクスプローラーでプロジェクトを右クリックします
  • プロパティ
  • 「コンパイル」タブ (左側)
  • 下にスクロールして確認してください 高度なコンパイル オプション ボタン
  • ドロップダウンを変更する ターゲットCPU x86まで。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top