IBM Support

Open Mic Webcast: Debugging new agents written for IBM Notes - 31 July 2013 [Q&A, slides, audio replay]



Rene Jenkins, along with other members of the IBM Notes Domino Support and Development teams, shared information about Debugging new agents written for IBM Notes. Check out the resources below for information discussed. Check back soon for Q&A.




Debugging New Agents Written for IBM Notes Open Mic Jul 31 2013 (edited).mp3Debugging New Agents Written for IBM Notes Open Mic Jul 31 2013 (edited).mp3


Q. You stated that if an agent is making a back-end call to another database is not currently available, then that agent will hang. And that a Domino restart is the only way to fix that. Is there any way to make it so you just have to restart Agent Manager without restarting the server?
    A. We have an SPR open for an enhancement request for that.

Q. An Agent just locks whole agent manager and returns "agent has terminated abnormally" . Log shows that it's stopping at a database link and the only way to clear that is a server reboot, and sometimes the server crashes on the way down.
    A. Open a PMR for this. It could be an API call doing a memory overwrite. You could be passing the wrong sized variables into the parameters of the API call and an access violation from memory overwrite will kill the task.

Q. With our product we have the ability to issue a Run Now command but you don't see it running. Currently there is no way to go out and check the status of the agent at the console. Can that be enhanced in some way? Is there a reason technically why it doesn't display it?
    A. Yes. We can open an Enhancement request for that functionality. When you run on the console, that's really a simulated way of doing it. It's not really running it on the Agmr task, which is why it's not honoring those requests.

Q. Agent code running three concurrent agents. When I run that agent every now and then it creates a replication conflict in documents although I have the form conflict handling to merge conflict. Is there something in the agent that I could run that could remove this particular replication conflict?
    A. In a general sense, it is possible to have an agent remove replication conflicts. Would encourage you to open a PMR for us to troubleshoot why that's happening.
Q. When I was doing some code changes on my agents, when I hit attempt to place the cursor at a certain place of code, the actual code turns into a loop, the screen flickers and you can't do anything. You have to restart Designer (happens w/ Designer versions 7.0.3 or 8.5.3 client). Agent runs fine. otherwise, the problem is only when attempting to edit the code.
    A. Open a PMR - we can troubleshoot that for Designer 8.x.
Q. Have a few agents scheduled to run at 1AM. No issues w/ agent properties or the schedule. However, those agents just don't show up in the Agent's schedule and the agents never run.
    A. Do the following:
    -- Enable Agent Manager debug.
    -- Check to see if the agent is running past the time of the Amgr Cache Refresh.
    -- Check dbase properties to make sure the Application property to disable background agents didn't get set on that database accidentally.
    -- Right-click on the agent and do a test and see if gives you an error or gives any reason why it's not running.
Q. I'm running into same issue with agents creating replication conflicts even though the form property is set to merge - no conflicts.
    A. In that type of situation we can help you step through some of the things we talked about in the slides and help you narrow down the issue.
Q. Occasionally we have a problem where an agent won't complete and it will terminate saying it was taking too long. Regarding the Refresh Agent Cache time and also the daytime and nighttime parameters, if an agent starts during the nighttime parameters and then continues to run into the daytime window, is it limited to the daytime runtime or do we still have the nighttime runtime/execution time available? And if it hits that refresh time, does that cause it to stop?
    A. he agent is always going to run under the parameter that it initiated on. The max execution time parameters of when it initiated.

Q. So if I've got the Agent Refresh Cache hitting at 12 AM, say I start an agent at 8 PM and it might take 8 hours. Would I run into a problem there with the refresh agent cache? How would the Agent Refresh Cache affect it?
    A. In each agent there's a Terminate event you can take advantage of. If your agent has 8 hours to run and it will be terminated at refresh scheduled to occur at hour 4, you can add some processing to the Terminate event to save some information that will help you restart where you ended on the next time the agent runs. The cache refresh will terminate your agent but it will terminate it in a "nice way" meaning it will go through Terminate event.

Q. What is the command to print an Agent list?
    A. Show Agent DatabaseName will list all of the agents in the database, but I don't see that showing the schedule by default. For syntax, type Help on server console.

Q. When the signer of an agent gets deprovisioned from the address book, does AdminP take care of removing the signer and replacing it with the Server ID?
    A. No, that would be elevating the rights of the agent to that of the Server ID and you wouldn't want to do that.
    -- There is a tool that generates a list of all the agents signed by a person, but I don't believe there is an automated way to resign them with another ID.
    -- Not an automated way, but if you take it to a database level, you could resign all the agents in a particular database using the Admin client. That's a more manual process.
    -- There's also the Owner property of the Notes Agent class. that you can cycle through all the database. You could write a custom script to find out which agents are signed by that person and then you could resave them with an ID.

Q. Is there a command to show the entire day's agent schedule beginning at the beginning of the day and not just the remainder of the day?
    A. Not that I know of. The Tell Amgr Schedule is dynamic and shows just what's queued up. You could create a Program document or an agent that runs at the beginning of the day at the time that you want that schedule and that information would be in the logs.

Q. Is there any way to get the Agmr Refresh to kick off the program document, so that you know you are getting the most fresh schedule?
    A. There is a relatively new trigger that does start an agent and server restart but it's not Agent Manager restart. Open a Enhancement Request - I can see how that functionality would be useful.

Q. If I make a change to the Server Tasks - Agent Manager tab, does that still require a Domino Restart? or will restarting Agent Manager be enough?
    A. Changes to the Agent Manager tab should only require a AMGR restart. However, changes on the Security tab should require a server restart.

Q. What resources do you recommend for someone starting out in Domino administration?

developerWorks articles:

Help Articles:


** New Offering Available for Application Development **
If you do not have developer in house skills, or need additional assistance that requires a deep dive into the development of your applications, IBM has a new offering that will provide you with direct assistance and training from our SDK developers. To find out how your company can benefit from this program, contact Collin Murray at

For more information about our Open Mic webcasts, visit the IBM Collaboration Solutions Support Open Mics page. Follow highlights from these Open Mics live on Twitter using #ICSOpenMic or following us on Twitter @IBM_ICSsupport.

Original publication date


Cross reference information
Segment Product Component Platform Version Edition
Messaging Applications IBM Domino Not Applicable 9.0, 8.5
Messaging Applications IBM Domino Designer Not Applicable 9.0, 8.5

Document information

More support for: IBM Notes

Software version: 8.5, 9.0

Operating system(s): Linux, OS X, Windows

Reference #: 7038791

Modified date: 31 July 2013

Translate this page: