ページの先頭です。
ここから本文です。

よくあるご質問(サポートFAQ)

【WebOTX Application Server】トランザクション中のAutoCommitをfalseに設定する方法(OTX-FAQ-000637)

質問内容

OracleでSELECT FOR UPDATE の SQL 文を実行した場合に ORA-1002 が発生する問題への対応策として、Connection オブジェクトの setAutoCommit メソッドを使用してAUTOCOMMIT を OFF にする必要があります。
ejb-jar.xmlで<transaction-type>にContainerを設定している場合でも、setAutoCommitは利用できますか。
また、setAutoCommitを利用する上での注意点はありますか。

回答内容

<transaction-type>にContainerを設定している場合でも、setAutoCommit(false)は実行可能です。
ただし、コンテナでトランザクション制御が行われる場合、EJBでJDBCコネクションを取得した時のAutoCommitのデフォルト値は、falseになります。
JDBCデータソースのdefaultAutoCommitはトランザクション外でJDBCコネクションを取得した場合のAutoCommitの値です。
Webアプリケーションかアプリケーションの独自スレッド上で呼び出されたEJBでConnectionを利用するのであれば、上記のトランザクションタイプの指定は効きません。
また、トランザクションが開始された状況で、AutoCommitにfalseを設定することはできますが、trueを設定すると例外が発生しますので、ご注意ください。

【対象製品】Application Server
【確認済みのバージョン】すべて
【確認済みのエディション】すべて
【確認済みの対象OS】すべて
【確認済みのJavaバージョン】すべて
【コンポーネント】JDBCデータソース
【カテゴリー】運用/設定

製品名カテゴリ

WebOTX
WebOTX Application Server

  • コンテンツID: 3150103500
  • 公開日: 2012年07月17日
  • 最終更新日:2014年11月11日

アンケート

サポート情報充実のためアンケートにご協力をお願いいたします。



コメント欄:
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。