QA@IT
«質問へ戻る

誤字修正

0
本文
 ある処理でネストされたトランザクションを伴う処理が走り、仮にトランザクションA、トランザクションBとします。
 (トランザクションAの中にトランザクションBがネストされている想定)
 
-同時にトランザクションAが2リクエスト到達し、ネストされたトランザクションBを開始しようとした場合、
-DBCPのmaxActiveの上限に達しているため、トランザクションBが開始できず、後続の処理のトランザクションも開始できないため、
-Tomcatがハングアップしてしまいます。
+同時にトランザクションAが2リクエスト到達し、ネストされたトランザクションBを開始しようとした場合、DBCPのmaxActiveの上限に達しているため、トランザクションBが開始できず、後続の処理のトランザクションも開始できないため、Tomcatがハングアップしてしまいます。
 
 DBCPの設定にあるmaxWait、testOnBorrowなどを試しましたが、DBCPがコネクションを解放してくれず、悩んでおります。
-ネストさせている以上、maxActiveを上げるしかないのかと考えておりますが、皆さま、どのように考えておられるのか、
-もしくは対応されているの課と思い、質問させて頂きました。
+ネストさせている以上、maxActiveを上げるしかないのかと考えておりますが、皆さま、どのように考えておられるのか、もしくは対応されているのかと思い、質問させて頂きました。
 
 
 

ネストされたトランザクションにおけるコネクションプールの設定について

いつもお世話になります。

ネストされたトランザクションにおけるコネクションプールの設定についてお尋ねします。
SpringFrameworkを利用すると、以下のアノテーションの設定でトランザクションをネストさせることが可能です。
※実行中のトランザクションと分けるために、別のコネクションを取りに行くと理解しております。

@Transactional(propagation = Propagation.REQUIRES_NEW)

このとき、例えばコネクションプールにDBCPを利用していたとして、DBCPのmaxActiveの設定を2にしたとします。
ある処理でネストされたトランザクションを伴う処理が走り、仮にトランザクションA、トランザクションBとします。
(トランザクションAの中にトランザクションBがネストされている想定)

同時にトランザクションAが2リクエスト到達し、ネストされたトランザクションBを開始しようとした場合、DBCPのmaxActiveの上限に達しているため、トランザクションBが開始できず、後続の処理のトランザクションも開始できないため、Tomcatがハングアップしてしまいます。

DBCPの設定にあるmaxWait、testOnBorrowなどを試しましたが、DBCPがコネクションを解放してくれず、悩んでおります。
ネストさせている以上、maxActiveを上げるしかないのかと考えておりますが、皆さま、どのように考えておられるのか、もしくは対応されているのかと思い、質問させて頂きました。

いつもお世話になります。

ネストされたトランザクションにおけるコネクションプールの設定についてお尋ねします。
SpringFrameworkを利用すると、以下のアノテーションの設定でトランザクションをネストさせることが可能です。
※実行中のトランザクションと分けるために、別のコネクションを取りに行くと理解しております。

@Transactional(propagation = Propagation.REQUIRES_NEW)

このとき、例えばコネクションプールにDBCPを利用していたとして、DBCPのmaxActiveの設定を2にしたとします。
ある処理でネストされたトランザクションを伴う処理が走り、仮にトランザクションA、トランザクションBとします。
(トランザクションAの中にトランザクションBがネストされている想定)

同時にトランザクションAが2リクエスト到達し、ネストされたトランザクションBを開始しようとした場合、DBCPのmaxActiveの上限に達しているため、トランザクションBが開始できず、後続の処理のトランザクションも開始できないため、Tomcatがハングアップしてしまいます。

DBCPの設定にあるmaxWait、testOnBorrowなどを試しましたが、DBCPがコネクションを解放してくれず、悩んでおります。
ネストさせている以上、maxActiveを上げるしかないのかと考えておりますが、皆さま、どのように考えておられるのか、もしくは対応されているのかと思い、質問させて頂きました。

質問を投稿

ネストされたトランザクションにおけるコネクションプールの設定について

いつもお世話になります。

ネストされたトランザクションにおけるコネクションプールの設定についてお尋ねします。
SpringFrameworkを利用すると、以下のアノテーションの設定でトランザクションをネストさせることが可能です。
※実行中のトランザクションと分けるために、別のコネクションを取りに行くと理解しております。

@Transactional(propagation = Propagation.REQUIRES_NEW)

このとき、例えばコネクションプールにDBCPを利用していたとして、DBCPのmaxActiveの設定を2にしたとします。
ある処理でネストされたトランザクションを伴う処理が走り、仮にトランザクションA、トランザクションBとします。
(トランザクションAの中にトランザクションBがネストされている想定)

同時にトランザクションAが2リクエスト到達し、ネストされたトランザクションBを開始しようとした場合、
DBCPのmaxActiveの上限に達しているため、トランザクションBが開始できず、後続の処理のトランザクションも開始できないため、
Tomcatがハングアップしてしまいます。

DBCPの設定にあるmaxWait、testOnBorrowなどを試しましたが、DBCPがコネクションを解放してくれず、悩んでおります。
ネストさせている以上、maxActiveを上げるしかないのかと考えておりますが、皆さま、どのように考えておられるのか、
もしくは対応されているの課と思い、質問させて頂きました。

いつもお世話になります。

ネストされたトランザクションにおけるコネクションプールの設定についてお尋ねします。
SpringFrameworkを利用すると、以下のアノテーションの設定でトランザクションをネストさせることが可能です。
※実行中のトランザクションと分けるために、別のコネクションを取りに行くと理解しております。

@Transactional(propagation = Propagation.REQUIRES_NEW)

このとき、例えばコネクションプールにDBCPを利用していたとして、DBCPのmaxActiveの設定を2にしたとします。
ある処理でネストされたトランザクションを伴う処理が走り、仮にトランザクションA、トランザクションBとします。
(トランザクションAの中にトランザクションBがネストされている想定)

同時にトランザクションAが2リクエスト到達し、ネストされたトランザクションBを開始しようとした場合、
DBCPのmaxActiveの上限に達しているため、トランザクションBが開始できず、後続の処理のトランザクションも開始できないため、
Tomcatがハングアップしてしまいます。

DBCPの設定にあるmaxWait、testOnBorrowなどを試しましたが、DBCPがコネクションを解放してくれず、悩んでおります。
ネストさせている以上、maxActiveを上げるしかないのかと考えておりますが、皆さま、どのように考えておられるのか、
もしくは対応されているの課と思い、質問させて頂きました。