[Seasar-user:18710] Re: [S2DBCP] DB再起動後のコネクション取得について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2009年 10月 21日 (水) 09:00:00 JST
小林 (koichik) です.
Date: Wed, 21 Oct 2009 02:30:00 +0900
From: Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:18709] Re: [S2DBCP] DB再起動後のコネクション取得について
> 抜本的に解決するなら XAConnection と
> ConnectionEventListener を使って障害を
> 検知する必要があると思いますが,S2DBCP で
> 対応するのは修正量を考えると避けたいところです.
場当たり的ではありますが,ほんの少しの修正で
対応することができそうです.
とりあえず SNAPSHOT をデプロイしました.
# 効果があるかどうか未確認なので SVN には
# コミットしていません.
http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-framework/2.4.40-SNAPSHOT/s2-framework-2.4.40-20091020.232830-4.jar
http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-extension/2.4.40-SNAPSHOT/s2-extension-2.4.40-20091020.232830-4.jar
http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-tiger/2.4.40-SNAPSHOT/s2-tiger-2.4.40-20091020.233248-4.jar
なお,jdbc.dicon で Seasar2 の XADataSourceImpl
ではなく,PostgreSQL の XADataSouorce を使う必要が
あるのですが,こちらのドキュメントには記載がないようです.
http://jdbc.postgresql.org/documentation/83/index.html
しかし,ぐぐると org.postgresql.xa.PGXADataSource
というクラスがあるようなので,そちらを使えば
いいのではないかと.
プロパティは
http://jdbc.postgresql.org/documentation/83/ds-ds.html
に記載されている org.postgresql.ds.PGSimpleDataSource
と基本的に同じようなので,たぶんこんな設定になるものと
思われます.
<component name="xaDataSource"
class="org.postgresql.xa.PGXADataSource">
<property name="serverName">"localhost"</property>
<property name="databaseName">"TEST"</property>
<property name="user">"xxxx"</property>
<property name="password">"xxxx"</property>
</component>
何らかの理由で PGXADataSource が使えない場合は
残念ながら
> とりあえずは validationInterval を短く設定する
> くらいしか回避策はない気がします.
ということになりそうです.
PGXADataSource が利用可能で,今回の修正で
効果が確認できれば修正をコミットして次の
リリースに含めたいと思うので,確認お願いします.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内