Zaman aşımı hatası

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

Belirti

API proxy düzeltmelerinin Edge kullanıcı arayüzü veya yönetim API'si aracılığıyla dağıtılması, zaman aşımı hatasıyla başarısız oluyor.

Hata mesajları

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

Olası Nedenler

Bu sorunun tipik nedenleri şunlardır:

Neden Ayrıntılar Şunlar için:
Ağ bağlantısı sorunu Ağ bağlantısı sorunları veya güvenlik duvarı kuralları nedeniyle Yönetim Sunucusu ve Mesaj İşleyici arasındaki iletişim hatası. Yalnızca Private Cloud Kullanıcıları
Büyük API Proxy Paketi API proxy paketinin boyutu büyükse Mesaj İşleyici'nin etkinleştirilmesi uzun sürebilir. Bu durum, RPC zaman aşımlarına yol açar. Gizli ve Herkese Açık Bulut Kullanıcıları

Ağ Bağlantısı Sorunu

Not: Aşağıdaki adımları yalnızca Edge Private Cloud kullanıcıları gerçekleştirebilir. Edge Public Cloud'daysanız Apigee Edge Destek Ekibi ile iletişime geçin.

Teşhis

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

    Hatayı gösteren örnek çıkış:

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

    Yukarıdaki örnek çıkışı, hatanın "ebbc1078-cbde-4a00-a7db-66a3c1b2b748" UUID'sine sahip Mesaj İşleyicilerinden birinde oluştuğunu göstermektedir.

  2. API proxy'nizin dağıtım durumu çıkışına bağlı olarak, hatayı gösteren ilgili UUID ile Mesaj İşleyicilerin her birine giriş yapın ve aşağıdaki adımları uygulayın:
    1. Mesaj İşleyici'nin 4528 numaralı bağlantı noktasında dinleme yapıp yapmadığını kontrol edin:
      netstat -an | grep LISTEN | grep 4528
      

      Mesaj İşleyici, 4528 numaralı bağlantı noktasında dinleme gerçekleştirmiyorsa Mesaj İşleyici'yi yeniden başlatın:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      
    2. Yukarıdaki 1. adımda gösterilen management API çağrısını kullanarak API proxy'sinin dağıtım durumunu yeniden kontrol edin. Herhangi bir hata yoksa sorunun çözülmüş olduğunu belirtir.
  3. Sorun devam ederse aşağıdaki adımları uygulayarak Yönetim Sunucusu ile 4528 numaralı bağlantı noktası üzerindeki Mesaj İşleyici arasındaki bağlantıyı test edin:
    1. Telnet kullanılabiliyorsa telnet'i kullanın:
      telnet <MessageProcessor_IP> 4528
      
    2. Telnet kullanılamıyorsa bağlantıyı aşağıdaki şekilde kontrol etmek için netcat'i kullanın:
      nc -vz <MessageProcessor_IP> 4528
      
    3. "Bağlantı Reddedildi" veya "Bağlantı zaman aşımına uğradı" yanıtını alırsanız ağ işlemleri ekibinizle iletişime geçin.
  4. Aşağıdaki adımları kullanarak Mesaj İşleyiciden Yönetim Sunucusu'na 4526 numaralı bağlantı noktasındaki bağlantıyı test edin:
    1. Telnet kullanılabiliyorsa telnet'i kullanın:
      telnet <management-server-IP> 4526
      
    2. Telnet kullanılamıyorsa bağlantıyı aşağıdaki şekilde kontrol etmek için netcat'i kullanın:
      nc -vz <management-server-IP> 4526 
      
    3. "Bağlantı Reddedildi" veya "Bağlantı zaman aşımına uğradı" yanıtını alırsanız ağ işlemleri ekibinizle iletişime geçin.
  5. Ağ işlemleri ekibinizle birlikte çalışıp aşağıdakileri yapın:
    1. Hem Yönetim Sunucusu'nda hem de Mesaj İşleyici'de RPC protokolüne izin verildiğinden emin olun.
    2. Yönetim sunucusu üzerinde 4526 numaralı bağlantı noktasına ve 4528 numaralı bağlantı noktasında Yönetim Sunucusu'ndan İleti İşleyicilerine bağlantıya izin vermek için Yönetim Sunucuları ve İleti İşleyicileri arasındaki güvenlik duvarı kısıtlamalarını veya güvenlik kurallarını kaldırın.
  6. Dağıtım durumunu yeniden kontrol edin (yukarıdaki 1. adıma bakın). Herhangi bir hata görmüyorsanız hatanın çözüldüğünü belirtir.
  7. Sorun devam ederse İleti İşleyici'de ağ sorunu olup olmadığını kontrol edin. Ağ sorunu varsa zaman aşımı hatasını gösteren ilgili Mesaj İşleyiciyi yeniden başlatmak (dağıtım durumu çıkışına göre) sorunu çözebilir:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  8. Sorun devam ederse Yönetim Sunucusu günlüklerini kontrol edin: (/opt/apigee/var/log/edge-management-server/logs/system.log).

    Yönetim Sunucusu Günlüğünden örnek çağrı zaman aşımına uğradı hatası

    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] 
            
    

    Yukarıdaki örnekte gösterilene benzer bir hatayla karşılaşırsanız Yönetim Sunucusu'ndaki RPC zaman aşımını artırın. Böylece, ağ yavaşlaması olduğunda Management Server'ın İleti İşleyiciye bağlanması için zaman tanıyın.

