Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

hibernate

いつもお世話になっています。
今、hibernateによるPostgreSQLデータベースとApache Tomcat 5.0を使用したweb applicationを運用しています。最近から、サーバがダウンするようになりました。ログを見ると下の例外を投げています。
net.sf.hibernate.exception.JDBCConnectionException: Could not execute query
    at net.sf.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:65)
    at net.sf.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
    at net.sf.hibernate.impl.SessionImpl.convert(SessionImpl.java:4131)
    at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1557)
    at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:49)
...

ご伝授をお願いします。

3

回答

86192

閲覧

3件の回答

評価

0

Hibernate触ったことないですが、例外を見るとJDBC接続エラーで、クエリが発行できないってことですよね。

もっと情報がないと、私にはお手上げですね。

評価

0

ご返事ありがとうございました。
Hibernateの問題かどうか私自身もよくわからないです。OS環境ではPostgreSQLのプロセスがいっぱいに残ってしまいます。ログを以下のようです。

2006/12/31 15:15:17 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor processChildren
致命的: Exception invoking periodic operation: 
java.lang.OutOfMemoryError
2006/12/31 15:16:25 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
致命的: org.apache.tomcat.util.net.TcpWorkerThread@49df0f を実行中に例外 (java.lang.OutOfMemoryError) をキャッチしたので、スレッドを終了します
2006/12/31 15:17:07 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor processChildren
致命的: Exception invoking periodic operation: 
java.lang.OutOfMemoryError
2006/12/31 15:17:19 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor processChildren
致命的: Exception invoking periodic operation: 
java.lang.OutOfMemoryError
2006/12/31 15:17:50 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor processChildren
致命的: Exception invoking periodic operation: 
java.lang.OutOfMemoryError
net.sf.hibernate.exception.GenericJDBCException: Cannot open connection
    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.BatcherImpl.convert(BatcherImpl.java:328)
    at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:295)
    at net.sf.hibernate.impl.SessionImpl.connect(SessionImpl.java:3373)
    at net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java:3333)
    at net.sf.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:40)
    at net.sf.hibernate.transaction.JDBCTransactionFactory.beginTransaction(JDBCTransactionFactory.java:19)
    at net.sf.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:2252)
...

おそらく、OutOfMemoryが原因でJDBCの接続エラーになっていると考えます。
applicationからプロセスを殺す必要があるとしたら、どうすればいいか。

ご伝授をお願いします。


評価

0

私もHibernateは分かりませんが。

Out of memoryは、過去ログでも出たことがありますが、ふつうは発生することのないエラーです。
夢幻ループに陥って再現なくメモリを確保するようなことに、なっているのかもしれません。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。