Fehlerbehebung bei der Bereitstellung von Kontingentrichtlinien

Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.

InvalidQuotaInterval

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Revision 1.

Ursache

Wenn das im Element <Interval> der Kontingentrichtlinie angegebene Kontingentintervall keine Ganzzahl ist, schlägt die Bereitstellung des API-Proxy fehl.

Beispiel: Wenn das angegebene Kontingentintervall im Element <Interval> einer Kontingentrichtlinie 0, 1 beträgt, schlägt die Bereitstellung des API-Proxy fehl.

Diagnose

  1. Ermitteln Sie die Kontingentrichtlinie, in der der Fehler aufgetreten ist, sowie das ungültige Kontingentintervall. Diese Information finden Sie in der Fehlermeldung. Im folgenden Fehler ist der Richtlinienname beispielsweise Quota-1 und das ungültige Kontingentintervall ist 0.1:

    Error Saving Revision 1
    Invalid quota interval 0.1 in quota policy Quota-1.
    
  2. Prüfen Sie, ob der Wert des in der fehlgeschlagenen Kontingentrichtlinie angegebenen Kontingentintervalls mit dem in der Fehlermeldung angegebenen Wert übereinstimmt (Schritt 1 oben). Beispiel: Folgende Richtlinie gibt den Wert des Kontingentintervalls als 0.1 an, was dem Inhalt der Fehlermeldung entspricht:

    <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. Ist das angegebene Intervallintervall keine Ganzzahl, so ist dies die Fehlerursache.

    In der obigen Beispiel-Kontingentrichtlinie ist der Wert des Kontingentintervalls 0, 1, also keine Ganzzahl. Entsprechend schlägt die Bereitstellung des API-Proxys mit folgendem Fehler fehl:

    Invalid quota interval 0.1 in quota policy Quota-1.
    

Lösung

Achten Sie darauf, dass der Wert des im <Interval>-Element der Kontingentrichtlinie angegebenen Kontingentintervalls eine Ganzzahl ist. Beispiel:

<?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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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].

Beispiel für Fehlermeldung

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.

Beispiel-Screenshot

Fehler beim Speichern von Revision 1.

Ursache

Wird die im Element <TimeUnit> der Kontingentrichtlinie angegebene Zeiteinheit nicht unterstützt, so schlägt die Bereitstellung des API-Proxys fehl.

Die unterstützten Zeiteinheiten sind minute, hour, day, week und month.

Beispiel: Wenn die Zeiteinheit im <TimeUnit>-Element der Kontingentrichtlinie als year angegeben wird, schlägt die Bereitstellung des API-Proxys fehl.

Diagnose

  1. Ermitteln Sie die Kontingentrichtlinie, in der der Fehler aufgetreten ist, sowie die ungültige Zeiteinheit. Diese Information finden Sie in der Fehlermeldung. Im folgenden Fehler lautet der Richtlinienname beispielsweise Quota-1 und die ungültige Zeiteinheit ist year:

    Invalid quota interval time unit year in quota policy Quota-1
    in Revision 1 of application Quota_test, in organization aprabhashankar-eval.
    
  2. Prüfen Sie, ob die im <TimeUnit>-Element der Kontingentrichtlinie angegebene Zeiteinheit mit der in der Fehlermeldung angegebenen Zeiteinheit übereinstimmt (Schritt 1 oben). Beispiel: Folgende Richtlinie gibt den Wert des Kontingentintervalls als year an, was dem Inhalt der Fehlermeldung entspricht:

    <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. Wird die in der Kontingentrichtlinie angegebene Zeiteinheit nicht unterstützt, so ist dies die Fehlerursache.

    In der oben gezeigten Beispiel-Kontingentrichtlinie wird die Zeiteinheit als year angegeben. Diese Zeiteinheit wird nicht unterstützt. Entsprechend schlägt die Bereitstellung des API-Proxys mit folgendem Fehler fehl:

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

Lösung

Achten Sie darauf, dass die im <TimeUnit>-Element der Kontingentrichtlinie angegebene Zeiteinheit unterstützt wird. Beispiel:

<?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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Revision 1.

Ursache

Wenn der durch das Attribut type im Element <Quota> der Kontingentrichtlinie angegebenen Typ des Kontingents unzulässig ist, schlägt die Bereitstellung des API-Proxys fehl.

Unterstützte Kontingenttypen sind default, calendar, flexi und rollingwindow.

Beispiel: Ist der im Element <Quota> der Kontingentrichtlinie festgelegte Typ der Richtlinie window, so schlägt die Bereitstellung des API-Proxys fehl.

Diagnose

  1. Ermitteln Sie den ungültigen Kontingenttyp, der in der Kontingentrichtlinie verwendet wird. Diese Informationen finden Sie in der Fehlermeldung. Im folgenden Fehler lautet der ungültige Richtlinientyp beispielsweise window:

    Error Saving Revision 1
    No enum constant com.apigee.quota.types.QuotaType.window.
    
  2. Prüfen Sie alle Kontingentrichtlinien im jeweiligen API-Proxy, in dem der Fehler aufgetreten ist. Gibt es eine Kontingentrichtlinie, bei der der im <Quota>-Element angegebene Kontingenttyp mit dem in Schritt 1 angegebenen, nicht unterstützten Typ übereinstimmt, so ist dies die Ursache des Fehlers.

    Beispiel: Die folgende Richtlinie gibt den Typ als window an, was dem Inhalt der Fehlermeldung entspricht:

    <?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>
    

    Da als Typattribut window festgelegt ist, was nicht unterstützt wird, schlägt die Bereitstellung des API-Proxys mit folgendem Fehler fehl:

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

Lösung

Prüfen Sie, ob der durch das Attribut type im <Quota>-Element der Kontingentrichtlinie bestimmte Kontingenttyp unterstützt wird. Beispiel:

<?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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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.

Beispiel-Screenshot

Fehler beim Speichern von Revision 1.

Ursache

Ist das Format der im Element <StartTime> der Kontingentrichtlinie angegebenen Zeit unzulässig, so schlägt die Bereitstellung des API-Proxys fehl.

Das gültige Format ist yyyy-MM-dd HH:mm:ss, also das Datums- und Uhrzeitformat ISO 8601.

Beispiel: Ist die im Element <StartTime> der Kontingentrichtlinie angegebene Zeit 7-16-2017 12:00:00, so schlägt die Bereitstellung des API-Proxys fehl.

Diagnose

  1. Identifizieren Sie die ungültige Startzeit, die in der Kontingentrichtlinie angegeben ist. Diese Information finden Sie in der Fehlermeldung. Im folgenden Fehler ist die ungültige Startzeit beispielsweise 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. Prüfen Sie alle Kontingentrichtlinien im jeweiligen API-Proxy, in dem der Fehler aufgetreten ist. Wenn es eine Kontingentrichtlinie gibt, bei der der im Element <StartTime> angegebene Wert mit der oben in Schritt 1 angegebenen ungültigen Startzeit übereinstimmt, ist dies die Ursache des Fehlers.

    Beispiel: Die folgende Richtlinie gibt den Typ als 7-16-2017 12:00:00 an, was dem Inhalt der Fehlermeldung entspricht:

    <?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>
    

    Da für <StartTime> der Wert 7-16-2017 12:00:00 festgelegt ist, der nicht dem erforderlichen Datums-/Uhrzeitformat entspricht, schlägt die Bereitstellung des API-Proxys mit folgendem Fehler fehl:

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

Lösung

Stellen Sie sicher, dass das Format der Startzeit im <StartTime>-Element der Kontingentrichtlinie das erforderlichen Format yyyy-MM-dd HH:mm:ss nutzt. Beispiel:

<?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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Revision 1.

Ursache

Wird das Element <StartTime> in einer Kontingentrichtlinie angegeben, deren Kontingenttyp kein Kalendertyp ist, schlägt die Bereitstellung des API-Proxys fehl.

Das <StartTime>-Element wird nur für den calendar-Kontingenttyp unterstützt.

Beispiel: Ist das Attribut type im Element <Quota> der Kontingentrichtlinie auf flexi oder rolling window gesetzt, so schlägt die Bereitstellung des API-Proxys fehl.

Diagnose

  1. Identifizieren Sie den Kontingenttyp, der in der Richtlinie zu fehlgeschlagenen Kontingenten angegeben ist. Diese Information finden Sie in der Fehlermeldung. Im folgenden Fehler ist die ungültige Startzeit beispielsweise flexi

    Starttime is not supported for quotatype flexi. Starttime is
    supported only for calendar based type.
    
  2. Prüfen Sie alle Kontingentrichtlinien im jeweiligen API-Proxy, in dem der Fehler aufgetreten ist. Ist eine Kontingentrichtlinie vorhanden, in der das angegebene Typenattribut dem in Schritt 1 angegebenen Kontingenttyp entspricht und ist weiter das Element <StartTime> angegeben, so ist dies die Fehlerursache.

    Beispiel: Folgende Richtlinie gibt den Kontingenttyp als flexi an, was dem Inhalt der Fehlermeldung entspricht. Weiter ist auch das Element <StartTime> bestimmt:

    <?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>
    

    Da das Element <StartTime> in der Kontingentrichtlinie angegeben ist, deren Kontingenttyp als flexi bestimmt wurde, schlägt das Deployment des API-Proxys mit folgendem Fehler fehl:

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

