[Seasar-user:21811] Re: TomcatのJNDI との連携について

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2014年 3月 11日 (火) 14:41:26 JST


pianyiです。

ご回答ありがとうございます。

> > http://d.hatena.ne.jp/osakana_21/20081006/1223269740
> > コメント欄で書かれている意味はどういう事でしょうか?
> 
> 書いてある通りです。
> 不明点があれば具体的にお願いします。

・「Tomcatのデータソースは、トランザクション(JTA)と
  連動しないので、使わないほうがいいと思いますよ。」
 使わない方が良い理由が良く分かりませんでした。
 
 コミットやロールバックは正常に行えるようですし、
 プールに戻す際のデッドロックも設定で回避できると回答を頂きました。

 連動していないと言う事は、DBコネクションが取得されたまま、解放されない等が起こるのでしょうか?

分かりにくい表現で申し訳ありません。

以上、よろしくお願いいたします。




On Tue Mar 11 01:23:43 JST 2014
Koichi Kobayashi <koichik @ improvement.jp> wrote:

> 小林 (koichik) です。
> 
> > 設定変更ごとに毎回、APPサーバーの再起動を行うのでしょうか?
> 
> 個人的にはそれが推奨です。
> 自分自身ではアプリの再デプロイをする運用は
> 考えません。
> 
> > この内容は、下記の設定を行う事で解決と考えて良いのでしょうか。
> > ・S2JDBCのmaxPoolSizeを10 にする
> > ・TomcatのmaxActiveを11以上にする
> 
> はい。
> 
> > http://d.hatena.ne.jp/osakana_21/20081006/1223269740
> > コメント欄で書かれている意味はどういう事でしょうか?
> 
> 書いてある通りです。
> 不明点があれば具体的にお願いします。
> 
> > 例えば、トランザクションのカスタマイザをServiceCustomizer で指定している場合、
> > Serviceのメソッドが終わってもcommit されないと言う事なのでしょうか?
> 
> いいえ。
> コミットはされますが、その後でコネクションを
> プールに戻す際にデッドロックになるケースが
> あるということです。
> 
> 
> On Mon, 10 Mar 2014 21:25:43 +0900, rasu @ mx4.tiki.ne.jp wrote:
> 
> > お世話になっております。
> > pianyiと申します。
> > 
> > 現在、SAStruts + S2JDBC + Postgresql9.3 + Tomcat7.50 で開発を行っておりますが、
> > DB接続方法をJNDIに変更した所、下記問題が発生して困っております。解決のヒントを下さい。
> > 
> > 
> > 1.diconファイルやJavaファイルを変更した時に発生する「Tomcatの自動リロード」が発生した場合、
> > DBコネクションが増えてしまい、接続数オーバー例外(FATAL: sorry, too many clients already)が発生してしまい
ます。
> > 
> > このような場合、どのような設定で開発を進めるのが一番良いでしょうか。
> > 設定変更ごとに毎回、APPサーバーの再起動を行うのでしょうか?
> > 
> > Context.xmlの設定:
> > <Resource name="jdbc/search"
> >           auth="Container"
> >           type="javax.sql.DataSource"
> >           driverClassName="org.postgresql.Driver"
> >           url="jdbc:postgresql://localhost:5432/aiueo"
> >           username="postgres"
> >           password="postgres" />
> > 
> > jdbc.diconの設定:
> > <components>
> >     <include path="jta.dicon"/>
> >     <!-- from JNDI -->
> >     <component name="updateDataSource"
> >         class="org.seasar.extension.dbcp.impl.DataSourceXADataSource">
> >         <property name="dataSourceName">"java:comp/env/jdbc/update"</property>
> >     </component>
> >     <component name="connectionPool"
> >         class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
> >         <property name="timeout">600</property>
> >         <property name="maxPoolSize">10</property>
> >         <property name="allowLocalTx">false</property>
> >         <property name="validationQuery">"select 1"</property>
> >         <property name="validationInterval">10000</property>
> >         <destroyMethod name="close"/>
> >     </component>
> >     <component name="updateDataSource"
> >         class="org.seasar.extension.dbcp.impl.DataSourceImpl"
> >     />
> > </components>
> > 
> > 
> > 
> > 2.下記URLに記載されている問題について教えて下さい。
> > (無断リンクで申し訳ありません)
> > 
> > http://paulownia.hatenablog.com/entry/20101223/1293112702
> > この内容は、下記の設定を行う事で解決と考えて良いのでしょうか。
> > ・S2JDBCのmaxPoolSizeを10 にする
> > ・TomcatのmaxActiveを11以上にする
> > 
> > 
> > http://d.hatena.ne.jp/osakana_21/20081006/1223269740
> > コメント欄で書かれている意味はどういう事でしょうか?
> > 例えば、トランザクションのカスタマイザをServiceCustomizer で指定している場合、
> > Serviceのメソッドが終わってもcommit されないと言う事なのでしょうか?
> > 
> > カスタマイザーの設定:
> > <component name="serviceCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain">
> >     <initMethod name="addAspectCustomizer">
> >         <arg>"aop.traceInterceptor"</arg>
> >     </initMethod>
> >     <initMethod name="addCustomizer">
> >         <arg>
> >             <component class="org.seasar.framework.container.customizer.TxAttributeCustomizer"/>
> >         </arg>
> >     </initMethod>
> > </component>
> > 
> > 
> > 
> > 3.JNDIを使用するにあたり注意事項や他の注意点など有りましたらご教授下さい。
> > (JNDIじゃ無くて別のを使う方が良い…など)
> > 
> > 因みに、JNDIの採用理由は、WARファイルを数十か所に配布するため、更新後のDB接続先などの変更ミスを防ぐため
です。
> > 
> > 
> > 
> > 以上、よろしくお願いいたします。
> > 
> > _______________________________________________
> > Seasar-user mailing list
> > Seasar-user @ ml.seasar.org
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> 
> 
> -- 
> {
>   name: "Koichi Kobayashi",
>   mail: "koichik @ improvement.jp",
>   blog: "http://d.hatena.ne.jp/koichik/",
>   twitter: "@koichik"
> }
> 
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 
> 



Seasar-user メーリングリストの案内