0

在 Notes 客户端中使用 Java 代理时遇到问题。我需要从 Notes 客户端备忘录表单中的特定路径上传文件。我正在使用 Java 代理。它使用 Alfresco 的 API 将文件上传到 alfresco 服务器。它在独立的 Java 应用程序中运行良好。它也是第一次在 Lotus Notes 中正常工作。但是,当我要第二次更新或运行任何第二次导入了 JAR 文件的 Java 代理时,它会引发以下错误:

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

jvm/lib/ext我在服务器路径中添加了必要的 jar 文件。重新启动服务器后,它第一次工作,然后第二次失败。任何解决方案将不胜感激。

4

2 回答 2

2

第二次运行的“尝试检索 Java 代理附件失败”错误几乎可以肯定是由内存耗尽引起的。这意味着在第一次运行时,您的代理会占用大量内存并且无法释放它。

如果您的代码正在访问 lotus.domino.* 类中的大量对象并且未能调用它们的 recycle() 方法,则可能会发生这种情况。(每个这样的对象都会分配一些非 JVM 内存,这些内存不会被 JVM 的垃圾收集器释放。调用 recycle() 方法来释放内存是必不可少的。通常,该finally子句是这样做的好地方。)

我对 Alfresco API 一无所知,但如果使用不当,它也可能会泄漏内存。

于 2013-03-19T13:41:43.513 回答
1

如果 Java 代理或 Java 脚本库包含 JAR 文件,则存在内存泄漏的已知问题。越大,您的服务器/amgr 崩溃越快。自 Java 代理开始以来未修复 :-(。

常见的解决方法是将所有 JAR 放入 jvm/lib/ext 文件夹,正如@Simon O'Doherty 提到的那样。

现代方法是使用 XAgents 或 servlet。

于 2013-03-20T23:05:40.190 回答