मैंने एक विंडोज सेवा विकसित की है जिसमें मैं कुछ निर्धारित कार्यों को करने के लिए टाइमर नियंत्रण का उपयोग कर रहा हूं। टाइमर एलिप्स इवेंट प्रत्येक 5 मिनट में होता है जिसमें लॉग 4net एपेंडर का उपयोग ओरेकल डेटाबेस में लॉग प्रविष्टि किया जाता है।log4net एडोनेट एपेंडर कनेक्शन समस्या
डीबी सर्वर रात के ठंडे बैकअप के लिए सभी कनेक्शन बंद होने तक सभी ठीक काम करता है। चूंकि उस समय डीबी में सभी लॉग चूक गए हैं और जब तक बैकअप प्रक्रिया 30 मिनट से कम नहीं होती है, तब भी सेवा को पुनरारंभ नहीं किया जाता है।
अन्य पोस्टों से मैंने पाया कि log4net केवल एक कनेक्शन का उपयोग करता है जो खो गया है तो सभी बाद के लॉग को त्याग दिया जाता है। इसका समाधान करने के लिए मैंने अपनी कॉन्फ़िगरेशन में रिकॉन्क्टऑनरर एट्रिब्यूट सेट को सही के रूप में सेट करना शुरू कर दिया। लेकिन दुर्भाग्यवश, मुद्दा अभी भी वहां है। बैकअप के बाद लॉग अभी भी गायब हैं। मैंने ट्रेसिंग सक्षम की और निम्नलिखित त्रुटियों को पाया लेकिन मुझे नहीं पता कि इस समस्या को कैसे हल किया जाए।
log4net: त्रुटि [CustomAdoNetAppender] अपवाद जबकि डेटाबेस के लिए Oracle.DataAccess.Client.OracleException ORA-03,113 लेखन: अंत फ़ाइल 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() log4net.Appender.AdoNetAppender.SendBuffer (IDbTransaction dbTran, LoggingEvent [] ईवेंट)log4net.Appender.AdoNetAppender.SendBuffer पर 210 (LoggingEvent [] घटनाओं)
और:
log4net: त्रुटि [CustomAdoNetAppender] अपवाद जबकि डेटाबेस के लिए लिख System.InvalidOperationException: कनेक्शन पहले से ही का हिस्सा है एक स्थानीय या System.Data.Common.DbConnection.System.Data पर एक वितरित लेनदेन Oracle.DataAccess.Client.OracleConnection.BeginTransaction (isolationLevel isolationLevel) पर Oracle.DataAccess.Client.OracleConnection.BeginDbTransaction (isolationLevel isolationLevel) पर। IDbConnection.BeginT ransaction() log4net.Appender.AdoNetAppender.SendBuffer पर (LoggingEvent [] घटनाओं)
इस अत्यधिक सराहना की पर कोई मदद !!
उत्तर के लिए धन्यवाद। क्या कहीं भी या कस्टम एपेंडर में लॉग 4नेट अपवादों को पकड़ना संभव है? – Lucky