Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Belirti
İstemci uygulaması, API istekleri için zaman aşımı hatası alıyor veya API isteği Apigee'de yürütülmeye devam ederken istek aniden sonlandırılıyor.
Bu tür API istekleri için API İzleme ve NGINX erişim günlüklerinde 499 durum kodunu görürsünüz. API Analytics, Mesaj İşleyici tarafından döndürülen durum kodunu gösterdiğinden bazen farklı durum kodları görürsünüz.
Hata mesajı
İstemci uygulamaları şu gibi hatalar görebilir:
curl: (28) Operation timed out after 6001 milliseconds with 0 out of -1 bytes received
İstemci zaman aşımlarına ne neden olur?
Edge platformunda bir API isteğinin tipik yolu, aşağıdaki şekilde gösterildiği gibi İstemci > Yönlendirici > Mesaj İşleyici > Arka Uç Sunucusu şeklindedir:

Apigee Edge platformundaki yönlendiriciler ve mesaj işlemciler, API isteklerinin tamamlanmasının çok uzun sürmemesi için uygun varsayılan zaman aşımı değerleriyle ayarlanır.
İstemcide Zaman Aşımı
İstemci uygulamaları, ihtiyaçlarınıza göre uygun bir zaman aşımı değeriyle yapılandırılabilir.
Web tarayıcıları ve mobil uygulamalar gibi istemcilerde, işletim sistemi tarafından tanımlanan zaman aşımları vardır.
Yönlendiricide zaman aşımı
Yönlendiricilerde yapılandırılan varsayılan zaman aşımı 57 saniyedir. Bu, bir API isteği Edge'de alındıktan sonra arka uç yanıtı ve yürütülen tüm politikalar da dahil olmak üzere API proxy'sinin yanıt geri gönderilene kadar yürütebileceği maksimum süredir. Varsayılan zaman aşımı, Yönlendiricilerde G/Ç zaman aşımını yapılandırma bölümünde açıklandığı gibi yönlendiricilerde ve sanal ana makinelerde geçersiz kılınabilir.
Mesaj işleyicilerde zaman aşımı
Message Processor'larda yapılandırılan varsayılan zaman aşımı 55 saniyedir. Bu, arka uç sunucusunun isteği işleyip Mesaj İşleyici'ye yanıt vermesi için gereken maksimum süredir. Varsayılan zaman aşımı, Mesaj İşleyicilerde G/Ç zaman aşımını yapılandırma bölümünde açıklandığı gibi Mesaj İşleyicilerde veya API proxy'sinde geçersiz kılınabilir.
İstemci, API proxy'si zaman aşımına uğramadan önce Router ile bağlantıyı kapatırsa belirli API isteği için zaman aşımı hatası görürsünüz. Bu tür istekler için durum kodu 499 Client
Closed Connection, yönlendiriciye kaydedilir. Bu durum, API izleme ve NGINX erişim günlüklerinde gözlemlenebilir.
Olası nedenler
Edge'de 499 Client Closed Connection hatasının tipik nedenleri şunlardır:
| Neden | Açıklama | Aşağıdaki ürünler için geçerli sorun giderme talimatları |
|---|---|---|
| İstemci bağlantıyı aniden kapattı | Bu durum, son kullanıcının tamamlanmadan önce isteği iptal etmesi nedeniyle istemci bağlantıyı kapattığında meydana gelir. | Herkese açık ve özel bulut kullanıcıları |
| İstemci uygulaması zaman aşımı | Bu durum, API proxy'sinin yanıtı işleyip göndermesi için yeterli süre geçmeden istemci uygulamasının zaman aşımına uğraması durumunda meydana gelir. Bu durum genellikle istemci zaman aşımı, yönlendirici zaman aşımından daha kısa olduğunda meydana gelir. | Herkese açık ve özel bulut kullanıcıları |
Sık karşılaşılan teşhis adımları
Bu hatayı teşhis etmek için aşağıdaki araçlardan/tekniklerden birini kullanın:
- API Monitoring
- NGINX erişim günlükleri
API Monitoring
API İzleme'yi kullanarak hatayı teşhis etmek için:
- Analyze > API Monitoring > Investigate (Analiz > API İzleme > İnceleme) sayfasına gidin.
4xxhatalarını filtreleyin ve zaman aralığını seçin.- Durum Kodu'nu Zaman'a göre çizin.
- Aşağıda gösterildiği gibi
499hataları olan bir hücre seçin:
- Sağdaki bölmede
499hatasıyla ilgili bilgileri aşağıdaki gibi görürsünüz:
- Sağdaki bölmede Günlükleri görüntüle'yi tıklayın.

