You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by "Dominik Psenner (JIRA)" <ji...@apache.org> on 2015/11/27 20:22:10 UTC
[jira] [Assigned] (LOG4NET-495) Error when BufferSize is >1,
parameter already defined
[ https://issues.apache.org/jira/browse/LOG4NET-495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dominik Psenner reassigned LOG4NET-495:
---------------------------------------
Assignee: Dominik Psenner
> 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
> Assignee: Dominik Psenner
>
> 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)