Conexão com o banco de dados fechada  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
dark123
JavaEvangelist

Membro desde: 30/04/2008 18:02:02
Mensagens: 315
Offline

Olá a todos.

Só estou criando este tópico porque não consegui resolver o problema de conexão com o banco de dados.

Minha aplicação JSP insere tópicos, bom, inseria, pois quando estou tentando inserir outro, mostra uma mensagem de excessão e logo em seguida toda a comunicação com o banco de dados é perdida.

A mensagem é esta:
Não foi possível se conectar ao banco de dados!
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed



Estou realizando conexão com uma classe java que está bem aqui:



e eu a imorto na página assim:


No começo do desenvolvimento não acontecia isso.

Será que o problema é na classe Java?

Obrigado.

Esqueceram de avisar que o NetBeans 6.7 e ainda por cima somente com java e JEE era pra quem tivesse mais de 2 GB de RAM
[WWW]
makoto
JavaChild
[Avatar]

Membro desde: 17/04/2008 17:00:17
Mensagens: 131
Localização: Fortaleza - CE
Offline

lembre-se de fechar a conexão:

Table, ta-table, the Book's on JTable
[Email] [MSN]
makoto
JavaChild
[Avatar]

Membro desde: 17/04/2008 17:00:17
Mensagens: 131
Localização: Fortaleza - CE
Offline

Ué, deletaram meu post??

Table, ta-table, the Book's on JTable
[Email] [MSN]
orlandini
Debugger

Membro desde: 17/03/2007 19:09:09
Mensagens: 58
Offline

Esquece ja vi que não é o que eu falei rsss

This message was edited 1 time. Last update was at 04/12/2008 11:06:42

[Email] [MSN]
dark123
JavaEvangelist

Membro desde: 30/04/2008 18:02:02
Mensagens: 315
Offline

Sim eu fecho a conexão sim, mas não resolve.

E isso pode atrapalhar a comunicação com outra página?

Esqueceram de avisar que o NetBeans 6.7 e ainda por cima somente com java e JEE era pra quem tivesse mais de 2 GB de RAM
[WWW]
makoto
JavaChild
[Avatar]

Membro desde: 17/04/2008 17:00:17
Mensagens: 131
Localização: Fortaleza - CE
Offline

Trabalhando com JDBC, fechar a conexão é passo fundamental, se não fizer vai dar erro com certeza na inserção de novos dados.

Table, ta-table, the Book's on JTable
[Email] [MSN]
makoto
JavaChild
[Avatar]

Membro desde: 17/04/2008 17:00:17
Mensagens: 131
Localização: Fortaleza - CE
Offline

seria legal se vc abrisse uma conexão inserisse o tópico e fechasse a conexão e cada nova inserção a conexão será aberta e fechada. vc fez assim?

Table, ta-table, the Book's on JTable
[Email] [MSN]
dark123
JavaEvangelist

Membro desde: 30/04/2008 18:02:02
Mensagens: 315
Offline

Sim eu fiz.

Esqueceram de avisar que o NetBeans 6.7 e ainda por cima somente com java e JEE era pra quem tivesse mais de 2 GB de RAM
[WWW]
italo.vendrameto
JavaChild
[Avatar]

Membro desde: 21/09/2006 06:44:48
Mensagens: 119
Localização: Curitiba - PR
Offline

Bom vamos por partes.

Pelo erro que você apontou lá no inicio do tópico, você já verificou se o seu DBServer está funcionando corretamente e aceitando conexões com esse usuário e senha, tudo bem que antes funcionava mais vale apena fazer um teste para garantir que erro está realmente na sua aplicação.

Nesse seu bloco de código o IF tem que ser conn != null senão você vai receber um NullPointer


Sobre a sua classe Conexao e a questão de abrir e fechar a Connetion
Na sua classe Conexao o atributo conn como static pode gerar um erro em um ambiente com concorrenência, por ser static esse atributo é comum a todas as instâncias da Classe conexao então se você tiver 3 instâncias de conexao sendo usadas e uma dele fechar a connection ferrou...

Você poderia tornar o método getConnection static e criar o conn dentro dele dessa forma seria cria uma conn usada e encerrada, mas como já foi comentado a mesma deve ser fechada senão não DB que aguente.



Detalhe lembre de tratar as exception desses catch's
dark123
JavaEvangelist

Membro desde: 30/04/2008 18:02:02
Mensagens: 315
Offline

italo.vendrameto wrote:Bom vamos por partes.