Çözünürlük

Not: Aşağıdaki adımları yalnızca Edge Private Cloud kullanıcıları gerçekleştirebilir. Edge Public Cloud'daysanız Apigee Edge Destek Ekibi ile iletişime geçin.

  1. RPC zaman aşımını artırmak için aşağıdaki adımları uygulayın:
    1. Zaten mevcut değilse Yönetim Sunucusu makinesinde /opt/apigee/customer/application/management-server.properties dosyasını oluşturun.
    2. Bu dosyaya şu satırı ekleyin:
      conf_cluster_rpc.connect.timeout=<time in seconds>
      

      Varsayılan RPC zaman aşımı değeri 10'dur ve bu değerin 40 saniyeye yükseltilmesi önerilir. Bunu aşağıdaki gibi ayarlayın:

      conf_cluster_rpc.connect.timeout=40
      
    3. Bu dosyanın Apigee'ye ait olduğundan emin olun:
      chown apigee:apigee /opt/apigee/customer/application/management-server.properties
      
    4. Yönetim Sunucusu'nu yeniden başlatın:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
      
    5. Birden fazla Yönetim Sunucunuz varsa yukarıdaki adımları tüm Yönetim Sunucuları için tekrarlayın.
    6. API proxy'sini, Edge kullanıcı arayüzünde veya Edge Management API çağrısı kullanarak dağıtın. API proxy'sinin herhangi bir sorun olmadan dağıtılması sorunun çözüldüğünü gösterir.
  2. Sorun devam ederse Yönetim Sunucusu ve İleti İşleyici'den tcpdump komutunu toplayın. Her bir sunucuda tcpdump komutunu etkinleştirin, ardından kullanıcı arayüzünden veya management API'den API proxy'sinin dağıtımını başlatın:
    1. Yönetim Sunucusu'ndan aşağıdaki tcpdump komutunu çalıştırın:
      tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
      
    2. Mesaj İşleyici'den aşağıdaki tcpdump komutunu çalıştırın:
      tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
      
    3. tcpdump'ları analiz etme ve sorunu daha ayrıntılı bir şekilde giderme konusunda yardım almak için Apigee Edge Destek Ekibi ile iletişime geçin.

Büyük API Proxy Paketi

Teşhis

  1. Dağıtım hatasının görüldüğü API proxy paketinin boyutunu kontrol edin.
  2. Boyut makul ölçüde büyükse (10 MB veya üzeri) muhtemelen Mesaj İşleyici'nin API proxy'sini etkinleştirmek için daha fazla zamana ihtiyacı olabilir.
  3. API Proxy paketinin boyutu 15 MB'tan büyükse 15 MB'tan büyük API Proxy Paketi bölümüne geçin.

Çözünürlük

Not: Aşağıdaki adımları yalnızca Edge Private Cloud kullanıcıları gerçekleştirebilir. Edge Public Cloud'daysanız Apigee Edge Destek Ekibi ile iletişime geçin.

İleti İşleyici'nin büyük API proxy paketlerini etkinleştirmek için yeterli zamanı olması için Yönetim Sunucusu'ndaki RPC zaman aşımını artırın. RPC zaman aşımı değerini artırmak için aşağıdaki adımları uygulayın:

  1. Mevcut değilse /opt/apigee/customer/application/management-server.properties dosyasını Yönetim Sunucusu makinesinde oluşturun.
  2. Bu dosyaya şu satırı ekleyin:
    conf_cluster_rpc.connect.timeout=<time in seconds>
    

    Varsayılan RPC zaman aşımı değeri 10'dur ve bu değerin 40 saniyeye yükseltilmesi önerilir. Bunu aşağıdaki gibi ayarlayın:

    conf_cluster_rpc.connect.timeout=40
    
  3. Bu dosyanın Apigee'ye ait olduğundan emin olun:
    chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    
  4. Yönetim Sunucusu'nu yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    
  5. Birden fazla Yönetim Sunucunuz varsa yukarıdaki adımları tüm Yönetim Sunucularında tekrarlayın.

Sorun devam ederse daha fazla yardım almak için Apigee Edge Destek Ekibi ile iletişime geçin.