We have an online multi-threaded system in which we are responding more than 1500 req/sec by querying an Oracle 9 DB. In order to limit the querying period we have been using setQueryTimeout method of PreparedStatement class. This works fine. But once we have profiled our application and noticed that there were too many threads created and garbaged. Since thread creation is an expensive job, we should take care it. The problem is for each setQueryTimeout action, driver (ojdbc14.jar) creates a new timer thread. Is there anyone who uses this method such a multi-threaded platform and suffers such a problem? Can jdbc drivers apply thread pooling for such cases? Do you know any alternatives to limit long query waits or drop suspended statements ?