クラス TransactionTag
java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.TransactionTag
- すべての実装されたインタフェース:
BodyTag
,IterationTag
,JspTag
,Tag
,TryCatchFinally
,Serializable
コネクションを共有して、トランザクションを実現します。
通常のタグでは、コネクションプールより、その時々のコネクションを取り出して利用するため、
タグごとに異なるコネクションで処理されます。
また、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,
-
フィールドの概要
クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport
BR, BUFFER_MIDDLE, CR
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTagSupport
bodyContent
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport
id, pageContext
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTag
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag
EVAL_BODY_AGAIN
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明void
タグの処理中(セッターメソッドを除く)の例外を全て受け取ります。int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。int
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。protected Transaction
Transactionオブジェクトを返します。protected void
release2()
タグリブオブジェクトをリリースします。toString()
このオブジェクトの文字列表現を返します。クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, debugPrint, doAfterBody, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useStrict, useTag, useXssCheck
クラスから継承されたメソッド jakarta.servlet.jsp.tagext.BodyTagSupport
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
クラスから継承されたメソッド jakarta.servlet.jsp.tagext.TagSupport
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
クラスから継承されたメソッド java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
インタフェースから継承されたメソッド jakarta.servlet.jsp.tagext.Tag
getParent, setPageContext, setParent
-
コンストラクタの詳細
-
TransactionTag
public TransactionTag()デフォルトコンストラクター- 変更履歴:
- 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
-
-
メソッドの詳細
-
doStartTag
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。- 定義:
doStartTag
インタフェース内Tag
- オーバーライド:
doStartTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示( EVAL_BODY_INCLUDE )
-
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
タグの処理中(セッターメソッドを除く)の例外を全て受け取ります。 タグの中のボディ部の評価中、または 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
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。- オーバーライド:
release2
クラス内CommonTagSupport
- 変更履歴:
- 6.3.6.1 (2015/08/28) AutoCloseable の close() メソッドに対応。終了時は、finish()。
-
getTranObj
Transactionオブジェクトを返します。- 戻り値:
- Transactionオブジェクト
- 変更履歴:
- 6.3.6.1 (2015/08/28) Transactionオブジェクトの取得方法変更。
-
toString
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
- このメソッドは、nullを返しません
-