0

私はサービスファブリックの新機能です。サービスファブリックステートマネージャトランザクション内でI/O操作を実行することの意義?

状態マネージャのトランザクションを開き、その中にネットワークI/O(非サービスファブリックWebサービスコール)を作成した場合は、そのトランザクションをコミットします。問題が発生していることを知りたいのですが、Service Fabric Reliableサービスを使用してこれを行うより良い方法がありますか?

答えて

2

外部Webサービスを呼び出すには時間がかかることがあります(ビジー状態や利用できない場合など)。したがって、長いロック時間を避けるために、トランザクションスコープ外の呼び出しを外部システムに保つようにしてください。長いロックはタイムアウトエラーを引き起こすためです。

可能であれば、まずサービスコールを実行してからトランザクションを実行するか、その逆の場合もあります。

(トランザクション内でWebサービスコールをネストするときに分散トランザクションを取得しないことを確実にしてください)

+0

状態マネージャのトランザクションは分散されていますか? DTCをサービスファブリッククラスタのすべてのノードで有効にする必要がありますか? – CGSK

+1

はい、配布されています。ただし、OLEDB/ODBCトランザクションではなく、MS DTCを使用しません。詳細はこちら:https://azure.microsoft.com/en-gb/documentation/articles/service-fabric-reliable-services-reliable-collections/ – LoekD

関連する問題