Why is the Notes agent not scheduled to start

I have developed a Notes agent that cross-matches documents in a database based on certain criteria. We have a development server, a train server, and a live server, and each one runs an instance of the corresponding application. The agent does exactly what we need in all three cases when we start the agent manually. The agent also works great when a specific time is scheduled on development and travel servers. However, when we schedule the agent on the Live server, it does not start and the logs only indicate the following:

"Agent: execution time exceeded by agent" MatchingAlert | MatchingAlert "in database" PBT \ PBTLive.nsf ". Subscriber Agent" Application Development / IT / ************** * "

It seems that all three servers are configured exactly the same. Also, I have transformed the documents from the Live instance to the Development instance, and it still runs on schedule in the development instance, so there can be no fact that it deals with a lot of documents in the Live instance. So what will be the reason for this?

Edit: something just popped up, worth mentioning. We wanted the Train instance to have the same documents as the Live instance, so I actually deleted the Train instance and made a fresh copy of it using the Live instance as a template, and now the scheduling agent doesn't work and shows the same output as logs as a Live instance, so this should be related to the Live instance and not the Live server, but what would it be?

+3


source to share


2 answers


According to the log entry, the agent starts, but it takes a long time to complete the task.

maybe



  • The "LotusScript / Java maximum execution time" in the server document is too short or
  • you don't have enough rights as "Application Development / IT / ***************" signed on the production server and the agent wastes time trying to access something else and again.

Make sure the signing agent has all the rights required to run the agent.

+1


source


The log entry clearly states what is wrong: the agents are running longer than allowed. The best practice is to add some logging to your agent.

First of all, I would check how long the agent takes to start in your test environment (right click on the agent after successful start and check the log).

If this time is fast enough to complete within the timelimit (for example, 12 minutes of execution and the server is configured for a maximum of 15 minutes), then it may be sufficient to start the agent on the heavier-loaded server to exceed the time limit.

Also: There are usually two different settings for the maximum duration of an agent, "Daytime Options" and "Nighttime Options". If one agent works at night, he is usually much more authorized than during the day.

Depending on the code used, there may be several reasons why an agent runs much longer on one database instance than on another (even on the same server).



eg:

  • If you are viewing a view, the view may not be up to date and must be built first. This can take a huge amount of time on a heavily used server.
  • connecting to another database can be considered a "local" call, while on another server it is a "remote" call. Again, this can have a huge impact.
  • due to different address books, in one case the signing agent can see only a few documents, in another case he sees them all
  • using any FTSearch method without existing full text ...
  • Using NotesDocumentCollection.getNthDocument () can lead to HUGE performance issues ...

It's all guessing without knowing your code. And the reason for your problem most likely depends on your code.

So again the tip: Build in some "logging" in your code: let it "tell" you where it is and what it has already done. Let it print runtime ... Then you can see where your production environment is wasting time.

+1


source







All Articles