O título deste post é uma exceção do driver do MySql que ocorre em algumas situações e pode ser difícil de diagnosticar a causa. A mensagem completa é: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Connection.close() has already been called. Invalid operation in this state.
Tive este problema em um ambiente de QA essa semana e vou deixar aqui informações que devem solucionar a maioria dos problemas relacionados. Há 2400 resultados no Google sobre MySQLNonTransientConnectionException, deve ter ocorrido muito já.
Esta exceção é lançada quando uma aplicação Java tenta utilizar uma conexão, mas ela já foi fechada no MySql. Os cenários mais comuns para isso são:
- MySql foi reiniciado
- Problema de rede na conexão com MySql
- Conexão ficou ociosa tempo demais, e o MySql fechou-a
Estes cenários podem ser raros na sua infra, mas é importante que sua aplicação consiga lidar com isso. Minha aplicação usa o Hibernate, conectado a um pool de conexões do JBoss. O datasource em QA estava configurado assim:
<datasources> <local-tx-datasource> <jndi-name>NomeDS</jndi-name> <connection-url>jdbc:mysql://servidormysql:3306/nome_schema</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>usuario</user-name> <password>senha</password> <min-pool-size>1</min-pool-size> <max-pool-size>20</max-pool-size> <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name> <metadata> <type-mapping>mySQL</type-mapping> </metadata> </local-tx-datasource> </datasources>
A solução no meu caso foi incluir um novo parâmetro no datasource indicando uma query para o JBoss checar se a conexão é válida ou não: <check-valid-connection-sql>select 1</check-valid-connection-sql>. Este elemento é filho de <local-tx-datasource>. Com a introdução deste parâmetro, o JBoss consegue identificar que a conexão já não é válida e então obtém uma nova conexão.
Nas minhas buscas vi muitas pessoas com esse problema rodando no Tomcat sem um pool de conexões. A solução para eles foi criar um pool com C3P0, como nesse exemplo. É importante prestar atenção na configuração para que seja feita a renovação das conexões em caso de falha. Isto parece ser feito com o parâmetro no C3P0: <property name=”connection.provider_class”>org.hibernate.connection.C3P0ConnectionProvider</property>
Observação importante: colocar o parâmetro ?autoReconnect=true na URL jdbc NÃO resolve o problema, só muda a exceção. Além disso, o parâmetro autoReconnect é deprecated e não é recomendada a utilização.
That’s all folks!
Bruno, já tive esse problema também, no meu caso a conexão ficava ociosa por muito tempo… achei interessante as soluções apresentadas e me lembro que estava realmente difícil encontrar soluções. Para resolver eu busquei aumentar o tempo necessário para fechar a conexão por ociosidade… gostei do jeito que resolveu! Valew!
Opa, o fechamento por ociosidade é bem comum pelo que pude ver. Muita gente reclama do “MySql 8 hours problem”, que ocorre principalmente quando a aplicação fica com poucos acessos à noite e o timeout de 8 horas do MySql é atingido.
Bom, de qualquer forma é importante conseguir renovar as conexões, e estas configurações que eu indiquei fazem isso
[]s
Passei exatamente pelo mesmo problema no fim de 2008, só que numa aplicação Python usando SQLAlchemy. As conexões do MySQL tem um tempo máximo que podem ficar inativas, só que ele não é inteligente suficiente para matar essa conexão. Ele deixa ela lá e quando você usa a conexão ta zuada. No caso do Python + SQLAlchemy tivemos que usar um parâmetro chamado pool_recycle de acordo com o tempo que o servidor estava configurado para inativar/zuar a conexão.
[]s
Oi Emerson, isso parece ocorrer com muita freqüência mesmo. Bacana saber como você resolveu em uma aplicação Python. Esse tempo default de ociosidade da conexão no MySql é de 8 horas, aí caso uma conexão fique ociosa até este limite, o MySql a fecha.
Best, All about cartoon porn videos [url=http://www.gravatar.com/cartoonpornvideose#1]All about cartoon porn videos[/url], puome,
Very interesting sites., amateur porn videos [url=http://www.gravatar.com/amateurpornvideoso#1]amateur porn videos[/url], 829280,
What sort of music do you like? disguting anal red tube
D vanessa h sex tape red tube
crissy moran on red tube
214863 red tube german girls porn
tjaav red tube aquirt
006 shawna lenne sex toy red tube
295812 tube red winki
mevuu uncensored red tube ass to mouth
alr band named red on you tube
%-OO red tube we live togther
hqyrd red tube girls with male
zfa playboy tube red
%OO red tube ginger and friends
8-] red tube hookers ball
365 red tube porn tube
>:-)) red tube momboy
sfg red tube try us
ngydv hard nipples red tube
57137 red tube belly cum
34600 red tube gang bangs
cnawmn kinky red tube
8-(( you tube red boots
11996 tube 8 red head
zerd angel blade red tube
xboohw red tube happy girl
5558 red tube new lesbian
%P her first butt fuck red tube
>:-OOO red tube dutch students
213 red tube french llesbian
jkzu breast red tube
isxim
We work together red tube lacy
8-((( red tube car
sdcz latinas red tube
3114 red tube busty wife
ozqppu red tube huge dick tits
>:-OO red tube white and blue
vivb massage red tube
qmw red tube first time lesbein experience
10393 red tube hot momma web cam
536 you tube find the red dot
736 red tube nudists
:OO red tube like website
571352 red tube keyhole
290 red tube cam pixes
799135 red tube sarah palin
>:PPP red tube strip party
vbxk red tube drunken sex orgy
>:-( red tube hot bunny
8((( red tube girl shits on guy
>:O milf work out red tube
2542 sexo red tube
611815 red tube girls with strapons
998873 red tube whores
%-[ red x tube
:-[[ red tube wet girls
279862 memphis monroe red tube
oaw red tube philippines
irkpok thug gay black red tube
pxd black red stripes tube
580345 red tube tongue
>:-DD
A few months jacinta teen model =D tucson nude models >:OO petiete teen models 654 sexy naked modell %O asian nonnude models 44505 sandra model tgp
laurie model nude lxodyy teens models vlad csghgc christne model nude 888659 model flats pussy jnwmzz tgp bbs model
PP directory model porn 57910 exquisite nude models 740 nude preetens models pvh petite models agency wjgtis arab models nude =-(( artists models nudes hkjkea acemodeling girl 15 vpl lia model boots 8PP lia model fakes 8-P
I’m doing an internship nn teen models
9775
I study here nn preteenage models
36174
this post is fantastic Underage Porn Pics 060
I read a lot Pedo Sex Storys ttqpki
really great sites, thank you, replica rolex watches price, [url= http://replicarolexwatches.blogdiario.com ]replica rolex watches price[/url], %]],