[jeus] “jeus.transaction.TMException …" 해결 방법.

2022. 3. 30. 13:12TmaxSoft/jeus

728x90
728x90

-jeus5 기동 하단의 에러 발생 확인.

$ jboot
…
<<__Exception__>>
jeus.server.enginecontainer.EngineContainerException: container failed to boot
        at jeus.server.enginecontainer.EngineContainer.init(EngineContainer.java:423)
        at jeus.server.enginecontainer.EngineContainer.<init>(EngineContainer.java:123)
        at jeus.server.enginecontainer.EngineContainer.main(EngineContainer.java:928)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
        at java.lang.reflect.Method.invoke(Method.java:611)
        at jeus.server.Bootstrapper.callMainMethod(Bootstrapper.java:291)
        at jeus.server.Bootstrapper.callMain(Bootstrapper.java:360)
        at jeus.server.enginecontainer.EngineContainerBootstrapper.main(EngineContainerBootstrapper.java:15)
Caused by: jeus.server.enginecontainer.EngineContainerException: fail to start transaction manager
        at jeus.server.enginecontainer.EngineContainer.init(EngineContainer.java:301)
        ... 9 more
Caused by: jeus.transaction.TMException: exception occurred while initializing transaction manager
        at jeus.transaction.TMServer.init(TMServer.java:187)
        at jeus.transaction.TMService.init(TMService.java:28)
        at jeus.server.enginecontainer.EngineContainer.init(EngineContainer.java:299)
        ... 9 more
Caused by: jeus.transaction.TMException: LogException occured in xaLog.open()
        at jeus.transaction.logging.HowlLogManager.howlOpenLog(HowlLogManager.java:193)
        at jeus.transaction.logging.HowlLogManager.openXALogger(HowlLogManager.java:171)
        at jeus.transaction.logging.HowlLogManager.start(HowlLogManager.java:100)
        at jeus.transaction.TMServer.init(TMServer.java:170)
        ... 11 more
Caused by: org.objectweb.howl.log.LogConfigurationException: java.io.IOException: 시스템 호출이 유효하지 않은 매개변수를 수신했습니다.
        at org.objectweb.howl.log.LogFile.open(LogFile.java:186)
        at org.objectweb.howl.log.LogFileManager.open(LogFileManager.java:779)
        at org.objectweb.howl.log.Logger.open(Logger.java:303)
        at org.objectweb.howl.log.xa.XALogger.open(XALogger.java:893)
        at jeus.transaction.logging.HowlLogManager.howlOpenLog(HowlLogManager.java:191)
        ... 14 more
Caused by: java.io.IOException: 시스템 호출이 유효하지 않은 매개변수를 수신했습니다.
        at sun.nio.ch.FileChannelImpl.lock0(Native Method)
        at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:924)
        at java.nio.channels.FileChannel.tryLock(FileChannel.java:973)
        at org.objectweb.howl.log.LogFile.open(LogFile.java:182)
        ... 18 more
<<__!Exception__>>
…

-jeus5 기동 TMException 발생하는 원인.

  • JEUS가 정상 종료/비정상 종료가 되는 경우에 Transaction log 생성되며, Transaction log는 재부팅 과정에서 Transaction recovery 등의 작업을 실행해주는 역할임.
  • Transaction log를 사용하여 재부팅할 때 Recovery 관련 작업이 이루어지기 때문에 TM로그를 삭제한 경우 Recovery가 이루어지지 않음.
  • 재부팅 과정에서 남아있는 트랜잭션 로그의 내용에 따라서 위의 Exception 같은 에러가 발생할 수 있음.
  • TM 로그 파일을 수동으로 건드리거나, 자동화된 파일 정리 작업으로 TM 로그 파일이 일부 지워지거나 손상될때 비슷한 문제가 발생할 수 있음.
  • 이외로 Tm에 묶여있는 외부 리소스의 준비가 아직 되지 않았다던가 네트웍 상황 문제 등의 원인이 있을 수 있음.

-jeus5 TMException 해결 방법.

  • "/$JEUS_HOME/config/'hostname'/JEUSMain.xml"의 <engine-container> 하위 태그의 <command-option> 태그에 "-Djeus.tm.noLogging=true" 설정 추가.
  • "/$JEUS_HOME/logs/" 경로에서 "TM" 디렉토리 제거.
  • 잡 스케줄러(Ex. crontab ..)를 통해서 서버의 로그 파일 제거를 설정할 때, "/$JEUS_HOME/logs/TM" 경로의 파일은 잡 스케줄러 설정에서 제외.
728x90
728x90