2010-05-06 16 views
11

हम ओरेकल 11 जी रिलीज 2 में एक बुरा मुद्दा अनुभव कर रहे हैं जहां w3wp प्रक्रिया खत्म हो जाती है और पूरे प्रोसेसर कोर, और डिबगिंग से पता चलता है कि ओरेकल डेटा प्रदाता थ्रेडएबॉर्ट अपवादों को असीम रूप से फेंक रहा है । एक डेवलपर को निम्नलिखित करके यह समस्या मिली:वेब साइट बंद होने पर ओरेकल डेटा प्रदाता आईआईएस कार्यकर्ता प्रक्रिया को रोकता है

1) एक ऐसी वेबसाइट ब्राउज़ करें जो स्थानीय स्तर पर ओरेकल डेटा कनेक्शन का उपयोग करती है (http://localhost/OracleWebSite - हम आईआईएस का उपयोग करते हैं, न कि एएसपी.नेट देव सर्वर, हमारी सभी साइटों के लिए)। यह सुनिश्चित करता है कि w3wp प्रक्रिया चल रही है और ऐप पूल में कनेक्शन का एक सक्रिय ओरेकल पूल मौजूद है।

2) वेबसाइट को रोकें (या वेब साइट पर विजुअल स्टूडियो में सभी ऑपरेशन को पुनर्निर्माण करें)।

प्रभावित अनुप्रयोगों में हमारे ओरेकल कनेक्शन हैंडलिंग (सभी ओरेकल वेब ऐप्स) अच्छी तरह से स्थापित और मजबूत है। यदि हम कनेक्शन पूलिंग अक्षम करते हैं तो यह समस्या नहीं होती है। यह समस्या ओरेकल 11 जी रिलीज 1 में नहीं होती है।

उत्तर

8

यह हल किया गया है। फिक्स ओरेकल 11.2.0.1.2 में जारी किया गया है, जो oracle.com वेबसाइट के माध्यम से उपलब्ध है।

दुर्भाग्यवश फ़िक्स वर्तमान में केवल "माई ओरैकल सपोर्ट" खाते के माध्यम से उपलब्ध है।

यह 11.2.0.2 में और पैच 9,966,926 Oracle 11g 11.2.0.1 PATCH WINDOWS (64-बिट AMD64 और Intel EM64T) के लिए 5 बग में तय किया गया है।

या कामकाजी: कनेक्शन स्ट्रिंग में "स्वयं ट्यूनिंग = झूठी" जोड़कर स्वयं ट्यूनिंग को अक्षम करना है।

+0

मुझे नहीं लगता कि यह आपके द्वारा सूचीबद्ध संस्करण में तय किया गया था। मुझे विश्वास है कि यह संस्करण 11.2.0.1.2 में तय किया गया था। –

+0

धन्यवाद बिल, तय। –

14

कोई भी जो पुनर्मूल्यांकन (वेब.कॉन्फिग परिवर्तन, app_offline.htm, .aspx फ़ाइल परिवर्तन इत्यादि) को ट्रिगर करता है, कोर को अधिकतम पर CPU उपयोग का कारण बनता है। यदि आप प्रक्रिया को दोहराते हैं, तो यह अगले कोर पर CPU उपयोग को अधिकतम करता है, जब तक कि संपूर्ण CPU उपयोग 100% पर न हो।

मैंने एसओएस एक्सटेंशन के साथ विंडबग लगाया और ऐसा लगता है कि प्रत्येक अधिकतम आउट कोर के लिए सिस्टम में एक थ्रेड फंस गया है। AppDomain.Unload (System.AppDomain) और दूसरा Oracle.DataAccess.Client.OracleTuningAgent.DoScan पर फंस गया है ()।

पहले धागा

  • Oracle.DataAccess.Client.OracleTuningAgent.DoScan()
  • Oracle.DataAccess.Client.OracleTuningAgent.TuningFunction()
  • System.Threading.ExecutionContext.Run (सिस्टम। Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
  • System.Threading.ThreadHelper.ThreadStart()

दूसरा धागा

  • System.AppDomain.Unload (System.AppDomain)
  • System.Web.HttpRuntime.ReleaseResourcesAndUnloadAppDomain (System.Object)
  • System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext , System.Threading.ContextCallback, System.Object)
  • सिस्टम। थ्रेडिंग ._ThreadPoolWaitCallback.PerformWaitCallbackInternal (System.Threading। _ThreadPoolWaitCallback)
  • System.Threading._ThreadPoolWaitCallback.PerformWaitCallback (System.Object)

ऐसा लगता है कि AppDomain.Unload खत्म करने के लिए OracleTuningAgent.DoScan पर इंतज़ार कर रहा है, लेकिन वह धागा अवरुद्ध या सो रही है।

ओरेकल ने इस मुद्दे की पुष्टि की है (बग # 9648040) और यह एक सर्वोच्च प्राथमिकता है। इस बीच में, संभावित समाधानों हैं:

  1. रोल वापस 11gR1 के लिए/पहले ग्राहक
  2. जोड़े 'स्व ट्यूनिंग = false' कनेक्शन स्ट्रिंग के लिए।आप निश्चित रूप से स्वचालित ट्यूनिंग के लाभ खो देंगे।

स्कॉट

+0

चीयर्स स्कॉट, इसने मेरी समस्या हल की, हालांकि थोड़ा अलग है। असल में मेरे यूनिट टेस्ट धावक अन्यथा अच्छे परीक्षणों में विफल रहे थे क्योंकि वे अपने एपडोमेन को उतार नहीं सकते थे। आशा है कि ओरेकल जल्द ही एक फिक्स जारी करेगा। – stephenl

संबंधित मुद्दे

 संबंधित मुद्दे