簡體   English   中英

Jenkins的JMS ActiveMQ鎖

[英]JMS ActiveMQ lock with Jenkins

我的項目將JMS與ActiveMQ結合使用,並且在生產環境中以及運行測試本地計算機時都可以正常運行。 當詹金斯(Jenkins)運行我的測試(在我的計算機中成功執行的測試)時,出現了我的問題,我在控制台輸出中得到以下條目:

2016-11-17 12:17:19,277信息oaactivemq.store.SharedFileLocker數據庫activemq-data / localhost / KahaDB /鎖已鎖定...等待10秒鍾,數據庫將被解鎖。 原因:java.io.IOException:無法鎖定文件'activemq-data / localhost / KahaDB / lock'。

有沒有人有相同的經驗並遇到過解決問題的方法? 將非常感謝您的幫助!

控制台輸出的更多詳細信息:

2016-11-17 12:17:09,193警告oaabroker.jmx.ManagementContext無法啟動jmx連接器:無法綁定到URL [rmi:// localhost:1099 / jmxrmi]:javax.naming.NameAlreadyBoundException:jmxrmi [根異常是java .rmi.AlreadyBoundException:jmxrmi]。 將重新啟動管理以重新創建jmx連接器,以嘗試解決此問題。

2016-11-17 12:17:09,257信息oaastore.kahadb.plist.PListStore PListStore:[/ var / lib / jenkins / jobs / mydir / workspace / myproject / activemq-data / localhost / tmp_storage]已啟動

2016-11-17 12:17:09,271使用持久適配器的信息oaactivemq.broker.BrokerService:KahaDBPersistenceAdapter [/ var / lib / jenkins / jobs / mydir / workspace / myproject / activemq-data / localhost / KahaDB]

2016-11-17 12:17:09,277信息oaactivemq.store.SharedFileLocker數據庫activemq-data / localhost / KahaDB /鎖被鎖定...等待10秒鍾,數據庫將被解鎖。 原因:java.io.IOException:無法鎖定文件'activemq-data / localhost / KahaDB / lock'。

以前的ActiveMQ進程仍在運行,該進程已鎖定數據存儲。 您看到的這個新實例正在作為“從屬”運行並正在輪詢以獲取鎖。

我能夠找出問題所在。 在Jenkins中運行的構建過程在測試階段掛起,我被迫中止該過程,這在目錄dir-tests \\ activemq-data \\ localhost \\ KahaDB中留下了鎖。 有兩種方法可以解決此問題:

1)最直接,最正確的解決方案是刪除dir-tests \\ activemq-data \\ localhost \\ KahaDB \\ lock,但是我在遠程Jenkins計算機上沒有訪問權限。

2)我們可以輕松創建具有不同名稱的Jms代理,例如

 brokerService.setBrokerName("MyDummyBrokerName");

這將導致Active-MQ使用目錄dir-tests \\ activemq-data \\ MyDummyBrokerName \\ KahaDB,這意味着它將使用其他鎖。 但是,這是一種解決方法,而不是最終解決方案,因為舊鎖和相應的目錄將保留在Jenkins中。 但是,它暫時解決了該問題,以后可以刪除舊鎖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM