問題タブ [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.
transactions - NServiceBus: MSMQ トランザクションは良くないですか?
NServiceBus と MSMQ について学んでいます。MSMQ のトランザクション キューは不適切であり、それらを使用するとパフォーマンスが大幅に低下すると言われました。誰かが理由を知っていますか?これは、DTC を使用し、DTC が実際にはスケーラブルなソリューションではないことを誰もが知っているという考えから来ていると推測しています。NServiceBus を使用した MSMQ がそれほど悪くない理由がいくつかあるように思えますが、それがどのように機能するかを完全に理解しているかどうかはわかりません。これを論理的に見ると、配信を保証するために NServiceBus がトランザクションを使用する 3 つの場所を考えることができます。
- ネットワーク経由でメッセージを送信する場合、トランザクションを使用して、メッセージを破棄する前に、そのメッセージがリモート キューに到達したことを確認したい場合があります。
- ローカル キューからメッセージを読み取る場合、メッセージを破棄する前に、メッセージが正常に処理されたことを確認する必要がある場合があります。
- メッセージを複数のサブスクライバーに発行する場合、破棄する前にすべてのサブスクライバーにメッセージが届いていることを確認する必要がある場合があります。(これがNServiceBusの機能ではないことを本当に願っています)
NServiceBusがこれをどのように行うかについて、誰かが私をまっすぐにすることができますか?
wcf - トランザクションをサポートする WCF カスタム メッセージの書き込み
System.Servicemodel.Channels.Message を継承するカスタム メッセージを使用しています。
私のカスタム メッセージは、データベースから取得した IEnumerable コレクションを取得します。
WCF サービスはトランザクション対応です (既にテスト済み)。
MS-DTC が有効です。
問題は、保護されたオーバーライド void OnWriteBodyContents(XmlDictionaryWriter writer)メソッドがカスタム メッセージで実行されるときに、トランザクションがないことです。
System.Transactions.Transaction.Current が null です。サービスの実行中、トランザクション フローは正常に動作しますが、メッセージが WCF メカニズムによって書き込まれると、DB コマンド (データをプルする) がトランザクションなしで実行されるトランザクションから外れているように見えます。
IEnumerable の代わりに単純な配列を渡す場合、DB アクションはトランザクションの下で実行されますが、応答の書き込みと並行して実行する必要があることに注意してください。
トランザクションが欠落している理由と、それをアクティブにするために何ができるかについて、アイデアをお願いします。
どうもありがとう!
タミール。
java - Java用の軽量インプロセス分散トランザクションマネージャー?
Clojureを拡張して、ユーザーが永続化するデータストアインスタンスを選択できるように、refに耐久性を追加しようとしています。それには分散トランザクションが必要です。XAをサポートするJava用の本当に軽量なインプロセス分散トランザクションマネージャーはありますか?そうでない場合、そして私が自分自身を転がさなければならない場合、分散トランザクションコーディネーターがサポートしなければならないことを説明する良いリソースはありますか?具体的には、XIDの3つの部分のセマンティクスが実際にどうあるべきかを理解するのに苦労しています。最初の実装として、私はBDBJEを使用しています。
jta - Berkeley DB Java Edition for Distributed Transactions(XA)でのトランザクション分離レベルの設定
BDB JEアプリケーションで分散トランザクションを使用して、複数のBDBJE環境間でトランザクションを調整しています。トランザクション分離レベルをシリアル化可能に設定したい。分散トランザクションを開始するには、生成したXidを使用し、BDB JEのネイティブトランザクションクラスを避けて、グローバルに一意であることを確認する必要があります。開始するトランザクションブランチはThreadLocalであるため、操作のトランザクションフィールドにnullが渡されます。では、分離レベルを設定するにはどうすればよいですか?分離レベルはすでにデフォルトでシリアル化可能になっていますか?私のグーグルフーは何も上げていません...
rest - RESTful 2フェーズコミット?
重複の可能性:
RESTWCFサービスでのトランザクション
http://rest.blueoxen.net/cgi-bin/wiki.pl?TwoPhaseCommitは、リクエストに関連付けられたトランザクションを識別するために、カスタムヘッダー値を使用して2フェーズコミットを実装することを提案しました。このアプローチはキャッシングプロキシを壊しませんか?たとえば、プロキシはHTTP DELETE /foo
トランザクション123に対して認識しますが、このトランザクションが後でロールバックされることを認識できるほど賢くはありません。次に、プロキシは/foo
削除されたファクトのキャッシュに進みます。
私が間違っている?RESTful 2フェーズコミットを実装するために何をお勧めしますか?
wcf - 構成バインディング拡張機能が見つかりませんでした
分散トランザクションに参加するWCFWebサービスを実行しようとしています。次のエラーメッセージが表示され続けます...
構成バインディング拡張機能'system.serviceModel/ bindings/myBinding'が見つかりませんでした。このバインディング拡張機能がsystem.serviceModel/extends / bindingExtensionsに正しく登録されていること、およびスペルが正しいことを確認してください
これがweb.configです
誰かがこれの何が悪いのかわかりますか?それは私を夢中にさせています!
ありがとう
ピート
transactionscope - TransactionScopeが分散トランザクションをロールバックしないのはなぜですか?
SQL Serverにデータを更新するために、ECOと呼ばれるオブジェクト永続化フレームワークを使用しています。TransactionScopeを作成し、最初のトランザクションがコミットされた後、2番目のトランザクションがコミットされる前に意図的に例外をスローすると、最初のデータベースが更新され、2番目のデータベースは更新されないことに気付きました。
分散トランザクションコーディネーターがメインDBで実行されたら、多数の更新を中心にTransactionScopeを作成するだけでよいと思いましたか?
最初のDBが更新されるが、2番目のDBは更新されないシナリオを許可することで、これが許可される理由を誰かが考えることができますか?
java - 異なるサーバーにデプロイされている異なるEARでJTAを使用できますか?
分散トランザクション(JPA、JMS、EHCache全体)が必要なため、JTAを検討しています。
JTAが私が検討している追加機能を提供できるかどうかを理解しようとしています。
3つの異なるサーバーがある場合、それぞれがGlassfishを実行し、各サーバーには異なるEAR(私の異なるモジュール)があります。
異なるサーバーと異なるEARにまたがるトランザクションを持つことはできますか?
ありがとう、
イッタイ
entity-framework-4 - Entity Framework 4.0 で DTM を使用する必要があるのはなぜですか? 使用しないことは可能ですか?
私はほぼ1年前にEFを使用しています。次のコードのような非常に複雑なクエリでTransactionScope取引を使用しようとしています。
その後、DTM が有効になっていない、またはアクセスできないというエラーが表示されました。データベースサーバーのこのサービスが開始されていないか、ファイアウォールによってブロックされていることが原因であることはわかっています。しかし、それは私の主張ではありません。
EF がこのサービスを使用してトランザクションを作成する理由を知りたいのですが、プレーン SQL スクリプトは「BEGIN TRAN」、「SAVE TRAN」、「ROLLBACK TRAN」などのステートメントしか使用できません。
非常に単純なトランザクション ステートメントに対して DTM サービスを呼び出さないようにする他の方法はありますか?
PS。現在の作業データベースは非常に小さいので、異なるトランザクション技術の影響を受けるべきではないと思います。
ありがとう、
sql-server - MSDTCにSQLServer分散トランザクションを孤立させる
プロジェクトのWebSphereベースのJavaEEアプリケーションをシャットダウンすると、分散トランザクションがSQLServer2005データベースで存続することがあります。これらは永久にロックを保持し、手動で強制終了する必要があります。それらは、この非常に優れた記事で一般的に説明されています。
この記事では、トランザクションコーディネーターが分散トランザクション参加者を調整できないため、プロセスID-2でトランザクションにフラグを立てる方法について説明しています。
この問題が発生することはめったにありませんが、アプリケーションをシャットダウンすると常に発生することを考えると、MSDTCの障害であるとは確信していません。WebSphereと、WebSphereがアプリケーションを終了する方法と関係がある可能性が高くなります。
テストしたいのですが。しかし、私はそれを確実に実現することはできません。
MSDTCにSQLServer分散トランザクションを孤立させる方法はありますか?