DAAB

25/11/2004 - 21:26 por Maxi | Informe spam
Hola foro, tengo algunas consultas sobre el AP DAAB de Ms, espero que me
puedan orientar un poco :)

La version que estoy probando es la 3.0 y funciona bien, lo que vi es que
mantiene la conexion abierta y aun no se como cerrarla (como se puede hacer
esto?)

Otra consulta con respecto a este tema, yo estoy armando una aplicacion en
distintas DLL que seran llamadas por Reflexion, se puede de alguna forma que
los accesos a datos de estos modulos al usar DAAB si ya hay una conexion
abierta usen esa y no me quiera abrir otra?

Gracias por todo


Salu2
Maxi

Preguntas similare

Leer las respuestas

#1 Miguel Angel Campos
27/11/2004 - 20:53 | Informe spam
El connectionpool de .net se basa sólo y exclusivamente en la cadena de
conexión. De tal forma que si tienes varias DLL y todas utilizan la misma
cadena de conexión, y cuando digo la misma me refiero a la misma caracter
por caracter y con case sensitive, podrán utilizar los mismos objetos
SqlConnection disponibles en ese momento en el pool.

Aquí teneis un articulo un poco avanzado acerca de algunos aspectos del
connection-pool:
http://msdn.microsoft.com/library/d...eguard.asp

Un Saludo.

"Maxi" escribió en el mensaje
news:
Esa es una opcion interesante, como podria hacerlo]? me pasas algun mini
ejemplo?


Salu2
Maxi


"JOSE DAVID GALVIZ M" escribió en el mensaje
news:
Maxi, Yo creo que si.

Lo otro que podrias hacer, si alguien aqui dice que no, será crear la
conexión desde fuera (No ela dlls sino en la aplicación) y pasar una
referencia de ella a las dlls apara que la usen. De seguro ahi si va a
aprovechar el pool.



Ingeniero JOSE DAVID GALVIZ MUÑOZ
Microsoft Certified Application Developer
Desarrollador Cinco Estrellas 4
"Maxi" escribió en el mensaje
news:%
Gracias Antonio!!, una duda entonces:

Supongamos que tengo diferentes DLL (Customers, vendors, etc) cada una de
ellas tiene su capa de datos la cual usa en mi caso a DAABF como servicio.
Bien, todo esto esta corriendo en un mismo equipo cliente supongamos.

Si yo le paso siempre la misma cadena (hasta el mismo nombre de aplicacion)
vos decis que me va a intentar reutilizar el pool?

De ser asi seria fenomeno, pero de no serlo estaria en problemas de licencia
y deberia quizas aplicar lo que me has explicado!!

Gracias


Salu2
Maxi


"Antonio Soto" <antonioARROBAsolidqualitylearning.com> escribió en el
mensaje news:uM9lIy$
Hola Maxi,

Puedes cambiar el comportamiento a través de la Cadena de Conexión del
SQLConnection. Estos son los valores predeterminados:

Pooling = True; El cliente reutiliza las conexiones creadas en el
servidor, basándose en el nombre de la aplicación y en la cadena de
conexión. Si estas coinciden intenta reutilizar las conexiones.
Connection Reset= True; SQL Server ejecuta sp_reset_connection para
resetar la conexión y liberar los recursos
Min Pool Size=0
Max Pool Size0; Número Máximo de conexiones en el pool(OJO de cada
tipo, digamos que por cada aplicación/cadena de conexión se crea un pool)
Connection LifeTime = 0; Tiempo que permanecen las conexiones en el pool

Espero te sea de ayuda

Saludos


Antonio Soto
Mentor Asociado
Solid Quality Learning Iberoamericana

