2013-10-16 3 views
0

테이블의 행 수준 잠금으로 인해 쿼리가 레코드를 업데이트하지 못할 때마다 weblogic 서버 로그에 성가신 로그가 표시됩니다. 여러 응용 프로그램이 동시에 레코드를 업데이트하려고하면 잠금이 필요합니다. 응용 프로그램은 이러한 예외를 처리하고 일정 간격 후에 다시 시도하도록 설계되었습니다. 그러나 Hibernate는 질의가 실패 할 때마다 서버 로그 파일에 오류 로그를 기록한다. 이클립스에서 WebLogic - 서버에서 최대 절전 모드 로그 끄기

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) 
     . 
     . 
     . 

, 내가 클래스 경로에 SLF4J-log4j12 항아리를 추가하여 콘솔에 로깅을 피할 수입니다. 그러나 나는 WebLogic 어플리케이션에서 동일한 것을 성취 할 수 없다.

weblogic-application.xml에서 다음을 추가하여 사용해 보았습니다. 운이 없었습니다.

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

다른 사람이 수행 할 수있는 작업을 제안 할 수 있습니까? 내가 최대 절전 모드-3.3.2를 사용하고

, Log4j의-1.2.15, SLF4J-1.5.6, JPA-1.1

감사

+0

원하는 경우 최대 수준의 최대 절전 모드 로그를 구성 할 수 있습니다. 여기를 확인하십시오 : http://stackoverflow.com/questions/436276/configuring-hibernate-logging-using-log4j-xml-config-file/639401#639401 –

+0

나는 카테고리를 사용해 보았지만 행동을 바꾸지 않았습니다. . –

답변

0

이유를 찾았습니다. 서버 클래스 경로에 slf4j-log4j와 slf4j-jdk14 jar가 모두 있습니다. 클래스 경로에서 slf4j-jdk14를 제거했고 모든 것이 예상대로 작동했습니다. 나는 최대 절전 모드 로그를 원하지 않았기 때문에 log4j.xml을 변경할 필요가 없었다.

감사합니다.

0

당신이 로깅 외관으로 sl4j를 사용하고 있다고 언급 한 바와 같이하고 log4j를 기본 로깅 라이브러리로 사용하려면 응용 프로그램 클래스 경로 어딘가에 응용 프로그램 별 log4j 등록 정보 (또는 xml 구성) 파일을 사용해야합니다. org.hibernate에 대한 log4j 로거를 FATAL로 설정하거나 애플리케이션 코드에서 예외를 잡는 레벨보다 큰 레벨로 설정해보십시오.

+0

나는 레벨을 OFF로 시도했다. 행동에 변화가 없습니다. –

관련 문제