Lösung

Achten Sie darauf, dass das <StartTime>-Element nicht angegeben wird, wenn der durch das Attribut type im <Quota>-Attribut angegebene Kontingenttyp flexi oder rolling window ist. Beispiel:

<?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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

Error Saving Revision 1
Invalid timeunit second for distributed quota.

Beispiel-Screenshot

Fehler beim Speichern von Revision 1.

Ursache

Ist das Element <Distributed> auf true und das Element <TimeUnit> auf second gesetzt, so schlägt die Bereitstellung des API-Proxys fehl. Die Zeiteinheit second ist für verteilte Kontingente unzulässig.

Ist das Element Distributed auf true eingestellt, so muss die Richtlinie einen zentralen Zähler einrichten und diesen kontinuierlich über alle Nachrichtenprozessoren hinweg synchronisieren. Entsprechend wäre es schwierig, eine Synchronisierung durchzuführen und gleichzeitig zu prüfen, ob die Anzahl der Anfragen das festgelegte Kontingent innerhalb einer kurzen Zeit, z. B. Sekunden, überschritten hat. Aus diesem Grund wird die Zeiteinheit second für verteilte Kontingente als unzulässig betrachtet.

Diagnose

Prüfen Sie alle Kontingentrichtlinien im jeweiligen API-Proxy, in dem der Fehler aufgetreten ist. Wenn es eine Kontingentrichtlinie gibt, bei der ein <TimeUnit>-Element auf second und das <Distributed>-Element auf true gesetzt ist, ist dies die Fehlerursache.

Beispiel: In folgender Richtlinie ist ein <TimeUnit>-Element auf second und das Element <Distributed> auf true festgelegt.

<?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>

Lösung

Achten Sie darauf, dass das <TimeUnit>-Element nicht auf second gesetzt ist, wenn das <Distributed>-Element auf "true" gesetzt ist. Das Element <TimeUnit> kann auf einen beliebigen der anderen zulässigen Werte gesetzt werden: minute, hour, day, week, oder month. Beispiel:

<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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Revision 1.

Ursache

Ist der für das Element <SyncIntervalInSeconds> im Element <AsynchronousConfiguration> in einer Kontingentrichtlinie angegebene Wert kleiner als null, so schlägt die Bereitstellung des API-Proxys fehl.

Diagnose

Prüfen Sie alle Kontingentrichtlinien im jeweiligen API-Proxy, in dem der Fehler aufgetreten ist. Gibt es eine Kontingentrichtlinie, in der das Element <SyncIntervalInSeconds> im Element <AsynchronousConfiguration> auf einen Wert kleiner als null gesetzt ist, so ist dies die Ursache des Fehlers.

Beispiel: Folgende Richtlinie enthält einen negativen Wert für das Element <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>

Lösung

Geben Sie immer eine positive Ganzzahl für das <SyncIntervalInSeconds>-Element im <AsynchronousConfiguration>-Element einer Kontingentrichtlinie an. Beispiel:

<?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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Revision 2.

Ursache

Ist in einer Kontingentrichtlinie, in der eine asynchrone Konfiguration mithilfe des Elements <AsynchronousConfiguration> vorhanden ist, der Wert des Elements <Synchronous> auf true gesetzt, so schlägt die Bereitstellung des API-Proxys fehl.

Diagnose

Prüfen Sie alle Kontingentrichtlinien im jeweiligen API-Proxy, in dem der Fehler aufgetreten ist. Gibt es eine Kontingentrichtlinie, in der das Element <Synchronous> auf true festgelegt ist und außerdem ein <AsynchronousConfiguration>-Element definiert ist, so ist dies die Fehlerursache.

Beispiel: Folgende Richtlinie hat ein <Synchronous>-Element, das auf true gesetzt ist. Weiter ist auch ein <AsynchronousConfiguration>-Element definiert:

<?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>

Lösung

Achten Sie darauf, dass mit dem Element <AsynchronousConfiguration> keine asynchrone Konfiguration definiert ist, wenn das Element <Synchronous> in einer Kontingentrichtlinie auf true gesetzt ist.

Um das obige Beispiel zu korrigieren, entfernen Sie den Abschnitt <AsynchronousConfiguration>, wie unten gezeigt:

<?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>