【问题标题】:Java Agent:- Notes Error : JVM : Attempt to retrieve java agent attachments failedJava 代理:- 注释错误:JVM:尝试检索 Java 代理附件失败
【发布时间】:2013-03-18 13:19:29
【问题描述】:

我在 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 文件。重新启动服务器后,它第一次工作,然后第二次失败。任何解决方案将不胜感激。

【问题讨论】:

  • 你把jar放到lib/ext文件夹后有没有从agent中删除?
  • 这是唯一的消息吗?还是还有内存不足的消息?
  • 身份验证问题?
  • 感谢您的快速回复。 @simon :-我从代理中删除了 jar 文件
  • @RichardSchwartz:是的。我也出现内存不足错误。

标签: lotus-notes alfresco javaagents


【解决方案1】:

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

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

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

【讨论】:

  • :- 我也回收了。我刚刚创建了一个测试 java 代理。我包括一个控制台打印。它正在打印。在我包含 14Jar 文件(Alfresco API)后,它会抛出内存不足错误
  • 这些罐子有多大?当其中一个 jar 很大时,我曾经看到过类似的问题,因为开发人员构建错误并且包含相互嵌套的以前版本的 jar 文件!另外,您使用的是什么版本的 Domino,服务器的 notes.ini 文件中有 JavaMaxHeapSize 设置吗?
  • 嗨,理查德,抱歉耽搁了。我已经使用从 lotus 脚本运行的批处理文件实现了这一点。我正在使用 8.5.2 多米诺骨牌版本。所有 jar 内存为 17 Mb。 JavaMaxHeapSize=201326592 JavaMinHeapSize=134217728。感谢您的理解。
【解决方案2】:

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

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

现代方法是使用 XAgent 或 servlet。

【讨论】:

  • 感谢 Frantisek 的回复。我会尽力让你知道结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
相关资源
最近更新 更多