计划的LotusScript代理在运行时错误后不重新启动

由于将Windows Domino服务器从8.5.3升级到9,重要的代理在运行时错误两周后还没有启动。 我们有3个代理经理实例在白天(07:00 – 16:30)和晚上5个运行。 代理运行的数据库相当多,每5分钟运行一次,但大多数代理运行时间不到1秒。

这个重要的计划(每5分钟)LotusScript代理运行24小时,达到时间限制并重新开始(它大部分时间都在睡眠中)。 有时它停在运行时错误。 最后一次是昨天11点半停下来,直到今天14:20才开始停用并启用代理。

在启用/禁用之前,我检查了代理pipe理器的所有3个实例都是空闲的,但由于某种原因,他们没有再收集这个代理。 这是禁用/启用之前的Amgr状态:

> Tell Amgr Status 29.07.2013 14:17:38 AMgr: Status report at '29.07.2013 14:17:38' 29.07.2013 14:17:38 Agent Manager has been running since '29.07.2013 14:05:27' 29.07.2013 14:17:38 There are currently '3' Agent Executives running 29.07.2013 14:17:38 There are currently '520' agents in the Scheduled Task Queue 29.07.2013 14:17:38 There are currently '100' agents in the Eligible Queue 29.07.2013 14:17:38 There are currently '1' databases containing agents triggered by new mail 29.07.2013 14:17:38 There are currently '1' agents in the New Mail Event Queue 29.07.2013 14:17:38 There are currently '0' databases containing agents triggered by document updates 29.07.2013 14:17:38 There are currently '0' agents in the Document Update Event Queue 29.07.2013 14:17:38 AMgr: Current control parameters in effect: 29.07.2013 14:17:38 AMgr: Daily agent cache refresh is performed at '04:15:00' 29.07.2013 14:17:38 AMgr: Currently in Daytime period 29.07.2013 14:17:38 AMgr: The maximum number of concurrently executing agents is '3' 29.07.2013 14:17:38 AMgr: The maximum number of minutes a LotusScript/Java agent is allowed to run is '1440' 29.07.2013 14:17:38 AMgr: Executive '1', total agent runs: 322855 29.07.2013 14:17:38 AMgr: Executive '1', total elapsed run time: 28064 29.07.2013 14:17:38 AMgr: Executive '2', total agent runs: 102967 29.07.2013 14:17:38 AMgr: Executive '2', total elapsed run time: 364127 29.07.2013 14:17:38 AMgr: Executive '3', total agent runs: 297064 29.07.2013 14:17:38 AMgr: Executive '3', total elapsed run time: 78582 

对于符合条件的代理,似乎最多有100个,因为我总是得到100.是这个问题以及如何增加最大值?

如果代理经理在白天太忙(似乎并非如此,因为所有3人都是空闲的,所以我期望它至less在夜间有5个实例时启动代理)。

任何想法如何解决这个问题,或者我应该只是添加各种AMGrdebugging参数notes.ini以获得更多的信息,当下次发生这种情况。

在最后一次发生之后,我在一些旧数据库中禁用了代理,并将AMgr实例增加了1。

我还用一个简单的testing代理testing了不同的db中的运行时错误,但错误后又重新启动了。

请注意,只有在同一时间段内没有在同一数据库中运行的其他预定代理程序时,才会运行预定代理程序。

例。

 Database A - Agent X (Every 5 minutes) - Agent Y (Every 10 minutes) 

在这种情况下,X将运行,然后是X或Y.如果Y运行,则X将会错过它的运行时间,并在空闲时间可用时被添加到队列中以跟随Y.

代理不应该超出计划时间。 因此,如果可能的话,每5分钟运行一次,尽可能将工作时间降低到不到一分钟。

如果代理运行了服务器的最大允许运行时间,代理将被终止。 例外情况是,如果代理调用第三方DLL并挂起,或者如果不扩展NotesThread并在Java代理中产生线程(可能还有其他条件,但这些条件是最常见的)。

由于这些因素,当一切都备份运行时,可能会有空闲的代理pipe理器。

要诊断问题,您可以使用Agent Managerdebugging 。 从多米诺骨牌控制台:

 set config DEBUG_THREADID=1 tell aMgr debug * 

这将在尝试诊断发生的事情时生成更详细的日志。 也:

 tell aMgr sched 

将打破目前的时间表。

如果您有一个必须经常执行的代理程序,则可以使用程序文件。 缺点是你不能杀死代理,如果它挂起。 此外,您还需要了解它所触及的内容,以防止其他代理程序发生死锁。

对于Domino 9,您可以将DOTS用于基于服务器的计划代码(Java)。 Amgr的限制较less。