0

テーブル内の行レベル ロックが原因でクエリがレコードの更新に失敗するたびに、WebLogic サーバー ログに迷惑なログが記録されます。複数のアプリケーションが同時にレコードを更新しようとするため、ロックが発生することが予想されます。アプリケーションは、これらの例外を処理し、間隔を置いて再試行するように設計されています。ただし、クエリが失敗するたびに、Hibernate はサーバー出力ファイルにエラー ログを書き込みます。

WARNING: SQL Error: -244, SQLState: IX000
16-Oct-2013 19:15:00 org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: Could not do a physical-order read to fetch next row.
16-Oct-2013 19:15:00 org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: -113, SQLState: IX000
16-Oct-2013 19:15:00 org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: ISAM error: the file is locked.
16-Oct-2013 19:15:00 org.hibernate.event.def.AbstractFlushingEventListener performExecutions
SEVERE: Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: could not update: [uk.co.orange.rp.collections.entity.PpsServerLock#2]
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
        .
        .
        .

Eclipse では、クラスパスに slf4j-log4j12 jar を追加することで、コンソールへのログインを回避できます。しかし、WebLogic アプリケーションで同じことを達成することはできません。

weblogic-application.xml に以下を追加しようとしても、うまくいきません。

<prefer-application-packages>
    <package-name>org.slf4j.*</package-name>
    <package-name>org.apache.log4j.*</package-name>
</prefer-application-packages>

誰かが他に何ができるかを提案できますか。

Hibernate-3.3.2、Log4j-1.2.15、slf4j-1.5.6、JPA-1.1 を使用しています

よろしく

4

2 に答える 2

0

sl4j をロギング ファサードとして使用し、log4j を基礎となるロギング ライブラリとして使用していると述べたように、アプリケーション クラスパスのどこかでアプリケーション固有の log4j プロパティ (または xml 構成) ファイルを使用する必要があります。org.hibernate の log4j ロガーを FATAL に設定するか、アプリケーション コードで例外をキャッチしているレベルよりも高いレベルに設定してみてください。

于 2013-10-16T19:08:25.533 に答える
0

サーバーのクラスパスに slf4j-log4j と slf4j-jdk14 の両方の jar がありました。クラスパスから slf4j-jdk14 を削除したところ、すべてが期待どおりに機能しました。休止状態のログは不要だったので、log4j.xml を変更する必要はありませんでした。

皆さんありがとう。

于 2013-10-17T10:37:39.680 に答える