حدث خطأ في المهلة

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

المشكلة

يتعذّر نشر مراجعات الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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

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

في ما يلي الأسباب النموذجية لهذه المشكلة:

السبب التفاصيل من أجل
مشكلة في الاتصال بالشبكة فشل الاتصال بين خادم الإدارة ومعالج الرسائل بسبب مشاكل في الاتصال بالشبكة أو قواعد جدار الحماية. مستخدمو السحابة الإلكترونية الخاصة فقط
حزمة الخادم الوكيل لواجهة برمجة التطبيقات كبيرة الحجم قد يستغرق معالج الرسائل وقتًا طويلاً للتفعيل إذا كانت حزمة الخادم الوكيل لواجهة برمجة التطبيقات كبيرة الحجم، ما يؤدي إلى انتهاء مهلة استدعاء الإجراء عن بُعد (RPC). مستخدمو السحابة الإلكترونية العامة والخاصة

مشكلة في الاتصال بالشبكة

ملاحظة: يمكن لمستخدمي 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>
    

    نموذج ناتج يعرض الخطأ:

    { 
                    "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"
                    } 
    

    يبيّن ناتج النموذج أعلاه أنّ الخطأ حدث في أحد معالِجات الرسائل التي تتضمّن المعرّف الفريد العالمي (UUID) "ebbc1078-cbde-4a00-a7db-66a3c1b2b748".

  2. استنادًا إلى مخرجات حالة النشر للخادم الوكيل لواجهة برمجة التطبيقات، سجِّل الدخول إلى كل معالِجات الرسائل باستخدام المعرّف الفريد العالمي (UUID) المقابل الذي عرض الخطأ، ونفِّذ الخطوات التالية:
    1. تحقَّق مما إذا كان "معالج الرسائل" ينتظر استقبال البيانات على المنفذ 4528:
      netstat -an | grep LISTEN | grep 4528
      

      إذا كان معالج الرسائل لا يتصل عبر المنفذ 4528، يُرجى إعادة تشغيل معالج الرسائل:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      
    2. أعِد التحقّق من حالة نشر الخادم الوكيل لواجهة برمجة التطبيقات باستخدام طلب بيانات من واجهة برمجة التطبيقات للإدارة والموضَّح في الخطوة رقم 1 أعلاه. إذا لم تكن هناك أي أخطاء، فهذا يعني أنه تم حل المشكلة.
  3. إذا استمرت المشكلة، اختبِر الاتصال من "خادم الإدارة" إلى "معالج الرسائل" على المنفذ 4528 باستخدام الخطوات التالية:
    1. إذا كان telnet متاحًا، استخدِم telnet:
      telnet <MessageProcessor_IP> 4528
      
    2. إذا لم يكن telnet متاحًا، استخدم netcat للتحقق من الاتصال على النحو التالي:
      nc -vz <MessageProcessor_IP> 4528
      
    3. إذا تلقّيت الرد "تم رفض الاتصال" أو "انقضت مهلة الاتصال"، عليك التواصل مع فريق عمليات الشبكة.
  4. اختبِر الاتصال من "معالج الرسائل" إلى "خادم الإدارة" على المنفذ 4526 باستخدام الخطوات التالية:
    1. إذا كان telnet متاحًا، استخدِم telnet:
      telnet <management-server-IP> 4526
      
    2. إذا لم يكن telnet متاحًا، استخدم netcat للتحقق من الاتصال على النحو التالي:
      nc -vz <management-server-IP> 4526 
      
    3. إذا تلقّيت الرد "تم رفض الاتصال" أو "انقضت مهلة الاتصال"، عليك التواصل مع فريق عمليات الشبكة.
  5. تعاون مع فريق عمليات الشبكة ونفِّذ ما يلي:
    1. تأكَّد من السماح ببروتوكول RPC في كل من خادم الإدارة ومعالج الرسائل.
    2. إزالة أي قيود جدار حماية أو قواعد أمان تم إعدادها بين خوادم الإدارة ومعالجات الرسائل للسماح بالاتصال بالمنفذ 4526 على خادم الإدارة، والاتصال من خادم الإدارة إلى معالِجات الرسائل في المنفذ 4528
  6. أعِد التحقّق من حالة النشر (راجِع الخطوة رقم 1 أعلاه). إذا لم تظهر لك أي أخطاء، يعني ذلك أنّه تم حلّ الخطأ.
  7. إذا استمرت المشكلة، تحقق مما إذا كانت هناك مشكلة في الشبكة في معالج الرسائل. إذا كانت هناك مشكلة في الشبكة، قد تؤدي إعادة تشغيل معالج الرسائل المحدّد الذي يعرض خطأ انتهاء المهلة (وفقًا لمخرجات حالة النشر) إلى إصلاح المشكلة:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  8. في حال استمرار المشكلة، تحقَّق من سجلّات خادم الإدارة على: (/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] 
            
    

    إذا لاحظت خطأً مشابهًا كما هو موضح في المثال أعلاه، عليك زيادة مهلة استدعاء إجراء عن بُعد (RPC) على خادم الإدارة بحيث في حال حدوث أي بطء في الشبكة، فمن المفترض أن يمنح خادم الإدارة وقتًا للاتصال بمعالج الرسائل.

