logging-log4net-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dominik Psenner (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LOG4NET-495) Error when BufferSize is >1, parameter already defined
Date Mon, 23 Nov 2015 20:37:11 GMT

    [ https://issues.apache.org/jira/browse/LOG4NET-495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15022945#comment-15022945

Dominik Psenner commented on LOG4NET-495:

Thanks for testing the appender. Your report is sound and I'll fix it as you suggested. I'll
also try to write down a test so that we can be sure this usecase is covered by the unittests.

> Error when BufferSize is >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

View raw message