-"Maxi" wrote in message
news:Oo9Jvp%
Gracias amigo mio!! ahora te planteo la misma duda!! si tengo n modulos DLL
independientes yo quiero que no se genere una conexion por cada uno, sino
estoy frito :(


Salu2
Maxi


"JOSE DAVID GALVIZ M" escribió en el mensaje
news:
Maxi, me comunique con Diego Gonzalez, uno de los autores del DAAB, y esta
es la respuesta, con la cual todo nos queda claro y quedamos satisfechos:

Hola José,

En realidad eso ocurre porque el driver de ADO.NET para SqlServer utiliza un
pool de conexiones para acelerar los tiempos de conexión. Este pool está
controlado por el cliente y algunas variables del grabage collector. En
realidad si se cierra la conexión tendrías que proceder a abrir un nuevo
socket con el servidor y eso tardaría.

En WinForms el GC es menos agresivo, por eso la conxión se mantiene abierta
y en ASP.NET para lo opuesto. Se abren dos conexiones a veces porque esa es
la configuración del pool de SqlClient. Si te fijas en la documentación de
la cadena de conexión puedes hacer un control sobre el pooling de
conexiones, hasya incluso deshabilitarlo si no le hace feliz ese
comprotamiento. Debe tener en cuenta que verá decrementada la performance
Tal vez en ASP.NET cuando tiene mucha carga.

Saludos,
Diego Gonzalez
Lagash Systems SA



Ingeniero JOSE DAVID GALVIZ MUÑOZ
Microsoft Certified Application Developer
Desarrollador Cinco Estrellas 4
"JOSE DAVID GALVIZ M" escribió en el mensaje
news:
Maxi,
Mira, estuve revisando y el DAAB si cierra la conexión, es mas, la destruye
a traves de un dispose, pero tienes razon, mirando en el enterprise manager
o la tabla sysprocesses, ahi sigue apareciendo la conexión, el tema es por
alguna otra razon, pues si haces esto, pasa igual:
Dim DS As DataSet
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter
Try
MyConnection = New SqlConnection("Server=localhost; DataBase=Northwind; User
ID=sa; Password=tupwd")
MyCommand = New SqlDataAdapter("select * from Customers", MyConnection)
DS = New DataSet
MyCommand.Fill(DS, "Authors")
DataGrid1.DataSource = DS.Tables("Authors").DefaultView
Catch ex As Exception
MsgBox(ex.Message)
Finally
MyConnection.Close()
MyConnection.Dispose()
End Try
Y otra cosa, sucede en aplicaciones winforms, en aplicaciones web funciona
como esperamos, la conexión desaparece.


Ingeniero JOSE DAVID GALVIZ MUÑOZ
Microsoft Certified Application Developer
Desarrollador Cinco Estrellas 4
"Maxi" escribió en el mensaje
news:
Hola foro, tengo algunas consultas sobre el AP DAAB de Ms, espero que me
puedan orientar un poco :)

La version que estoy probando es la 3.0 y funciona bien, lo que vi es que
mantiene la conexion abierta y aun no se como cerrarla (como se puede


hacer
esto?)

Otra consulta con respecto a este tema, yo estoy armando una aplicacion en
distintas DLL que seran llamadas por Reflexion, se puede de alguna forma


que
los accesos a datos de estos modulos al usar DAAB si ya hay una conexion
abierta usen esa y no me quiera abrir otra?

Gracias por todo


Salu2
Maxi



Respuesta Responder a este mensaje
#2 MAXI
27/11/2004 - 23:44 | Informe spam
Hola, gracias a todos por responder!! ya he comprobado que le pool funciona
:) he creado varias dll en la misma maquina y siempre con la misma cadena de
conexion y no me abre mas conexiones :) por un momento me habia asustado :(

Mil gracias a todos por la enorme ayuda y dedicacion, ahora voy a poder
continuar con mi desarrollo :)

pd: pero no se desprenderan de mi ;), los seguire molestando :)




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)
Mail: Maxi_accotto[arroba]speedy.com.ar

Msn Messenger:

"Maxi" escribió en el mensaje
news:
Hola foro, tengo algunas consultas sobre el AP DAAB de Ms, espero que me
puedan orientar un poco :)

La version que estoy probando es la 3.0 y funciona bien, lo que vi es que
mantiene la conexion abierta y aun no se como cerrarla (como se puede
hacer esto?)

Otra consulta con respecto a este tema, yo estoy armando una aplicacion en
distintas DLL que seran llamadas por Reflexion, se puede de alguna forma
que los accesos a datos de estos modulos al usar DAAB si ya hay una
conexion abierta usen esa y no me quiera abrir otra?

Gracias por todo


Salu2
Maxi



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida