おぎわらさんの記事
[記事リンク]【超重要】データベースミラーリング (DBM) 利用時のアプリケーション設計・実装の注意点(PDF)
を読ませていただいて、ざっとだけ(自分に関係しそうな所だけ^^;)PDF読んでみました。
忘れない為にメモしとこう
■同期を取る為に、内部で下記動作を行っている
1. ログ情報の転送(プリンシパル -> ミラー)
2. ログ情報の反映(ミラー -> プリンシパル)
■DBM仕様による制限事項をうけないアプリケーション構成は下記
1. ローカルトランザクションである
(単一のSQLServer2005インスタンスに対してのみ処理を行う)
2. 単一データベース内のテーブル郡のみを処理する
3. マニュアルトランザクション(DBトランザクション含む)である
上記の構成以外であれば、
DBMフェイルオーバー時に原子性の破損、
AP/DBで不整合が発生する可能性がある
■ローカル型DTCトランザクションの注意
~TransactionScope + TableAdapterの組み合わせパターンで開発する場合~
○上記パターンでの開発時、
アプリとDBの間で「アプリ側はコミット完了、DB側はロールバック」という
不整合が発生する可能性がある。
※DB間の不整合は発生しない
○不整合が発生するシーケンス
a)MS-DTCがコミットを決定、
SQLServerに"非同期"でコミット要求を発行し、
アプリにはコミット応答を返す
b)直後にSQLServer側で障害が発生し、
DBMファイルオーバーが発生すると、
DB側のトランザクションはロールバックされる
○コードの例
using (TransactionScope scope =
new TransactionScope(TransactionScopeOption.RequiresNew))
{
TableAdapter.GetData(); ・・・※1
~処理~
TableAdapter.Update(); ・・・※2
scope.Complete();
}
※1と※2ではTableAdapterにより自動的に
ConnectionのOpen/Closeが行われる為、
Connectionが異なりMS-DTCが利用される
○回避作
a)コネクション変更によるLCTの利用(コード変更要)
・MS-DTCにならないようにする方法
・上記コード例を変更すると下記のようにする
using (TransactionScope scope =
new TransactionScope(TransactionScopeOption.RequiresNew))
{
try
{
TableAdapter.Connection.Open(); ・・・※1
TableAdapter.GetData();
~処理~
TableAdapter.Update();
}
finally
{
TableAdapter.Connection.Close();
}
scope.Complete();
}
※1 事前にConnectionを開いて置く事により、
TableAdapter内でのConnectionOpen操作を抑制し、
MS-DTCを利用しないようにする。
(MS-DTCは、下記条件であれば利用されない)
・利用するデータベースサービスが単一
・スコープ内で単一の接続しか利用されない
・スコープ内で単一の接続のOpen/Closeを繰り返しても駄目
b)ServiceDomainの利用によるSPC最適化(コード変更要)
c)セントラルMS-DTCサーバーによるSPC最適化
d)(非回避策)アプリケーションログによる運用対処
やばい・・・今のプロジェクトTableAdapterの自動Open/Closeとか使ってるような気がする・・・
しかもミラーリングも使ってる・・・
-- 11/01 15:00 追記 --
フレームワーク開発担当の方に聞くと、
MS-DTCへ昇格しないようにしているとの事。
さすがです(´▽`)
フィードバック
# 十郎さんご加盟
2006/11/01 17:13 by
十郎さんご加盟
# re: データベースミラーリングご使用上の注意・・・
2006/11/01 17:20 by
#お題目とはぜんぜん違いますが…
アクアと申します。よろしくお願いいたします。
# re: データベースミラーリングご使用上の注意・・・
2006/11/01 18:03 by
ようやく参戦ですな(今まで気付きませんでした^^;;)
盛り上げていきましょー^^
# re: データベースミラーリングご使用上の注意・・・
2006/11/01 19:08 by
ognac@わんくま@神戸です。宜しく願います。
# re: データベースミラーリングご使用上の注意・・・
2006/11/01 20:38 by
はじめまして、かるぼ@全治3週間 です。
よろしくお願いします。
_(_^_)_
# re: データベースミラーリングご使用上の注意・・・
2006/11/01 22:17 by
はじめまして、ひろえむと申します。
よろしくお願いします。
# re: データベースミラーリングご使用上の注意・・・
2006/11/01 23:09 by
こっそり開始の予定が、皆様にさっそく拝見して頂き、
恐縮の極みでございますです・・・
>>中様
トラバありがとうございます。
わんくまBlog新着にあがる事も忘れて、
こっそり開始してしまいました・・・
ふつつか者の私ですが、
今後ともよろしくお願い致します。
>>アクア様
はじめまして、十郎と申します。
一度飲み会の席でお会いした事があるような、
ないような感じでございます^^
今後ともよろしくお願い致します。
>>黒龍様
黒龍様とのアヤシイ関係がばれるとご迷惑と思い、
こっそり開始しましたが、さっそくばれてしまいました・・・
>>ognac様
はじめまして、十郎と申します。
神戸にご在住との事で、
またお会いさせて頂く機会もあるかもしれません。
今後ともよろしくお願い致します。
>>刈歩 菜良様
はじめまして、十郎と申します。
全治3週間ですか (((( ;゚Д゚)))
大丈夫なのでしょうか。心配です。
この頃寒くなってまいりましたので、
ご自愛ください。
今後ともよろしくお願い致します。
>>ひろえむ様
はじめまして、十郎と申します。
びびりプルグラマな私ですが、
今後ともよろしくお願い致します。
# re: データベースミラーリングご使用上の注意・・・
2006/11/02 2:04 by
はじめまして、おぎわらです~。
記事読んでいただいてありがとうございます~
おぉ。メモが参考になりますね~
φ(..)メモメモ
# re: データベースミラーリングご使用上の注意・・・
2006/11/03 13:23 by
どうも戦時はコメントありがとうございます。
ほぼ同じタイミングで加盟したと思われるtakaと申します。
宜しくお願いします。
# re: データベースミラーリングご使用上の注意・・・
2006/11/04 14:36 by
はじめまして
よろしくお願いします。
# re: データベースミラーリングご使用上の注意・・・
2006/11/04 15:48 by
>>おぎわら様
はじめまして、十郎と申します。
いきなりリンク貼らせて頂きましてすみません。
今の仕事にドンピシャなトピックでついリンクさせて頂きました。
今度ともよろしくお願い致します。
>>taka様
はじめまして、十郎と申します。
禁煙、こんな事して何になるんだと
考える事もありますが、
セキもでなくなるし、何より体は綺麗になった気がします。
頑張りましょう☆-(ノ゚Д゚)八(゚Д゚ )ノ
今後ともよろしくお願い致します。
>>Zee様
はじめまして、十郎と申します。
ご訪問感激でございます。
今後ともよろしくお願い致します。
# ddPqawgKIXpR
2011/09/29 3:01 by
8GMN8s Yeah, in my opinion, it is written on every fence!!...
# zTNBnUdrmQoSqRQKKzH
2011/10/04 20:12 by
I do`t regret that spent a few of minutes for reading. Write more often, surely'll come to read something new!...
# SFXmiefoZIdiEb
2011/11/02 5:12 by
Extremely easy by words but in reality?, a lot of things don`t correspond. Not everything is so rosy..!
# UWOaKbURAxf
2011/11/02 6:05 by
I must admit, the webmaster is a cool guy..!
# FyRRCNteSWvnUvCf
2011/11/07 19:49 by
I do`t regret that spent a few of minutes for reading. Write more often, surely'll come to read something new!...
# pckcaEZLqHrj
2011/11/16 3:18 by
Scribbler, give me a student's record-book!)))
# jfzcMiaJWYlACedSix
2011/11/16 20:34 by
Sometimes I also see something like this, but earlier I didn`t pay much attention to this!...
# VVjlVOUWWNPvfbJDd
2014/07/19 12:46 by
K9Rz7f Very informative article.Thanks Again. Awesome.
# KuhRLcXrBAfBXYiP
2014/08/04 9:04 by
Thanks for the blog article. Really Great.