Identifying stuck monitors
Occasionally monitors may become 'stuck' in GoAnywhere. You can easily create and schedule a project to identify this and receive email notifications.
The first thing to do is to create a query to check inside the GoAnywhere database. This will require you to have a database resource defined. Monitor information is stored here inside the dpa_monitor table, including a column that denotes the next time that monitors are expected to run. The easiest way to generate the query is to use the SQL Wizard (System - Tools), however, the query to execute is this:
SELECT monitor_name, running, status, next_fire_time FROM GADATA.dpa_monitor WHERE running = '0' AND status = 'A'
The column ‘running’ is set to be either 1 or 0, 1 indicating that the monitor is running at this time. The ‘status’ column contains either ‘A’ for active monitors, or ‘I’ for inactive monitors.
The project requires a SQL step to run the query and return the results to a rowset.
Following this, loop through the rowset and compare the next_fire_time column (which is returned in Millseconds) against the results of CurrentTimeMillis() in an if statment.
If the next_fire_time value is lower than CurrentTimeMillis(), send an alert.

This project should be scheduled to run on a regular basis.