Strange Atomikos exception - Error in init(): Log already in use? で説明されているのと同じものが表示されます。ただし、ドキュメントに従い、ロギング ディレクトリとベース名を -D パラメータとして指定しました。私たちの場合、単純な Tomcat7 コンテナー インスタンスにデプロイされた war ファイルです。
システム プロパティが読み取られているという証拠はログにありません。
こちらはAtomikosの3.9.3で。
tomcat7 11466 2.5 0.7 2311632 257256 ? Sl 09:13 0:19 /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Djava.util.logging.config.file=/var/lib/tomca 7/conf/logging.properties - Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Dserver.properties.file=/usr/share/tomcat7/server-internal.properties - Dcom.atomikos.icatch.log_base_dir=/var/log/tomcat7/ -Dcom.atomikos.icatch.log_base_name=rest-tm -Djava.endorsed.dirs=/usr/share/tomcat7/endorsed -classpath /usr/share/tomcat7 /bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar -Dcatalina.base=/var/lib/tomcat7 -Dcatalina.home=/usr/share/tomcat7 -Djava.io.tmpdir= /tmp/tomcat7-tomcat7-tmp org.apache.catalina.startup.Bootstrap 開始
スタックトレース:
原因: org.springframework.beans.BeanInstantiationException: [javax.transaction.TransactionManager] のインスタンス化に失敗しました: ファクトリ メソッド 'atomikosTransactionManager' が例外をスローしました。ネストされた例外は java.lang.IllegalStateException: Can't overwrite cause with java.lang.RuntimeException: Log already in use? org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189) で org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:591) で ... 44 以上 原因: java.lang.IllegalStateException: Can't overwrite cause with java.lang.RuntimeException: Log already in use? java.lang.Throwable.initCause (Throwable.java:456) で com.atomikos.icatch.standalone.UserTransactionServiceImp.init (UserTransactionServiceImp.java:326) で com.atomikos.icatch.config.UserTransactionServiceImp.init (UserTransactionServiceImp.java:405) で com.atomikos.icatch.config.UserTransactionServiceImp.init (UserTransactionServiceImp.java:569) で com.atomikos.icatch.jta.UserTransactionManager.startupTransactionService (UserTransactionManager.java:89) で com.atomikos.icatch.jta.UserTransactionManager.checkSetup (UserTransactionManager.java:77) で com.atomikos.icatch.jta.UserTransactionManager.setTransactionTimeout (UserTransactionManager.java:237) で com.foo.springcontainer.config.persistence.transactionmanager.AtomikosTransactionManagerConfig.atomikosTransactionManager(AtomikosTransactionManagerConfig.java:29) で com.foo.springcontainer.config.persistence.transactionmanager.AtomikosTransactionManagerConfig$$EnhancerBySpringCGLIB$$beea75cd.CGLIB$atomikosTransactionManager$0() で com.foo.springcontainer.config.persistence.transactionmanager.AtomikosTransactionManagerConfig$$EnhancerBySpringCGLIB$$beea75cd$$FastClassBySpringCGLIB$$10e69a5.invoke() で org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) で org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:312) で com.foo.springcontainer.config.persistence.transactionmanager.AtomikosTransactionManagerConfig$$EnhancerBySpringCGLIB$$beea75cd.atomikosTransactionManager() で sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) で sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で java.lang.reflect.Method.invoke(Method.java:606) で org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) で ... 45以上 原因: com.atomikos.icatch.SysException: init() のエラー: ログは既に使用されていますか? ... 62 以上 原因: java.lang.RuntimeException: ログは既に使用されていますか? com.atomikos.icatch.standalone.UserTransactionServiceImp.createDefault (UserTransactionServiceImp.java:203) で com.atomikos.icatch.standalone.UserTransactionServiceImp.init (UserTransactionServiceImp.java:258) で
この時点でどこに行けばいいのかわかりません。開こうとしているファイル名がログに含まれていることを望んでいたかもしれませんが、盲目的に飛んでいます。通常の catalina と localhost のログを除いて、/var/log/tomcat7 内に作成されるファイルはありません。
アイデア?