Устранение неполадок с развертыванием правил квоты

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

InvalidQuotaInterval

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

Error Saving Revision [revision_number]
Invalid quota interval [interval] in quota policy [policy_name].

Пример сообщения об ошибке

Error Saving Revision 1
Invalid quota interval 0.1 in quota policy Quota-1.

Пример скриншота

Причина

Если интервал квоты, указанный в элементе <Interval> правила квоты, не является целым числом, развертывание прокси-сервера API завершится неудачно.

Например, если в элементе <Interval> правила квоты указан интервал квоты 0,1, развертывание прокси-сервера API завершится неудачно.

диагностика;

  1. Определите правило квоты, в котором произошла ошибка, и недопустимый интервал квоты. Эту информацию можно найти в сообщении об ошибке. Например, в приведенной ниже ошибке название правила – Quota-1, а недопустимый интервал квоты – 0.1:

    Error Saving Revision 1
    Invalid quota interval 0.1 in quota policy Quota-1.
    
  2. Убедитесь, что значение интервала квоты, указанное в правиле квоты, которое не удалось применить, соответствует значению, указанному в сообщении об ошибке (шаг 1 выше). Например, в следующем правиле интервал квоты задан как 0.1, что соответствует значению в сообщении об ошибке:

    <Quota async="false" continueOnError="false" enabled="true" name="Quota-1">
     <DisplayName>Quota-1</DisplayName>
     <Properties />
     <Allow count="3" />
     <Interval>0.1</Interval>
     <TimeUnit>minute</TimeUnit>
    </Quota>
    
  3. Если указанный интервал квоты не является целым числом, это и есть причина ошибки.

    В примере выше значение интервала квоты равно 0, 1, то есть не является целым числом. Поэтому развертывание прокси API завершается неудачно с ошибкой:

    Invalid quota interval 0.1 in quota policy Quota-1.
    

Разрешение

Убедитесь, что значение интервала квоты, указанное в элементе <Interval> правила квоты, является целым числом. Пример:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota-1">
    <DisplayName>Quota-1</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
</Quota>

InvalidQuotaTimeUnit

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

Error Saving Revision [revision_number]
Invalid quota interval time unit [time_unit] in quota policy
[policy_name] in Revision [revision_number] of application
[proxy_name], in organization [org_name].

Пример сообщения об ошибке

Error Saving Revision 1
Invalid quota interval time unit year in quota policy Quota-1 in Revision 1 of application Quota_test, in organization aprabhashankar-eval.

Пример скриншота

Причина

Если единица времени, указанная в элементе <TimeUnit> правила квоты, не поддерживается, развертывание прокси-сервера API завершится неудачно.

Поддерживаются следующие единицы времени: minute, hour, day, week и month.

Например, если в элементе <TimeUnit> правила квоты в качестве единицы времени указано значение year, развертывание прокси-сервера API завершится неудачно.

диагностика;

  1. Определите правило квоты, в котором произошла ошибка, и недопустимую единицу времени. Эту информацию можно найти в сообщении об ошибке. Например, в приведенной ниже ошибке название правила – Quota-1, а недопустимая единица времени – year:

    Invalid quota interval time unit year in quota policy Quota-1
    in Revision 1 of application Quota_test, in organization aprabhashankar-eval.
    
  2. Убедитесь, что единица времени, указанная в элементе <TimeUnit> правила квоты, соответствует единице времени, указанной в сообщении об ошибке (шаг 1 выше). Например, в следующем правиле интервал квоты задан как year, что соответствует значению в сообщении об ошибке:

    <Quota async="false" continueOnError="false" enabled="true" name="Quota-1">
     <DisplayName>Quota-1</DisplayName>
     <Properties />
     <Allow count="3" />
     <Interval>1</Interval>
     <TimeUnit>year</TimeUnit>
    </Quota>
    
  3. Если единица времени, указанная в правилах квоты, не поддерживается, это и является причиной ошибки.

    В примере выше в правиле в отношении квоты на хранение в качестве единицы времени указано значение year, которое не поддерживается. Поэтому развертывание прокси API завершается неудачно с ошибкой:

    Invalid quota interval time unit year in quota policy Quota-1 in Revision 1 of application Quota_test, in organization aprabhashankar-eval.
    

Разрешение

Убедитесь, что единица времени, указанная в элементе <TimeUnit> правила квоты, поддерживается. Пример:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota-1">
    <DisplayName>Quota-1</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>month</TimeUnit>
