Apigee Edge belgelerini görüntülüyorsunuz.
  Apigee X belgelerine gidin. info
InvalidMessageWeight
Hata kodu
policies.ratelimit.InvalidMessageWeight
Hata yanıtı gövdesi
{ "fault": {jdoe "faultstring": "Invalid message weight value [invalid_value]", "detail": { "errorcode": "policies.ratelimit.InvalidMessageWeight" } } }
Örnek Hata Mesajı
{
    "fault": {
        "faultstring": "Invalid message weight value 1.5",
        "detail": {
            "errorcode": "policies.ratelimit.InvalidMessageWeight"
        }
    }
}Neden
Bu hata, bir akış değişkeni aracılığıyla <MessageWeight> öğesi için belirtilen değer geçersizse (tam sayı olmayan bir değer) ortaya çıkar.
Örneğin, <MessageWeight> için akış değişkeninin değeri belirtiliyorsa
öğesi 1,5 (tam sayı olmayan bir değer) ise hata oluşur.
Teşhis
- Çivi'deki - <MessageWeight>öğesi için kullanılan geçersiz değeri belirleyin Tutuklama politikası. Bu bilgileri şu öğenin- faultstringöğesinde bulabilirsiniz: hata yanıtı. Örneğin, aşağıdaki hatada,- <MessageWeight>öğesi- 1.5:- "faultstring": "Invalid message weight value 1.5"
- Belirli API Proxy'sinde tüm Spike Arrest politikalarını inceleyin. hatası oluştu. Spike Arrest politikasının yürürlüğe girmesi bir veya daha fazla - <MessageWeight>öğesi belirtilir.- Örneğin, aşağıdaki politika - <MessageWeight>değerini- message_weight:adlı bir akış değişkeni aracılığıyla belirtir.- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SpikeArrest async="false" continueOnError="false" enabled="true" name="SpikeArrest_AuthProxy"> <DisplayName>SpikeArrest_AuthProxy</DisplayName> <Properties/> <Identifier ref="request.header.some-header-name"/> <Rate>100ps</Rate> <MessageWeight ref="message_weight"/> </SpikeArrest>
- Şu öğenin - <MessageWeight>öğesinde kullanılan değişkenin değerini belirleyin: belirlenen Spike Sabıka Politikaları. Akış değişkeninin değeri, HTTP üst bilgilerinden, sorgu parametrelerinden, XML veya JSON istek yükü verisinden ayıklanabilir ya da başka bir politikada tanımlanabilir.- Değişkenin ilk olarak tanımlandığı API proxy'sinde kodu bulun.
- Değişkenin tanımlandığı politikayı belirleyip önce değişken değerinin nasıl ayarlandığını kontrol edin.
- Akış değişkeninin değeri, yukarıdaki 1. adımda tanımlanan değerle eşleşiyorsa hatanın nedeni budur.
 - Örneğin, Spike Arrest'ten önce bir JavaScript politikasının kullanıldığını varsayalım. Politika, - message_weightdeğişkenini istek yöntemine göre aşağıda gösterilmiştir:- var verb = context.getVariable("request.verb"); context.setVariable("message_weight", "1.5"); if (verb == 'POST') { context.setVariable("message_weight", "2"); }- message_weightdeğişkeninin değerinin- 1.5olduğuna dikkat edin. geçersiz (tam sayı olmayan) değer.
