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).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.
A. Open a PMR - we can troubleshoot that for Designer 8.x.
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.
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.
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?
- Index of system requirements
- Supported configurations for IBM Notes & Domino 9.x
- Index of Maintenance Releases, Fix Packs and additional fixes
- Table of requirements for new features in IBM Notes 9.x Social Edition
- Feature comparison of IBM Notes 9.0 & IBM iNotes 9.0
- Julie Kadashevich: Managing the Agent Manager
- Performance basics for IBM Lotus Notes developers
- Minimizing delays in the Agent Manager
- Controlling the agents in your system
- Troubleshooting agents
- Troubleshooting agents in Notes/Domino 5 and 6
- #1100287 - How to suppress HTML code automatically generated by Domino in Web agents
- #1624936 - C API call out results in server crash or returns corrupt data on 64-bit Domino 8.5.3 Fix Pack 3
- #1087234 - Daily agent that runs near midnight may not get rescheduled correctly after server reboot
- #1499034 - Examining LotusScript call stack after a crash or hang with NSD
- #1193964 - Using the JavaUserClassesExt parameter when JavaUserClasses exceeds limit
** 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 firstname.lastname@example.org.
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.
|Messaging Applications||IBM Domino||Not Applicable||9.0, 8.5|
|Messaging Applications||IBM Domino Designer||Not Applicable||9.0, 8.5|