I created a test program which creates 20 threads and then these threads will open many sql connection. Lets say you are executing this program from eclipse and now if you w
The connections won't close as in calling java.sql.Connection.close()
. Basically, the JVM that opened the connection can not keep the TCP/IP connections to the database alive. These will be shut down immediately. Hence, the "connection" will be shut down as well. The database, however, may not react immediately to this and keep its sessions alive for a while.
In Oracle, you can kill the sessions in the database directly, if you have sufficient privileges.
I guess, the behaviour is vendor-specific and/or configuration-specific. There is no general answer.
I believe that this depends on the database and the jdbc driver that you are using. I guess that in most cases the connections will be timed out and will be closed but it will not happen immediately. So, the better way is to close connection explicitly. Here are the usual techniques:
BTW I believe that in your case you do not need many connections to DB. Try to reuse one from all your 100 threads.