[Seasar-user:6964] WebSphere 6.0 における[ESSR0062]エラー発生について
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2007年 3月 29日 (木) 20:02:08 JST
島本と申します。
WebSphere 6.0.2.17 + seasar2.2.9 + s2hibernate1.1.0 + s2-axis-1.0.0を使って
おります。
フレームワークは、swingを使用しています。
月に一回程度、月次処理によるアクセスが集中すると思われる時期に、
Exceptionが発生し、新規アクセスができなくなっています。
現象としては、クライアント画面は起動するが、固まってしまいます。
Exception発生以前にアクセス済みのものは、
発生後も問題なく使用できているようです。
調べた所、seasar2.2.9のバージョンでは
ConnectionPoolImpl#checkInTx()にてnotifyしていないというバグを見つけまし
た。
あと、以下のサイトを見つけました。
http://ameblo.jp/confidencial/entry-10007478236.html
これによると、3つのポイントの一つで、
「S2のトランザクション管理クラスは当然書かない」
という記述を見受けました。
今こちらの設定は、S2のトランザクション管理クラスを使用しています。
設定情報、エラーログを以下に記述します。
【j2ee.dicon】
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components namespace="j2ee">
<component name="transactionManager"
class="org.seasar.extension.jta.TransactionManagerImpl"/>
<component name="requiredTx"
class="org.seasar.extension.tx.RequiredInterceptor"/>
<component name="requiresNewTx"
class="org.seasar.extension.tx.RequiresNewInterceptor"/>
<component name="mandatoryTx"
class="org.seasar.extension.tx.MandatoryInterceptor"/>
<component name="notSupportedTx"
class="org.seasar.extension.tx.NotSupportedInterceptor"/>
<component class
="org.seasar.extension.jdbc.impl.BasicStatementFactory"/>
<component class
="org.seasar.extension.jdbc.impl.OracleResultSetFactory"/>
<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"oracle.jdbc.driver.OracleDriver"
</property>
<property name="URL">
"jdbc:oracle:thin:****:1521:****"
</property>
<property name="user">"****"</property>
<property name="password">"****"</property>
</component>
<component name="connectionPool"
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
<property name="timeout">600</property>
<property name="maxPoolSize">500</property>
<!-- JTAトランザクションが開始されていない場合にコネクションを
取得できないようにするには次のプロパティをfalseにしてくださ
い.-->
<property name="allowLocalTx">true</property>
<destroyMethod name="close"/>
</component>
<component name="dataSource"
class="org.seasar.extension.dbcp.impl.DataSourceImpl"/>
</components>
【エラーログ】
org.seasar.framework.exception.SQLRuntimeException: [ESSR0071]SQLで例外が発
生しました。
理由はorg.seasar.framework.exception.SSQLException: [ESSR0062]コネクション
は既に閉じています
at
org.seasar.framework.util.ConnectionUtil.prepareCall(ConnectionUtil.java(Inlined
Compiled Code))
・
・
Caused by: org.seasar.framework.exception.SSQLException: [ESSR0062]コネク
ションは既に閉じています
at
org.seasar.extension.dbcp.impl.ConnectionWrapperImpl.assertOpened(ConnectionWrapperImpl.java(Inlined
Compiled Code))
at
org.seasar.extension.dbcp.impl.ConnectionWrapperImpl.prepareCall(ConnectionWrapperImpl.java(Compiled
Code))
... 58 more
中略・・・
org.seasar.hibernate.HibernateRuntimeException: [EHBN0001]Hibernateで例外が
発生しました。
理由はnet.sf.hibernate.exception.GenericJDBCException: Could not execute
query
at
org.seasar.hibernate.impl.S2SessionImpl.find(S2SessionImpl.java(Inlined
Compiled Code))
・
・
Caused by: net.sf.hibernate.exception.GenericJDBCException: Could not
execute query
at
net.sf.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:80)
at
net.sf.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:69)
at
net.sf.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
at net.sf.hibernate.impl.SessionImpl.convert(SessionImpl.java(Inlined
Compiled Code))
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java(Compiled
Code))
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java(Compiled
Code))
... 55 more
Caused by: org.seasar.framework.exception.SSQLException: [ESSR0062]コネク
ションは既に閉じています
at
org.seasar.extension.dbcp.impl.ConnectionWrapperImpl.assertOpened(ConnectionWrapperImpl.java(Inlined
Compiled Code))
at
org.seasar.extension.dbcp.impl.ConnectionWrapperImpl.prepareStatement(ConnectionWrapperImpl.java(Compiled
Code))
at
net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java(Compiled
Code))
at
net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java(Inlined
Compiled Code))
at
net.sf.hibernate.impl.BatcherImpl.prepareQueryStatement(BatcherImpl.java(Compiled
Code))
at
net.sf.hibernate.loader.Loader.prepareQueryStatement(Loader.java(Compiled
Code))
at net.sf.hibernate.loader.Loader.doQuery(Loader.java(Compiled Code))
at
net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java(Compiled
Code))
at net.sf.hibernate.loader.Loader.doList(Loader.java(Inlined Compiled
Code))
at net.sf.hibernate.loader.Loader.list(Loader.java(Compiled Code))
at
net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java(Inlined
Compiled Code))
... 57 more
原因ではないかと思われる情報はいくつか収集したのですが、
決定的な情報が無い状態です。
どなたか、ご教授いただけないでしょうか。
宜しくお願い致します。
Seasar-user メーリングリストの案内