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
- 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. - 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:
- 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
- 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.
- Mesaj İşleyici'nin 4528 numaralı bağlantı noktasında dinleme yapıp yapmadığını kontrol edin:
- 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:
- Telnet kullanılabiliyorsa telnet'i kullanın:
telnet <MessageProcessor_IP> 4528
- Telnet kullanılamıyorsa bağlantıyı aşağıdaki şekilde kontrol etmek için netcat'i kullanın:
nc -vz <MessageProcessor_IP> 4528
- "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.
- Telnet kullanılabiliyorsa telnet'i kullanın:
- Aşağıdaki adımları kullanarak Mesaj İşleyiciden Yönetim Sunucusu'na 4526 numaralı bağlantı noktasındaki bağlantıyı test edin:
- Telnet kullanılabiliyorsa telnet'i kullanın:
telnet <management-server-IP> 4526
- 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
- "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.
- Telnet kullanılabiliyorsa telnet'i kullanın:
- Ağ işlemleri ekibinizle birlikte çalışıp aşağıdakileri yapın:
- Hem Yönetim Sunucusu'nda hem de Mesaj İşleyici'de RPC protokolüne izin verildiğinden emin olun.
- 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.
- 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.
- 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
- 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.
- RPC zaman aşımını artırmak için aşağıdaki adımları uygulayın:
- Zaten mevcut değilse Yönetim Sunucusu makinesinde
/opt/apigee/customer/application/management-server.properties
dosyasını oluşturun. - 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
- Bu dosyanın Apigee'ye ait olduğundan emin olun:
chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- Yönetim Sunucusu'nu yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Birden fazla Yönetim Sunucunuz varsa yukarıdaki adımları tüm Yönetim Sunucuları için tekrarlayın.
- 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.
- Zaten mevcut değilse Yönetim Sunucusu makinesinde
- 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:
- 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>
- 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>
- 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.
- Yönetim Sunucusu'ndan aşağıdaki tcpdump komutunu çalıştırın:
Büyük API Proxy Paketi
Teşhis
- Dağıtım hatasının görüldüğü API proxy paketinin boyutunu kontrol edin.
- 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.
- 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:
- Mevcut değilse
/opt/apigee/customer/application/management-server.properties
dosyasını Yönetim Sunucusu makinesinde oluşturun. - 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
- Bu dosyanın Apigee'ye ait olduğundan emin olun:
chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- Yönetim Sunucusu'nu yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- 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.