Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Defende

[Resolvido] Grande problema com conexao que nao fecha

Recommended Posts

To usando WebForms e VB.net junto com o Mysql 5

 

A minha funcao de conexao eh a seguinte:

 

Public Sub New()
		strConecta = System.Web.Configuration.WebConfigurationManager.ConnectionStrings("cnIITA").ConnectionString
	End Sub

	Public Sub AbreCn(ByVal Abrir As Boolean) As MySqlConnection
		AbreCn = New MySqlConnection
		Try
			If Abrir = True Then
				If AbreCn.State = Data.ConnectionState.Closed Then
					AbreCn.ConnectionString = strConecta
					AbreCn.Open()
				Else
					Exit Function
				End If
			ElseIf Abrir = False Then
				AbreCn.Close()
				AbreCn.Dispose()
				AbreCn = Nothing
			End If
		Catch ex As Exception
			Exit Function
		End Try

	End Sub

E na minha pagina eu faco o seguinte:

 

Imports MySql.Data.MySqlClient

Dim Conecta As New Conexao

'Dentro de uma Funcao na pagina

Dim Cm As New MySqlCommand
Cm = New MySqlCommand
Cm.Connection = Conecta.AbreCn(True)

Sql = "Insert Into tbl_resp(sessionID,pergunta,resposta) Values(" & Criterio

Cm.CommandText = Sql
Cm.ExecuteNonQuery()

Conecta.AbreCn(False)
Cm.Dispose()

Acontece que quando eu rodo o administrado do Mysql ele me mostra as conexoes todas penduradas lah. O codigo nao esta fechando elas. Onde esta o erro???

Ja to loco com isso pois o servidor ja ficou fora do ar varias vezes indicando Varias conexoes abertas ao mesmo tempo e o Mysql derruba a conexao.

 

Desde ja grato a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao se você observar a minha funcao AbreCn ja faz isso, basta passar False como parametro.

 

Mas mesmo assim, caso eu fizesse outra funcao, o que acontece eh que quando eu abro a conexao, gravo um dado e fecho, lah no Mysql Mananger me mostra o usuario e com status de Sleep e a cada vez que eu insiro um registro o usuario eh criado e fica lah ateh que chega um ponto de nao aceitar mais conexoes.

 

Como eu poderia fazer para destruir por completo o objeto de conexao e assim livrar a conexao lah no servidor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver o problema pessoal.

Pra quem interessar:

 

O problema nao estava nos codigos e sim no MYsql. Pelo Administrador do MySql entre na Opcao Startup Variables na aba Networking tem ali o item Wait Timeout - bastou baixar ele para 30 que tudo foi resolvido - testado e aprovado.

 

Mesmo assim valeu a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.