पाथ के लिए चिल्ड्रेन फ़ेच करने में गड़बड़ी हुई

आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं.
जानकारी

पर क्लिक करें.

समस्या का ब्यौरा

Edge यूज़र इंटरफ़ेस (यूआई) या Edge Management API के ज़रिए एपीआई प्रॉक्सी के वर्शन डिप्लॉय करते समय, ZooKeeper की गड़बड़ी "Error while fetching children for path" की वजह से डिप्लॉयमेंट पूरा नहीं हो पाता.

गड़बड़ी के मैसेज

Error in deployment for environment prod. 
The revision is deployed, but traffic cannot flow. com.apigee.repository.RepositoryException{ code = repository.zookeeper.UnExpectedError, message = Unexpected error Error while fetching children for path : /organizations/myorg/environments/prod/apiproxies/tinkerbell/revisions, associated contexts = []};

संभावित वजहें

इस गड़बड़ी की आम वजह, Message Processor और ZooKeeper के बीच नेटवर्क कनेक्टिविटी की समस्या है.

संक्रमण की जांच

ध्यान दें: सिर्फ़ Edge Private Cloud के उपयोगकर्ता ही यह तरीका अपना सकते हैं. अगर आप Edge Public Cloud का इस्तेमाल कर रहे हैं, तो Apigee Edge की सहायता टीम से संपर्क करें.

  1. उस एपीआई के लिए डिप्लॉयमेंट स्टेटस का आउटपुट पाएं जिसमें गड़बड़ी दिख रही है. इसके लिए, मैनेजमेंट एपीआई के इस कॉल का इस्तेमाल करें:
    curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>

    डिप्लॉयमेंट की स्थिति के आउटपुट का सैंपल, जिसमें गड़बड़ी दिख रही है:

    { 
    "environment" : [ { 
    "name" : "prod", 
    "revision" : [ { 
    "configuration" : { 
    "basePath" : "/", 
    "steps" : [ ] 
    }, 
    "name" : "1", 
    "server" : [ { 
    "error" : "com.apigee.repository.RepositoryException: com.apigee.zookeeper.ZooKeeperException{ code = zookeeper.ErrorFetchingChildren, message = Error while fetching children for path : /organizations/gsc/environments/prod/apiproxies/apigee_test/revisions, associated contexts = []}", 
    "status" : "error", 
    "type" : [ "message-processor" ], 
    "uUID" : "01fc5b23-8ad3-40bf-b059-2fc82cdac111" 
    },
  2. मैसेज प्रोसेसर (/opt/apigee/var/log/edge-message-processor/system.log) देखें.

    मैसेज प्रोसेसर के लॉग में गड़बड़ी का सैंपल

    2017-05-29 01:25:40,592  main ERROR KERNEL - MicroKernel.deployAll() : MicroKernel.deployAll() : Error in deploying the deployment : WebService
    com.apigee.zookeeper.ZooKeeperException: Error while checking path existence for path : /regions/dc-2/pods/gateway/servers/099c2603-93a4-4b73-ae03-a55d130adb80/reachable
            at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists(ZooKeeperServiceImpl.java:410) ~[zookeeper-1.0.0.jar:na]
            at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists(ZooKeeperServiceImpl.java:394) ~[zookeeper-1.0.0.jar:na]
            at com.apigee.services.repository.zookeeper.ZKRepository.exists(ZKRepository.java:280) ~[repository-impl-1.0.0.jar:na]
            at com.apigee.services.repository.RepositoryServiceImpl.exists(RepositoryServiceImpl.java:234) ~[repository-impl-1.0.0.jar:na]
            at com.apigee.registration.info.StatusBuilder.build(StatusBuilder.java:26) ~[registration-1.0.0.jar:na]
            at com.apigee.registration.ServerRegistrationServiceImpl.buildServerInfo(ServerRegistrationServiceImpl.java:856) ~[registration-1.0.0.jar:na]
            at com.apigee.registration.ServerRegistrationServiceImpl.start(ServerRegistrationServiceImpl.java:122) ~[registration-1.0.0.jar:na]
            at com.apigee.kernel.service.deployment.ServiceDeployer.startService(ServiceDeployer.java:167) ~[microkernel-1.0.0.jar:na]
            at com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:70) ~[microkernel-1.0.0.jar:na]
            at com.apigee.kernel.service.deployment.ServiceDeployer.deployDependantServices(ServiceDeployer.java:356) ~[microkernel-1.0.0.jar:na]
            at com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:76) ~[microkernel-1.0.0.jar:na]
            at com.apigee.kernel.service.deployment.ServiceDeployer.deployDependantServices(ServiceDeployer.java:356) ~[microkernel-1.0.0.jar:na]
            at com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:76) ~[microkernel-1.0.0.jar:na]
            at com.apigee.kernel.MicroKernel.deployAll(MicroKernel.java:178) [microkernel-1.0.0.jar:na]
            at com.apigee.kernel.MicroKernel.start(MicroKernel.java:139) [microkernel-1.0.0.jar:na]
            at com.apigee.kernel.MicroKernel.start(MicroKernel.java:135) [microkernel-1.0.0.jar:na]
            at com.apigee.kernel.MicroKernel.main(MicroKernel.java:84) [microkernel-1.0.0.jar:na]
    Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /regions/dc-2/pods/gateway/servers/099c2603-93a4-4b73-ae03-a55d130adb80/reachable
            at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
            at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
            at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1045) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
            at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1073) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
            at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists(ZooKeeperServiceImpl.java:402) ~[zookeeper-1.0.0.jar:na]
            ... 16 common frames omitted
  3. अगर आपको ऊपर दिए गए उदाहरण में दिखाई गई गड़बड़ी जैसी कोई गड़बड़ी दिखती है, तो यह तरीका आज़माएं:
    1. यहां दिए गए तरीके का इस्तेमाल करके, मैसेज प्रोसेसर से पोर्ट 2181 पर मौजूद ZooKeeper सर्वर के कनेक्शन की जांच करें:
      1. अगर टेलनेट उपलब्ध है, तो इसका इस्तेमाल करें:
        telnet <ZooKeeper-IP> 2181
      2. अगर टेलनेट उपलब्ध नहीं है, तो कनेक्टिविटी की जांच करने के लिए, इस तरह नेटकेट का इस्तेमाल करें:
        nc -vz <ZooKeeper-IP> 2181
      3. अगर आपको "कनेक्शन अस्वीकार किया गया" या "कनेक्शन का समय खत्म हो गया" जवाब मिलता है, तो अपनी नेटवर्क ऑपरेशंस टीम से संपर्क करें. नीचे दिए गए समस्या हल करना सेक्शन पर जाएं.
  4. अगर आपको कोई और समस्या दिखती है, तो Apigee Edge की सहायता टीम से संपर्क करें.

रिज़ॉल्यूशन

ध्यान दें: सिर्फ़ Edge Private Cloud के उपयोगकर्ता ही यह तरीका अपना सकते हैं. अगर आप Edge Public Cloud का इस्तेमाल कर रहे हैं, तो Apigee Edge की सहायता टीम से संपर्क करें.

  1. अपनी नेटवर्क टीम के साथ मिलकर ये काम करें:
      1. पक्का करें कि मैसेज प्रोसेसर और सभी ZooKeeper नोड के बीच पोर्ट 2181 पर कनेक्टिविटी की अनुमति हो.
      2. मैसेज प्रोसेसर से फ़ायरवॉल की पाबंदियां या सुरक्षा से जुड़े नियम हटाएं, ताकि ZooKeeper सर्वर पर पोर्ट 2181 से कनेक्ट किया जा सके.
    1. अगर मैसेज प्रोसेसर में नेटवर्क की समस्या है, तो गड़बड़ी दिखाने वाले मैसेज प्रोसेसर को फिर से चालू करने से समस्या ठीक हो सकती है. यह जानकारी, डिप्लॉयमेंट की स्थिति के आउटपुट के हिसाब से दी गई है. किसी मैसेज प्रोसेसर को रीस्टार्ट करने के लिए:
      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    अगर समस्या बनी रहती है, तो Apigee Edge की सहायता टीम से संपर्क करें.