</Quota>

InvalidQuotaType

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

Error Saving Revision [revision_number]
No enum constant com.apigee.quota.types.QuotaType.[type].

Пример сообщения об ошибке

Error Saving Revision 1
No enum constant com.apigee.quota.types.QuotaType.window.

Пример скриншота

Причина

Если тип квоты, указанный атрибутом type в элементе <Quota> правила Quota, недопустим, развертывание прокси-сервера API завершится неудачно.

Поддерживаются следующие типы квот: default, calendar, flexi и rollingwindow.

Например, если тип правила, указанный как window в элементе <Quota> правила квоты, не соответствует типу правила, указанному в элементе , развертывание прокси-сервера API завершится неудачно.

диагностика;

  1. Определите недопустимый тип квоты, используемый в правиле квоты. Эту информацию можно найти в сообщении об ошибке. Например, в следующей ошибке недопустимый тип правил – window:

    Error Saving Revision 1
    No enum constant com.apigee.quota.types.QuotaType.window.
    
  2. Проверьте все правила квоты в определенном прокси API, где произошел сбой. Если в правилах в отношении квот есть элемент <Quota>, тип квоты в котором совпадает с неподдерживаемым типом, выявленным на шаге 1, то именно это и является причиной ошибки.

    Например, в правилах ниже указан тип window, который соответствует типу в сообщении об ошибке:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Quota async="false" continueOnError="false" enabled="true" name="Quota-1" type="window">
        <DisplayName>Quota-1</DisplayName>
        <Properties/>
        <Allow count="3"/>
        <Interval>1</Interval>
        <TimeUnit>minute</TimeUnit>
        <StartTime>2017-7-16 12:00:00</StartTime>
        <MessageWeight ref="messageWeight"/>
    </Quota>
    

    Поскольку для атрибута type задано значение window, которое не поддерживается, развертывание прокси API завершается неудачно с ошибкой:

    No enum constant com.apigee.quota.types.QuotaType.window.
    

Разрешение

Убедитесь, что тип квоты, указанный в атрибуте type элемента <Quota> правила квоты, поддерживается. Пример:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota-1" type="rollingwindow">
    <DisplayName>Quota-1</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
    <StartTime>2017-7-16 12:00:00</StartTime>
    <MessageWeight ref="messageWeight"/>
</Quota>

InvalidStartTime

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

Error Saving Revision [revision_number]
Invalid Starttime:[start_time]; Start Time should be of the format yyyy-MM-dd HH:mm:ss.

Пример сообщения об ошибке

Error Saving Revision 1
Invalid Starttime:7-16-2017 12:00:00; Start Time should be of the format yyyy-MM-dd HH:mm:ss.

Пример скриншота

Причина

Если формат времени, указанный в элементе <StartTime> правила квоты, недопустим, развертывание прокси-сервера API завершится неудачно.

Допустимый формат – yyyy-MM-dd HH:mm:ss (дата и время в формате ISO 8601).

Например, если время, указанное в элементе <StartTime> правила квоты, – 7-16-2017 12:00:00, развертывание прокси-сервера API завершится неудачно.

диагностика;

  1. Определите недопустимое время начала, указанное в правиле квоты. Эту информацию можно найти в сообщении об ошибке. Например, в приведенной ниже ошибке недопустимое время начала – 7-16-2017 12:00:00.

    Invalid Starttime:7-16-2017 12:00:00; Start Time should be of the format yyyy-MM-dd HH:mm:ss.
    
  2. Проверьте все правила квоты в определенном прокси API, где произошел сбой. Если в каком-либо правиле квоты значение, указанное в элементе <StartTime>, совпадает с недопустимым временем начала, определенным на шаге 1, то это и является причиной ошибки.

    Например, в правилах ниже указан тип 7-16-2017 12:00:00, который соответствует типу в сообщении об ошибке:

    <?xml version="1.0" encoding="UTF-8"?>
    <Quota async="false" continueOnError="false" enabled="true" name="Quota-1" type="calendar">
       <DisplayName>Quota-1</DisplayName>
       <Properties />
       <Allow count="3" />
       <Interval>1</Interval>
       <TimeUnit>minute</TimeUnit>
       <StartTime>7-16-2017 12:00:00</StartTime>
    </Quota>
    

    Поскольку для переменной <StartTime> задано значение 7-16-2017 12:00:00, которое не соответствует требуемому формату даты и времени, развертывание прокси API завершается неудачно с ошибкой:

    Invalid Starttime:7-16-2017 12:00:00; Start Time should be of the format yyyy-MM-dd HH:mm:ss.
    

