2014-01-09 26 views
7

我們試圖運行在幾個地方envrionments使用Atomikos公司的事務管理器相同的Web應用程序(每個那些使用Spring,Atomikos公司,tomact等具有相同配置文件的同一版本)。他們中的一些做工精細,但在其中的一個,當我們試圖以啓動tomcat我們得到以下異常:奇怪的Atomikos異常 - init()中的錯誤:日誌已被使用?

Caused by: java.lang.IllegalStateException: Can't overwrite cause with java.lang.RuntimeException: Log already in use? 
at java.lang.Throwable.initCause(Throwable.java:456) 
at com.atomikos.icatch.standalone.UserTransactionServiceImp.init(UserTransactionServiceImp.java:326) 
at com.atomikos.icatch.config.UserTransactionServiceImp.init(UserTransactionServiceImp.java:405) 
at com.atomikos.icatch.config.UserTransactionServiceImp.init(UserTransactionServiceImp.java:569) 
at com.atomikos.icatch.jta.UserTransactionManager.startupTransactionService(UserTransactionManager.java:89) 
at com.atomikos.icatch.jta.UserTransactionManager.checkSetup(UserTransactionManager.java:77) 
at com.atomikos.icatch.jta.UserTransactionManager.init(UserTransactionManager.java:142) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1638) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1579) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509) 
... 41 more 
Caused by: com.atomikos.icatch.SysException: Error in init(): Log already in use? 
... 54 more 
Caused by: java.lang.RuntimeException: Log already in use? 
at com.atomikos.icatch.standalone.UserTransactionServiceImp.createDefault(UserTransactionServiceImp.java:203) 
at com.atomikos.icatch.standalone.UserTransactionServiceImp.init(UserTransactionServiceImp.java:258) 

我們無法弄清楚什麼是日誌中的問題,而谷歌並沒有太多幫助任何...任何人都知道這個奇怪的問題是什麼原因?同樣,我們有完全相同的配置是做工精細的環境中,而另一種具有另外一個陌生的警告:https://stackoverflow.com/questions/20936253/atomikos-with-activemq-commit-heuristic-warnings

謝謝! :)

回答

1

原來這是一個權限問題。 Atomikos試圖在eclipse文件夾中創建lck文件,並且一旦我們將eclipse移至另一個位置,一切正常。

1

去哪裏如何產生Atomikos公司日誌目的地。在那裏你會觀察到需要刪除的各種0字節的鎖文件。當應用程序最後一次運行時,會觀察到此問題,但它被錯誤地關閉。一旦你刪除LCK文件,然後嘗試將應用程序部署的問題將得到解決

+0

的問題是,我們無法找到LCK文件... – Ayelet

5

如果部署了多個項目(使用Atomikos),則由於在編寫atomikos的日誌文件時出現併發問題(錯誤消息:'已在使用中的日誌')。

爲了解決這個問題則必須自定義日誌文件名在Atomikos公司配置設置屬性'com.atomikos.icatch.log_base_name'舉例如下:

<bean id="atomikosUserTransactionService" class="com.atomikos.icatch.config.UserTransactionServiceImp" 
     init-method="init" destroy-method="shutdownForce"> 
    <constructor-arg> 
     <props> 
      <prop key="com.atomikos.icatch.service">com.atomikos.icatch.standalone.UserTransactionServiceFactory</prop> 
      <prop key="com.atomikos.icatch.log_base_name">your_project_name_log</prop> 
      <prop key="com.atomikos.icatch.output_dir">../standalone/log/</prop> 
      <prop key="com.atomikos.icatch.log_base_dir">../standalone/log/</prop> 
     </props> 
    </constructor-arg> 
</bean> 

PS:請注意,我已經改變了性質「com.atomikos.icatch.output_dir」和「com.atomikos.icatch.log_base_dir」只是爲了讓事情組織起來,在同一個JBoss日誌文件目錄中創建atomikos的日誌文件。

0

在我的情況的問題是,我的JBoss在Eclipse中意外地停止。我試圖再次啓動它,並收到此錯誤,但實際上是因爲JBoss進程仍在我的機器上運行,儘管Eclipse將其顯示爲已終止。所以我就殺了現有的JBoss進程。

3

這是一個權限問題。我在我的jta.properties中添加這兩行(確認目錄是否存在)。

com.atomikos.icatch.output_dir = /data/logs/XXX/ 
com.atomikos.icatch.log_base_dir = /data/logs/XXX/ 
0

默認情況下,atomikos會在運行JVM的用戶的主目錄中創建其日誌文件和鎖定文件。

在Tomcat8的情況下,這將是:

在/ usr /共享/ tomcat8

您應該檢查這個文件夾的權限。在我的,它是:

drwxr_xr-x 3 root tomcat 4096 Feb 7 10:28 . 

這意味着tomcat用戶不能寫入它。

我把它改爲:

drwxrwxr-x 3 root tomcat 4096 Feb 7 10:28 . 

和所有工作的罰款。

+0

'在/ usr /共享/ tomcat8'可能不是將應用程序日誌文件的最佳場所。 –