Rick Burge created LOG4NET-495:
----------------------------------

             Summary: Error when BufferSize in >1, parameter already defined
                 Key: LOG4NET-495
                 URL: https://issues.apache.org/jira/browse/LOG4NET-495
             Project: Log4net
          Issue Type: Bug
          Components: Appenders
    Affects Versions: 1.2.15
         Environment: Windows 7
            Reporter: Rick Burge


Downloaded the subject revision 1714197 in order to get the 
ADONetAppender_SqlServer appender to work as this revision corrected a problem. 
The appender began to work. However if the BufferSize was increased to >1 an 
error was reported that the parameter @log_date was already defined.

The error appears to be in SendBuffer. Because the IDbCommand dbCmd is being 
reused inside the foreach (LoggingEvent e in Events), each time the 
param.Prepare(dbCmd) is called for the same appender it will attempt to add a 
parameter that has already been added.

My local solution was to clear the commands parameter list prior to adding the 
preparing the paramters:
   foreach (LoggingEvent e in events)
                    {
                            dbCmd.Parameters.Clear(); //*****added this 
line*****

                        // Set the parameter values
                        foreach (AdoNetAppenderParameter param in m_parameters)
                        {
                            param.Prepare(dbCmd);
                            param.FormatValue(dbCmd, e);
                        }

                        // Execute the query
                        dbCmd.ExecuteNonQuery();
                    }






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to