Zeitüberschreitungsfehler

<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 Verwaltungs-API schlägt mit einer Zeitüberschreitung fehl Fehler.

Fehlermeldungen

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

Mögliche Ursachen

Typische Ursachen für dieses Problem:

Ursache Details Für
Problem mit der Netzwerkverbindung Kommunikationsfehler zwischen Verwaltungsserver und Message Processor aufgrund eines Netzwerks Verbindungsprobleme oder Firewallregeln. Nur Private Cloud-Nutzer
Großes API-Proxy-Bundle Die Aktivierung des Message Processor kann lange dauern, wenn das API-Proxy-Bundle in was zu RPC-Zeitüberschreitungen führt. Private und öffentliche Cloud-Nutzer

Problem mit der Netzwerkverbindung

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.

Diagnose

  1. Rufen Sie den Bereitstellungsstatus für die spezifische API ab, die den Fehler anzeigt, indem Sie Folgendes verwenden: Management API-Aufruf:
    curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
    

    Beispielausgabe mit dem Fehler:

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

    Die obige Beispielausgabe zeigt, dass der Fehler bei einem der Message Processors aufgetreten ist. mit der UUID „ebbc1078-cbde-4a00-a7db-66a3c1b2b748“.

  2. Melden Sie sich basierend auf der Ausgabe des Bereitstellungsstatus für Ihren API-Proxy bei jeder der Nachrichten an, Prozessoren mit der entsprechenden UUID, die den Fehler anzeigte, und führen die folgenden Schritte aus: <ph type="x-smartling-placeholder">
      </ph>
    1. Prüfen Sie, ob der Message Processor Port 4528 überwacht:
      netstat -an | grep LISTEN | grep 4528
      

      Wenn der Message Processor Port 4528 nicht überwacht, starten Sie die Nachricht Prozessor:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      
    2. Überprüfen Sie den Bereitstellungsstatus des API-Proxys noch einmal mithilfe des angezeigten Verwaltungs-API-Aufrufs. oben im 1. Schritt beschrieben. Wenn keine Fehler auftreten, bedeutet dies, dass das Problem behoben wurde.
  3. Wenn das Problem weiterhin besteht, testen Sie die Verbindung vom Verwaltungsserver zur Nachricht Prozessor an Port 4528 mithilfe der folgenden Schritte: <ph type="x-smartling-placeholder">
      </ph>
    1. Wenn Telnet verfügbar ist, verwenden Sie Telnet:
      telnet <MessageProcessor_IP> 4528
      
    2. Falls Telnet nicht verfügbar ist, prüfen Sie die Verbindung mit Netcat wie folgt:
      nc -vz <MessageProcessor_IP> 4528
      
    3. Wenn Sie die Antwort „Connection Refused“ erhalten oder "Zeitüberschreitung der Verbindung" und Ihr Netzwerk-Operations-Team.
  4. Verbindung vom Message Processor zum Verwaltungsserver an Port 4526 testen Gehen Sie dazu so vor: <ph type="x-smartling-placeholder">
      </ph>
    1. Wenn Telnet verfügbar ist, verwenden Sie Telnet:
      telnet <management-server-IP> 4526
      
    2. Falls Telnet nicht verfügbar ist, prüfen Sie die Verbindung mit Netcat wie folgt:
      nc -vz <management-server-IP> 4526 
      
    3. Wenn Sie die Antwort „Connection Refused“ erhalten oder "Zeitüberschreitung der Verbindung", für Ihr Netzwerkbetriebsteam.
  5. Arbeiten Sie mit Ihrem Network Operations-Team zusammen und gehen Sie so vor: <ph type="x-smartling-placeholder">
      </ph>
    1. Achten Sie darauf, dass das RPC-Protokoll sowohl auf dem Verwaltungsserver als auch in der Nachricht zulässig ist Prozessor.
    2. Entfernen Sie alle Firewallbeschränkungen oder Sicherheitsregeln, die zwischen den Verwaltungsservern eingerichtet wurden und Message Processors, um Verbindungen zu Port 4526 auf dem Verwaltungsserver zuzulassen. Verbindung vom Management Server zu Message Processors über Port 4528.
  6. Überprüfen Sie den Bereitstellungsstatus noch einmal (siehe Schritt 1 oben). Wenn keine Fehler angezeigt werden, bedeutet das, dass der Fehler behoben ist.
  7. Wenn das Problem weiterhin besteht, prüfen Sie, ob ein Netzwerkproblem mit dem Message Processor vorliegt. Wenn es Netzwerkproblem besteht, starten Sie den betreffenden Message Processor neu, bei dem der Zeitüberschreitungsfehler angezeigt wird (gemäß Bereitstellungsstatus) können das Problem beheben:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  8. Wenn das Problem weiterhin besteht, prüfen Sie die Protokolle des Verwaltungsservers unter: (/opt/apigee/var/log/edge-management-server/logs/system.log)

    Beispielfehler wegen Zeitüberschreitung beim Anruf aus dem Verwaltungsserverprotokoll

    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] 
            
    

    Wenn ein ähnlicher Fehler wie im obigen Beispiel auftritt, erhöhen Sie den RPC. eine Zeitüberschreitung auf dem Management-Server. Wenn das Netzwerk dann langsam ist, bis der Management Server eine Verbindung zum Message Processor hergestellt hat.

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. Führen Sie die folgenden Schritte aus, um das RPC-Zeitlimit zu erhöhen: <ph type="x-smartling-placeholder">
      </ph>
    1. Datei erstellen /opt/apigee/customer/application/management-server.properties die Verwaltung Servercomputer, falls er noch nicht vorhanden ist
    2. Fügen Sie der Datei die folgende Zeile hinzu:
      conf_cluster_rpc.connect.timeout=<time in seconds>
      

      Der Standardwert für das RPC-Zeitlimit beträgt 10 und es wird empfohlen, ihn auf 40 zu erhöhen Sekunden. Legen Sie Folgendes fest:

      conf_cluster_rpc.connect.timeout=40
      
    3. Achten Sie darauf, dass diese Datei Apigee gehört:
      chown apigee:apigee /opt/apigee/customer/application/management-server.properties
      
    4. Starten Sie den Verwaltungsserver neu:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
      
    5. Wenn Sie mehrere Verwaltungsserver haben, wiederholen Sie die obigen Schritte auf allen Verwaltungsserver.
    6. Stellen Sie den API-Proxy in der Edge-Benutzeroberfläche oder mithilfe des Edge-Verwaltungs-API-Aufrufs bereit. Wenn die Der API-Proxy wird ohne Probleme bereitgestellt, was bedeutet, dass das Problem behoben wurde.
  2. Wenn das Problem weiterhin besteht, erfassen Sie tcpdump vom Verwaltungsserver und dem Message Processor. „tcpdump“ aktivieren auf jedem Server und initiieren Sie dann die Bereitstellung des API-Proxys über die Benutzeroberfläche. oder mithilfe der Verwaltungs-API: <ph type="x-smartling-placeholder">
      </ph>
    1. Führen Sie auf dem Verwaltungsserver den folgenden tcpdump-Befehl aus:
      tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
      
    2. Führen Sie im Message Processor den folgenden tcpdump-Befehl aus:
      tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
      
    3. Wenden Sie sich an den Apigee Edge-Support, um Unterstützung bei tcpdumps analysieren und das Problem weiter untersuchen.

