Hibernate não fecha sessão no banco

Olá, pessoal!
Estou com um problema que está muito complicado de resolver com relação às sessões do hibernate.

Bom, tenho uma aplicação bat que acessa o banco diversas vezes. Em todas elas eu fecho a conexão com session.close(), porém em análise no banco de dados detectamos que as sessões ficam abertas como inativas. Ou seja, quando chego no limite do banco, o processo para de funcionar.

Em alguns testes, usei até de outros artifícios como session.disconnect(), mas não obtive nenhum resultado.

A priori, vou colocar somente o código que fecha a sessão, mas caso seja necessário, adiciono ao tópico mais código.

public void closeSession(){
    	session.disconnect();
    	session.clear();
    	try {
			session.connection().close(); //esse código está deprecated, mas foi uma tentativa desesperada
		} catch (HibernateException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
    	session.close();
    }

O erro que sai no stacktrace é o seguinte:

ERROR 09 mar 2016 16:18:28 (ValorDaoImpl.java:60) - Erro ao executar a queryListener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found

ERROR 09 mar 2016 16:18:28 (ValorDaoImpl.java:66) - java.sql.SQLException: Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found

	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:389)
	at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:454)
	at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
	at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:802)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
	at br.com.embratel.CargaVoip.daoImpl.ValorDaoImpl.consultaValor(ValorDaoImpl.java:46)
	at br.com.embratel.CargaVoip.rn.SiemensVoipRn.enviaParametros(SiemensVoipRn.java:274)
	at br.com.embratel.CargaVoip.rn.SiemensVoipRn.enviaParametrosOrig1(SiemensVoipRn.java:406)
	at br.com.embratel.CargaVoip.rn.SiemensVoipRn.startCargaVoip(SiemensVoipRn.java:75)
	at br.com.embratel.CargaVoip.rn.VoipRn.cargaVoipSiemens(VoipRn.java:31)
	at br.com.embratel.CargaVoip.Start.main(Start.java:90)

De qualquer forma, já agradeço a atenção. Espero que possam me ajudar, :slightly_smiling:

As ligações ficam abertas mesmo depois do bat terminar. Ou ficam abertas durante a execução do bat mesmo após a execução que necessita delas terminar? Se for este segundo caso, é normal, com o uso de pool de conexões, estas não serem efectivamente fechadas na BD e sendo reaproveitadas posteriormente.

É esse segundo caso sim. E não há nenhuma forma de impedir que fiquem abertas?Porque definitivamente meu processo não estão reaproveitando-as. Obrigada pela resposta (:blush: