数据库会报Cannot get a connection, pool error Timeout waiting for idle object,一般是因为一个线程一直占用了数据库
需要定位出是哪个线程的方法:
1.通过数据库解决。进入mysql,输入命令 show processlist,查看当前mysql数据库中运行的进程,连续执行几次,查看一直存在的进程。
2. 使用JConsole,在它的面板中,查看线程使用的情况。
3. 使用smgr,dump内存
a.在命令行中执行smgr threaddump 20,查看最近20s内内存的使用状况,通过文件中线程的使用状况,定位出对应的线程。
b.使用命令 smgr memorydump,将文件导入eclipse中查看文件,定位出问题。