※ ChatGPTを利用し、要約された質問です(原文:分散トランザクションを開始できなかった)
分散トランザクションを開始できなかったエラーの解決方法について
このQ&Aのポイント
分散トランザクションの開始に失敗するエラーが発生しています。
エラーメッセージによると、OLE DBプロバイダ 'SQLOLEDB' が新しいトランザクションに参加できないため、要求した操作は実行されませんでした。
解決方法として、ビューやMSDTCの設定を確認する、エンタープライズマネージャーを使用してリンクサーバーを設定し、データベースの内容を確認することができます。また、ストアドプロシージャ内でカーソルを使用している場合は、カーソルの定義やフェッチの方法を確認する必要があります。
[OSのVER]:2003server 同士
[SQLServerのVER]:SQLServer2000 StandardEdition SP3
はじめまして!
前のログ(http://www7.big.or.jp/~pinball/discus/sqls/26278.html)で
でていたエラーメッセージ
サーバー : メッセージ 7391、レベル 16、状態 1、プロシージャ
[Microsoft][ODBC SQL Server Driver][SQL Server]OLE DB プロバイダ 'SQLOLEDB' は分散トランザクションを開始できなかったので、要求した操作は実行されませんでした。
[OLE/DB provider returned message: 指定されたトランザクション コーディネータに、新規トランザクションを参加できませんでした。]
OLE DB エラー トレース [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]。
と表示されます
ビューや、MSDTC(http://support.microsoft.com/?scid=kb;ja;329332&spid=2852&sid=global)
などすべてやってみましたがだめでした
Enterprise Managerでリンクサーバーを設定して中身を確認する事もできました
ビューでその別サーバーのDBを覗くこともできます
ストアドでカーソルを使用しています
DECLARE M_USER_CSR CURSOR FOR SELECT
INPDATE
FROM
[別サーバ名].DB.dbo.xxxxxx
WHERE
INPDATE = @COMP_DATE -- システム更新日付比較
と、定義して
FETCH NEXT FROM M_USER_CSR
としたところで、エラーが表示されます
最初のフェッチではエラーがでず(一件目は正常に内容を取得してます)
二件目のフェッチでエラーがでます
どのような解決方法がございますか?
どうか教えてください
よろしくお願いします
ps:サーバー同士はドメイン管理されていません
ワークグループ管理のもと互いに信頼関係は結んでおります
お礼
その通りでした ありがとうございました 最初そのページを見たのですが、元々あるものだと 思っていて、追加するなんて思わなかったです うまくいきました ありがとうございました