クラス TransactionTag

すべての実装されたインタフェース:
BodyTag, IterationTag, JspTag, Tag, TryCatchFinally, Serializable

public class TransactionTag extends CommonTagSupport
コネクションを共有して、トランザクションを実現します。 通常のタグでは、コネクションプールより、その時々のコネクションを取り出して利用するため、 タグごとに異なるコネクションで処理されます。 また、commit や rollback などもそれぞれのタグで行われるため、連続処理時にエラーが 発生しても、中途半端な状態になります。 ここでは、各 DBID 単位にコネクションを共有し、このタグの間は、同じオブジェクトを commit や、rollback せずに使いまわすようにします。 これにより、複数タグ間のトランザクションや、異なる DBID 間のトランザクションを 実現します。 このタグは、doEndTag() メソッドが正常に呼び出されることで、トランザクションが成立します。 つまり、途中で、JSP出力が、SKIP_PAGE された場合は、commit もされません。 これは、データベースエラー以外のエラーでも、トランザクション処理されることを意味します。
関連項目:
変更履歴:
5.1.9.0 (2010/08/01) 新規作成
機能分類
DB登録
形式サンプル:
●形式:<og:transaction > ... </og:transaction > ●body:あり(EVAL_BODY_INCLUDE:BODYをインクルードし、{@XXXX} は解析しません) ●Tag定義: <og:transaction debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) > ... Body ... </og:transaction> ●使用例 <og:transaction > <og:query command="NEW" dbid="SERVER1" > insert into XX01 (aa,bb,cc) values ('AA','BB','CC') /> </og:query > <og:query command="NEW" dbid="SERVER2" > update YY02 set aa='AA',bb='BB',cc='CC' where uniq='00001' /> </og:query > </og:transaction >
導入されたバージョン:
JDK6.0,
  • コンストラクタの詳細

    • TransactionTag

      public TransactionTag()
      デフォルトコンストラクター
      変更履歴:
      6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
  • メソッドの詳細

    • doStartTag

      public int doStartTag()
      Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
      定義:
      doStartTag インタフェース内 Tag
      オーバーライド:
      doStartTag クラス内 CommonTagSupport
      戻り値:
      後続処理の指示( EVAL_BODY_INCLUDE )
    • doEndTag

      public int doEndTag()
      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。 TransactionTag の doEndTag() では、途中で、SKIP_PAGE されると、呼ばれません。 これは、データベース以外のタグで、エラー等が発生したことになります。 最後の、endCommit() が呼ばれない限り、トランザクションは commit されずに、 rollback されます。
      定義:
      doEndTag インタフェース内 Tag
      オーバーライド:
      doEndTag クラス内 CommonTagSupport
      戻り値:
      後続処理の指示
      変更履歴:
      6.3.6.1 (2015/08/28) AutoCloseable の close() メソッドに対応。正常時は、commit()。, 6.4.3.3 (2016/03/04) 一般的なタグで、SKIP_PAGE された場合、rollback するようにします。
    • doCatch

      public void doCatch(Throwable th) throws Throwable
      タグの処理中(セッターメソッドを除く)の例外を全て受け取ります。 タグの中のボディ部の評価中、または Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody(), BodyTag.doInitBody() のいずれもの メソッドの中で、Throwableが投げられたときに呼び出されます。 このメソッドはセッターメソッドの中でThrowableが起きた場合は呼び出されません。
      定義:
      doCatch インタフェース内 TryCatchFinally
      オーバーライド:
      doCatch クラス内 CommonTagSupport
      パラメータ:
      th - このタグを通過してきたThrowableな例外
      例外:
      Throwable
      変更履歴:
      6.3.6.1 (2015/08/28) AutoCloseable の close() メソッドに対応。異常時は、rollback()。
    • release2

      protected void release2()
      タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
      オーバーライド:
      release2 クラス内 CommonTagSupport
      変更履歴:
      6.3.6.1 (2015/08/28) AutoCloseable の close() メソッドに対応。終了時は、finish()。
    • getTranObj

      protected Transaction getTranObj()
      Transactionオブジェクトを返します。
      戻り値:
      Transactionオブジェクト
      変更履歴:
      6.3.6.1 (2015/08/28) Transactionオブジェクトの取得方法変更。
    • toString

      public String toString()
      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
      toString クラス内 CommonTagSupport
      戻り値:
      このクラスの文字列表現
      このメソッドは、nullを返しません