分散トランザクションを機能させるために、1 週間近く試してみました。MySQLからデータを選択しようとするMSSQLに関するいくつかの手順があります。私の必要性は、これを 1 つの (!) トランザクションで行うことです。OpenLinkのSingle-Tier MySQLドライバーを使用してMSSQLでODBC接続をセットアップした時点で、XAトランザクションが正常に機能することがわかりました(ODBC接続の構成後に統合されたテストボタンがあります)。次に、MSDASQLを介してMSSQLでリンクサーバーをこのODBC接続にセットアップしましたが、実行するとき
begin distributed transaction
select * from optin..lu_source_proc
select * from openquery(optinxa, 'SELECT * FROM tbl_source_proc')
commit transaction
実際のトランザクション内でこれ以上トランザクションを開始できないというエラーが表示されます。( Der OLE DB-Anbieter "MSDASQL" für den Verbindungsserver "optinxa" hat die Meldung "Es können keine weiteren Transaktionen in dieser Sitzung gestartet werden." zurückgeben.
)
別のテスト:
set transaction isolation level serializable
begin transaction
select * from optin..lu_source_proc
select * from openquery(optinxa, 'SELECT * FROM tbl_source_proc')
commit transaction
しかし、構成時にODBCDer OLE DB-Anbieter "MSDASQL" für den Verbindungsserver "optinxa" hat die Meldung "[OpenLink][ODBC][Driver]Driver does not support this function" zurückgeben.
ドライバーが XA トランザクションが機能すると述べているのはなぜでしょうか?