Java Message Service (JMS) API message queue functionality expects certain JMS threads to persist after initial invocation.
By contrast, all threads created by a Domino Java Agent are terminated when the agent completes execution. No threads are allowed to persist. This is currently working as designed.
If a Java agent utilizes the JMS API then it will execute successfully only during the first run of the agent. Subsequent executions of the agent will fail in JMS layer since expected JMS threads are missing. This is because all threads, including JMS threads, invoked during the first run are destroyed.
One common use case where JMS is required to run in a Domino Java agent is where the agent is designed to call the IBM MQ client layer. As of version 8, MQ reportedly switched their message queue provider from using MQI API, which does not require a thread to persist, to JMS API. Customers with Domino Java Agents which call MQ layer will encounter the scenario described above upon upgrading to MQ client V8 or higher.
Please enhance handling of Domino Java agent threads to allow persistent threads required by JMS to properly function.