Domino Java 代理程序的运行时间超过最大服务器执行时间 - 查找'Terminate'事件



我正在对一个domino java代理进行压力测试,该代理可能修改许多数据库中的许多文档。我正在使用大型数据库对代理进行负载测试,代理管理器正在关闭代理,因为它们持续的时间比服务器文档"最大LotusScript/Java执行时间:"中指定的输入时间长。

我知道我可以编写一个程序文档来让代理不计时地运行,但不想这样做,因为你失去了代理的句柄。

我意识到我需要对代理进行编程,以便我可以将"任务"文档(其中包含代理的所有指令)保存在"未完成"状态,以便我可以从我停止的地方开始。

在编写LotusScript代理时,有可能在代理的'Terminate'事件中编写清理代码,但是我的java代理缺少这个选项。

目前我最好的想法是在我的配置中有一个'timeout'字段,它将由一个小于服务器截止时间的值填充。然而,这就意味着我需要定期问自己"我还有时间开始下一个行动吗?"’我想这会破坏性能的。

你对这种情况的最佳实践有什么经验?

除了DOTS和Java Application方法之外,还有另外两种选择。

选项1:这是您希望使用程序文档并且仍然具有与代理交互的可见性的地方。

在代码中添加检查以检查磁盘上的文件或文档字段。如果文件在那里,或者字段设置,那么告诉应用程序开始清理。

检查文档比检查磁盘上的文件要耗费更多的开销。

选项2:您可以使用java.util.Timer对象。

设置为对ServerMaximumTimeout - X minute/s执行。在计时器代码中抛出TimeoutException。让你的主代码捕获这个异常并进行清理。

然后在finally块中清理计时器对象,如果它还没有死亡。

关于这一点的更多细节在另一个问题中。

最新更新