[Seasar-user:18714] Re: [S2DBCP] DB再起動後のコネクション取得について

taktos [E-MAIL ADDRESS DELETED]
2009年 10月 21日 (水) 12:47:32 JST


瀧口です。

デプロイしていただいたSNAPSHOTで、例外が発生したコネクションが破棄され、
次回接続時に新しいコネクションが作成されることを確認できました!
大変助かりました。ありがとうございます!!


SNAPSHOTを使用したときの一連のログを以下に記載しておきます。

<jdbc.dicon>
<component name="xaDataSource" class="org.postgresql.xa.PGXADataSource">
	<property name="serverName">"localhost"</property>
	<property name="databaseName">"DB"</property>
	<property name="portNumber">"5432"</property>
	<property name="user">"user"</property>
	<property name="password">"password"</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">true</property>
	<destroyMethod name="close"/>
	<property name="validationInterval">60000</property>
	<property name="validationQuery">"SELECT version()"</property>
</component>
<component name="dataSource"
class="org.seasar.extension.dbcp.impl.DataSourceImpl"/>

<Tomcat起動時>
INFO  SingletonS2ContainerFactory s2-frameworkのバージョンは2.4.40-
SNAPSHOTです。
INFO  SingletonS2ContainerFactory s2-extensionのバージョンは2.4.40-
SNAPSHOTです。
INFO  SingletonS2ContainerFactory s2-tigerのバージョンは2.4.40-SNAPSHOT
です。

<正常に接続できた場合>
DEBUG TransactionImpl トランザクションを開始しました。tx=[FormatId=4360,
GlobalId=1256093735772/8, BranchId=]
DEBUG ConnectionPoolImpl 物理的なコネクションを取得しました
DEBUG ConnectionPoolImpl 論理的なコネクションを取得しました。tx=
[FormatId=4360, GlobalId=1256093735772/8, BranchId=]
--- SQL省略 ---
DEBUG ConnectionWrapperImpl 論理的なコネクションを閉じました。tx=
[FormatId=4360, GlobalId=1256093735772/8, BranchId=]
DEBUG TransactionImpl トランザクションをコミットしました。tx=
[FormatId=4360, GlobalId=1256093735772/8, BranchId=]

<PostgreSQLを再起動して初回のアクセス>
DEBUG TransactionImpl トランザクションを開始しました。tx=[FormatId=4360,
GlobalId=1256093735772/9, BranchId=]
DEBUG ConnectionPoolImpl 論理的なコネクションを取得しました。tx=
[FormatId=4360, GlobalId=1256093735772/9, BranchId=]
--- SQL省略 ---
DEBUG ConnectionWrapperImpl 物理的なコネクションを閉じました
--- DBFluteが出力する例外メッセージ省略 ---
Caused by: org.seasar.framework.exception.SSQLException: [ESSR0072]SQLで
例外(SQL=[...], Message=[0], ErrorCode=08006, SQLState={3})が発生しました
	at
org.seasar.extension.jdbc.impl.PreparedStatementWrapper.wrapException(PreparedStatementWrapper.java:72)
	at
org.seasar.extension.jdbc.impl.PreparedStatementWrapper.wrapException(PreparedStatementWrapper.java:67)
	at
org.seasar.extension.jdbc.impl.PreparedStatementWrapper.executeQuery(PreparedStatementWrapper.java:83)
	at
org.seasar.dbflute.s2dao.sqlhandler.TnBasicSelectHandler.createResultSet(TnBasicSelectHandler.java:98)
	at
org.seasar.dbflute.s2dao.sqlhandler.TnBasicSelectHandler.execute(TnBasicSelectHandler.java:90)
	at
org.seasar.dbflute.s2dao.sqlhandler.TnBasicSelectHandler.execute(TnBasicSelectHandler.java:75)
	... 82 more
Caused by: org.postgresql.util.PSQLException: An I/O error occured while
sending to the backend.
	at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:218)
	at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
	at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
	at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at
org.postgresql.ds.jdbc23.AbstractJdbc23PooledConnection$StatementHandler.invoke(AbstractJdbc23PooledConnection.java:477)
	at $Proxy13.executeQuery(Unknown Source)
	at
org.seasar.extension.jdbc.impl.PreparedStatementWrapper.executeQuery(PreparedStatementWrapper.java:81)
	... 85 more
Caused by: java.net.SocketException: Connection reset by peer: socket
write error
	at java.net.SocketOutputStream.socketWrite0(Native Method)
	at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
	at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
	at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
	at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
	at org.postgresql.core.PGStream.flush(PGStream.java:508)
	at
org.postgresql.core.v3.QueryExecutorImpl.sendSync(QueryExecutorImpl.java:676)
	at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
	... 95 more
DEBUG TransactionImpl トランザクションをロールバックしました。tx=
[FormatId=4360, GlobalId=1256093735772/9, BranchId=]

<PostgreSQLを再起動して2回目以降のアクセス>
DEBUG TransactionImpl トランザクションを開始しました。tx=[FormatId=4360,
GlobalId=1256093735772/15, BranchId=]
DEBUG ConnectionPoolImpl 物理的なコネクションを取得しました
DEBUG ConnectionPoolImpl 論理的なコネクションを取得しました。tx=
[FormatId=4360, GlobalId=1256093735772/15, BranchId=]
--- SQL省略 ---
DEBUG ConnectionWrapperImpl 論理的なコネクションを閉じました。tx=
[FormatId=4360, GlobalId=1256093735772/15, BranchId=]
DEBUG TransactionImpl トランザクションをコミットしました。tx=
[FormatId=4360, GlobalId=1256093735772/15, BranchId=]



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