Okay, here is the full description of the changes we made. It was the firewall that was severing the connections after 2 hours. This gave us 2 problems. The first was that having Minimum conections set at 1 in the ConnectionFactory kept a connection in the connection pool. After 2 hours of inactivity, the connection is severed, and the customer gets an 'Unexpected System Error'. By changing the Minimum connections to 0, the connection is cleaned up by the Pool Management
Thread before 2 hours expires.
The second problem is that the MDBListener keeps the connection it is given, so when that connection gets severed after 2 hours of inactivity, we see the ListenerService have to stop and restart because of the bad connection. This is not acceptable to our customers. We are getting around this by bumping the firewall timeout to 24 hours and we are running a program to drop a message on the queue. This keeps the connection alive and prevents it from being severed.
I hope this makes sense.