- PR -

トランザクション単位のインスタンス生成

1
投稿者投稿内容
えじ
会議室デビュー日: 2006/04/20
投稿数: 3
投稿日時: 2006-04-20 21:57
初めて投稿させて頂きます。よろしくお願いします。

.NETというよりも、MS DTCの質問になってしまうかも知れませんが・・・
もし、.NETとMS DTCの連携で何かご存知の方がいらしたらご教授いただけると幸いです。

 .NETでの開発は今回が初めてで、どうシステム設計すれば良いかかなり戸惑っています。

 .NET: 2003
 OS: Windows2003Server

コード:
ASP.NET     -----+----->  VB.NET

Web Service | Class A ---------> VB.NET
| Class C
+-----> VB.NET ---------> 共有インスタンス
Class B



上記のようにWeb Serviceから複数のクラスA/Bを呼び
クラスA/Bでは、あるクラス(C)のインスタンスを共有したいと思っています。

クラスA/Bは、1つのトランザクションの中に収めたいので
ASP.NET側からトランザクションを開始し、MS DTCにて
分散トランザクションの配下にしようと思っています。

クラスCのインスタンスは、トランザクション単位で生成したいと思っていますが
トランザクション単位で生成するには、トランザクションのID的なものを
キーとしてインスタンスを生成する仕組みが必要となると思います。
そこで、.NETのクラスで、MS DTCからトランザクションIDなどを
取得することは可能なのでしょうか?

トランザクションIDが取得できなければ、独自にトランザクションIDを管理する
クラスを作るしかないかと思いますが、もし標準でそのような機能があるのであれば
出来るだけ標準的な手法を使いたいと思っています。

もしくは、このような要件のときには、.NETではこんな風にするのが一般的だ。
といった情報でも、もちろん大歓迎です。
2相コミットが実現出来れば、MS DTCでなくともかまいません。

どうぞ、よろしくお願いいたします。


[ メッセージ編集済み 編集者: えじ 編集日時 2006-04-20 22:02 ]

[ メッセージ編集済み 編集者: えじ 編集日時 2006-04-20 22:03 ]
lalupin4
大ベテラン
会議室デビュー日: 2004/07/26
投稿数: 163
投稿日時: 2006-04-21 00:31
 とりあえず、名前空間的には

System.EnterpriseServices
System.Transactions
http://www.microsoft.com/japan/msdn/net/general/introsystemtransact.asp

じゃないかな。
えじ
会議室デビュー日: 2006/04/20
投稿数: 3
投稿日時: 2006-04-21 02:15
ありがとうございます。

もうお酒が入ってしまったので(^^
明日(今日)、じっくり読みます。
とりあえず、お礼まで。m(_ _)m
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-04-21 06:08
引用:

lalupin4さんの書き込み (2006-04-21 00:31) より:
 とりあえず、名前空間的には

System.EnterpriseServices
System.Transactions
http://www.microsoft.com/japan/msdn/net/general/introsystemtransact.asp

じゃないかな。


タイトルには .NET Framework 2.0 と書いてあるけど?
.NET 2003 って、VS.NET 2003 で、.NET Framework 1.1 のことですよね?
lalupin4
大ベテラン
会議室デビュー日: 2004/07/26
投稿数: 163
投稿日時: 2006-04-21 08:52
引用:

Jittaさんの書き込み (2006-04-21 06:08) より:
引用:

lalupin4さんの書き込み (2006-04-21 00:31) より:
 とりあえず、名前空間的には

System.EnterpriseServices
System.Transactions
http://www.microsoft.com/japan/msdn/net/general/introsystemtransact.asp

じゃないかな。


タイトルには .NET Framework 2.0 と書いてあるけど?
.NET 2003 って、VS.NET 2003 で、.NET Framework 1.1 のことですよね?


 1.xのプログラミングモデル(System.EnterpriseServices)との比較もあるのでちょうどいいかなと。
えじ
会議室デビュー日: 2006/04/20
投稿数: 3
投稿日時: 2006-04-21 11:01
参考になりました。
ありがとうございました。

私自身も.NETで複数DAOクラスのトランザクション制御について
色々と探してみましたが、一般的・標準的な手法というのは
今のところ特にないような感じを受けました。

ただ、
Seasar S2Container.NET
http://s2container.net.seasar.org/

もしかしたらこのAOPコンテナで近いことが実現できるかもしれない気がするので
ちょっとこれを調べてみようと思っています。
AOPは全くやったことないので、かなり漠然としていますが

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)