Foros del Web » Programación para mayores de 30 ;) » .NET »

User xxxxx already has more than 'max_user_connections' active connections

Estas en el tema de User xxxxx already has more than 'max_user_connections' active connections en el foro de .NET en Foros del Web. Estimado tengo un codigo que llena una tabla con datos obtenidos de una consulta, por cada registro de esa consulta voy haciendo insert y update, ...
  #1 (permalink)  
Antiguo 05/01/2016, 05:07
 
Fecha de Ingreso: diciembre-2015
Mensajes: 8
Antigüedad: 8 años, 11 meses
Puntos: 0
User xxxxx already has more than 'max_user_connections' active connections

Estimado tengo un codigo que llena una tabla con datos obtenidos de una consulta, por cada registro de esa consulta voy haciendo insert y update, hasta completar la tabla y usarla para generar un reporte. (que es un catalogo de artículos con imagenes)

El codigo me funciona bien localmente en mi PC ya que puedo modificar el max_user_connections, pero alojado en el hosting que no puedo modificar ese valor me da el error "User xxxxx already has more than 'max_user_connections' active connections"

Creo estar abriendo y cerrando las conexiones adecuadamente, pero no se si es lo más optimo, me podrían decir que puedo mejorar.? les paso el codigo..

Muchas gracias

Partial Class Catalogo_Rep
Inherits System.Web.UI.Page

Dim funcion As New funciones
Dim conMyData As MySql.Data.MySqlClient.MySqlConnection

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

If Not Me.Page.IsPostBack Then

LlenarTemporal()

BuscarFoto()

End If

End Sub


Protected Sub ReportViewer1_Load(sender As Object, e As EventArgs) Handles

ReportViewer1.Load

If Not Me.Page.IsPostBack Then

Dim ObjectDataSource1 As ObjectDataSource = .....)
Dim rds As Microsoft.Reporting.WebForms.ReportDataSource = ........)

ReportViewer1.LocalReport.DataSources.Clear()

ReportViewer1.LocalReport.DataSources.Add(rds)
ReportViewer1.LocalReport.DisplayName = Request.QueryString("vDesc")
ReportViewer1.LocalReport.ReportPath = "Catalogo.rdlc"

End If

End Sub


Sub LlenarTemporal()

Try

Dim Sql As String = " SELECT .... "

conMyData = funcion.connect()

Dim oComando As New MySqlCommand(Sql, conMyData)

oComando.Parameters.AddWithValue("?IdRubro", Request.QueryString("vRubro"))

Dim myreader As MySqlDataReader = oComando.ExecuteReader()

Dim cont As Integer = 1

Do While myreader.Read()

If cont = 1 Then

InsertarTwcata()

ElseIf cont = 2 Then

UpdateTwCata2(BuscoMaxId(),.....)

ElseIf cont = 3 Then

UpdateTwCata3(BuscoMaxId(),.....)

ElseIf cont = 4 Then

UpdateTwCata4(BuscoMaxId(),.....)

ElseIf cont = 5 Then

UpdateTwCata5(BuscoMaxId().......)

End If

If cont = 5 Then
cont = 1
Else
cont = cont + 1
End If

Loop

conMyData.Dispose()
conMyData.Close()
conMyData = Nothing


Catch ex As Exception

Response.Write(ex.Message)
Response.Write(ex.Source)
Response.Write("Fallo conexion")

Finally
End Try

End Sub

Sub InsertarTwcata(....)

Try

Dim Sql As String = " INSERT ...."

conMyData = funcion.connect()

Dim oComando As New MySqlCommand(Sql, conMyData)

oComando.Parameters.AddWithValue("?vCodigo", vCodigo)

oComando.ExecuteNonQuery()


conMyData.Dispose()
conMyData.Close()
conMyData = Nothing

Catch ex As Exception

Response.Write(ex.Message)
Response.Write(ex.Source)
Response.Write("Fallo conexion")

End Try

End Sub

Sub UpdateTwCata2(........)

Try

Dim Sql As String = " Update twcata ... "

conMyData = funcion.connect()

Dim oComando As New MySqlCommand(Sql, conMyData)

oComando.Parameters.AddWithValue("?vCodigo", vCodigo)

oComando.ExecuteNonQuery()


conMyData.Dispose()
conMyData.Close()
conMyData = Nothing

Catch ex As Exception

Response.Write(ex.Message)
Response.Write(ex.Source)
Response.Write("Fallo conexion")

End Try

End Sub

Sub BuscarFoto()

Dim Sql As String = " Select ..."

conMyData = funcion.connect()

Dim oComando As New MySqlCommand(Sql, conMyData)

Dim myreader As MySqlDataReader = oComando.ExecuteReader()

Do While myreader.Read()

ActualizarImagen(....)

Loop

conMyData = Nothing

End Sub

End Class


Function connect()

Dim conMyData As MySql.Data.MySqlClient.MySqlConnection

conMyData = New MySqlConnection(....)

conMyData.Open()

Return conMyData

conMyData.Close()

End Function
  #2 (permalink)  
Antiguo 05/01/2016, 06:09
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: User xxxxx already has more than 'max_user_connections' active connections

Para empezar haz los dispose del MySqlCommand y de la conexión en el finally. Así te aseguras que siempre se liberan los recursos.

Por cierto, haces el Dispose y luego el Close, lo que es totalmente inútil ya que el Dispose hace el Close y además libera la memoria.
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 05/01/2016, 09:55
 
Fecha de Ingreso: diciembre-2015
Mensajes: 8
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: User xxxxx already has more than 'max_user_connections' active connections

Ok, lo pruebo esta noche.. Gracias.-
  #4 (permalink)  
Antiguo 06/01/2016, 06:24
 
Fecha de Ingreso: diciembre-2015
Mensajes: 8
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: User xxxxx already has more than 'max_user_connections' active connections

Buen día Malenko, con tu consejo y el de otro foro pude solucionarlo, muchas gracias.

Etiquetas: mysql, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:45.