私の休止状態ログ設定には少し問題があります。 アプリケーションでは、データベーステーブルの各行に同時にロックをかけようとする2つのスレッドがあります。 これらのスレッドの1つが、すでにロックされている行をロックしようとすることがあります。このエラーはスローされます。SystemOut.logファイルからHibernateエラーをリダイレクト
[2/24/12 15:00:34:492 CET] 0000003a JDBCException W org.hibernate.util.JDBCExceptionReporter logExceptions SQL Error: 54, SQLState: 61000
[2/24/12 15:00:34:496 CET] 0000003a JDBCException E org.hibernate.util.JDBCExceptionReporter logExceptions ORA-00054: resource busy and acquire with NOWAIT specified
これらの行は、SystemOut.logファイルに入れられます。私はそれらを別のファイルに入れようとしています。だから私のLog4jの設定ファイルで、私はこのような新しいアペンダ作成:
は<logger name="org.hibernate" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.type" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.tool.hbm2ddl" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.pretty" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.cache" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.transaction" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.jdbc" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.hql.ast.AST" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.secure" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.SQL" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
この構成では動作しませんでしたし、2:最後に
<appender name="JDBCExceptionReporter" class="org.apache.log4j.RollingFileAppender">
<param name="Encoding" value="UTF-8"/>
<param name="File" value="JDBCExceptionReporter.log"/>
<param name="MaxFileSize" value="50000KB"/>
<param name="MaxBackupIndex" value="5"/>
<param name="BufferedIO" value="false"/>
<param name="ImmediateFlush" value="true"/>
<param name="Append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d, %-5p, %X{ORG_NAME}, %X{USER_NAME}, %c - %m%n"/>
<!-- Use pattern below if it is required to view the log files -->
<!-- using LogFactor5-->
<!--<param name="ConversionPattern" value="[slf5s.start] %d[slf5s.DATE]
%-5p[slf5s.PRIORITY] %X{ORG_NAME} %X{USER_NAME}
[slf5s.NDC] %c[slf5s.CATEGORY] - %m[slf5s.MESSAGE] %n"-->
</layout>
</appender>
を、私は、ルート要素の前に、これらのロガーを追加しました行は常にSystemOut.logに記録され、私のJDBCExceptionReporter.logには記録されません。 誰かが私の問題に対する答えを持っていますか? ご協力いただきありがとうございます。
jbossを使用していますか?または他のアプリケーションサーバーですか?環境についてもっと教えてください。 – mericano1
私たちは、AIXサーバー上でWebsphere Application Server 6を使用しています。 Hibernate 3およびlog4j-1.2.15、slf4j-log4j12-1.5.5 – astrotouf