我開發了一個Windows服務,其中我使用計時器控件執行一些計劃任務。定時器過期事件每5分鐘發生一次,其中使用log4net appender向Oracle數據庫創建日誌條目。log4net Adonet Appender連接問題
所有工作正常,直到數據庫服務器關閉夜間冷備份的所有連接。從那時起,所有DB中的日誌都會丟失,並且不記錄任何內容,除非服務重新啓動,即使備份過程少於30分鐘。
從其他帖子我發現,log4net只使用一個連接,如果丟失,則所有後續日誌都將被丟棄。爲了彌補這一點,我開始在其配置中使用ReconnectOnError屬性集作爲true。但不幸的是,這個問題仍然存在。備份後日志仍然丟失。我啓用了跟蹤並發現了以下錯誤,但我不知道如何解決此問題。
log4net的:ERROR [CustomAdoNetAppender]異常當寫入到數據庫 Oracle.DataAccess.Client.OracleException ORA-03113:在Oracle.DataAccess.Client.OracleException.HandleErrorHelper上通信信道文件結束-(的Int32 ERRCODE ,康涅狄格州的OracleConnection,IntPtr的opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,對象的src,字符串過程) 在Oracle.DataAccess.Client.OracleException.HandleError(的Int32 ERRCODE,康涅狄格州的OracleConnection,字符串過程,IntPtr的opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,對象SRC) 在Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery() at log4net.Appender.AdoNetAppender.SendBuffer(IDbTransaction dbTran,LoggingEvent [] events) log4net.Appender.AdoNetAppender.SendBuffer(LoggingEvent所[]事件)
和:
log4net的:ERROR [CustomAdoNetAppender]異常當寫入到數據庫 System.InvalidOperationException:連接已經是部分本地或分佈式事務 at Oracle.DataAccess.Client.OracleConnection.BeginTransaction(IsolationLevel isolationLevel) at Oracle.DataAccess.Client.OracleConnection.BeginDbTransaction(IsolationLevel isolationLevel) at System.Data.Common.DbConnection.System.Data。 IDbConnection.BeginT ransaction() 在log4net.Appender.AdoNetAppender.SendBuffer(LoggingEvent所[]事件)
任何幫助在此高度讚賞!!
感謝您的回覆。是否有可能在某處或在自定義Appender中捕獲log4net異常? – Lucky