[Seasar-user:6980] Re: WebSphere 6.0 における[ESSR0062]エラー発生について

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 3月 30日 (金) 15:06:13 JST


島本です。

ひがさん、返信ありがとうございました。
情報が少ないので、大変感謝しております。

環境としまして、
DBアクセスは、HibernateとPL/SQLの2種類を使用しています。
それぞれの場合のエラーSystemOutログを抜粋します。

【Hibernate】
 JDBCException W net.sf.hibernate.util.JDBCExceptionReporter logExceptions
SQL Error: 0, SQLState: null
 JDBCException E net.sf.hibernate.util.JDBCExceptionReporter logExceptions
[ESSR0062]コネクションは既に閉じています
 JDBCException W net.sf.hibernate.util.JDBCExceptionReporter logExceptions
SQL Error: 0, SQLState: null
 JDBCException E net.sf.hibernate.util.JDBCExceptionReporter logExceptions
[ESSR0062]コネクションは既に閉じています
  BeanSerialize E org.apache.axis.encoding.ser.BeanSerializer serialize 例
外発生: / [en]-(Exception:)
  java.io.IOException: レジストリ
[E-MAIL ADDRESS DELETED]内にクラス
net.sf.hibernate.exception.GenericJDBCExceptionのシリアライザが見つかりませ
んでした / [en]-(No serializer found for class
net.sf.hibernate.exception.GenericJDBCException in registry
[E-MAIL ADDRESS DELETED])
     at
org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java(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))
     at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1527)
     at
org.seasar.hibernate.impl.S2SessionImpl.find(S2SessionImpl.java:381)
     ... 49 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))
     ... 53 more

【PL/SQL】
 BeanSerialize E org.apache.axis.encoding.ser.BeanSerializer serialize 例外
発生: / [en]-(Exception:)
   java.io.IOException: レジストリ
[E-MAIL ADDRESS DELETED]内にクラス
org.seasar.framework.exception.SSQLExceptionのシリアライザが見つかりません
でした / [en]-(No serializer found for class
org.seasar.framework.exception.SSQLException in registry
[E-MAIL ADDRESS DELETED])
     at
org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java(Compiled

Code))
     at
org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java(Compiled

Code))
     at
org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java(Inlined

Compiled Code))
     at
org.apache.axis.encoding.ser.ArraySerializer.serialize(ArraySerializer.java(Compiled

Code))
     at
org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java(Compiled

Code))
     at
org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java(Compiled

Code))
     at
org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java(Inlined

Compiled Code))
     at
org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.java(Compiled

Code))
     at
org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java(Compiled

Code))
★-----------------------
Caused by: 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))
     at
jp.co.sample.common.dao.CallPlSqlDaoImpl.callSelectPlSql(CallPlSqlDaoImpl.java(Compiled

Code))
     at jp.co.sample.common.dao.CallPlSqlDaoImpl$$EnhancedByS2AOP
$$62516777.callSelectPlSql$$invokeSuperMethod$$(CallPlSqlDaoImpl
$$EnhancedByS2AOP$$62516777.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))
     ... 59 more


実装方法は以下のように行っています。

【Hibernate】
public Vector find(String hql) throws HibernateException {
    List result = sessionFactory_.getSession().find(hql);
    return result;
}


【PL/SQL】
public List callSelectPlSql(String sql) throws SQLException {

     Connection con = null;
     CallableStatement cstmt = null;
     ResultSet rs = null;
     try {
          con = dataSource_.getConnection();
          cstmt = ConnectionUtil.prepareCall(con, sql);
          ・
          ・
          rs = cstmt.executeQuery();
     } catch (SQLException e) {
          e.printStackTrace();
          throw e;
     } finally {
          try {
               if (rs != null) {
                    rs.close();
               }
               if (cstmt != null) {
                    cstmt.close();
               }
               if (con != null) {
                    con.close();
               }
          } catch (SQLException e) {
               e.printStackTrace();
               throw e;
          }
     }
     ・
     ・
     ・
}


どこか実装方法でまずい部分はありますでしょうか。

宜しくお願いします。








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