I have developed a code to check the health of multiple IS from a single IS via remote invoke.
All the servers to be monitored are defined as ‘Remote Servers’ on the monitoring IS.
Monitoring is defined for below on the monitoring IS,
Monitors all Integration Servers status
Monitors all JDBC, SAP & MQ adapter connection status
Monitors all JDBC, SAP & MQ listener status
Monitors the queue length of all clients
Monitors the connectivity to Broker from IS
Monitors all broker servers
Monitors all file polling ports
Monitors both Memory & Thread usage on all Integration Servers
Schedule tasks on all Integration Servers
Monitors Broker/Local Triggers on all Integration Servers
Monitors the trigger throttle settings on all Integration Servers
All these monitoring activities run fine individually.
The problem arises when these are scheduled to run at specific intervals.
The schedule tasks run fine for couple of hours and then end up in error as below.
java.lang.OutOfMemoryError:unable to create new native thread
Memory initially assigned to the monitoring IS was 256.
As I encountered this error, I changed the memory to 1024 by changing the server.bat as below. But still the error was the same. After some time IS does not respond and shuts down.
Thread usage was well within the limit during this process.
If anyone has encountered this type of error, could you please share your thoughts.
Below are additional details.
Microsoft Windows Server 2003 R2