問題タブ [distributed-transactions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jdbc - ステートメントレベルでトランザクションタイムアウトをオーバーライドする
私のibatis設定では、XAデータソースとJTAトランザクションマネージャーを使用しています。ステートメントレベルでトランザクションタイムアウトをオーバーライドすることは可能ですか?
ここで提案されているオプションを試しました:IBatisクエリタイムアウトを指定します。それは動作しません。
私のアプリケーションの特定のSQLは長時間実行されるクエリであり、タイムアウトなしでタイムアウトになります。weblogicJTA設定で設定された秒数。
お知らせ下さい。
c# - Mysql の C# での分散トランザクション
C# アプリケーションがあります。別の場所にある複数のデータベースを挿入および更新するトランザクションを実行したいと思います。mysql が提供する .net コネクタ経由でサポートすることに気づきました。これに対する解決策はありますか?私が現在行っていることは、2 つのトランザクションを開いてから 1 つをコミットし、その後別のトランザクションをコミットすることです。これは、何かが更新されないことがあるため危険です。
java - トランザクション処理の多層アプリケーション
複数のシステムにまたがるトランザクションを持つ可能性はありますか?
例:
レイヤー 1 - Web サービスを公開します (weblogic にデプロイされます) レイヤー 2 - .NET フロント エンド (IIS にデプロイされます)
.NET から開始された複数の Web サービス呼び出しに対して、トランザクションのコミットまたはロールバックを行うことはできますか?
もしそうなら、誰かが私にリソースやドキュメントを教えてもらえますか? また、各層がトランザクションに参加するために準拠するための特別な要件はありますか?
mysql - MySQL と MSSQL 間の分散トランザクション
分散トランザクションを機能させるために、1 週間近く試してみました。MySQLからデータを選択しようとするMSSQLに関するいくつかの手順があります。私の必要性は、これを 1 つの (!) トランザクションで行うことです。OpenLinkのSingle-Tier MySQLドライバーを使用してMSSQLでODBC接続をセットアップした時点で、XAトランザクションが正常に機能することがわかりました(ODBC接続の構成後に統合されたテストボタンがあります)。次に、MSDASQLを介してMSSQLでリンクサーバーをこのODBC接続にセットアップしましたが、実行するとき
実際のトランザクション内でこれ以上トランザクションを開始できないというエラーが表示されます。( 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.
)
別のテスト:
しかし、構成時に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 トランザクションが機能すると述べているのはなぜでしょうか?
java - 原因がわからない問題をデバッグする方法
weblogic サーバー v10.3.2.0 で次の例外に直面しています。JRockit JRE 6.0 を使用しています。
すべてのサーバー リクエストには、約 6 ~ 7 個の XA データソースが含まれます。最後のデータソースの処理が始まったばかりのときに、この例外に直面します。
誰かアドバイスください。
database - 2 フェーズ コミット
ほとんどの人は、2PC (2 フェーズ コミット プロトコル) とは何か、Java やほとんどの最新言語での使用方法を知っていると思います。基本的に、2 つ以上の DB がある場合にトランザクションが同期していることを確認するために使用されます。
2 つの異なる場所で 2PC を使用する 2 つの DB (A と B) があるとします。A と B がトランザクションをコミットする準備ができる前に、両方の DB がトランザクション マネージャーに、コミットする準備ができていることを報告します。そのため、トランザクション マネージャーが承認されると、A と B に信号を送り返し、先に進むように伝えます。
ここに私の質問があります: A がシグナルを受信し、トランザクションをコミットしたとしましょう。すべてが完了すると、B も同じことをしようとしますが、誰かが電源ケーブルを抜いて、サーバー全体をシャットダウンさせます。B がオンラインに戻ったとき、B は何をしますか? そして、Bはどのようにそれをしますか?
A はコミットされていますが、B はコミットされておらず、2PC を使用していることを思い出してください (つまり、2PC の設計は機能しなくなりますよね?)
java - jdbc でのロック、プロセス、およびロックの解除
それが私の要件です。データベース レコードをロックし、処理して解放することです。
環境 - weblogic 10.3 データベース - Oracle 11g データソース - 複数の XA リソースが関与 Tx マネージャー - JTA
これまでに行った実験の結果は次のとおりです。
実験 1 - コミットされていない読み取りに依存する
- データベースレコードを読む
- グローバル JTA トランザクションの一部として、別のテーブルの ID でレコードをロックします。
- レコードを処理する 同じレコードをロックしようとする 2 番目のトランザクションは失敗し、レコードをドロップします。ただし、これが機能するには、RDBMS でダーティ リードが許可されている必要があります。残念ながら、Oracle はコミットされていない読み取り分離レベルをサポートしていません。
実験 2 - ローカル トランザクションでレコードをロックする
- データベースレコードを読む
- 別のローカル トランザクションとして、別のテーブルの ID でレコードをロックします。
- レコードを処理し、トランザクションが正常にコミットされたらレコードを削除します。同じレコードをロックしようとする 2 番目のトランザクションは失敗し、レコードが削除されます。このアプローチはコミットされたデータに基づいており、うまく機能するはずです。ここに問題があります - ロック トランザクションとグローバル親が異なるため、処理がメイン トランザクションのロールバックに失敗した場合、ロック トランザクションをロールバックすることで補償する必要がありますが、これを行う方法がわかりません -ここで助けが必要です
レコード ロック トランザクションをロールバックできない場合は、レコード ロック コードの周りにダーティ ロジックを記述する必要があります。私はこれを好みません。
これは非常に一般的な要件のようです。皆さんがこれをエレガントに処理する方法を知りたいです。オラクルは、コミットされていない更新をすべてのトランザクションに可視化することを何らかの方法でサポートしていますか?
よろしくお願いします。
sql-server - 分散トランザクションのパフォーマンスオーバーヘッド
(Atomikosを使用して分散トランザクションの実装をテストしたとき、大きなオーバーヘッドに気づきました(XAを使用せずに30ミリ秒かかったトランザクションは、XAで160を要しました)
ほとんどの時間は「準備」と「コミット」に費やされているようです。
テストでは、実際の更新を行わずに、単一のデータソース(Microsoft SQL Server)を含むトランザクションの(非現実的な)シナリオを使用しました。そのような場合、最小限のオーバーヘッドが期待されます。
だから私の質問は:
- これは「通常の」オーバーヘッドですか?
- そうでない場合は、次にどこを見ればよいですか?(私の最善の推測は、SQL Server Profilerを使用して、データベース内で時間が費やされているかどうかを確認することです)
sql-server - 分散トランザクションを開始できません
リンクサーバーに対してSQLを実行しようとしていますが、以下のエラーが発生します。
プロバイダーから返されるエラーは2つあります。
エラー#1:
エラー#2
マイクロソフトにセキュリティよりも機能を優先させるにはどうすればよいですか?
または、少なくとも、2つのSQLサーバーを相互に通信させるにはどうすればよいですか?
関連する質問
- OLE DBプロバイダー「SQLNCLI10」が原因で操作を実行できませんでした...(*リンクサーバー名は
(null)
) - 分散トランザクションエラー?(Oracleプロバイダーを使用)
- NHibernateとの分散トランザクションに参加できません(Hibernateを使用)
- SQL Server 2008 R2で分散トランザクションを使用中にエラーが発生しました(SQL Server 2008 R2、応答なし)
- コードのみを介した分散トランザクションエラー(接続プールが原因)
- リンクサーバーで分散トランザクションコーディネーターを実行中にエラーが発生しました(SQL Server 2008、応答なし)
- 分散トランザクションエラー?(受け入れられた答えはありません。答えだけは役に立ちません)
- トランザクション内のリンクサーバーを使用してリモートテーブルに挿入する方法は?(受け入れられた回答は解決されません)
私がしたことは無関係ですが、とにかく投稿します。
Distributed Transaction Coordinator
サービスが両方のマチで実行されていることを確認します。両方のマシンですべてのMSDTCセキュリティを無効にします。
リンクサーバーでランダムオプションをオンにします。
呪われて誓った。
物を壊した。
リンクサーバー
SELECT
を使用できることを確認しました:クライアントサーバーが
ping
リモートサーバーに対応できることを確認しました。リモートサーバーが名前で開始サーバーに通信できることを確認しました。
@@SERVERNAME
両方のサーバーのサーバー名と一致することを確認しました:と
悲鳴を上げる
SET XACT_ABORT ON
クエリを発行する前に発行:-
両方のサーバーで。
wcf - wcfオートコンプリートはいつ正確に実行されますか?
TransactionScopeRequiredを持つWCFサービスがあるかどうか知りたいのですが、トランザクションバインディングを使用していません...
最初にメッセージを返し、後でトランザクションがロールバックする可能性はありますか?
他のワークでは...最初に実行されますか?メッセージの返送またはコミット?
前もって感謝します。