Yol için Alt Öğeler Getirilirken Hata Oluştu

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Belirti

Edge kullanıcı arayüzü veya Edge Management API aracılığıyla API proxy revizyonlarının dağıtımı, "Error while fetching children for path" (Yol için alt öğeler getirilirken hata oluştu) ZooKeeper hatasıyla başarısız oluyor.

Hata mesajları

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

Olası nedenler

Bu hatanın tipik nedeni, Mesaj İşleyici ile ZooKeeper arasındaki ağ bağlantısı sorunudur.

Teşhis

Not: Yalnızca Edge Private Cloud kullanıcıları aşağıdaki adımları uygulayabilir. Edge Public Cloud kullanıyorsanız Apigee Edge Destek Ekibi ile iletişime geçin.

  1. Aşağıdaki Management API çağrısını kullanarak hatayı gösteren belirli API'nin dağıtım durumu çıkışını alın:
    curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>

    Hatayı gösteren örnek dağıtım durumu çıkışı:

    { 
    "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. Mesaj İşleyici'yi kontrol edin (/opt/apigee/var/log/edge-message-processor/system.log).

    Mesaj işleyici günlüğündeki örnek hata

    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. Yukarıdaki örnekte gösterilene benzer bir hata görürseniz aşağıdaki adımları uygulayın:
    1. Aşağıdaki adımları uygulayarak Mesaj İşleyici'den 2181 numaralı bağlantı noktasındaki ZooKeeper sunucularına bağlantıyı test edin:
      1. Telnet kullanılabiliyorsa telnet'i kullanın:
        telnet <ZooKeeper-IP> 2181
      2. Telnet kullanılamıyorsa bağlantıyı aşağıdaki gibi netcat ile kontrol edin:
        nc -vz <ZooKeeper-IP> 2181
      3. "Bağlantı reddedildi" veya "Bağlantı zaman aşımına uğradı" yanıtını alırsanız ağ operasyonları ekibinizle iletişime geçin. Aşağıdaki Çözüm bölümüne gidin.
  4. Başka bir durumla karşılaşırsanız Apigee Edge Destek Ekibi ile iletişime geçin.

Çözünürlük

Not: Yalnızca Edge Private Cloud kullanıcıları aşağıdaki adımları uygulayabilir. Edge Public Cloud kullanıyorsanız Apigee Edge Destek Ekibi ile iletişime geçin.

  1. Ağ ekibinizle birlikte çalışarak:
      1. Bağlantı noktası 2181'de Mesaj İşleyici ile tüm ZooKeeper düğümleri arasında bağlantıya izin verildiğinden emin olun.
      2. Mesaj işlemcilerinden ayarlanan tüm güvenlik duvarı kısıtlamalarını veya güvenlik kurallarını kaldırarak ZooKeeper sunucularında 2181 numaralı bağlantı noktasına bağlantıya izin verin.
    1. Mesaj İşleyicisinde ağ sorunu varsa hatayı gösteren belirli Mesaj İşleyicisini (dağıtım durumu çıkışına göre) yeniden başlatmak sorunu düzeltebilir. Belirli bir mesaj işleyiciyi yeniden başlatın:
      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    Sorun devam ederse Apigee Edge Destek Ekibi ile iletişime geçin.