Trafik Günlükleri penceresinde, bazı
499hataları için aşağıdaki ayrıntıları not edin:- İstek:Bu, aramaları yapmak için kullanılan istek yöntemini ve URI'yi sağlar.
- Yanıt Süresi:Bu metrik, istek için geçen toplam süreyi gösterir.
API İzleme GET logs API'sini kullanarak da tüm günlükleri alabilirsiniz. Örneğin,
org,env,timeRangevestatusgünlüklerini sorgulayarak istemcinin zaman aşımına uğradığı işlemlere ait tüm günlükleri indirebilirsiniz.API İzleme, HTTP
-hataları için proxy'yi499olarak ayarladığından, sanal ana makine ve yolla ilişkili proxy'yi almak için API'yi (Günlükler API'si) kullanabilirsiniz.For example :
curl "https://apimonitoring.enterprise.apigee.com/logs/apiproxies?org=ORG&env=ENV&select=https://VIRTUAL_HOST/BASEBATH" -H "Authorization: Bearer $TOKEN"
- Ek
499hata için Yanıt Süresi'ni inceleyin ve Yanıt Süresi'nin tüm499hatalarda tutarlı olup olmadığını (örneğin 30 saniye) kontrol edin.
NGINX erişim günlükleri
NGINX erişim günlüklerini kullanarak hatayı teşhis etmek için:
- Özel bulut kullanıcısıysanız HTTP
499hatalarıyla ilgili temel bilgileri belirlemek için NGINX erişim günlüklerini kullanabilirsiniz. - NGINX erişim günlüklerini kontrol edin:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log 499Belirli bir süre boyunca hatalar (sorun geçmişte yaşandıysa) olup olmadığını veya499ile hâlâ başarısız olan istekler olup olmadığını kontrol etmek için arama yapın.- Bazı
499hataları için aşağıdaki bilgileri göz önünde bulundurun:- Toplam Yanıt Süresi
- İstek URI'si
- Kullanıcı aracısı
NGINX erişim günlüğünden örnek 499 hatası:
2019-08-23T06:50:07+00:00 rrt-03f69eb1091c4a886-c-sy 50.112.119.65:47756 10.10.53.154:8443 10.001 - - 499 - 422 0 GET /v1/products HTTP/1.1 - okhttp/3.9.1 api.acme.org rrt-03f69eb1091c4a886-c-sy-13001-6496714-1 50.112.119.65 - - - - - - - -1 - - dc-1 router-pod-1 rt-214-190301-0020137-latest-7d 36 TLSv1.2 gateway-1 dc-1 acme prod https -
Bu örnekte aşağıdaki bilgileri görüyoruz:
- Toplam yanıt süresi:
10.001saniye. Bu, istemcinin 10.001 saniye sonra zaman aşımına uğradığını gösterir. - İstek:
GET /v1/products - Düzenleyen:
api.acme.org - Kullanıcı aracısı:
okhttp/3.9.1
- Tüm
499hatalarında Toplam Yanıt Süresi ve Kullanıcı Aracısı değerlerinin tutarlı olup olmadığını kontrol edin.
Neden: İstemci bağlantıyı aniden kapattı
Teşhis
- Bir tarayıcıda veya mobil uygulamada çalışan tek sayfalık bir uygulamadan bir API çağrıldığında, son kullanıcı tarayıcıyı aniden kapatırsa, aynı sekmede başka bir web sayfasına giderse veya yüklemeyi durdur'u tıklayarak ya da dokunarak sayfanın yüklenmesini durdurursa tarayıcı isteği iptal eder.
- Bu durumda, HTTP
499durumuna sahip işlemlerin istek işleme süresi (Yanıt Süresi) genellikle her istek için farklılık gösterir. -
Bunun nedeni olup olmadığını belirlemek için Yanıt Süresi'ni karşılaştırabilir ve Genel teşhis adımları bölümünde açıklandığı gibi API izleme veya NGINX erişim günlüklerini kullanarak
499hataların her biri için farklı olup olmadığını doğrulayabilirsiniz.
Çözünürlük
- Bu durum normaldir ve HTTP
499hataları az sayıda gerçekleşiyorsa genellikle endişelenmenize gerek yoktur. -
Aynı URL yolu için sık sık yaşanıyorsa bu durum, söz konusu yolla ilişkili belirli bir proxy'nin çok yavaş olmasından ve kullanıcıların beklemek istememesinden kaynaklanabilir.
Hangi proxy'nin etkilenebileceğini öğrendikten sonra, proxy gecikmesine neyin neden olduğunu daha ayrıntılı olarak incelemek için Gecikme analizi kontrol panelini kullanın.
- Bu durumda, Ortak teşhis adımlarındaki adımları kullanarak etkilenen proxy'yi belirleyin.
- Proxy gecikmesine neyin neden olduğunu daha ayrıntılı bir şekilde incelemek ve sorunu düzeltmek için Gecikme analizi kontrol paneli'ni kullanın.
- Gecikmenin belirli bir proxy için beklendiğini düşünüyorsanız kullanıcılarınızı bu proxy'nin yanıt vermesinin biraz zaman alacağı konusunda bilgilendirmeniz gerekebilir.
Neden: İstemci uygulaması zaman aşımı
Bu durum, çeşitli senaryolarda yaşanabilir.
-
İsteğin normal çalışma koşullarında tamamlanmasının belirli bir süre (örneğin 10 saniye) sürmesi beklenir. Ancak istemci uygulaması yanlış bir zaman aşımı değeriyle (örneğin 5 saniye) ayarlanır. Bu durum, API isteği tamamlanmadan önce istemci uygulamasının zaman aşımına uğramasına ve
499'ya yol açar. Bu durumda, istemci zaman aşımını uygun bir değere ayarlamamız gerekir. - Bir hedef sunucu veya geri çağırma işlemi beklenenden uzun sürüyor. Bu durumda, uygun bileşeni düzeltmeniz ve zaman aşımı değerlerini de uygun şekilde ayarlamanız gerekir.
- İstemci artık yanıta ihtiyaç duymadığı için işlemi iptal etti. Bu durum, otomatik tamamlama veya kısa süreli yoklama gibi yüksek sıklıklı API'lerde görülebilir.
Teşhis
API Monitoring veya NGINX erişim günlükleri
API İzleme veya NGINX erişim günlüklerini kullanarak hatayı teşhis edin:
- Genel teşhis adımları başlıklı makalede açıklandığı gibi HTTP
499işlemleri için API izleme günlüklerini veya NGINX erişim günlüklerini kontrol edin. 499hatalarının tümünde Yanıt Süresi'nin tutarlı olup olmadığını belirleyin.- Evetse belirli bir istemci uygulaması, kendi tarafında sabit bir zaman aşımı yapılandırmış olabilir. Bir API proxy'si veya hedef sunucu yavaş yanıt veriyorsa istemcinin zaman aşımı, proxy'nin zaman aşımına uğramasından önce gerçekleşir. Bu da aynı URI yolu için büyük miktarda HTTP
499sile sonuçlanır. Bu durumda, belirli bir istemci uygulamasını belirlemenize yardımcı olabilecek NGINX erişim günlüklerinden Kullanıcı Aracısı'nı belirleyin. - Ayrıca Apigee'nin önünde Akamai, F5, AWS ELB gibi bir yük dengeleyici de olabilir. Apigee, özel bir yük dengeleyicinin arkasında çalışıyorsa yük dengeleyicinin istek zaman aşımı, Apigee API zaman aşımından daha uzun olacak şekilde yapılandırılmalıdır. Varsayılan olarak, Apigee yönlendiricinin zaman aşımı süresi 57 saniyedir. Bu nedenle, yük dengeleyicide 60 saniyelik bir istek zaman aşımı yapılandırmak uygundur.
Trace
Trace'i kullanarak hatayı teşhis etme
Sorun devam ediyorsa (499 hataları devam ediyorsa) aşağıdaki adımları uygulayın:
- Edge kullanıcı arayüzünde etkilenen API için izleme oturumunu etkinleştirin.
- Hatayı bekleyin veya API çağrınız varsa bazı API çağrıları yapıp hatayı yeniden oluşturun.
- Her aşamada geçen süreyi kontrol edin ve en çok zamanın harcandığı aşamayı not alın.
- Aşağıdaki aşamalardan birinin hemen ardından en uzun süre geçen hatayı görürseniz bu, arka uç sunucusunun yavaş olduğunu veya isteği işlemek için uzun zaman aldığını gösterir:
- İstek hedef sunucuya gönderildi
- ServiceCallout politikası
Hedef sunucuya İstek gönderildikten sonra Ağ Geçidi Zaman Aşımı'nı gösteren örnek bir kullanıcı arayüzü izi aşağıda verilmiştir:

Çözünürlük
- Apigee Edge üzerinden API isteği akışına dahil olan farklı bileşenlerde hangi zaman aşımı değerlerinin ayarlanması gerektiğini anlamak için G/Ç zaman aşımını yapılandırma ile ilgili en iyi uygulamalar başlıklı makaleyi inceleyin.
- En iyi uygulamalara uygun olarak istemci uygulamasında uygun bir zaman aşımı değeri ayarladığınızdan emin olun.
Sorun devam ederse Toplanması gereken teşhis bilgileri bölümüne gidin .
Teşhis bilgilerini toplamalıdır
Sorun devam ederse aşağıdaki teşhis bilgilerini toplayın ve Apigee Edge Destek Ekibi ile iletişime geçin.
Herkese açık bulut kullanıcısıysanız aşağıdaki bilgileri sağlayın:
- Kuruluş adı
- Ortam adı
- API proxy'si adı
- Zaman aşımı hatasını yeniden oluşturmak için kullanılan
curlkomutunu tamamlayın. - İstemci zaman aşımı hataları aldığınız API isteklerinin izleme dosyası
Özel Cloud kullanıcısıysanız aşağıdaki bilgileri sağlayın:
- Başarısız olan istekler için gözlemlenen hata mesajının tamamı
- Ortam adı
- API proxy paketi
- İstemci zaman aşımı hataları aldığınız API isteklerinin izleme dosyası
- NGINX erişim günlükleri (
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log) - Mesaj İşleyici sistem günlükleri (
/opt/apigee/var/log/edge-message-processor/logs/system.log)