Is there an existing feature, or some other clever way to get an alert when one of my processes run too long? I could have a 'hung' process and not know about it for hours.
Hi Yechiel Kaplan,
The Boomi cloud does have a 24h limit for normal processes. For listener processes, it's 30 seconds.
For Local Atoms, you can add the following property to your atom.vmoptions configuration file. Then your process will be automatically terminated once the time has exceeded the limit. Keep in mind though this is a global property. I'm not aware of an option to set this on process level.
You can cancel a running process with the Atompshere APi, see Cancel execution operation . So you could design a process which does exactly this after x amount of time. For example, an generate event when a process starts, send them to a queue or data store. Then check the events after x amount of time using a 2nd scheduled process. I never tried it, but with some creative thinking, this might be an option.
Thanks Sjaak Overgaauw. I'm not looking to terminate the process rather simply make sure that things are running smoothly. I was thinking along the lines of your last idea... as soon as the process kicks off write a date stamp to a log table and then sweep that log table for anything older than x amount of minutes.
Yes, log a timestamp and the process execution id (needed by the API)
I am not sure if this works, but if you know the average time for your process to get executed, you can use a notify shape (after all the paths are executed) in a branch shape and alert you once the process is executed.
For example : If process A takes 2 hours to get completed on an average.
So if you are not receiving an alert after 2 hours then the execution of process is stuck somewhere or might be still in process.
Prudvi Siddharth, that idea might work for processes that take a long time. Unfortunately the processes that I need alerts for run every two minutes
This option may be tried for the local installations. When ever process executes, it creates a lock file (.lck ) file in exeuction/current folder, if any lck file exists for more than x hours then there is something wrong with that particular process.
Also an interesting idea
Mallikajun Ratala, is there a way to alert on a lck file existing for x amount of time? I'd need an email letting me know.
It's a bit of a kludge, but you can setup some persistent process properties that hold date-time values, one for each process you want to monitor. When a process starts it updates its start time and when it completes, it clears it.
Then a monitor process that runs on a very short schedule interval checks each property for elapsed time and sends email if the expected time is exceeded
To make this more maintainable I'd set it up using a database instead of Process properties. Then the list of monitored professes,timeout intervals, emails addresses to notify, etc could be table driven and the monitor process would not have to be changed when processes were added or changed as simple query would return all overdue processes.
Reuseable sub-processes would be used to set and clear the processes start times.
Interesting thought. Have you tried this out. I just wanted to confirm that 2 different process executions would be able to access the same persisted process property. If we are using the same reusable sub process for query, set and clear the property, would there be a lock cases where 1 is trying to read and other is trying to set/clear.
If you have an additional connector license to spare, you could build a process to query Boomi Atomsphere API to check the current status of process (Execution Recordobject) and send out the email.
Yechiel Kaplan ,
I have created an E-mail alert when the process runs for more than 2 hrs using Atomsphere API ExecutionRecordAPI.
I have created map where I have added Map Function to retrieve Execution Timestamp of the process running and I get the Current Timestamp . Now I subtract Execution TimeStamp from Current TimeStamp to check if the difference is greater than 2 hrs. if it is greater than 2 hrs I send e-mail alert to users. This has been successfully running from past 1 month in production. Hope this helps.
Hope this helps.
This works but its shame to burn a connector if this is all you use the API for. If you already use a database connector then the method I suggested will leverage the same connector if you use the same database. If on the other hand you already use the API connector this is an ALL Boomi preferred way
Retrieving data ...