Have discovered this bizzare scenario. We have openfire with MS SQL server running. There is a firewall in-between. We have configured our server to use 30 threads to 50 threads in the openfire.xml file for high concurrency. Whenever we restart openfire, everything is good and we get the users roster properly. However on certain situations normally this occurs after 1 day, we get an empty roster back for the users. We then have to restart openfire and everything will start working again. We do notice that in MS SQL server, the 30 threads connected to the database are all sleeping, so the connection should be there. We even tried to download the latest jtds.1.3.0.dist but did not solve the problem.
Logging in etc works well, just that the roster goes missing. Not sure if anyone else has encountered a similar problem and how we can resolve this.