This is a bug, I will create a bug to track this.

Cheers,
Nicko

> -----Original Message-----
> From: Craig Boland [mailto:[EMAIL PROTECTED] 
> Sent: 21 March 2006 12:43
> To: [email protected]
> Subject: Re: ADONetAppender.ActivateOptions() causes Connection Leak?
> 
> It appears that calling ActivateOptions() successively will 
> cause a connection leak, since is calls the
> InitializeDatabaseConnection() method, which creates and 
> opens a new connection instance with each call.
> 
> I'm not too familiar with the AdoNetAppender. Is there a way 
> to close it programmatically before calling 
> ActivateOptions()? If so, that would be a work-around.
> 
> It seems to me that a method named
> "InitializeDatabaseConnection" would check the current 
> instance and close it before opening a new one.
> 
> Here's what I'd add to the
> InitializeDatabaseConnection() method:
> 
> private void InitializeDatabaseConnection() {
>   try
>   {
>     // Close the current instance
>     if(m_dbConnection != null)
>     {
>         m_dbConnection.Dispose();
>     }
> 
>     // Create the connection object
>     m_dbConnection =
> (IDbConnection)Activator.CreateInstance(ResolveConnectionType());
> 
>     //...
> 
> 
> > > Subject: ADONetAppender.ActivateOptions() causes
> > Connection Leak?
> > Date: Mon, 20 Mar 2006 17:21:21 -0700
> > From: "Wanner, Nick" <[EMAIL PROTECTED]>
> > To: <[email protected]>
> > 
> > I am modifying the buffer size and the connection string of 
> > ADONetAppenders programmatically and I am getting a SqlConnection 
> > leak.
> > The number of open connections to SQL Server grows to the max 
> > connection pool size when I do this repeatedly.
> >  
> > The leak occurs when I call ActivateOptions on the ADONetAppender 
> > after I set its BufferSize and ConnectionString.  The documentation 
> > says that you need to call ActivateOptions after you modify the 
> > appenders configuration.  The ActivateOptions method creates a new 
> > connection and overwrites the ADONetAppenders connect member 
> > m_dbConnection with the new instance.  The leak occurs 
> because the the 
> > old connection is not closed.
> >  
> > Here is basically what I am doing:
> > ...
> >
> ((log4net.Appender.BufferingAppenderSkeleton)logAppender).BufferSize
> > =
> > size;
> >
> ((log4net.Appender.ADONetAppender)logAppender).ConnectionString
> > =
> > ADOConnectionString;
> >
> ((log4net.Appender.ADONetAppender)logAppender).ActivateOptions();
> >  
> > I am doing something wrong or is this a bug?
> >  
> > thanks,
> > Nick
> > <mailto:'[email protected]'>
> > 
> 
> 
> 

Reply via email to