Groß API-Proxy-Bundle

Diagnose

  1. Überprüfen Sie die Größe des API-Proxy-Bundles, bei dem der Bereitstellungsfehler auftritt beobachtet.
  2. Wenn die Größe relativ groß ist (10 MB oder mehr), ist es sehr wahrscheinlich, dass die Nachricht Der Prozessor benötigt möglicherweise mehr Zeit, um den API-Proxy zu aktivieren.
  3. Ist die API-Proxy-Paketgröße größer als 15 MB, fahren Sie mit API-Proxy-Bundle größer als 15 MB

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.

Erhöhen Sie das RPC-Zeitlimit auf dem Verwaltungsserver, damit der Message Processor genügend Zeit hat, große API-Proxy-Bundles aktivieren. Führen Sie die folgenden Schritte aus, um das RPC-Zeitlimit zu erhöhen Wert:

  1. Datei /opt/apigee/customer/application/management-server.properties erstellen auf dem Verwaltungsserver gespeichert, falls dieser noch nicht vorhanden ist.
  2. Fügen Sie dieser Datei die folgende Zeile hinzu:
    conf_cluster_rpc.connect.timeout=<time in seconds>
    

    Der Standardwert für das RPC-Zeitlimit beträgt 10 und es wird empfohlen, ihn auf 40 Sekunden zu erhöhen. Legen Sie Folgendes fest:

    conf_cluster_rpc.connect.timeout=40
    
  3. Achten Sie darauf, dass diese Datei Apigee gehört:
    chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    
  4. Starten Sie den Verwaltungsserver neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    
  5. Wenn Sie mehrere Verwaltungsserver haben, wiederholen Sie die obigen Schritte für alle Verwaltungsserver, Server.

Wenn das Problem weiterhin besteht, wenden Sie sich an den Apigee Edge-Support für weitere Unterstützung.