When an SNMP stack is used to send queries to remote SNMP agents, JBoss slows down. This is particularly severe when SNMP GetNext is used to browse a process table or other large table.
Various SNMP stacks, including the joeSNMP bundled with JBoss, and Westhawk SNMP stack, rely on thread creation. Usually there is a listening thread and a sending thread (for retries). These threads run in parallel to the main application.
J2EE prohibits arbitrary creation of threads. The various SNMP stacks do not create threads in a way that is safe for J2EE/JBoss.
In a typical `management station' application, a J2EE timer bean is used to send an SNMP get at regular intervals. E.g., every 60 seconds, an `SNMP Get' request is sent to discover the temperature reading of an external device.
What is the recommended way of implementing this application safely in the J2EE/JBoss environment? Is the joeSNMP stack bundled with JBoss modified to perform this function safely?