[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 メーリングリストの案内