درجة الدقّة

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

  1. نفِّذ الخطوات التالية لزيادة مهلة RPC:
    1. أنشئ الملف /opt/apigee/customer/application/management-server.properties على جهاز خادم الإدارة، إذا لم يكن متوفرًا من قبل.
    2. أضف السطر التالي إلى هذا الملف:
      conf_cluster_rpc.connect.timeout=<time in seconds>
      

      قيمة مهلة استدعاء إجراء عن بُعد (RPC) التلقائية هي 10 ويُنصح بزيادتها إلى 40 ثانية. اضبطه على النحو التالي:

      conf_cluster_rpc.connect.timeout=40
      
    3. تأكَّد من أنّ هذا الملف يملكه apigee:
      chown apigee:apigee /opt/apigee/customer/application/management-server.properties
      
    4. أعِد تشغيل خادم الإدارة:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
      
    5. إذا كان لديك أكثر من خادم إدارة، يمكنك تكرار الخطوات السابقة على جميع خوادم الإدارة.
    6. يمكنك نشر الخادم الوكيل لواجهة برمجة التطبيقات في واجهة مستخدم Edge أو باستخدام طلب بيانات من واجهة برمجة التطبيقات لإدارة Edge. إذا تم نشر الخادم الوكيل لواجهة برمجة التطبيقات بدون أي مشاكل، هذا يعني أنّه تم حلّ المشكلة.
  2. إذا استمرت المشكلة، اجمع الأمر tcpdump من خادم الإدارة ومعالج الرسائل. فعِّل الأمر tcpdump في كل خادم، ثم ابدأ نشر الخادم الوكيل لواجهة برمجة التطبيقات من واجهة المستخدم أو باستخدام واجهة برمجة تطبيقات الإدارة:
    1. شغِّل الأمر tcpdump أدناه من خادم الإدارة:
      tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
      
    2. شغِّل الأمر tcpdump أدناه من معالج الرسائل:
      tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
      
    3. يمكنك التواصل مع فريق دعم Apigee Edge للحصول على مساعدة في تحليل ملفات tcpdump وتحديد المشاكل وحلّها بشكل أكبر.

حزمة الخادم الوكيل لواجهة برمجة التطبيقات كبيرة الحجم

التشخيص

  1. تحقَّق من حجم حزمة الخادم الوكيل لواجهة برمجة التطبيقات التي يتم رصد خطأ النشر الخاص بها.
  2. إذا كان الحجم كبيرًا بشكل معقول (10 ميغابايت أو أعلى)، من المرجّح جدًا أنّ "معالج الرسائل" قد يحتاج إلى مزيد من الوقت لتفعيل الخادم الوكيل لواجهة برمجة التطبيقات.
  3. إذا كان حجم حزمة الخادم الوكيل لواجهة برمجة التطبيقات أكبر من 15 ميغابايت، انتقِل إلى حزمة الخادم الوكيل لواجهة برمجة التطبيقات بحجم أكبر من 15 ميغابايت.

درجة الدقّة

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

عليك زيادة مهلة استدعاء إجراء عن بُعد (RPC) على خادم الإدارة بحيث يتوفر لمعالج الرسائل ما يكفي من الوقت لتفعيل حِزم الوكيل الكبيرة لواجهة برمجة التطبيقات. نفِّذ الخطوات التالية لزيادة قيمة مهلة استدعاء إجراء عن بُعد (RPC):

  1. أنشئ ملف /opt/apigee/customer/application/management-server.properties على جهاز Management Server، إذا لم يكن متوفرًا من قبل.
  2. إضافة السطر التالي إلى هذا الملف:
    conf_cluster_rpc.connect.timeout=<time in seconds>
    

    قيمة مهلة استدعاء إجراء عن بُعد (RPC) التلقائية هي 10 ويُنصح بزيادتها إلى 40 ثانية. اضبطه على النحو التالي:

    conf_cluster_rpc.connect.timeout=40
    
  3. تأكَّد من أنّ هذا الملف يملكه apigee:
    chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    
  4. أعِد تشغيل خادم الإدارة:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    
  5. إذا كان لديك أكثر من خادم إدارة، يمكنك تكرار الخطوات السابقة على جميع خوادم الإدارة.

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