Разрешение

Убедитесь, что формат времени начала, указанный в элементе <StartTime> правила квоты, соответствует требуемому формату yyyy-MM-dd HH:mm:ss. Пример:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota-1" type="calendar">
    <DisplayName>Quota-1</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
    <StartTime>2017-7-16 12:00:00</StartTime>
</Quota>

StartTimeNotSupported

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

Error Saving Revision [revision_number]
Starttime is not supported for quotatype [quota_type]. Starttime is supported only for calendar based type.

Пример сообщения об ошибке

Error Saving Revision 1
Starttime is not supported for quotatype flexi. Starttime is supported only for calendar based type.

Пример скриншота

Причина

Если элемент <StartTime> указан в правиле квоты, тип которой не связан с календарем, развертывание прокси-сервера API завершится неудачно.

Элемент <StartTime> поддерживается только для типа квоты calendar.

Например, если атрибут type имеет значение flexi или rolling window в элементе <Quota> правила квоты, развертывание прокси-сервера API завершится неудачно.

диагностика;

  1. Определите тип квоты, указанный в правиле квоты, которое не удалось применить. Эту информацию можно найти в сообщении об ошибке. Например, в приведенной ниже ошибке недопустимое время начала – flexi.

    Starttime is not supported for quotatype flexi. Starttime is
    supported only for calendar based type.
    
  2. Проверьте все правила квоты в определенном прокси API, где произошел сбой. Если в правилах квоты атрибут типа соответствует типу квоты, определенному на шаге 1, и указан элемент <StartTime>, то это и является причиной ошибки.

    Например, в приведенном ниже правиле тип квоты указан как flexi, что соответствует сообщению об ошибке, а также указан элемент <StartTime>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Quota async="false" continueOnError="false" enabled="true" name="Quota-1" type="flexi">
        <DisplayName>Quota-1</DisplayName>
        <Properties/>
        <Allow count="3"/>
        <Interval>1</Interval>
        <TimeUnit>minute</TimeUnit>
        <StartTime>2017-7-16 12:00:00</StartTime>
    </Quota>
    

    Поскольку элемент <StartTime> указан в правиле квоты, тип которой задан как flexi, развертывание прокси API завершается неудачно с ошибкой:

    Starttime is not supported for quotatype flexi. Starttime is supported only for calendar based type.
    

Разрешение

Убедитесь, что элемент <StartTime> не указан, если тип квоты, заданный атрибутом type в элементе <Quota>, – flexi или rolling window. Пример:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota-1" type="flexi">
    <DisplayName>Quota-1</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
</Quota>

InvalidTimeUnitForDistributedQuota

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

Error Saving Revision [revision number]
Invalid timeunit second for distributed quota.

Пример сообщения об ошибке

Error Saving Revision 1
Invalid timeunit second for distributed quota.

Пример скриншота

Причина

Если для элемента <Distributed> задано значение true, а для элемента <TimeUnit> – second, развертывание прокси-сервера API завершится неудачно. Единица времени second недопустима для распределенной квоты.

Если для элемента Distributed задано значение true, то правило должно поддерживать центральный счетчик и постоянно синхронизировать его со всеми обработчиками сообщений. Поэтому синхронизировать и проверить, не превысило ли количество запросов указанную квоту за короткий промежуток времени, например за несколько секунд, будет сложно. По этой причине единица времени second считается недопустимой для распределенной квоты.

диагностика;

Проверьте все правила квоты в определенном прокси API, где произошел сбой. Если в правилах квоты есть элемент <TimeUnit> со значением second и элемент <Distributed> со значением true, то это и является причиной ошибки.

Например, в приведенном ниже правиле элемент <TimeUnit> имеет значение second, а элемент <Distributed> – значение true.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="CheckQuota" type="calendar">
    <DisplayName>CheckQuota</DisplayName>
    <Properties/>
    <Allow count="30"/>
    <Interval>1</Interval>
    <TimeUnit>second</TimeUnit>
    <StartTime>2018-8-05 12:00:00</StartTime>
    <Distributed>true</Distributed>
    <Synchronous>false</Synchronous>
</Quota>

Разрешение

