在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文件。重新启动服务器后,它首次运行,然后第二次失败。任何解决方案都将不胜感激。
答案 0 :(得分:2)
第二次运行时“尝试检索java代理程序附件失败”错误几乎肯定是由内存耗尽引起的。这意味着在第一次运行时,您的代理正在占用大量内存并且无法释放它。
如果您的代码访问lotus.domino。*类中的大量对象并且无法调用其recycle()方法,则会发生这种情况。 (每个这样的对象都会分配一些非JVM内存,这些内存不会被JVM的垃圾收集器释放。必须调用recycle()方法释放内存。通常,finally
子句是一个好地方这样做。)
我对Alfresco API一无所知,但如果使用不当,它也可能会泄漏内存。
答案 1 :(得分:0)
如果Java代理或Java脚本库包含JAR文件,则内存泄漏为known issue。服务器/ amgr崩溃越早越大。从Java代理开始就没有修复: - (。
常见的解决方法是将所有JAR放入jvm / lib / ext文件夹,如@Simon O'Doherty所述。
现代方法是使用XAgents或servlet。