2013-03-18 25 views
0

我在Notes客戶端中使用Java代理時遇到問題。我需要從Notes客戶端備忘錄表單中的特定路徑上傳文件。我正在使用Java代理。它使用Alfresco的API將文件上傳到戶外服務器。它在獨立的Java應用程序中運行良好。它在Lotus Notes中也是第一次正常工作。但是,當我要更新第二次,或者如果我運行它有進口的第二次JAR文件的任何Java代理,它引發以下錯誤:Java代理: - Notes錯誤:JVM:嘗試檢索Java代理附件失敗

Notes Error : JVM : Attempt to retrieve java agent attachments failed.

我加了必要的JAR文件在服務器的jvm/lib/ext路徑。重啓服務器後,它第一次工作,然後第二次失敗。任何解決方案將不勝感激。

+0

你刪除從代理的罐子把它們放到lib/ext文件夾後? – 2013-03-18 14:24:15

+0

這是唯一的消息?還是有也內存不足消息的? – 2013-03-18 20:58:30

+0

身份驗證問題? – Zlatko 2013-03-19 10:32:21

回答

2

第二次運行時'嘗試檢索Java代理程序附件失敗'錯誤幾乎肯定是由內存耗盡造成的。這意味着在第一次運行時,您的代理正在獲取大量內存並未能釋放它。

如果您的代碼正在訪問lotus.domino。*類中的大量對象並且未能調用其recycle()方法,則會發生這種情況。 (每個這樣的對象都會分配一些非JVM內存,JVM的垃圾回收器不會釋放這些內存,因此調用recycle()方法釋放內存是非常重要的。通常,finally子句是一個很好的選擇。 )

我對Alfresco API一無所知,但如果使用不當,它也可能會泄漏內存。

+0

: - 我也做過回收。我剛創建了一個測試Java代理。我有一個控制檯打印。這是打印。在我包含14Jar文件(Alfresco APIs)之後,它會拋出內存不足錯誤 – Vijayakumar 2013-03-20 08:34:06

+0

這些罐子有多大?當其中一個瓶子很大時,我曾經看到類似的問題,因爲開發人員做了錯誤的構建,並且已經包含了以前版本的jar文件嵌套在一起!另外,您使用的是什麼版本的Domino,並且您是否在服務器的notes.ini文件中有JavaMaxHeapSize設置? – 2013-03-20 15:17:20

+0

嗨理查德,對不起,延遲。我已經使用蓮花腳本運行的批處理文件實現了這一點。我正在使用8.5.2多米諾版本。所有的罐子內存是17 Mb。JavaMaxHeapSize = 201326592 JavaMinHeapSize = 134217728。感謝您的理解。 – Vijayakumar 2013-04-01 13:38:39

0

如果Java代理或Java腳本庫包含JAR文件,則爲known issue存在內存泄漏。服務器/ amgr崩潰越早,越大。不固定的,因爲Java代理的開始:-(。

常見的解決方法是把所有的JAR到JVM/lib/ext目錄文件夾,如@Simon O'Doherty提及。

現代的方法是使用XAgents或servlet 。

+0

謝謝Frantisek的回覆。我會盡力讓你知道結果。 – Vijayakumar 2013-04-01 13:45:47