यह Apigee Edge के दस्तावेज़ हैं.
पर जाएं
Apigee X दस्तावेज़. info
समस्या का ब्यौरा
Edge के यूज़र इंटरफ़ेस (यूआई) या मैनेजमेंट एपीआई के ज़रिए, एपीआई प्रॉक्सी के बदलावों को डिप्लॉय करने पर, टाइम आउट की गड़बड़ी आती है.
गड़बड़ी के मैसेज
Click to change deployment status. The revision is deployed and traffic can flow, but flow may be impaired. Error: Call timed out; either server is down or server is not reachable
ये वजहें हो सकती हैं
इस समस्या की सामान्य वजहें ये हैं:
| वजह | जानकारी | के लिए |
| नेटवर्क कनेक्टिविटी से जुड़ी समस्या | नेटवर्क कनेक्टिविटी से जुड़ी समस्याओं या फ़ायरवॉल के नियमों की वजह से, मैनेजमेंट सर्वर और मैसेज प्रोसेसर के बीच कम्यूनिकेशन नहीं हो पाता. | सिर्फ़ Private Cloud के उपयोगकर्ताओं के लिए |
| एपीआई प्रॉक्सी का बड़ा बंडल | अगर एपीआई प्रॉक्सी बंडल का साइज़ बड़ा है, तो मैसेज प्रोसेसर को चालू होने में ज़्यादा समय लग सकता है. इससे आरपीसी टाइम आउट हो सकता है. | Private और Public Cloud के उपयोगकर्ताओं के लिए |
नेटवर्क कनेक्टिविटी से जुड़ी समस्या
ध्यान दें: सिर्फ़ Edge Private Cloud के उपयोगकर्ता, यहां दिया गया तरीका अपना सकते हैं. अगर आपके पास Edge Public Cloud है, तो Apigee Edge की सहायता टीम से संपर्क करें.
संक्रमण की जांच
- उस एपीआई के डिप्लॉयमेंट की स्थिति पाएं जिसमें गड़बड़ी दिख रही है. इसके लिए, मैनेजमेंट एपीआई का यह
कॉल इस्तेमाल करें:
curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
गड़बड़ी दिखाने वाले आउटपुट का सैंपल:
{ "error": "Call timed out; either server is down or server is not reachable", "status": "error", "type": [ "message-processor" ], "uUID": "ebbc1078-cbde-4a00-a7db-66a3c1b2b748" }, { "status": "deployed", "type": [ "message-processor" ], "uUID": "204e2b7e-52f7-46d9-b458-20f9bfb51e6d" }, { "status": "deployed", "type": [ "router" ], "uUID": "967e63c6-ee95-47c0-9608-f4a32638fb1e" }, { "status": "deployed", "type": [ "router" ], "state" : "error" }
ऊपर दिए गए आउटपुट के सैंपल से पता चलता है कि गड़बड़ी, मैसेज प्रोसेसर में से किसी एक में हुई है इसका यूयूआईडी "
ebbc1078-cbde-4a00-a7db-66a3c1b2b748" है. - अपने एपीआई प्रॉक्सी के डिप्लॉयमेंट की स्थिति के आउटपुट के आधार पर, गड़बड़ी दिखाने वाले हर मैसेज
प्रोसेसर में, उससे जुड़े यूयूआईडी से लॉग इन करें और यह तरीका अपनाएं:
- देखें कि मैसेज प्रोसेसर, पोर्ट 4528 पर सुन रहा है या नहीं:
netstat -an | grep LISTEN | grep 4528
अगर मैसेज प्रोसेसर, पोर्ट 4528 पर नहीं सुन रहा है, तो उसे रीस्टार्ट करें:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- ऊपर दिए गए पहले चरण में दिखाए गए मैनेजमेंट एपीआई कॉल का इस्तेमाल करके, एपीआई प्रॉक्सी के डिप्लॉयमेंट की स्थिति की फिर से जांच करें. अगर कोई गड़बड़ी नहीं है, तो इसका मतलब है कि समस्या हल हो गई है.
- देखें कि मैसेज प्रोसेसर, पोर्ट 4528 पर सुन रहा है या नहीं:
- अगर समस्या बनी रहती है, तो मैनेजमेंट सर्वर से पोर्ट 4528 पर मैसेज
प्रोसेसर की कनेक्टिविटी की जांच करने के लिए, यह तरीका अपनाएं:
- अगर टेलनेट उपलब्ध है, तो इसका इस्तेमाल करें:
telnet <MessageProcessor_IP> 4528
- अगर टेलनेट उपलब्ध नहीं है, तो कनेक्टिविटी की जांच करने के लिए, नेटकेट का इस्तेमाल करें:
nc -vz <MessageProcessor_IP> 4528
- अगर आपको "कनेक्शन अस्वीकार किया गया" या "कनेक्शन का समय खत्म हो गया" जवाब मिलता है, तो अपनी नेटवर्क ऑपरेशंस टीम से संपर्क करें.
- अगर टेलनेट उपलब्ध है, तो इसका इस्तेमाल करें:
- मैसेज प्रोसेसर से पोर्ट 4526
पर मैनेजमेंट सर्वर की कनेक्टिविटी की जांच करने के लिए, यह तरीका अपनाएं:
- अगर टेलनेट उपलब्ध है, तो इसका इस्तेमाल करें:
telnet <management-server-IP> 4526
- अगर टेलनेट उपलब्ध नहीं है, तो कनेक्टिविटी की जांच करने के लिए, नेटकेट का इस्तेमाल करें:
nc -vz <management-server-IP> 4526
- अगर आपको "कनेक्शन अस्वीकार किया गया" या "कनेक्शन का समय खत्म हो गया" जवाब मिलता है, तो अपनी नेटवर्क ऑपरेशंस टीम से संपर्क करें.
- अगर टेलनेट उपलब्ध है, तो इसका इस्तेमाल करें:
- अपनी नेटवर्क ऑपरेशंस टीम के साथ मिलकर, यह काम करें:
- पक्का करें कि आरपीसी प्रोटोकॉल, मैनेजमेंट सर्वर और मैसेज प्रोसेसर, दोनों पर काम कर रहा हो.
- मैनेजमेंट सर्वर और मैसेज प्रोसेसर के बीच सेट अप की गई, फ़ायरवॉल से जुड़ी पाबंदियां या सुरक्षा के नियम हटाएं, ताकि मैनेजमेंट सर्वर पर पोर्ट 4526 से कनेक्ट किया जा सके. साथ ही, मैनेजमेंट सर्वर से पोर्ट 4528 पर मैसेज प्रोसेसर से कनेक्ट किया जा सके.
- डिप्लॉयमेंट की स्थिति की फिर से जांच करें (ऊपर दिया गया पहला चरण देखें). अगर आपको कोई गड़बड़ी नहीं दिखती है, तो इसका मतलब है कि गड़बड़ी ठीक हो गई है.
- अगर समस्या बनी रहती है, तो देखें कि मैसेज प्रोसेसर में नेटवर्क से जुड़ी कोई समस्या है या नहीं. अगर नेटवर्क से जुड़ी कोई समस्या है, तो टाइम आउट की गड़बड़ी दिखाने वाले मैसेज प्रोसेसर को रीस्टार्ट करने से, समस्या ठीक हो सकती है. यह जानकारी, डिप्लॉयमेंट की स्थिति के आउटपुट में दिखती है:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- अगर समस्या अब भी बनी रहती है, तो मैनेजमेंट सर्वर के लॉग देखें. ये लॉग,
(
/opt/apigee/var/log/edge-management-server/logs/system.log) पर मौजूद होते हैं.मैनेजमेंट सर्वर के लॉग में, कॉल के टाइम आउट होने की गड़बड़ी का सैंपल
2016-05-17 09:29:56,448 org:myorg env:prod qtp281969267-360792 ERROR DISTRIBUTION - RemoteServicesConfigEventHandler.configureServers() : exception for server with uuid e1381db7-d83b-4752-ae04-2de33f07e555 : cause = RPC Error 504: Call timed out communication error = true com.apigee.rpc.RPCException: Call timed out at com.apigee.rpc.impl.AbstractCallerImpl.handleTimeout(AbstractCallerImpl.java:64) ~[rpc-1.0.0.jar:na] at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.handleTimeout(RPCMachineImpl.java:483) ~[rpc-1.0.0.jar:na] at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.access$000(RPCMachineImpl.java:402) ~[rpc-1.0.0.jar:na] at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall$1.run(RPCMachineImpl.java:437) ~[rpc-1.0.0.jar:na] at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:532) ~[netty-all-4.0.0.CR1.jar:na] at io.netty.util.HashedWheelTimer$Worker.notifyExpiredTimeouts(HashedWheelTimer.java:430) ~[netty-all-4.0.0.CR1.jar:na] at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:371) ~[netty-all-4.0.0.CR1.jar:na] at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_79]
अगर आपको ऊपर दिए गए उदाहरण में दिखाई गई गड़बड़ी जैसी कोई गड़बड़ी दिखती है, तो मैनेजमेंट सर्वर पर आरपीसी टाइम आउट बढ़ाएं. इससे, अगर नेटवर्क की स्पीड कम होती है, तो मैनेजमेंट सर्वर को मैसेज प्रोसेसर से कनेक्ट होने के लिए समय मिल जाएगा.
रिज़ॉल्यूशन
ध्यान दें: सिर्फ़ Edge Private Cloud के उपयोगकर्ता, यहां दिया गया तरीका अपना सकते हैं. अगर आपके पास Edge Public Cloud है, तो Apigee Edge की सहायता टीम से संपर्क करें.
- आरपीसी टाइम आउट बढ़ाने के लिए, यह तरीका अपनाएं:
- अगर मैनेजमेंट
/opt/apigee/customer/application/management-server.propertiesसर्वर मशीन पर फ़ाइल मौजूद नहीं है, तो उसे बनाएं. - इस फ़ाइल में यह लाइन जोड़ें:
conf_cluster_rpc.connect.timeout=<time in seconds>
आरपीसी टाइम आउट की डिफ़ॉल्ट वैल्यू 10 होती है. इसे बढ़ाकर 40 सेकंड करने का सुझाव दिया जाता है. इसे इस तरह सेट करें:
conf_cluster_rpc.connect.timeout=40
- पक्का करें कि इस फ़ाइल का मालिकाना हक apigee के पास हो:
chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- मैनेजमेंट सर्वर को रीस्टार्ट करें:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- अगर आपके पास एक से ज़्यादा मैनेजमेंट सर्वर हैं, तो सभी मैनेजमेंट सर्वर पर ऊपर दिया गया तरीका दोहराएं.
- Edge के यूज़र इंटरफ़ेस (यूआई) में या Edge के मैनेजमेंट एपीआई कॉल का इस्तेमाल करके, एपीआई प्रॉक्सी को डिप्लॉय करें. अगर एपीआई प्रॉक्सी बिना किसी समस्या के डिप्लॉय हो जाती है, तो इसका मतलब है कि समस्या हल हो गई है.
- अगर मैनेजमेंट
- अगर समस्या बनी रहती है, तो मैनेजमेंट सर्वर और मैसेज प्रोसेसर से
tcpdump कमांड इकट्ठा करें. हर सर्वर पर tcpdump
कमांड चालू करें. इसके बाद, यूज़र इंटरफ़ेस (यूआई)
से या मैनेजमेंट एपीआई का इस्तेमाल करके, एपीआई प्रॉक्सी को डिप्लॉय करें:
- मैनेजमेंट सर्वर से, tcpdump का यह कमांड चलाएं:
tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
- मैसेज प्रोसेसर से, tcpdump का यह कमांड चलाएं:
tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
- tcpdump का विश्लेषण करने और समस्या को आगे हल करने में मदद पाने के लिए, Apigee Edge की सहायता टीम से संपर्क करें.
- मैनेजमेंट सर्वर से, tcpdump का यह कमांड चलाएं:
एपीआई प्रॉक्सी का बड़ा बंडल
संक्रमण की जांच
- उस एपीआई प्रॉक्सी बंडल का साइज़ देखें जिसके डिप्लॉयमेंट में गड़बड़ी दिख रही है.
- अगर साइज़ काफ़ी बड़ा है (10 एमबी या इससे ज़्यादा), तो इस बात की संभावना है कि एपीआई प्रॉक्सी को चालू करने में मैसेज प्रोसेसर को ज़्यादा समय लग सकता है.
- अगर एपीआई प्रॉक्सी बंडल का साइज़ 15 एमबी से ज़्यादा है, तो 15 एमबी से बड़े एपीआई प्रॉक्सी बंडल पर जाएं.
रिज़ॉल्यूशन
ध्यान दें: सिर्फ़ Edge Private Cloud के उपयोगकर्ता, यहां दिया गया तरीका अपना सकते हैं. अगर आपके पास Edge Public Cloud है, तो Apigee Edge की सहायता टीम से संपर्क करें.
मैनेजमेंट सर्वर पर आरपीसी टाइम आउट बढ़ाएं, ताकि बड़े एपीआई प्रॉक्सी बंडल को चालू करने के लिए, मैसेज प्रोसेसर के पास काफ़ी समय हो. आरपीसी टाइम आउट की वैल्यू बढ़ाने के लिए, यह तरीका अपनाएं:
- अगर मैनेजमेंट सर्वर मशीन पर
/opt/apigee/customer/application/management-server.propertiesफ़ाइल मौजूद नहीं है, तो उसे बनाएं. - इस फ़ाइल में यह लाइन जोड़ें:
conf_cluster_rpc.connect.timeout=<time in seconds>
आरपीसी टाइम आउट की डिफ़ॉल्ट वैल्यू 10 होती है. इसे बढ़ाकर 40 सेकंड करने का सुझाव दिया जाता है. इसे इस तरह सेट करें:
conf_cluster_rpc.connect.timeout=40
- पक्का करें कि इस फ़ाइल का मालिकाना हक apigee के पास हो:
chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- मैनेजमेंट सर्वर को रीस्टार्ट करें:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- अगर आपके पास एक से ज़्यादा मैनेजमेंट सर्वर हैं, तो सभी मैनेजमेंट सर्वर पर ऊपर दिया गया तरीका दोहराएं.
अगर समस्या बनी रहती है, तो ज़्यादा मदद पाने के लिए, Apigee Edge की सहायता टीम से संपर्क करें.