< Oracleのビューを使用する | ASPからコールするCOMコンポーネント >

November 18, 2003

分散トランザクションを開始できないエラー

Oracleのビューを使用するのように、Oracleのリンクサーバーを作成して、それを使用して更新処理を行う場合に、こんなエラーをよく目にします。

-2147217900(0x80040E14)
Microsoft OLE DB Provider for SQL Server
OLE DB プロバイダ 'MSDAORA.1' は分散トランザクションを開始できなかったので、要求した操作は実行されませんでした。

このエラーが出る要因は、調べた限り、以下のものがありそうです。

  1. MSDTCが起動していない
  2. MtxOCI.dllが読み込めない
  3. トランザクションをネストしている(?)

1は、コントロールパネル>管理ツール>サービスを開き、Distributed Transaction Coordinatorという項目を探して、サービスが開始されているか確認します。

2は、レジストリの設定が正しいかどうか確認します。ちなみにクライアントがOracle9i Enterprise Edition Release 9.2.0.1.0の場合は以下の値で動作しました。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI]
"OracleXaLib"="oraclient9.dll"
"OracleSqlLib"="orasql9.dll"
"OracleOciLib"="oci.dll"

MSDE等には9iに関しての情報がないのですが、インストールされているのはoraclient9.dllなので、まあそれでいいんでしょう。(DLLの名前なんてバージョンごとに変えないでほしいのですが・・・)

トラックバック

このエントリーにトラックバック:
http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/103

コメント

コメントする

※ コメントスパム対策のため、コメント本文はおはよう、こんにちわ、こんばんわのいずれかより始めるようにしてください。

name:
email:

※ 必要ですが、表示しません。

url:
情報を保存する ?