Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

参考

  • 3章:「B層に関するトピック」も参考にして下さい。
  • 7章:「FAQ」> 7.2節:「B層フレームワーク」も参考にして下さい。

2フェーズコミットのサポート

現状サポートしていませんがTransactionScope?に対応したB層ベースクラス1を開発すれば実現は可能です。

コネクション管理

コネクション管理の実装はどのようになっていますか?

  • マニュアルに記述されているとおり、

と言う方式が基本になります。

  • 複数のDBMS接続のOpen、Closeもサポートしています。

トランザクション管理

トランザクション管理の実装はどのようになっていますか?

  • マニュアルに記述されているとおり、
    • B層ベースクラス2UOC_ConnectionOpenメソッドでトランザクションを開始し、
    • B層処理の完了時にフレームワーク側で自動的に「コミット or ロールバック」される

と言う方式が基本になります。

  • トランザクションは、例外(Exception)が発生した場合にのみロールバックされます。
  • 2層C/S方式ではトランザクションの開始だけ自動化してあり、コミット・ロールバックは手動で行う必要があります。ただし、例外発生時は自動ロールバックになります。
  • 余談になりますが、B層ベースクラス2のUOC_ConnectionOpenメソッドの作り込みによって、クラス属性やメソッド属性を用いた属性ベースのトランザクション管理も可能になります。

分割コミットなどは可能か?

以下のAPIをB層から呼び出す事で、B層内でのトランザクション分割コミットが可能です。

手動のトランザクション管理は可能か?

上記と同様に、Dam(データアクセス制御クラス)を直接生成してデータアクセスすることで、

  • 手動のトランザクション管理が可能になります。
  • また、2層C/S用フレームワークでは2本目の接続が可能になります。

しかし、標準化の観点から、その例外を認めるべきかどうかは、個別に検討下さい。

B、D層を設けるのが面倒なことがある。

  • P層でDam(データアクセス制御クラス)を直接生成して
    データアクセスしてもらうことも可能です(P層のみ or P、D層の構成)。
  • また、D層に共通Daoや、自動生成Daoを使用する場合、
    • 自作Daoの開発を割愛できます(P・B層のみの構成)。
    • その場合、自作Daoは特別なケースに開発するなどプロジェクトでルールを策定して下さい。
      (インテリジェントなデータアクセスをラップするケース.etc)
      しかし、標準化の観点から、上記の例外を認めるべきかどうかは、個別に検討下さい。

関連


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-24 (火) 11:26:50 (28d)