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
>  
> 
> 
> 
>