Yesterday I started getting alerts from the IS "
No threads available to run task {2#Notification- Cron Daemon Pool}".
I took a thread dump and analyzed and found the following:
There was a single notification thread (ThreadA) which had locked a monitor which almost all of the other notification threads were waiting on causing a block. This exhausted the notification thread pool and hence the error.
Before I started getting this alert, I did get an alert on the JDBC Adapter Connection ThreadA uses.
Adapter Runtime (Connection): Unable to get a connection to resource JDBCConnection.NotificationConnection:Notification.
My guess is when the connection issue happened this thread hung.
Here is my question:
-
Is it correct understanding that a notification thread remains active from the time a trigger is fired till the service which follows completes? And if for some reason there is a break, the thread won’t get released?
-
Is there any way we can build in the service to timeout after certain time or for the thread to be released after sometime?
-
Also, has anybody implemented any way to kill threads in the IS JVM if you doubt a hang situation.
Nancy