פתרון בעיות בפריסת מדיניות מכסות

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

InvalidQuotaInterval

הודעת שגיאה

פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:

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> של מדיניות המכסה הוא לא מספר שלם, פריסת proxy ל-API תיכשל.

לדוגמה, אם מרווח המכסה שצוין הוא 0.1 ברכיב <Interval> של מדיניות מכסה, ה-Deployment (פריסה) של ה-proxy ל-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 Proxy נכשלת עם השגיאה:

    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

הודעת שגיאה

פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:

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> של מדיניות המכסה לא נתמכת, הפריסה של proxy ל-API תיכשל.

יחידות הזמן הנתמכות הן minute,‏ hour,‏ day,‏ week ו-month.

לדוגמה, אם יחידת הזמן מוגדרת כ-year ברכיב <TimeUnit> של מדיניות הקצאת מכסה, פריסת proxy ל-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 Proxy נכשלת עם השגיאה:

    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

הודעת שגיאה

פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:

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 במכסה שצוינה במאפיין type ברכיב <Quota> של מדיניות מכסת השימוש לא תקין, פריסת proxy ל-API תיכשל.

סוגי המכסות הנתמכים הם default,‏ calendar,‏ flexi ו-rollingwindow.

לדוגמה, אם סוג המדיניות שצוין כ-window ברכיב <Quota> של מדיניות המכסה, פריסת proxy ל-API תיכשל.

אבחון

  1. מזהים את סוג המכסה הלא תקין שמוגדר במדיניות המכסות. אפשר למצוא את המידע הזה בהודעת השגיאה. לדוגמה, בשגיאה הבאה, סוג המדיניות הלא תקין הוא window:

    Error Saving Revision 1
    No enum constant com.apigee.quota.types.QuotaType.window.
    
  2. בודקים את כל מדיניות המכסות ב-API Proxy הספציפי שבו התרחשה השגיאה. אם יש מדיניות מכסת נפח שבה סוג המכסה שצוין ברכיב <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>
    

    מאחר שמאפיין הסוג מוגדר כ-window, שהוא לא נתמך, הפריסה של ה-API Proxy נכשלת עם השגיאה:

    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

הודעת שגיאה

פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:

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> של מדיניות המכסה לא תקין, הפריסה של proxy ל-API תיכשל.

הפורמט התקין הוא yyyy-MM-dd HH:mm:ss, שהוא פורמט התאריך והשעה של ISO 8601.

לדוגמה, אם הזמן שצוין ברכיב <StartTime> של מדיניות הקצאה הוא 7-16-2017 12:00:00, הפריסה של proxy ל-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 Proxy הספציפי שבו התרחשה השגיאה. אם יש מדיניות מכסת שימוש שבה הערך שצוין ברכיב <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 Proxy נכשלת עם השגיאה:

    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

הודעת שגיאה

פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:

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> מצוין במדיניות מכסה שסוג המכסה שלה אינו סוג לוח שנה, פריסת proxy ל-API תיכשל.

האלמנט <StartTime> נתמך רק בסוג המכסה calendar.

לדוגמה, אם המאפיין type מוגדר לערך flexi או rolling window ברכיב <Quota> של מדיניות מכסה, הפריסה של proxy ל-API נכשלת.

אבחון

  1. מזהים את סוג המכסה שצוין במדיניות המכסות שנכשלה. אפשר למצוא את המידע הזה בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שעת ההתחלה לא תקינה: flexi

    Starttime is not supported for quotatype flexi. Starttime is
    supported only for calendar based type.
    
  2. בודקים את כל מדיניות המכסות ב-API Proxy הספציפי שבו התרחשה השגיאה. אם יש מדיניות מכסה שבה מאפיין הסוג שצוין תואם לסוג המכסה שזוהה בשלב 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 Proxy נכשלת עם השגיאה:

    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

הודעת שגיאה

פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:

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, פריסת ה-proxy ל-API תיכשל. יחידת הזמן second לא תקינה למכסת שימוש מחולקת.

אם רכיב Distributed מוגדר לערך true, המדיניות צריכה לשמור על מונה מרכזי ולסנכרן אותו באופן רציף בכל מעבדי ההודעות. לכן, יהיה קשה לסנכרן וגם לוודא שמספר הבקשות לא חרג מהמכסה שצוינה בפרק זמן קצר כמו שניות. לכן, יחידת הזמן second נחשבת לא תקינה למכסת שימוש מחולקת.

אבחון

בודקים את כל מדיניות המכסות ב-API Proxy הספציפי שבו התרחשה השגיאה. אם יש מדיניות מכסה עם רכיב <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

הודעת שגיאה

פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:

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> במדיניות Quota (מכסה) קטן מאפס, פריסת proxy ל-API נכשלת.

אבחון

בודקים את כל מדיניות המכסות ב-API Proxy הספציפי שבו התרחשה השגיאה. אם יש מדיניות מכסה שבה הרכיב <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

הודעת שגיאה

פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:

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>, פריסת ה-proxy ל-API תיכשל.

אבחון

בודקים את כל מדיניות המכסות ב-API Proxy הספציפי שבו התרחשה השגיאה. אם יש מדיניות מכסה שבה הרכיב <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>