You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-user@logging.apache.org by Nicko Cadell <ni...@neoworks.com> on 2005/04/02 20:49:52 UTC
RE: General network error after MSCS SQL Active node switched
By default the AdoNetAppender does not reconnect to the database if there is an error on the connection. In log4net 1.2.9 there is a property that can be set on the AdoNetAppender to cause the appender to try to reconnect.
Add the following element as a child of the database <appender>:
<reconnectOnError value="true"/>
Nicko
> -----Original Message-----
> From: Vincent Ramona [mailto:vincent.ramona@unilog.fr]
> Sent: 25 March 2005 10:33
> To: log4net-user@logging.apache.org
> Subject: General network error after MSCS SQL Active node switched
>
> Hello, I'm using Log4Net with a clustered (MSCS) SQL 2000
> database in active passive mode.
> When the active node switch while my application works, I
> lost database connection. If I restart my application, it
> works fine. I'd like to keep it working even if the active
> database node is switching!
>
> Log4Net Assembly Version : 1.2.0.30714
> My program assembly is a dll used by an exe as a windows service.
> I'm using MS .Net v1.1
> My app.config file is
>
> <?xml version="1.0" encoding="utf-8" ?> <configuration>
> <!-- Register a section handler for the log4net section -->
> <configSections>
> <section name="log4net"
> type="System.Configuration.IgnoreSectionHandler" />
> </configSections>
> <system.runtime.remoting>
> <application name="LogServeur">
> <service>
> <wellknown mode="Singleton"
> type="SNCF.CSA.LogServeur.LogServeurCentral,LogServeurCentral"
>
> objectUri="LogServeurCentral">
> </wellknown>
> </service>
> <channels>
> <channel ref="tcp server" port="9000"/>
> </channels>
> </application>
> </system.runtime.remoting>
> <appSettings>
> <!-- To enable internal log4net logging
> specify the following appSettings key -->
> <add key="log4net.Internal.Debug" value="true" />
> </appSettings>
> <log4net debug="true">
> <appender name="RollingFileAppender"
> type="log4net.Appender.RollingFileAppender">
> <file value="Log.txt" />
> <appendToFile value="true" />
> <rollingStyle value="Size" />
> <maxSizeRollBackups value="10" />
> <maximumFileSize value="100KB" />
> <staticLogFileName value="true" />
> <layout type="log4net.Layout.PatternLayout">
> <conversionPattern value="%d
> [%t] %-5p %c
> (%P{hostname}) [%x] - %m%n" />
> </layout>
> </appender>
> <appender name="ADONetAppender_SqlServer"
> type="log4net.Appender.ADONetAppender">
> <param name="BufferSize" value="1" />
> <param name="ConnectionType"
> value="System.Data.SqlClient.SqlConnection, System.Data,
> Version=1.0.3300.0, Culture=neutral,
> PublicKeyToken=b77a5c561934e089" />
> <param name="ConnectionString"
> value="data source=SDBR2-HABSQL;initial
> catalog=LOGS;integrated security=SSPI;persist security info=true" />
> <param name="CommandText" value="INSERT
> INTO LOG_LO_Log
> ([LOG_LO_Date],[LOG_LO_Thread],[LOG_LO_Level],[LOG_LO_Logger],
> [LOG_LO_Messag
> e],[LOG_LO_Exception]) VALUES (@log_date, @thread,
> @log_level, @logger, @message,@exception)" />
> <param name="Parameter">
> <param name="ParameterName"
> value="@log_date" />
> <param name="DbType" value="DateTime" />
> <!--
> <param name="Layout"
> type="log4net.Layout.PatternLayout">
> <param name="ConversionPattern"
> value="%d{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
> </param>
> -->
> <param name="Layout"
> type="log4net.Layout.RawTimeStampLayout" />
> </param>
> <param name="Parameter">
> <param name="ParameterName"
> value="@thread"
> />
> <param name="DbType" value="String" />
> <param name="Size" value="255" />
> <param name="Layout"
> type="log4net.Layout.PatternLayout">
> <param name="ConversionPattern"
> value="%t" />
> </param>
> </param>
> <param name="Parameter">
> <param name="ParameterName"
> value="@log_level" />
> <param name="DbType" value="String" />
> <param name="Size" value="50" />
> <param name="Layout"
> type="log4net.Layout.PatternLayout">
> <param name="ConversionPattern"
> value="%p" />
> </param>
> </param>
> <param name="Parameter">
> <param name="ParameterName"
> value="@logger"
> />
> <param name="DbType" value="String" />
> <param name="Size" value="255" />
> <param name="Layout"
> type="log4net.Layout.PatternLayout">
> <param name="ConversionPattern"
> value="%c" />
> </param>
> </param>
> <param name="Parameter">
> <param name="ParameterName"
> value="@message"
> />
> <param name="DbType" value="String" />
> <param name="Size" value="4000" />
> <param name="Layout"
> type="log4net.Layout.PatternLayout">
> <param name="ConversionPattern"
> value="%m" />
> </param>
> </param>
> <param name="Parameter">
> <param name="ParameterName"
> value="@exception" />
> <param name="DbType" value="String" />
> <param name="Size" value="2000" />
> <param name="Layout"
> type="log4net.Layout.ExceptionLayout" />
> </param>
> </appender>
> <root>
> <level value="DEBUG" />
> <appender-ref ref="RollingFileAppender" />
> <appender-ref ref="ADONetAppender_SqlServer" />
> </root>
> </log4net>
> </configuration>
>
> The error I'm getting in DebugView tools is
> 00000201 89.89310373 [2224] log4net:ERROR
> [ADONetAppender] Failed
> in DoAppend
> 00000202 89.89489893 [2224]
> System.Data.SqlClient.SqlException:
> General network error. Check your network documentation.
> 00000203 89.89489893 [2224] at
> System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
> TdsParserState state)
> 00000204 89.89489893 [2224] at
> System.Data.SqlClient.SqlInternalConnection.OnError(SqlExcepti
> on exception,
> TdsParserState state)
> 00000205 89.89489893 [2224] at
> System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
> 00000206 89.89489893 [2224] at
> System.Data.SqlClient.TdsParser.FlushBuffer(Byte status)
> 00000207 89.89489893 [2224] at
> System.Data.SqlClient.TdsParser.TdsExecuteSQLBatch(String text, Int32
> timeout)
> 00000208 89.89489893 [2224] at
> System.Data.SqlClient.SqlInternalConnection.ExecuteTransaction(String
> sqlBatch, String method)
> 00000209 89.89489893 [2224] at
> System.Data.SqlClient.SqlConnection.BeginTransaction(Isolation
> Level iso)
>
> 00000210 89.89489893 [2224] at
> System.Data.SqlClient.SqlConnection.BeginTransaction()
> 00000211 89.89489893 [2224] at
> System.Data.SqlClient.SqlConnection.System.Data.IDbConnection.
> BeginTransacti
> on()
> 00000212 89.89489893 [2224] at
> log4net.Appender.ADONetAppender.SendBuffer(LoggingEvent[] events)
> 00000213 89.89489893 [2224] at
> log4net.Appender.BufferingAppenderSkeleton.Append(LoggingEvent
> loggingEvent)
>
> 00000214 89.89489893 [2224] at
> log4net.Appender.AppenderSkeleton.DoAppend(LoggingEvent
> loggingEvent)
>
> Vincent RAMONA
> UNILOG IT SERVICES - DIRECTION REGIONALE OUEST Espace
> Performance 1 - Bâtiment 1 Atlanpole - La Fleuriaye BP 727
> 44481 CARQUEFOU CEDEX
> Tél : 02.28.01.54.62
> Fax : 02.28.01.59.24
> Port. : 06.71.13.14.74
> E-mail : mailto:vincent.ramona@unilog.fr
>
>
>
>
>