Fehler beim Abrufen von untergeordneten Elementen für Pfad

<ph type="x-smartling-placeholder"></ph> Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur Apigee X-Dokumentation.
Weitere Informationen

Symptom

Die Bereitstellung von API-Proxy-Versionen über die Edge-Benutzeroberfläche oder die Edge-Verwaltungs-API schlägt mit dem ZooKeeper-Fehler "Fehler beim Abrufen von untergeordneten Elementen für Pfad".

Fehlermeldungen

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 = []};

Mögliche Ursachen

Die typische Ursache für diesen Fehler ist ein Problem mit der Netzwerkverbindung zwischen dem Message Processor und ZooKeeper.

Diagnose

Hinweis: Nur Edge Private Cloud-Nutzer können die folgenden Schritte ausführen. Wenn Sie die in Edge Public Cloud sind, wenden Sie sich an den Apigee Edge-Support.

  1. Rufen Sie mithilfe der Methode folgenden Verwaltungs-API-Aufruf:
    curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
    

    Beispiel für eine Ausgabe des Bereitstellungsstatus mit dem Fehler:

    { 
    "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. Message Processor prüfen (/opt/apigee/var/log/edge-message-processor/system.log)

    Beispielfehler aus dem Message Processor-Protokoll

    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. Wenn ein ähnlicher Fehler wie im Beispiel oben auftritt, gehen Sie so vor: Schritte: <ph type="x-smartling-placeholder">
      </ph>
    1. Verbindung vom Message Processor zu ZooKeeper-Servern an Port 2181 testen Gehen Sie dazu so vor: <ph type="x-smartling-placeholder">
        </ph>
      1. Wenn Telnet verfügbar ist, verwenden Sie Telnet:
        telnet <ZooKeeper-IP> 2181
        
      2. Falls Telnet nicht verfügbar ist, prüfen Sie die Verbindung mit Netcat wie folgt:
        nc -vz <ZooKeeper-IP> 2181
        
      3. Wenn Sie die Antwort „Connection Refused“ erhalten oder "Zeitüberschreitung der Verbindung", für Ihr Netzwerkbetriebsteam. Gehen Sie zum Abschnitt Lösung unten.
  4. Wenden Sie sich dann an den Apigee Edge-Support.

Auflösung

Hinweis: Nur Edge Private Cloud-Nutzer können die folgenden Schritte ausführen. Wenn Sie die in Edge Public Cloud sind, wenden Sie sich an den Apigee Edge-Support.

  1. Arbeiten Sie mit Ihrem Netzwerkteam bei Folgendem zusammen: <ph type="x-smartling-placeholder">
      </ph>
      1. Achten Sie darauf, dass die Verbindung zwischen dem Message Processor und allen ZooKeeper-Geräten zulässig ist an Port 2181 an.
      2. Entfernen Sie alle Firewallbeschränkungen oder eingerichteten Sicherheitsregeln von Message Processors, um Verbindungen zu Port 2181 auf den ZooKeeper-Servern zulassen.
    1. Wenn es ein Netzwerkproblem mit dem Message Processor gibt, wird der spezifische Der Message Processor, der den Fehler (laut Bereitstellungsstatusausgabe) anzeigt, kann den Fehler Problem. Starten Sie den spezifischen Message Processor neu:
      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      

    Wenn das Problem weiterhin besteht, wenden Sie sich an den Apigee Edge-Support.