आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
समस्या का ब्यौरा
क्लाइंट ऐप्लिकेशन को एपीआई कॉल के जवाब में, 500 Internal Server Error एचटीटीपी स्टेटस कोड और गड़बड़ी का कोड protocol.http.BadFormData मिलता है.
गड़बड़ी का मैसेज
क्लाइंट ऐप्लिकेशन को यह रिस्पॉन्स कोड मिलता है:
HTTP/1.1 500 Internal Server Error
इसके अलावा, आपको गड़बड़ी का यह मैसेज भी दिख सकता है:
{
"fault":{
"faultstring":"Bad Form Data",
"detail":{
"errorcode":"protocol.http.BadFormData"
}
}
}फ़ॉर्म डेटा
इस समस्या को हल करने के बारे में विस्तार से जानने से पहले, आइए समझते हैं कि फ़ॉर्म डेटा क्या होता है.
फ़ॉर्म डेटा, उपयोगकर्ता की ओर से दी गई जानकारी होती है. आम तौर पर, यह जानकारी एचटीएमएल फ़ॉर्म के ज़रिए दी जाती है. इसमें टेक्स्ट इनपुट बॉक्स, बटन या चेक बॉक्स जैसे एलिमेंट होते हैं. फ़ॉर्म का डेटा आम तौर पर, एचटीटीपी अनुरोधों या जवाबों के हिस्से के तौर पर, की-वैल्यू पेयर की सीरीज़ के तौर पर भेजा जाता है.
फ़ॉर्म डेटा ट्रांसमिशन
- Content-Type: application/x-www-form-urlencoded
- अगर फ़ॉर्म डेटा का साइज़ छोटा है, तो डेटा को की-वैल्यू पेयर के तौर पर भेजा जाता है. इसमें:
- दोनों कुंजियों में मौजूद वर्णों को, फ़ॉर्म - सेक्शन 17.13.4.1 में बताए गए नियमों के मुताबिक कोड में बदला गया है
- हेडर
Content-Type: application/x-www-form-urlencoded
फ़ॉर्म डेटा के साथ अनुरोध का उदाहरण:
curl https://HOSTALIAS/somepath -H "Content-Type: application/x-www-form-urlencoded" -d "username=abc@google.com&pasword=secret123"
- कुंजी और वैल्यू, दोनों में मौजूद किसी भी अक्षर और अंक के अलावा अन्य वर्णों को
पर्सेंट कोड में बदला जाता है. इसका मतलब है कि उन्हें वर्णों के ट्रिपलेट
%HHके तौर पर दिखाया जाता है. इसमें पर्सेंट का निशान और उसके बाद दो हेक्ज़ाडेसिमल अंक होते हैं. ये अंक, उस वर्ण के ASCII कोड को दिखाते हैं. - इसलिए, फ़ॉर्म डेटा में प्रतिशत का निशान (
%) इस्तेमाल करने की अनुमति है. हालांकि, इसे खास एस्केप सीक्वेंस की शुरुआत के तौर पर माना जाता है. इसलिए, अगर फ़ॉर्म के डेटा में कुंजी या वैल्यू में पर्सेंट का निशान (%) शामिल करना है, तो इसे%25,के तौर पर ट्रांसमिट किया जाना चाहिए. यह पर्सेंट के निशान (%) वर्ण के लिए ASCII कोड को दिखाता है.
- अगर फ़ॉर्म डेटा का साइज़ छोटा है, तो डेटा को की-वैल्यू पेयर के तौर पर भेजा जाता है. इसमें:
- Content-Type: multipart/form-data
अगर आपको बड़ी मात्रा में बाइनरी डेटा या गैर-ASCII वर्णों वाला टेक्स्ट भेजना है, तो
Content-Type:multipart/form-data का इस्तेमाल करके डेटा भेजा जा सकता है. इसके बारे में फ़ॉर्म - सेक्शन 17.13.4.2 में बताया गया है
संभावित कारण
यह गड़बड़ी तब होती है, जब ये सभी शर्तें पूरी होती हैं:
- क्लाइंट से Apigee Edge को भेजे गए एचटीटीपी अनुरोध में यह जानकारी शामिल होती है:
Content-Type: application/x-www-form-urlencoded, और- फ़ॉर्म डेटा में प्रतिशत का निशान (
%) या प्रतिशत के निशान (%) के बाद अमान्य हेक्साडेसिमल वर्ण मौजूद हैं. ये वर्ण, फ़ॉर्म - सेक्शन 17.13.4.1 के मुताबिक इस्तेमाल नहीं किए जा सकते.
Apigee Edge में मौजूद एपीआई प्रॉक्सी, फ़ॉर्म के उन पैरामीटर को पढ़ती है जिनमें ऐसे वर्ण शामिल होते हैं जिन्हें ExtractVariables या AssignMessage नीति का इस्तेमाल करके, अनुरोध फ़्लो में इस्तेमाल करने की अनुमति नहीं है.
उदाहरण के लिए, अगर फ़ॉर्म के डेटा में प्रतिशत का निशान (
%) बिना किसी बदलाव के (बिना एन्कोडिंग के) या प्रतिशत का निशान (%) के बाद, कुंजी और/या वैल्यू में कोई अमान्य हेक्साडेसिमल वर्ण शामिल है, तो आपको यह गड़बड़ी दिखेगी.इस गड़बड़ी की ये वजहें हो सकती हैं:
वजह ब्यौरा इनके लिए समस्या हल करने के निर्देश अनुरोध में मौजूद फ़ॉर्म पैरामीटर में ऐसे वर्ण हैं जिनका इस्तेमाल करने की अनुमति नहीं है क्लाइंट ने एचटीटीपी अनुरोध के हिस्से के तौर पर जो फ़ॉर्म पैरामीटर पास किए हैं उनमें ऐसे वर्ण शामिल हैं जिनका इस्तेमाल करने की अनुमति नहीं है. Edge Public और Private Cloud के उपयोगकर्ताओं के लिए
गड़बड़ी का पता लगाने के सामान्य चरण
इस गड़बड़ी का पता लगाने के लिए, इनमें से किसी टूल/तकनीक का इस्तेमाल करें:
एपीआई मॉनिटरिंग
एपीआई मॉनिटरिंग का इस्तेमाल करके गड़बड़ी का पता लगाने के लिए:
- Apigee Edge के यूज़र इंटरफ़ेस (यूआई) में साइन इन करें. इसके लिए, आपके पास सही भूमिका होनी चाहिए.
उस संगठन पर स्विच करें जिसमें आपको समस्या की जांच करनी है.
- विश्लेषण करें > एपीआई मॉनिटरिंग > जांच करें पेज पर जाएं.
- वह समयावधि चुनें जिसमें आपको गड़बड़ियां दिखीं.
समय के हिसाब से गड़बड़ी का कोड प्लॉट करें.
वह सेल चुनें जिसमें गड़बड़ी का कोड
protocol.http.BadFormDataमौजूद है. यह कोड नीचे दिखाया गया है:
गड़बड़ी कोड
protocol.http.BadFormDataके बारे में जानकारी, यहां दिखाई गई है:
लॉग देखें पर क्लिक करें और पूरे न हो पाने वाले अनुरोध की लाइन को बड़ा करें.
- लॉग विंडो में, यह जानकारी नोट करें:
- स्टेटस कोड:
500 - गड़बड़ी का सोर्स:
proxy - गड़बड़ी का कोड:
protocol.http.BadFormData - गड़बड़ी से जुड़ी नीति:
extractvariables/EV-ExtractFormParams
- स्टेटस कोड:
- अगर गड़बड़ी का सोर्स
proxyहै, गड़बड़ी का कोडprotocol.http.BadFormDataहै, और गड़बड़ी की नीति खाली नहीं है, तो इसका मतलब है कि गड़बड़ी की नीति में बताई गई नीति, फ़ॉर्म डेटा (फ़ॉर्म पैरामीटर) को पढ़ते या निकालते समय गड़बड़ी हुई है. इस डेटा में ऐसे वर्ण हैं जिनका इस्तेमाल करने की अनुमति नहीं है. - इस उदाहरण में, X-Apigee-fault-policy
extractvariables/EV- ExtractFormParams,है. इसका मतलब है कि फ़ॉर्म पैरामीटर को पढ़ते या निकालते समय, EV-ExtractFormParams नाम वाली ExtractVariables नीति लागू नहीं हुई.
ट्रेस टूल
ट्रेस टूल का इस्तेमाल करके गड़बड़ी का पता लगाने के लिए:
- ट्रेस सेशन चालू करें
और इनमें से कोई एक विकल्प चुनें:
500 Internal Server Errorगड़बड़ी होने का इंतज़ार करें या- अगर आपको समस्या का पता चल गया है, तो समस्या को फिर से ठीक करने के लिए एपीआई कॉल करें
500 Internal Server Error
पक्का करें कि Show all FlowInfos चालू हो:
- पूरे न हो पाने वाले किसी अनुरोध को चुनें और उसके ट्रेस की जांच करें.
- ट्रेस के अलग-अलग फ़ेज़ पर जाएं और पता लगाएं कि गड़बड़ी कहां हुई.
आपको गड़बड़ी आम तौर पर किसी एक नीति में दिखेगी. जैसे, यहां दिखाया गया है:
ऊपर दिए गए सैंपल ट्रेस में, ध्यान दें कि
EV-ExtractFormParamsनाम वाली ExtractVariables नीति में गड़बड़ी हुई है.नीति के उल्लंघन के बाद, Error नाम के फ़्लो पर जाएं:
- ट्रेस से, यहां दी गई वैल्यू नोट करें:
गड़बड़ी:
Bad Form Datastate:
PROXY_REQ_FLOWerror.class:
com.apigee.rest.framework.BadRequestException- गड़बड़ी
Bad Form Dataकी वैल्यू से पता चलता है कि फ़ॉर्म पैरामीटर में कुछ ऐसे वर्ण मौजूद थे जिनका इस्तेमाल करने की अनुमति नहीं है. - स्टेट
PROXY_REQ_FLOW,की वैल्यू से पता चलता है कि गड़बड़ी, एपीआई प्रॉक्सी के अनुरोध फ़्लो में हुई है.
- गड़बड़ी
- ट्रेस में, AX (Analytics Data Recorded) फ़ेज़ पर जाएं और उस पर क्लिक करें.
नीचे की ओर स्क्रोल करके, फ़ेज़ की जानकारी - गड़बड़ी वाले हेडर सेक्शन पर जाएं. इसके बाद, यहां दी गई इमेज में दिखाए गए तरीके से X-Apigee-fault-code, X-Apigee-fault-source, और X-Apigee-fault-policy की वैल्यू तय करें:
ध्यान दें कि X-Apigee-fault-code और X-Apigee-fault-source की वैल्यू क्रमशः
protocol.http.BadFormDataऔरpolicyहैं और X-Apigee-fault-policy की वैल्यू खाली नहीं है. इससे पता चलता है कि X-Apigee-fault-policy में बताई गई नीति के तहत, फ़ॉर्म डेटा (फ़ॉर्म पैरामीटर) को पढ़ते या निकालते समय गड़बड़ी हुई है. इस डेटा में ऐसे वर्ण मौजूद थे जिनका इस्तेमाल करने की अनुमति नहीं है.रिस्पॉन्स हेडर वैल्यू X-Apigee-fault-code protocol.http.BadFormDataX-Apigee-fault-source policyX-Apigee-fault-policy extractvariables/EV-ExtractFormParams- इस उदाहरण में, X-Apigee-fault-policy
extractvariables/EV- ExtractFormParams,है. इसका मतलब है कि फ़ॉर्म पैरामीटर को पढ़ते या निकालते समय,EV-ExtractFormParamsनाम वाली ExtractVariables नीति काम नहीं कर पाई.
NGINX
NGINX ऐक्सेस लॉग का इस्तेमाल करके गड़बड़ी का पता लगाने के लिए:
- अगर आप Private Cloud के उपयोगकर्ता हैं, तो NGINX के ऐक्सेस लॉग का इस्तेमाल करके, एचटीटीपी
500 Internal Server Errorके बारे में अहम जानकारी पाई जा सकती है. NGINX के ऐक्सेस लॉग देखें:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log- खोजें कि क्या
protocol.http.BadFormDataकिसी खास अवधि के दौरान, गड़बड़ी कोड500वाली कोई गड़बड़ी हुई है (अगर समस्या पहले हुई थी) या क्या अब भी500वाले अनुरोध पूरे नहीं हो रहे हैं. अगर आपको
protocol.http.BadFormDataकी वैल्यू से मेल खाने वाली X-Apigee-fault-code के साथ कोई500गड़बड़ी मिलती है, तो X-Apigee-fault-source और X-Apigee-fault-policy की वैल्यू का पता लगाएं.NGINX के ऐक्सेस लॉग में मौजूद 500 गड़बड़ी का उदाहरण:
NGINX ऐक्सेस लॉग की ऊपर दी गई सैंपल एंट्री में, X-Apigee-fault-code और X-Apigee-fault-source के लिए ये वैल्यू दी गई हैं:
हेडर वैल्यू X-Apigee-fault-code protocol.http.BadFormDataX-Apigee-fault-source policyX-Apigee-fault-policy extractvariables/EV-ExtractFormParams- ध्यान दें कि X-Apigee-fault-code और X-Apigee-fault-source की वैल्यू,
protocol.http.BadFormDataऔरpolicyहैं. साथ ही, X-Apigee-fault-policy की वैल्यू खाली नहीं है. इससे पता चलता है कि X-Apigee-fault-policy में बताई गई नीति के तहत, फ़ॉर्म डेटा (फ़ॉर्म पैरामीटर) को पढ़ते या निकालते समय गड़बड़ी हुई है. इस डेटा में ऐसे वर्ण मौजूद हैं जिनका इस्तेमाल करने की अनुमति नहीं है. - इस उदाहरण में, X-Apigee-fault-policy
extractvariables/EV- ExtractFormParams,है. इसका मतलब है कि फ़ॉर्म पैरामीटर पढ़ते समय, ExtractVariables नीतिEV-ExtractFormParamsकाम नहीं कर पाई.
वजह: अनुरोध में मौजूद फ़ॉर्म पैरामीटर में ऐसे वर्ण हैं जिनका इस्तेमाल करने की अनुमति नहीं है
संक्रमण की जांच
- एपीआई मॉनिटरिंग, Trace टूल या NGINX ऐक्सेस लॉग का इस्तेमाल करके,
500 Internal Server Errorके लिए गड़बड़ी का कोड, गड़बड़ी का सोर्स, और गड़बड़ी की नीति का पता लगाएं. इसके बारे में गड़बड़ी का पता लगाने के सामान्य तरीके में बताया गया है. - अगर गड़बड़ी का कोड
protocol.http.BadFormDataहै, गड़बड़ी का सोर्स की वैल्यूproxyयाpolicyहै, और गड़बड़ी की नीति खाली नहीं है, तो इसका मतलब है कि फ़ॉर्म का डेटा (फ़ॉर्म पैरामीटर) पढ़ते या निकालते समय, गड़बड़ी की नीति में बताई गई नीति लागू नहीं हुई. - उल्लंघन से जुड़ी नीति में बताई गई नीति की जांच करें और यहां दी गई जानकारी का पता लगाएं:
- सोर्स: यह तय करें कि नीति, अनुरोध या जवाब से डेटा पढ़ रही है या निकाल रही है.
- फ़ॉर्म पैरामीटर: यह तय करें कि नीति में कौनसे फ़ॉर्म पैरामीटर पढ़े जा रहे हैं.
पहला सैंपल
सैंपल #1: ExtractVariables नीति, फ़ॉर्म पैरामीटर को एक्सट्रैक्ट कर रही है:
<ExtractVariables name="EV-ExtractFormParms"> <DisplayName>EV-ExtractFormParams</DisplayName> <Source>request</Source> <FormParam name="username"> <Pattern ignoreCase="false">{username}</Pattern> </FormParam> <FormParam name="password"> <Pattern ignoreCase="false">{password}</Pattern> </FormParam> <VariablePrefix>forminfo</VariablePrefix> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </ExtractVariables>ऊपर दी गई ExtractVariables नीति में:
सोर्स:
requestइसे
<Source>एलिमेंट से दिखाया जाता हैफ़ॉर्म पैरामीटर:
usernameऔरpasswordइसे
<FormParam>एलिमेंट में मौजूद<Pattern>एलिमेंट से दिखाया जाता है
इससे पता चलता है कि क्लाइंट ने Apigee Edge को एचटीटीपी अनुरोध के हिस्से के तौर पर जो फ़ॉर्म पैरामीटर
usernameऔर/याpasswordपास किए हैं उनमें ऐसे वर्ण शामिल हैं जिनका इस्तेमाल करने की अनुमति नहीं है.सैंपल #2
दूसरा सैंपल: AssignMessage नीति, फ़ॉर्म पैरामीटर कॉपी कर रही है:
<AssignMessage continueOnError="false" enabled="true" name="AM-CopyFormParams"> <Copy source="request"> <FormParams> <FormParam name="username"/> <FormParam name="password"/> </FormParams> </Copy> <AssignTo createNew="true" transport="http" type="request"/> </AssignMessage>
ऊपर दी गई ExtractVariables नीति में:
सोर्स:
requestइसकी जानकारी
<Copy>एलिमेंट में मौजूदsourceएट्रिब्यूट से मिलती हैफ़ॉर्म पैरामीटर:
usernameऔरpasswordइसकी जानकारी
<FormParam>एलिमेंट में मौजूदnameएट्रिब्यूट से मिलती है
इससे पता चलता है कि क्लाइंट ने Apigee Edge को एचटीटीपी अनुरोध के हिस्से के तौर पर जो फ़ॉर्म पैरामीटर
usernameयाpasswordया दोनों पास किए हैं उनमें ऐसे वर्ण शामिल हैं जिनका इस्तेमाल करने की अनुमति नहीं है.
देखें कि क्या ऐसे कोई वर्ण हैं जिन्हें इस्तेमाल करने की अनुमति नहीं है. इसके लिए, यहां दिए गए तरीकों में से किसी एक का इस्तेमाल करके, तीसरे चरण में पहचाने गए फ़ॉर्म पैरामीटर में वर्णों का इस्तेमाल करें:
ट्रेस टूल
ट्रेस टूल का इस्तेमाल करके पुष्टि करने के लिए:
- अगर आपने अनुरोध पूरा न होने की वजह से मिले ट्रेस को कैप्चर कर लिया है, जैसा कि समस्या का पता लगाने के लिए सामान्य तरीके में बताया गया है, तो अनुरोध पूरा न होने की वजह से मिले ट्रेस में से किसी एक को चुनें.
- अगर आपको लगता है कि फ़ॉर्म पैरामीटर में ऐसे वर्ण शामिल हैं जिनका इस्तेमाल करने की अनुमति नहीं है और वे ऊपर दिए गए तीसरे चरण में एचटीटीपी अनुरोध का हिस्सा हैं, तो
- क्लाइंट से मिला अनुरोध फ़ेज़ पर जाएं.
नीचे की ओर स्क्रोल करके, फ़ेज़ की जानकारी सेक्शन पर जाएं और कॉन्टेंट का अनुरोध करें की समीक्षा करें.
- ऊपर दिए गए उदाहरण में ध्यान दें कि फ़ॉर्म पैरामीटर
passwordमें प्रतिशत का निशान (%) शामिल है. - प्रतिशत के निशान (
%) का इस्तेमाल, खास वर्णों के लिए परसेंट एन्कोडिंग के लिए भी किया जाता है. इसलिए, इसका इस्तेमाल फ़ॉर्म डेटा में नहीं किया जा सकता. - इसलिए, Apigee Edge, गड़बड़ी कोड
protocol.http.BadFormDataके साथ500 Internal Server Errorदिखाता है.
असल अनुरोध
असली अनुरोध का इस्तेमाल करके पुष्टि करने के लिए:
- अगर आपके पास टारगेट सर्वर को भेजे गए अनुरोध का ऐक्सेस नहीं है, तो समस्या हल करना पर जाएं.
- अगर आपके पास Apigee Edge को किए गए असली अनुरोध का ऐक्सेस है, तो यह तरीका अपनाएं:
- फ़ॉर्म के डेटा के कॉन्टेंट की समीक्षा करें और देखें कि क्या इसमें ऐसे वर्ण शामिल हैं जिनका इस्तेमाल करने की अनुमति नहीं है. जैसे, प्रतिशत का निशान (
%) या प्रतिशत का निशान (%) के बाद अमान्य हेक्साडेसिमल वर्ण.पहला सैंपल
अनुरोध का पहला सैंपल: अनुरोध के हिस्से के तौर पर फ़ॉर्म का डेटा
curl -X GET "https://HOSTALIAS/myproxy -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=123456abc123&client_secret=c23578%ZY"
इस उदाहरण में ध्यान दें कि एलिमेंट
client_secretमें प्रतिशत का निशान (%) शामिल है. इसके बाद, अमान्य हेक्साडेसिमल वर्णZYशामिल हैं.सैंपल #2
अनुरोध का दूसरा उदाहरण: फ़ाइल में पास किया गया फ़ॉर्म डेटा:
curl -X GET "https://HOSTALIAS/myproxy -H "Content-Type: application/x-www-form-urlencoded" -d @form_data.xml
form_data.xml का कॉन्टेंट:
xml=<user><username>abc1234@google.com</username><password>qwerty12345!@#$%</password></user>
इस उदाहरण में ध्यान दें कि
passwordएलिमेंट में प्रतिशत का निशान (%) शामिल है. इसे फ़ॉर्म डेटा में उसी तरह पास नहीं किया जाना चाहिए.
- फ़ॉर्म के डेटा के कॉन्टेंट की समीक्षा करें और देखें कि क्या इसमें ऐसे वर्ण शामिल हैं जिनका इस्तेमाल करने की अनुमति नहीं है. जैसे, प्रतिशत का निशान (
- ऊपर दिए गए दोनों उदाहरणों में, Apigee Edge को एचटीटीपी अनुरोध के तौर पर भेजे गए फ़ॉर्म डेटा में ऐसे वर्ण शामिल हैं जिनका इस्तेमाल अनुमति नहीं है.
- इसलिए, Apigee Edge, गड़बड़ी कोड
protocol.http.BadFormDataके साथ500 Internal Server Errorका जवाब देता है.
रिज़ॉल्यूशन
- पक्का करें कि क्लाइंट की ओर से एचटीटीपी अनुरोध के तौर पर भेजे गए फ़ॉर्म डेटा या पैरामीटर की कुंजियों और वैल्यू में मौजूद सभी खास वर्णों को हमेशा कोड में बदला गया हो. इसके बारे में फ़ॉर्म डेटा - application/x-www-form-urlencoded में बताया गया है.
- ऊपर दिए गए उदाहरणों में, इन समस्याओं को इस तरह ठीक किया जा सकता है:
पहला सैंपल
पहला सैंपल: अनुरोध के हिस्से के तौर पर फ़ॉर्म का डेटा पास किया गया:
ऐसे मान्य हेक्साडेसिमल वर्ण इस्तेमाल करें जो किसी वर्ण के ASCII कोड से मेल खाते हों. उदाहरण के लिए, अगर आपको डॉलर का निशान (
$) भेजना है, तो नीचे दिए गए तरीके से%24का इस्तेमाल करें:curl -X GET "https://HOSTALIAS/myproxy -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=123456abc123&client_secret=c23578%24"
सैंपल #2
अनुरोध का दूसरा उदाहरण: फ़ाइल में पास किया गया फ़ॉर्म डेटा:
curl -X GET "https://HOSTALIAS/myproxy -H "Content-Type: application/x-www-form-urlencoded" -d @form_data.xml
form_data.xml का कॉन्टेंट:
प्रतिशत (
%) के लिए, प्रतिशत-एन्कोडिंग का इस्तेमाल करें. इसका मतलब है कि फ़ाइल में बदलाव करके, उसे नीचे दिखाए गए तरीके से%25में बदलें:xml=<user><username>abc1234@google.com</username><password>qwerty12345!!@#$%25</password></user>
खास जानकारी
Apigee Edge को फ़ॉर्म डेटा, इन स्पेसिफ़िकेशन के हिसाब से भेजा जाना चाहिए:
| खास जानकारी |
|---|
| फ़ॉर्म का डेटा - application/x-www-form-urlencoded |
अगर आपको अब भी Apigee की सहायता टीम से मदद चाहिए, तो गड़बड़ी की जानकारी इकट्ठा करना ज़रूरी है पर जाएं.
डाइग्नोस्टिक जानकारी इकट्ठा करना ज़रूरी है
अगर ऊपर दिए गए निर्देशों का पालन करने के बाद भी समस्या बनी रहती है, तो डाइग्नोस्टिक की यह जानकारी इकट्ठा करें. इसके बाद, Apigee Edge की सहायता टीम से संपर्क करें:
अगर आप पब्लिक क्लाउड के उपयोगकर्ता हैं, तो यह जानकारी दें:
- संगठन का नाम
- परिवेश का नाम
- एपीआई प्रॉक्सी का नाम
curlकमांड का इस्तेमाल करके, गड़बड़ी के कोडprotocol.http.BadFormDataके साथ500 Internal Server Errorको फिर से बनाया गया- एपीआई अनुरोधों के लिए ट्रेस फ़ाइल
अगर आप Private Cloud के उपयोगकर्ता हैं, तो यह जानकारी दें:
- अनुरोध पूरे न होने पर, गड़बड़ी का पूरा मैसेज दिखता है
- परिवेश का नाम
- एपीआई प्रॉक्सी बंडल
- एपीआई अनुरोधों के लिए ट्रेस फ़ाइल
NGINX ऐक्सेस लॉग
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_logयहां: ORG, ENV, और PORT# को असल वैल्यू से बदल दिया जाता है.
मैसेज प्रोसेसर के सिस्टम लॉग
/opt/apigee/var/log/edge-message-processor/logs/system.log