मैं उन अपवादों को कैसे डीबग कर सकता हूं जो आसानी से प्रतिलिपि प्रस्तुत करने योग्य नहीं होते हैं और केवल उत्पादन वातावरण में होते हैं?


9

मैं एक ऐसे मुद्दे पर काम कर रहा हूं जहां अपवाद केवल हमारे उत्पादन वातावरण में होता है। मेरे पास इन वातावरणों तक पहुंच नहीं है, और न ही मुझे पता है कि इस अपवाद का क्या मतलब है। त्रुटि विवरण को देखते हुए, मैं इसका कारण समझने में असमर्थ हूं।

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

क्या कोई मुझे इस तरह की समस्या से निपटने के बारे में सलाह देगा?


4
यह StackOverflow पर ले जाया जाना चाहिए? मुझे लगता है कि आपको वहां अधिक प्रतिक्रिया मिलेगी।
डीएक्सएम

10
एक शब्द: लॉगिंग।
मात्रा_देव

1
@DXM - यह स्टैक ओवरफ्लो के लिए विषय होगा, क्योंकि यह बहुत सामान्य है। ओपी एक विशिष्ट समाधान के बजाय रणनीतियों और तकनीकों के बाद है। यदि वह कोड विफल हो रहा था, तो शायद वह स्टैक ओवरफ्लो पर काम कर सकता है।
ChrisF

मेरे अनुभव में, इस तरह की अधिकांश समस्याएं सुरक्षा कॉन्फ़िगरेशन समस्याओं से उत्पन्न होती हैं और यह पता लगाना मुश्किल हो सकता है। जैसा कि दूसरों ने उल्लेख किया है, अच्छी लॉगिंग इसे प्रकट करने में मदद करेगी।
jfrankcarr

जवाबों:


18

सामान्य तौर पर, बेहतर डिबग लॉगिंग। पता लगाएँ कि आप क्या जानना चाहते हैं, इसे कोड में जोड़ें, और लॉग में है ताकि आप इसे बाहर काम कर सकें। समय पर पर्यावरण के अधिक विवरणों को कैप्चर करना भी मदद करता है - क्या अनुरोध, कब, आदि।

विशिष्ट रूप से, मैं इसे हिट करने वाले ग्राहकों में एक सामान्य पैटर्न की तलाश करूंगा - और यदि आपको एक अनुकूलन मिला - लेकिन तब जाकर टीसीपी लेयर ट्रैफिक को कैप्चर करें।

एक्सचेंज किए गए एसएसएल संदेशों को देखकर आपको कुछ विचार देना चाहिए कि प्रोटोकॉल में क्या गलत हो रहा है, या कम से कम अनुरोध के सामान्य गुण क्या हैं। एक बार आपके पास यह होगा कि इसे डिबग होने के करीब होना चाहिए।

एक गाइड के रूप में, मुझे लगता है कि यह तीन चीजों में से एक से आता है:

  1. ऐसा कुछ जो SSL नहीं है, SSL पोर्ट से बात करता है। (पोर्ट स्कैन आम हैं, लेकिन HTTPS पोर्ट में HTTP भी होता है।)
  2. ग्राहक सर्वर के साथ सिफर का स्वीकार्य सेट साझा नहीं करता है।
  3. क्लाइंट एक प्रमाण पत्र प्रदान करता है, और सर्वर में एक हिस-फिट है। (असामान्य, लेकिन संभव है।)

1
शायद सर्वर एक स्व-हस्ताक्षरित प्रमाण पत्र प्रदान करता है या सीए द्वारा हस्ताक्षरित होता है जिसे ग्राहक नहीं जानता / भरोसा करता है
कार्लोस कैंपड्रेस

मुझे लगता है कि मैंने देखा है # 3 तब होता है जब पार्टियों में से एक ने प्रमाणपत्र समाप्त कर दिया है।
FrustratedWithFormsDesigner

मैंने प्रोडक्शन सिस्टम पर काफी डिबगिंग की है। कभी भी मैंने वास्तव में डिबगर का उपयोग नहीं किया है, यह हमेशा या तो स्क्रीन के किसी विशेष भाग में मुख्य मान लॉग या लिख ​​रहा है।
लोरेन Pechtel

आपकी सलाह के लिए धन्यवाद। मुझे यकीन है कि उत्पादन बग को हल करने के लिए व्यावहारिक तरीके हैं।
C4CodeE4Exe

4

मैं एक विन्यास अधिकतम लॉग स्तर के साथ एक लॉगिंग रणनीति का उपयोग करने की सिफारिश करूंगा। Log4j ( http://log.apache.org/log4j/ , http://en.wikipedia.org/wiki/Log4j ) जैसी उपयोगिता काम कर सकती है।

कॉन्फ़िगरेशन लॉग स्तर (या वर्बोसिटी) एक त्रुटि के कारण को खोजने में सक्षम होना महत्वपूर्ण है, संभवतः आपके सॉफ़्टवेयर को फिर से तैनात किए बिना।

यदि ऐसी रणनीति त्रुटि खोजने के लिए पर्याप्त नहीं है, तो यह पता लगाने की कोशिश करें कि उन अनुप्रयोगों द्वारा उत्पादित लॉग को कैसे उत्पादित / पढ़ना है जिनके साथ आपका संचार हो रहा है।

आप ई-मेल द्वारा त्रुटियों के बारे में अधिक जानकारी प्राप्त करने के लिए कुछ तंत्र को लागू कर सकते हैं।

अधिक सामान्यतः, आप इंस्ट्रूमेंटेशन के बारे में कुछ लेख पढ़ सकते हैं, जो एक बड़ा विषय है जिसमें लॉगिंग और ट्रेसिंग शामिल है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.