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

أنت تعرض مستندات 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 Support.

التشخيص

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

    يوضح ناتج النموذج أعلاه أن الخطأ حدث في إحدى معالِجات معالجة الرسائل. يتضمن المعرّف الفريد العالمي "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] 
            
    

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

الدقة

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

  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 للحصول على مساعدة بشأن وتحليل tcpdumps وتحديد مشاكل المشكلة وحلّها.

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

التشخيص

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

الدقة

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

قم بزيادة مهلة استدعاء إجراء عن بُعد (RPC) على خادم الإدارة بحيث يكون لدى معالج الرسائل وقت كافٍ تفعيل حزم كبيرة لخادم وكيل واجهة برمجة التطبيقات. نفِّذ الخطوات التالية لزيادة مهلة استدعاء إجراء عن بُعد (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. إذا كان لديك أكثر من خادم إدارة، فكرر الخطوات المذكورة أعلاه في جميع أقسام الخوادم.

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