does anyone know how I am able to monitor IS system threads via custom java service? or flow service?
I am trying to figure out how to periodically check for hung system threads and send a notification if there are.
the thread data I am trying to access is located on the IS page included in the attachment.
I have gone through WM database to see if any tables were being used to hold the thread information (start time, name…ect), I also checked the WM Java classes to see if there was a way to access system thread information that way, but no luck.
I used Wang’s approach and used wm.server.query:getThreadList.
I simply created a flow service which invokes wm.server.query:getThreadList. Once I have the list of threads I check all the start times. The start time is only available if the thread is currently in use. Using the start time I can find out how long the thread has been running. If the thread has been running for longer than 10min than it sends a notification.
This does not guarantee that the thread is hung, nonetheless any thread running more than 10min in our system should be looked at since that is well above our threshold.
You can setup the Integration Server with a JMX port, then use any JMX utility to monitor remotely. In addition to providing a thread dump, you can also monitor various other parts of the Integration Server.
To setup a JMX port you will need to specify the appropriate properties in one of the Integration Server startup scripts.
For choice of JMX utility jvisualvm is popular because it is installed in most JDKs.
You can even use JMX in a production environment. I don’t know your use case for looking at threads, but there is a fair bit of information you can gather from using JMX.