Make sure your agents are running when and where they’re supposed to
Manage your agents better thanks to a complete vision of agent activity across an entire server, as well as mass-edit capabilities.
Manage your agents in a better way
agentEZ is a tool that lets you work with your agents in context, by seeing all agents on a server at once. See what other agents are doing to be able to plan concurrent agent run-times accordingly. View, analyze, or edit any of their settings en-masse without any need to use your Designer client.
Complete overview of a server’s agent schedule
When it comes to an entire server’s agent schedule, there just isn’t any practical native Notes solution for viewing the big picture. agentEZ has you covered by letting you view ALL agents on a server, scheduled or not, regardless of whether they have already run or are set to run on a server—all within two clicks. Never guess about your agents again.
- See ALL agents on a server, scheduled or not, regardless of whether they have already run or are set to run on a server—all in two clicks.
- Access and analyze an entire server’s worth of agents’ schedule-related properties such as Status (enabled/disabled), Schedule Type and Schedule, Run On, and more in one central grid interface for deep insight into your server-wide agent schedule.
- See agent trends, detect possible runtime overlap, and more thanks to intuitive grouping and sorting options for arranging agent data shown in the grid.
- Modify multiple schedule-related properties for one or more agents simultaneously, directly from the grid—all while being able to compare them against each other.
- See when scheduled agents ran and when they will run in a convenient, graphical Agent Timeline display—very useful when analyzing concurrent agent issues.
Find and correct agents set to run on the wrong servers.
Use Case #14
Find and correct agents set to run on the wrong servers.
Have you ever wondered how your scheduled agents are distributed between servers? agentEZ lets you to quickly gather all information on scheduled agents and then categorize them by their “Run On” settings.
Get a clear understanding of when your agents are set to run on your server.
Use Case #52
Get a clear understanding of when your agents are set to run on your server.
Get an answer to the question "when are my agents set to run" in a cinch thanks to the ability to see every agent property and setting for all agents at once. Locate agents by their schedule; spotting when too many agents are scheduled at the same time, or seeing when more server CPU capacity is available, has never been easier!
Server-wide, visual display of agent run-history
agentEZ is a powerful tool that presents server-wide agent history information, including ample data that isn’t even available in Notes, in one central interface. Reveal the truth behind all agents’ behavior—across an entire server—in just a few clicks.
- See log information for multiple agents at once, and zero-in on specific log entries fast thanks to powerful data filters.
- Access exclusive Last Run Duration information not even available in Notes. Use powerful data handling abilities to get a thorough understanding of your longest running agents, or find agents that may have exceeded their runtime limit.
- Get an on-demand visual map of the exact run time of all the agents on your server to spot ideal scheduling times or even out heavy server usage.
Find agents that aren’t running correctly across an entire server.
Use Case #34
Find agents that aren’t running correctly across an entire server.
Administrators & developers looking after scheduled agents both face a common question: Are they truly running when they’re supposed to? agentEZ lets you inspect your enabled agents quickly and thoroughly by categorizing them by the last time they ran.
Establish a complete overview of agent logs—all in one central interface.
Use Case #20
Establish a complete overview of agent logs—all in one central interface.
Traditionally, agent logs are only available one by one. But with agentEZ, you can examine all agents' logs in the same interface. With the powerful filters available, it’s easy to find any particular error encountered by any/all agents on server.
Full security checkups for your agents
Agents must be accessed and adjusted one at a time in HCL Notes and Domino; a practical solution for auditing agent security properties has been a bit of a pipe dream. agentEZ is your central access point for server-wide security analysis of all the agents on your server, allowing you far greater insights than any native solution.
- Easily categorize all agents by runtime security level for a full understanding of the global situation in only a few clicks.
- Get an instant overview of the ratio of private vs. shared agents across an entire server.
- Craft reports of anything you find, through easy-to-use pre-formatted export options.
- Quickly find agents signed by users who are no longer in company—along with automatic NAB presence verification. Remedy any problems found quickly with a direct bridge to signEZ, our comprehensive signature tool.
- Find (or prevent) the source of problems with Out-of-Office agents for multiple users at once (such as enabled out-of-office agents on archive databases or on servers that use the Out-of-Office service).
Display your agents by signers and identify agents that should be running but can’t—due to outdated signatures.
Use Case #47
Display your agents by signers and identify agents that should be running but can’t—due to outdated signatures.
Agents previously worked on by developers who've since left the company are common problems in Domino Environments. They won’t automatically get resigned, they'll just simply stop running. Isolate these agents in seconds with agentEZ.
Agent modifications with global visibility
With the unique insight over your agents that only agentEZ can provide, and the ability to perform mass-changes directly from within the grid, you have a complete agent management system that is clearer and more powerful than any native option or other 3rd party solution.
- Modify all agent properties, even across multiple agents — regardless of which database they are in. Enable/disable, rename, or delete multiple agents simultaneously.
- Manage “generic properties” over entire families of agents: Set Runtime Security Level, toggle ‘Run as Web user’, modify the default agent Run and View Access requirements, and more.
- Handle scheduling properties with an unprecedented insight into the way your agents are functioning. Edit ‘Run On’ and ‘Run On Behalf Of’ properties across multiple agents at once – all in just a few clicks.
Modify your agent runtimes on a mass scale to optimize server performance.
Use Case #65
Modify your agent runtimes on a mass scale to optimize server performance.
Since agent scheduling is usually decided upon creation, and on a per agent/per database, what context can you base this decision on? Without the "big picture," you're in the dark. agentEZ lets you inspect global agent schedules and modify all agent settings right from the same interface.
Beyond the tools: reporting, integration, and automation
Thorough documentation and reporting are essential aspects of your work and expandability is always a good thing. Offering you a powerful tool to oversee the detailed picture of all agents on a server from multiple angles isn’t the end of the story for agentEZ. Learn about agentEZ’s essential extras: from quick reporting, to integration with your environment, to Ytria’s adaptive API.
Export data quickly and directly from any agentEZ grid. Create reports in HTML, Excel, XML, and CSV, or simply copy/paste your data from the grid.
Leverage built-in bridges between products to open your target server in agentEZ, open relevant databases in aclEZ, scanEZ, or replicationEZ to analyze their contents, find replicas, and more.
Extend agentEZ’s scope through your own scripts that let you repeat functions across an even larger scale. You can even use the command line integration to create push-button, multi-step process launchers.
Export an Agent Timeline image for agents within a selection of databases.
Script
Export an Agent Timeline image for agents within a selection of databases.
As is, this script will generate and export an Agent Timeline readout for all agents within all non-template databases on a currently loaded server.
<ytriaAutomation Application="agentEZ" Console="True"> <!--The following two lines both use the Select tag to perform the corresponding actions within the server/database selection tree and then the grid, respectively.--> <Select Target="Tree" Server="All"></Select> <Select Lines="All"></Select> <!--The following action will only be applied on selected rows. Since all rows were selected in the previous line, the complete agent information will be loaded for every agent in the grid.--> <LoadMoreInfo></LoadMoreInfo> <!--A filter is enacted on the column "Database Filename" to eliminate all entries whose filename contains the text "ntf". This filter value can be changed to suit your needs.--> <Filter ColumnID="D2" Mode="NotContains" Text="ntf"></Filter> <!--This action block sets the Agent Timeline function to export a copy of the readout, as well as the preferences used to export resulting image file. The file will be saved to the same location this automation file is being run from.--> <AgentTimeLineCopy Type="File"> <SetParam Field="AgentName" Value="Name"></SetParam> <SetParam Field="AgentFileName" Value="True"></SetParam> <SetParam Field="AgentPath" Value="True"></SetParam> <SetParam Field="AgentTitle" Value="True"></SetParam> <SetParam Field="FilePath" Value="agentEZ_export.bmp"></SetParam> </AgentTimeLineCopy> </ytriaAutomation>
Get a fast status report for all enabled and scheduled agents.
Script
Get a fast status report for all enabled and scheduled agents.
This script will load all enabled and scheduled agents on a currently loaded server and designate those that did not run. Additionally, it will create an Excel report of all agents, putting those that did run and those that did not on two separate pages.
<ytriaAutomation Application="agentEZ" ApplicationVersion="16.5"> <!--This will set the script's behavior when encountering an error. In this case, it will continue.--> <onerror continue="true" ></onerror> <!--At this point, we don't want to automatically load the detailed agent information. This will set it as "false". --> <Option Type="AutoLoadDetailedAgentInfo" value="False"></Option> <!--This will allow the automatic Check Presence in NAB feature to be carried out on the agent signer for each agent loaded.--> <Option Type="PresenceInNAB" value="true"></Option> <!--This will set the option to use the Design Collection Note which is a much faster loading option.--> <UseDesignCollection value="true"></UseDesignCollection> <!--This defines our search as looking only for scheduled agents.--> <AgentTriggerType value="Scheduled" ></AgentTriggerType> <!--This will select all databases on the loaded server.--> <TreeSelectionLive Value="True"></TreeSelectionLive> <select target="tree" server="true"></select> <TreeSelectionLive Value="True"></TreeSelectionLive> <!--The next part of the script will handle the grid layout so the results are presented in a clear order. A Suspend Grid Redraw function is added so the processing will be held off until all columns are set.--> <SuspendRedraw value="false"></SuspendRedraw> <!--All columns are removed from the main grid in order to prepare for the columns that will be added.--> <RemoveAllcolumns></RemoveAllcolumns> <!--Second, the columns that we want are added back into the first position and in reverse order.--> <Add ColumnID="STATUS_LOAD" Position="1"></Add><!-- Is Agent Fully Loaded? --> <Add ColumnID="D33" Position="1"></Add><!-- Is background agent disabled on database --> <Add ColumnID="B6" Position="1"></Add><!-- Comment --> <Add ColumnID="D3" Position="1"></Add><!-- Database Type --> <Add ColumnID="R24" Position="1"></Add><!-- Run on week-ends --> <Add ColumnID="R23" Position="1"></Add><!-- Stop running agent on this date --> <Add ColumnID="R22" Position="1"></Add><!-- Start running agent on this date --> <Add ColumnID="R21" Position="1"></Add><!-- Running Interval --> <Add ColumnID="M13" Position="1"></Add><!-- Signer --> <Add ColumnID="B5" Position="1"></Add><!-- Last Alias --> <Add ColumnID="B4" Position="1"></Add><!-- Name --> <Add ColumnID="D2" Position="1"></Add><!-- Database Filename --> <Add ColumnID="D1" Position="1"></Add><!-- Database Path --> <Add ColumnID="L17" Position="1"></Add><!-- Last Run Duration --> <Add ColumnID="L15" Position="1"></Add><!-- Last Run Start Date --> <Add ColumnID="STATUS" Position="1"></Add><!-- Status --> <!--Then, all groupings are removed.--> <UngroupAll></UngroupAll> <!--And we will set a new grouping configuration.--> <GroupBy ColumnID="D46"></GroupBy><!-- Server --> <GroupBy ColumnID="R9"></GroupBy><!-- Run On --> <GroupBy ColumnID="R12"></GroupBy><!-- Agent Schedule --> <!--Also, a new sorting configuration is set.--> <Sort columnID="L17" Ascending="false"></Sort><!-- Last Run Duration --> <Sort columnID="D1" Ascending="true"></Sort><!-- Database Path --> <Sort columnID="D3" Ascending="true"></Sort><!-- Database Type --> <Sort columnID="D2" Ascending="true"></Sort><!-- Database Filename --> <!--All existing filters are cleared, and then the grid processing is reactivated by turning off the Suspend Grid Redraw state.--> <ClearFilters></ClearFilters> <SuspendRedraw value="false"></SuspendRedraw> <!--Note that the agent details don't need to be loaded in this situaiton, as this info is provided without a full information load.--> <Filter columnID="R8" Value="checked"></Filter><!-- Enable --> <!--The following If condition declares that if something is found (and thus making the grid count greater than 0), the nested child actions will be carried out.--> <if target="Grid" test="VisibleRowsCount" Mode="GreaterThan" Value="0"> <!--All enabled agents will be selected (rows loaded in the grid).--> <Select lines="all"></Select> <!--Then, all the detailed agent information is loaded for all selected lines.--> <LoadMoreInfo></LoadMoreInfo> <!--A filter is added to find all agents that are enabled and did run correctly.--> <Filter columnID="L17" Empty="true"></Filter><!-- Last Run Duration not set... --> <!--These findings can now be exported. Note that this report will be generated in the same location that this file is being run from.--> <Export> <SetParam field="FilePath" value="newreport_agentEZ.xlsx"></SetParam> <SetParam field="SelectedRowsOnly" value="false"></SetParam> <SetParam field="ExportType" value="Excel"></SetParam> <SetParam field="Mode" value="AppendRows"></SetParam> <SetParam field="ExcelSheetName" value="Enabled Scheduled Agents - LAST RUN"></SetParam> <SetParam field="OpenFileOnceGenerated" value="False"></SetParam> </Export> <!--All filters will be cleared from the Last Run Duration column.--> <ClearFilters columnID="L17"></ClearFilters><!-- Last Run Duration... --> <!--A filter is then added to find all agents that are enabled, but did not run correctly. A small trick is used here: hiding anything that contains a ":" character (and thus indicating a duration).--> <Filter columnID="L17" Mode="NotContains" Text=":"></Filter><!-- Last Run Duration... --> <!--The following If condition declares that if this script is not being used in a loop, the Excel file will be opened as soon as it is generated. This can't be done if a loop is being run since the Excel file still may need to be worked on with the results of another server (depending on what you need to do). Keep in mind that we can't set an If condition with a SetParam value, hence the use of this variable. The variable is initialised first, and it will be changed if not in a loop.--> <SetVar vOpenExcelFile="False"></SetVar> <if target="var" test="{%ListSize%}" mode="Equals" Value=""> <SetVar vOpenExcelFile="true"></SetVar> </if> <!--Finally, any findings regarding agents that did not run can be exported. Note that this report will be generated in the same location that this file is being run from.--> <Export> <SetParam field="FilePath" value="{%CurFilePath%}report_agentEZ.xlsx"></SetParam> <SetParam field="SelectedRowsOnly" value="false"></SetParam> <SetParam field="ExportType" value="Excel"></SetParam> <SetParam field="Mode" value="AppendRows"></SetParam> <SetParam field="ExcelSheetName" value="DID NOT RUN"></SetParam> <SetParam field="OpenFileOnceGenerated" value="{%vOpenExcelFile%}"></SetParam> </Export> </if> </ytriaAutomation>
How does agentEZ work?
Like all of Ytria’s EZ suite tools, agentEZ is installed on the client side only, completely independent from your Notes client. Thanks to this, agentEZ offers you speed and power that just isn’t possible in any native solution.
agentEZ is a standalone compiled application coded in an efficient, low-level language. When installed, its executable file (agentez.exe) is detached into your Notes Program Directory. Each time you start agentEZ, a new session is created, independent from your Notes client session.
This means that agentEZ runs parallel to your Notes client and thus will not interfere in any way. In fact, you can think of agentEZ as a special “Notes client” to help you oversee and manage your agents and their settings across the entire server. You can even select which ID you want to work with—without having to switch IDs in your Notes client!
Like all other Ytria tools, agentEZ is installed on the client side ONLY. There is no need to install anything on the server, and being a local install means no system downtime.
That’s a good question! When working with agents (especially high runtime security level agents), security IS a crucial subject. Although agentEZ offers you a multitude of features that surpass the functionality available in both the Administrator and Designer clients (such as the ability to view agents and their properties even with Reader access only), our tools NEVER bypass Notes security. Certain key options, such as modifying agents, choosing which ID file you’d like to use for your agentEZ session or enabling Full Access Administration, require you to have the proper access rights in order to use them.
With agentEZ, you can modify hundreds of agents, and any of their properties in merely a few clicks. With such power available, how can you know that you’re making the right changes? Don’t worry, we’ve got you covered! Your modifications are protected by a two-step saving process which allows you to review your changes before deploying them—regardless of the modification you’ve performed.
The fact that agentEZ is an independent, compiled program, puts it in the position to outperform built-in Notes and Domino solutions.
But beyond that, agentEZ can handle hundreds (or even thousands) of agents and hundreds of thousands of agent-log lines, giving you a much better overview of your global agent situation. Loading all of this information can take a bit of time. Don’t worry though, we’ve built a bunch of pre-loading filter options into agentEZ so you can pinpoint the information that you absolutely need to load—such as the types of agents to load.
There is also a two-step loading process to optimize data loading times.
agentEZ operates through the official Notes API channels; any changes that you perform will be reflected by a signature change upon saving them. However, we offer much more extensive history and log options than the native solutions. You have the option to create a special Modification Log database in which every single operation performed using our EZ Suite tools will be logged. You can place this database on either your local machine, or one of your servers. You can even use our licensing system to route logging for all EZ Suite users into a central log database.