حدث خطأ أثناء استرجاع العناصر الثانوية للمسار

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

المشكلة

يتعذّر نشر مراجعات خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة التطبيقات لإدارة Edge، ويظهر الخطأ "Error while fetching children for path" في ZooKeeper.

رسائل الخطأ

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

الأسباب المحتملة

السبب الشائع لهذا الخطأ هو حدوث مشكلة في اتصال الشبكة بين "معالج الرسائل" و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. تحقَّق من "معالج الرسائل" (Message Processor) (/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. اختبِر الاتصال من "معالج الرسائل" بخوادم ZooKeeper على المنفذ 2181 باتّباع الخطوات التالية:
      1. إذا كان telnet متاحًا، استخدِم telnet:
        telnet <ZooKeeper-IP> 2181
      2. إذا لم يكن telnet متاحًا، استخدِم netcat للتحقّق من الاتصال على النحو التالي:
        nc -vz <ZooKeeper-IP> 2181
      3. إذا تلقّيت الردّ "تم رفض الاتصال" أو "انتهت مهلة الاتصال"، عليك التواصل مع فريق عمليات الشبكة. انتقِل إلى قسم الدقة أدناه.
  4. إذا لاحظت أيًّا مما سبق، يُرجى التواصل مع فريق دعم Apigee Edge.

الدقة

ملاحظة: لا يمكن لمستخدمي Edge Private Cloud تنفيذ الخطوات التالية. إذا كنت تستخدم Edge Public Cloud، يُرجى التواصل مع فريق دعم Apigee Edge.

  1. تعاوَن مع فريق الشبكة لتنفيذ ما يلي:
      1. تأكَّد من السماح بالاتصال بين &quot;معالج الرسائل&quot; وجميع عُقد ZooKeeper على المنفذ 2181.
      2. أزِل أي قيود لجدار الحماية أو إعدادات قواعد الأمان من &quot;معالجات الرسائل&quot; للسماح بالاتصال بالمنفذ 2181 على خوادم ZooKeeper.
    1. إذا كانت هناك مشكلة في الشبكة على &quot;معالج الرسائل&quot;، قد يؤدي إعادة تشغيل &quot;معالج الرسائل&quot; المحدّد الذي يعرض الخطأ (وفقًا لناتج حالة النشر) إلى حل المشكلة. أعِد تشغيل "معالج الرسائل" المحدّد:
      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    في حال استمرار المشكلة، يُرجى التواصل مع فريق الدعم في Apigee Edge.