Убедитесь, что элемент <TimeUnit> никогда не имеет значения second, если для элемента <Distributed> задано значение true. Элементу <TimeUnit> можно присвоить любое другое допустимое значение, например minute, hour, day, week, или month. Пример:

<Quota async="false" continueOnError="false" enabled="true" name="CheckQuota" type="calendar">
    <DisplayName>CheckQuota</DisplayName>
    <Properties/>
    <Allow count="30"/>
    <Interval>1</Interval>
    <TimeUnit>hour</TimeUnit>
    <StartTime>2018-8-05 12:00:00</StartTime>
    <Distributed>true</Distributed>
    <Synchronous>false</Synchronous>
</Quota>

InvalidSynchronizeIntervalForAsyncConfiguration

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

Error Saving Revision [revision number]
SyncIntervalInSeconds should be a value greater than zero.

Пример сообщения об ошибке

Error Saving Revision 1
SyncIntervalInSeconds should be a value greater than zero.

Пример скриншота

Причина

Если значение, указанное для элемента <SyncIntervalInSeconds> в элементе <AsynchronousConfiguration> в правиле квоты, меньше нуля, развертывание прокси-сервера API завершится неудачно.

диагностика;

Проверьте все правила квоты в определенном прокси API, где произошел сбой. Если в каком-либо правиле квоты элемент <SyncIntervalInSeconds> в элементе <AsynchronousConfiguration> имеет значение меньше нуля, это и является причиной ошибки.

Например, в приведенном ниже правиле для элемента <SyncIntervalInSeconds> указано отрицательное значение:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota_AsyncConfig" type="calendar">
    <DisplayName>Quota_AsyncConfig</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
    <StartTime>2017-7-16 12:00:00</StartTime>
    <Distributed>true</Distributed>
    <Synchronous>false</Synchronous>
    <AsynchronousConfiguration>
        <SyncIntervalInSeconds>-1</SyncIntervalInSeconds>
    </AsynchronousConfiguration>
</Quota>

Разрешение

Убедитесь, что в элементе <SyncIntervalInSeconds> внутри элемента <AsynchronousConfiguration> в правиле квоты всегда указано положительное целое число. Пример:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota_AsyncConfig" type="calendar">
    <DisplayName>Quota_AsyncConfig</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
    <StartTime>2017-7-16 12:00:00</StartTime>
    <Distributed>true</Distributed>
    <Synchronous>false</Synchronous>
    <AsynchronousConfiguration>
        <SyncIntervalInSeconds>5</SyncIntervalInSeconds>
    </AsynchronousConfiguration>
</Quota>

InvalidAsynchronizeConfigurationForSynchronousQuota

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

Error Saving Revision [revision number]
AsynchronousConfiguration is not valid for synchronous quota.

Пример сообщения об ошибке

Error Saving Revision 2
AsynchronousConfiguration is not valid for synchronous quota.

Пример скриншота

Причина

Если в правиле квоты значение элемента <Synchronous> задано как true, а асинхронная конфигурация определена с помощью элемента <AsynchronousConfiguration>, развертывание прокси-сервера API завершится неудачно.

диагностика;

Проверьте все правила квоты в определенном прокси API, где произошел сбой. Если в каком-либо правиле квоты элемент <Synchronous> имеет значение true и при этом определен элемент <AsynchronousConfiguration>, то это и является причиной ошибки.

Например, в приведенных ниже правилах есть элемент <Synchronous>, для которого задано значение true, а также определен элемент <AsynchronousConfiguration>:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota_AsyncConfig" type="calendar">
    <DisplayName>Quota_AsyncConfig</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
    <StartTime>2017-7-16 12:00:00</StartTime>
    <Distributed>true</Distributed>
    <Synchronous>true</Synchronous>
    <AsynchronousConfiguration>
     <SyncIntervalInSeconds>1</SyncIntervalInSeconds>
    </AsynchronousConfiguration>
</Quota>

Разрешение

Если в правиле квоты для элемента <Synchronous> задано значение true, убедитесь, что асинхронная конфигурация не определена с помощью элемента <AsynchronousConfiguration>.

Приведенный выше пример можно исправить, удалив раздел <AsynchronousConfiguration>, как показано ниже:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota_AsyncConfig" type="calendar">
    <DisplayName>Quota_AsyncConfig</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
    <StartTime>2017-7-16 12:00:00</StartTime>
    <Distributed>true</Distributed>
 <Synchronous>true</Synchronous>
</Quota>