Çözünürlük
MessageWeight öğesinin değerinin geçerli bir değer (tam sayı) olduğundan emin olun
değeri) ekleyebilirsiniz.
Yukarıda gösterilen örneği düzeltmek için JavaScript'teki message_weight değişkeninin değerini tam sayı olacak şekilde değiştirebilirsiniz:
var verb = context.getVariable("request.verb");
context.setVariable("message_weight", "1");
if (verb == 'POST') {
  context.setVariable("message_weight", "2");
}
FailedToResolveSpikeArrestRate
Hata kodu
policies.ratelimit.FailedToResolveSpikeArrestRate
Hata yanıtı gövdesi
{ "fault": { "faultstring": "Failed to resolve Spike Arrest Rate reference [reference] in SpikeArrest policy [api_policy]", "detail": { "errorcode": "policies.ratelimit.FailedToResolveSpikeArrestRate" } } }
Örnek Hata Mesajı
{
    "fault": {
        "faultstring": "Failed to resolve Spike Arrest Rate reference request.header.rate in SpikeArrest policy SpikeArrest_AuthProxy",
        "detail": {
            "errorcode": "policies.ratelimit.FailedToResolveSpikeArrestRate"
        }
    }
}Neden
Bu hata, <Rate> öğesinde ücret ayarını içeren değişkene yapılan referans, Spike Arrest politikasındaki bir değere çözülemiyorsa ortaya çıkar.  Bu öğe zorunludur ve şu öğede artış durdurma oranını belirtmek için kullanılır:
{int}pm veya {int}ps biçiminde olmalıdır. Örneğin {int}pm, 500pm,
yani dakikada 500 çağrı. Benzer şekilde, 10ps değeri saniye başına 10 arama anlamına gelir.
Teşhis
- Hatanın oluştuğu yerde Spike Arrest politikasını ve referans doğru şekilde çözümlenemeyen referanstır. Bu öğelerin her ikisini de değerini girin. - Örneğin, aşağıdaki hata dizesinde politika adı - SpikeArrest_AuthProxyve referans- request.header.rate:- "faultstring": "Failed to resolve Spike Arrest Rate reference request.header.rate in SpikeArrest policy SpikeArrest_AuthProxy"
- Başarısız olan Spike Arrest politika XML'inde referans adının kullanılan, hata dizesinde tanımlanan referans adıyla eşleşir (yukarıdaki 1. adım). ** ** - Örneğin, aşağıdaki politika referans içeren - öğesini ayarlar - request.header.rateadlı, hata dizesindeki değerle eşleşiyor:- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SpikeArrest async="false" continueOnError="false" enabled="true" name="SpikeArrest_AuthProxy"> <DisplayName>SpikeArrest_AuthProxy</DisplayName> <Properties/> <Identifier ref="request.header.some-header-name"/> <Rate ref="request.header.rate"/> </SpikeArrest>
- Değişkenin, tanımlı olup olmadığını ve değişkenin Çivi Önleme politikası uygulanıyor. 
- Değişken şunlardan biriyse: - kapsam dışında (politikanın geçerli olduğu belirli akışta kullanılamaz) yürütüldü) veya
- çözülemiyor (tanımlanmamış)
 - hatanın nedeni budur. - Yukarıda gösterilen örnekte, - <Rate>metriğindeki artış durdurma oranının değeri öğesinin rate adlı istek başlığından alınması gerekir. Ancak Edge request.header.rate sorununu çözemez. Bu durum rate başlığı, API isteğinin bir parçası olarak iletilmez.- Burada, istek: - curl -v http://jdoe-eval-test.apigee.net/check_spikearrest -H "Content-Type: application/json"- rate başlığı, isteğin bir parçası olarak iletilmediğinden Yukarıdaki Spike'taki - <Rate>öğesinde kullanılan request.header.rate Tutuklama politikası tanımlanmamış olduğundan çözülemez. Böylece size hata kodu:- policies.ratelimit.FailedToResolveSpikeArrestRate
Çözünürlük
<Rate> öğesinde başvurulan değişkenin mevcut olduğundan/tanımlandığından emin olun
ve Spike Arrest politikasının geçerli olduğu belirli akışta kullanılabilir.
Yukarıda gösterilen örneği düzeltmek için isteği aşağıda gösterildiği gibi rate başlığını içerecek şekilde değiştirebilirsiniz:
curl -v  http://jdoe-eval-test.apigee.net/check_spikearrest -H "Content-Type: application/json" -H "rate:30ps"