Pelo erro que você apontou lá no inicio do tópico, você já verificou se o seu DBServer está funcionando corretamente e aceitando conexões com esse usuário e senha, tudo bem que antes funcionava mais vale apena fazer um teste para garantir que erro está realmente na sua aplicação.

Também pensei que fosse isso mas está sim, pois o texto é inserido corretamente.



Nesse seu bloco de código o IF tem que ser conn != null senão você vai receber um NullPointer

Também pensei que fosse isso, mas observe melhor: como vou realizar um select num testte para a variável conn como não nula, sendo que ela inicializa nula? (Se eu fizer assim, a página fica em branco, pois nenhum dado é mostrado).



Sobre a sua classe Conexao e a questão de abrir e fechar a Connetion
Na sua classe Conexao o atributo conn como static pode gerar um erro em um ambiente com concorrenência, por ser static esse atributo é comum a todas as instâncias da Classe conexao então se você tiver 3 instâncias de conexao sendo usadas e uma dele fechar a connection ferrou...

Você poderia tornar o método getConnection static e criar o conn dentro dele dessa forma seria cria uma conn usada e encerrada, mas como já foi comentado a mesma deve ser fechada senão não DB que aguente.
Muito obrigado, acho que era isso mesmo. Bem que eu perguntei acima se era a classe java, hehe.
Obrigado mesmo. ^^



Detalhe lembre de tratar as exception desses catch's
Como posso tratar essas excessões para mostrar na página JSP, sendo que o System.out.println da classe JAVA não executa em JSP. E não quero criar sessões redirecionando informações para a página anterior porque uma das versões do Firefox possui bug em relação a isso, levando o usuário a apertar o refresh do navegador para carregar a página novamente e executar esta tarefa de mostrar a mensagem da sessão. É um horror isso...


Bom, agora só tem um problema maior: é que a coluna de preenchimento com o texto é do tipo TEXT, o que não sei se deveria utilizar, pois está inserindo caracteres estranhos nesta coluna.

Como mostram as imagens:




E aqui os tipos de variáveis:




Daí quando tento executar um SELECT com os dados estranhos, a coluna fica sem conteúdo.

Acho que é o tipo de variável mesmo, mas não tenho certeza.

This message was edited 1 time. Last update was at 04/12/2008 13:44:43


Esqueceram de avisar que o NetBeans 6.7 e ainda por cima somente com java e JEE era pra quem tivesse mais de 2 GB de RAM
[WWW]
dark123
JavaEvangelist

Membro desde: 30/04/2008 18:02:02
Mensagens: 315
Offline

EH, descobri onde estava o problema

bom, então se isso aconteceu somente após cadastrar os dados, deve ter sido aqui o problema:



o stmt.close() e conn.close() estavam após redirecionar a página, puxa, como pude cometer este erro. =/

Após eu consertar o que fiz, adicionando estes fins de conexão e Statement antes de redirecionar a página, deu certo, sem problemas de conexão fechada. =]

Bom, vou verificar se isso não ocorre novamente e posto os resultados.

Obrigado a todos pela ajuda.

Vocês foram fundamentais para meu melhor desenvolvimento e fico muito grato por isso. =]

This message was edited 1 time. Last update was at 04/12/2008 14:25:12


Esqueceram de avisar que o NetBeans 6.7 e ainda por cima somente com java e JEE era pra quem tivesse mais de 2 GB de RAM
[WWW]
dark123
JavaEvangelist

Membro desde: 30/04/2008 18:02:02
Mensagens: 315
Offline

EH, parece que os caracteres estranhos ainda continuam no fim de todo o texto cadastrado.

E não é por causa da codificação da página de envio e da página que recebe os dados não, pois estas já foram modificadas para inúmeras codificações.

Estou utilizando um editor parecido com este da GUJ, claro que o meu é bem mais simples, mas quebra o galho.

Existe alguma forma de retirar os caracteres estranhos?

Estou utilizando scripts para receber o texto do editor e depois repassar para a url de envio.

Segue ae:



Após clicar em "submit", o script, que eu não postei (esqueci) vai verificar se o título foi preenchido corretamente, se foi então redireciona para o outro script que é function submitForm() para concluir a operação.

This message was edited 1 time. Last update was at 04/12/2008 15:33:18


Esqueceram de avisar que o NetBeans 6.7 e ainda por cima somente com java e JEE era pra quem tivesse mais de 2 GB de RAM
[WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team