Estás viendo la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.
InvalidQuotaInterval
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision_number] Invalid quota interval [interval] in quota policy [policy_name].
Ejemplo de mensaje de error
Error Saving Revision 1
Invalid quota interval 0.1 in quota policy Quota-1.
Captura de pantalla del ejemplo.
Causa
Si el intervalo de cuota especificado en el elemento <Interval>
de la política de cuotas no es un número entero, falla la implementación del proxy de API.
Por ejemplo, si el intervalo de cuota especificado es 0.1 en el elemento <Interval>
de una política de cuotas, la implementación del proxy de API fallará.
Diagnóstico
Identifica la política de cuotas en la que se produjo el error y el intervalo de cuota no válido. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es
Quota-1
y el intervalo de cuota no válido es0.1
:Error Saving Revision 1 Invalid quota interval 0.1 in quota policy Quota-1.
Verifica que el valor del intervalo de cuota especificado en la política de cuotas con errores coincida con el valor identificado en el mensaje de error (paso 1 anterior). Por ejemplo, en la siguiente política, se especifica el valor del intervalo de cuota como
0.1
, que coincide con lo que contiene el mensaje de error:<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>
Si el intervalo de cuota especificado no es un número entero, esa es la causa del error.
En la política de cuotas de ejemplo que se muestra arriba, el valor del intervalo de cuota es 0.1, que no es un número entero. Por lo tanto, la implementación del proxy de API falla con el siguiente error:
Invalid quota interval 0.1 in quota policy Quota-1.
Solución
Asegúrate de que el valor del intervalo de cuota especificado en el elemento <Interval>
de la política de cuotas sea un número entero. Por ejemplo:
<?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
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
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].
Ejemplo de mensaje de error
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.
Captura de pantalla del ejemplo.
Causa
Si la unidad de tiempo especificada en el elemento <TimeUnit>
de la política de cuotas no es compatible, la implementación del proxy de API fallará.
Las unidades de tiempo admitidas son minute
, hour
, day
, week
y month
.
Por ejemplo, si la unidad de tiempo se especifica como year
en el elemento <TimeUnit>
de la política de cuotas, la implementación del proxy de API falla.
Diagnóstico
Identifica la política de cuotas en la que se produjo el error y la unidad de tiempo no válida. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es
Quota-1
y la unidad de tiempo no esyear
:Invalid quota interval time unit year in quota policy Quota-1 in Revision 1 of application Quota_test, in organization aprabhashankar-eval.
Verifica que la unidad de tiempo especificada en el elemento
<TimeUnit>
de la política de cuotas coincida con la unidad de tiempo identificada en el mensaje de error (paso 1 anterior). Por ejemplo, en la siguiente política, se especifica el valor del intervalo de cuota comoyear
, que coincide con lo que contiene el mensaje de error:<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>
Si la unidad de tiempo especificada en la política de cuotas no es compatible, esa es la causa del error.
En la política de cuotas de ejemplo que se muestra arriba, la unidad de tiempo se especifica como
year
, que no es compatible. Por lo tanto, la implementación del proxy de API falla con el siguiente error:Invalid quota interval time unit year in quota policy Quota-1 in Revision 1 of application Quota_test, in organization aprabhashankar-eval.
Solución
Asegúrate de que se admita la unidad de tiempo especificada en el elemento <TimeUnit>
de la política de cuotas. Por ejemplo:
<?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
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision_number] No enum constant com.apigee.quota.types.QuotaType.[type].
Ejemplo de mensaje de error
Error Saving Revision 1
No enum constant com.apigee.quota.types.QuotaType.window.
Captura de pantalla del ejemplo.
Causa
Si el tipo de cuota especificado por el atributo type
en el elemento <Quota>
de la política de cuotas no es válido, la implementación del proxy de API falla.
Los tipos de cuota admitidos son default
, calendar
, flexi
y rollingwindow
.
Por ejemplo, si el tipo de política especificado como window
en el elemento <Quota>
de la política de cuotas, la implementación del proxy de API falla.
Diagnóstico
Identifica el tipo de cuota no válido que se usó en la política de cuotas. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el tipo de política no válido es
window
:Error Saving Revision 1 No enum constant com.apigee.quota.types.QuotaType.window.
Examine todas las políticas de cuotas en el proxy de API específico en el que se produjo el error. Si hay una política de cuotas en la que el tipo de cuota especificado en el elemento
<Quota>
coincide con el tipo no compatible identificado en el paso 1, esa es la causa del error.Por ejemplo, en la siguiente política, se especifica el encabezado como
window
, que coincide con el mensaje de error:<?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>
Dado que el atributo de tipo se establece como
window
, que no es compatible, la implementación del proxy de API falla con el error:No enum constant com.apigee.quota.types.QuotaType.window.
Solución
Asegúrate de que sea compatible el tipo de cuota especificado por el atributo type
en el elemento <Quota>
de la política de cuotas. Por ejemplo:
<?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
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision_number] Invalid Starttime:[start_time]; Start Time should be of the format yyyy-MM-dd HH:mm:ss.
Ejemplo de mensaje de error
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.
Captura de pantalla del ejemplo.
Causa
Si el formato del tiempo especificado en el elemento <StartTime>
de la política de cuotas no es válido, fallará la implementación del proxy de la API.
El formato válido es yyyy-MM-dd HH:mm:ss
, que es el formato de fecha y hora ISO 8601.
Por ejemplo, si la hora especificada en el elemento <StartTime>
de la política de cuotas es 7-16-2017 12:00:00
, fallará la implementación del proxy de API.
Diagnóstico
Identifica la hora de inicio no válida especificada en la política de cuotas. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, la hora de inicio no válida es
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.
Examine todas las políticas de cuotas en el proxy de API específico en el que se produjo el error. Si hay una política de cuotas en la que el valor especificado en el elemento
<StartTime>
coincide con la hora de inicio no válida identificada en el paso 1, esa es la causa del error.Por ejemplo, en la siguiente política, se especifica el encabezado como
7-16-2017 12:00:00
, que coincide con el mensaje de error:<?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>
Dado que el valor establecido para
<StartTime>
se configuró como7-16-2017 12:00:00
, que no es compatible con el formato de fecha y hora requerido, la implementación del proxy de API falla con el error:Invalid Starttime:7-16-2017 12:00:00; Start Time should be of the format yyyy-MM-dd HH:mm:ss.
Solución
Asegúrate de que el formato de la hora de inicio especificado en el elemento <StartTime>
de la política de cuotas sea válido según el formato requerido yyyy-MM-dd HH:mm:ss
. Por ejemplo:
<?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
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision_number] Starttime is not supported for quotatype [quota_type]. Starttime is supported only for calendar based type.
Ejemplo de mensaje de error
Error Saving Revision 1
Starttime is not supported for quotatype flexi. Starttime is supported only for calendar based type.
Captura de pantalla del ejemplo.
Causa
Si el elemento <StartTime>
se especifica en una política de cuotas cuyo tipo de cuota no es de tipo de calendario, fallará la implementación del proxy de la API.
El elemento <StartTime>
solo es compatible con el tipo de cuota calendar
.
Por ejemplo, si el atributo type
se establece en flexi
o rolling window
en el elemento <Quota>
de la política de cuotas, la implementación del proxy de API falla.
Diagnóstico
Identifica el tipo de cuota especificado en la política de cuotas con errores. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, la hora de inicio no válida es
flexi
Starttime is not supported for quotatype flexi. Starttime is supported only for calendar based type.
Examine todas las políticas de cuotas en el proxy de API específico en el que se produjo el error. Si hay una política de cuotas en la que el atributo de tipo especificado coincide con el tipo de cuota identificado en el paso 1 y se especifica el elemento
<StartTime>
, esa es la causa del error.Por ejemplo, la siguiente política especifica el tipo de cuota como
flexi
, que coincide con lo que contiene el mensaje de error y también especifica el elemento<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>
Dado que el elemento
<StartTime>
se especifica en la política de cuotas cuyo tipo de cuota se especifica comoflexi
, la implementación del proxy de API falla con el siguiente error:Starttime is not supported for quotatype flexi. Starttime is supported only for calendar based type.
Solución
Asegúrate de que el elemento <StartTime>
no se especifique cuando el tipo de cuota indicado por el atributo type
en el elemento <Quota>
sea flexi
o rolling window
. Por ejemplo:
<?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
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision number] Invalid timeunit second for distributed quota.
Ejemplo de mensaje de error
Error Saving Revision 1
Invalid timeunit second for distributed quota.
Captura de pantalla del ejemplo.
Causa
Si el elemento <Distributed>
se configura como true
y el elemento <TimeUnit>
se configura como second
, fallará la implementación del proxy de la API. La unidad de tiempo second
no es válida para una cuota distribuida.
Cuando el elemento Distributed
se establece en true
, la política debe mantener un contador central y sincronizarlo continuamente en todos los procesadores de mensajes. Por lo tanto, sería difícil sincronizar y verificar que la cantidad de solicitudes no supere la cuota especificada en un intervalo de tiempo corto, como segundos. Por este motivo, la unidad de tiempo second
se considera no válida para la cuota distribuida.
Diagnóstico
Examine todas las políticas de cuotas en el proxy de API específico en el que se produjo el error. Si hay una política de cuotas con un elemento <TimeUnit>
establecido en second
y el elemento <Distributed>
se establece en true
, esa es la causa del error.
Por ejemplo, la siguiente política tiene un elemento <TimeUnit>
establecido en second
y el elemento <Distributed>
se establece en 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>
Solución
Asegúrate de que el elemento <TimeUnit>
nunca se configure como second
cuando el elemento <Distributed>
se configure como verdadero. El elemento <TimeUnit>
se puede establecer en cualquiera de los otros valores permitidos: minute, hour, day, week,
o month
. El siguiente es un ejemplo de esto:
<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
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision number] SyncIntervalInSeconds should be a value greater than zero.
Ejemplo de mensaje de error
Error Saving Revision 1
SyncIntervalInSeconds should be a value greater than zero.
Captura de pantalla del ejemplo.
Causa
Si el valor especificado para el elemento <SyncIntervalInSeconds>
dentro del elemento <AsynchronousConfiguration>
en una política de cuota es inferior a cero, fallará la implementación del proxy de la API.
Diagnóstico
Examine todas las políticas de cuotas en el proxy de API específico en el que se produjo el error. Si hay una política de cuotas en la que el elemento <SyncIntervalInSeconds>
se establece en un valor inferior a cero, dentro del elemento <AsynchronousConfiguration>
, esa es la causa del error.
Por ejemplo, la siguiente política tiene un valor negativo especificado para el elemento <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>
Solución
Asegúrate de especificar siempre un número entero positivo para el elemento <SyncIntervalInSeconds>
dentro del elemento <AsynchronousConfiguration>
en una política de cuotas. Por ejemplo:
<?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
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision number] AsynchronousConfiguration is not valid for synchronous quota.
Ejemplo de mensaje de error
Error Saving Revision 2
AsynchronousConfiguration is not valid for synchronous quota.
Captura de pantalla del ejemplo.
Causa
Si el valor del elemento <Synchronous>
se establece en true
en una política de cuotas, que también tiene una configuración asíncrona definida con el elemento <AsynchronousConfiguration>
, fallará la implementación del proxy de la API.
Diagnóstico
Examine todas las políticas de cuotas en el proxy de API específico en el que se produjo el error. Si hay una política de cuotas en la que el elemento <Synchronous>
se configura como true
y si también tiene definido un elemento <AsynchronousConfiguration>
, esa es la causa del error.
Por ejemplo, la siguiente política tiene un elemento <Synchronous>
configurado como true
y también un elemento <AsynchronousConfiguration>
definido:
<?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>
Solución
Asegúrate de que no haya una configuración asíncrona definida con el elemento <AsynchronousConfiguration>
si el elemento <Synchronous>
se configura como true
en una política de cuotas.
El ejemplo anterior se puede corregir si quitas la sección <AsynchronousConfiguration>
como se muestra a continuación:
<?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>