عیب یابی خطای استقرار خط مشی سهمیه، عیب یابی خطای استقرار خط مشی سهمیه

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

InvalidQuotaInterval

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا 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> خط مشی سهمیه یک عدد صحیح نباشد، استقرار پراکسی API با شکست مواجه می شود.

به عنوان مثال، اگر فاصله سهمیه مشخص شده 0.1 در عنصر <Interval> یک خط مشی سهمیه باشد، در آن صورت استقرار پراکسی API با شکست مواجه می شود.

تشخیص

  1. خط مشی Quota که در آن خطا رخ داده و فاصله سهمیه نامعتبر را مشخص کنید. می توانید این اطلاعات را از پیام خطا پیدا کنید. به عنوان مثال، در خطای زیر، نام خط مشی 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. اگر بازه سهمیه مشخص شده یک عدد صحیح نباشد، دلیل این خطا است.

    در مثال Quota Policy نشان داده شده در بالا، مقدار فاصله سهمیه 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 UI یا 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> خط‌مشی Quota پشتیبانی نشود، استقرار پراکسی API با شکست مواجه می‌شود.

واحدهای زمانی پشتیبانی شده عبارتند از minute ، hour ، day ، week و month .

به عنوان مثال، اگر واحد زمان به عنوان year در عنصر <TimeUnit> سیاست سهمیه مشخص شود، در آن صورت استقرار پراکسی API با شکست مواجه می شود.

تشخیص

  1. خط مشی Quota که در آن خطا رخ داده و واحد زمانی نامعتبر را شناسایی کنید. می توانید این اطلاعات را از پیام خطا پیدا کنید. به عنوان مثال، در خطای زیر، نام خط مشی 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> خط مشی Quota با واحد زمانی مشخص شده در پیام خطا مطابقت دارد (مرحله شماره 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> خط مشی Quota پشتیبانی می شود. به عنوان مثال:

<?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 UI یا 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 در عنصر <Quota> خط مشی Quota نامعتبر باشد، در این صورت استقرار پراکسی API با شکست مواجه می شود.

انواع سهمیه پشتیبانی شده default , calendar , flexi و rollingwindow هستند .

به عنوان مثال، اگر نوع خط مشی به عنوان window در عنصر <Quota> خط مشی 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> خط مشی 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 UI یا 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> خط مشی Quota نامعتبر باشد، در این صورت استقرار پراکسی API با شکست مواجه می شود.

قالب معتبر yyyy-MM-dd HH:mm:ss است که فرمت تاریخ و زمان ISO 8601 است.

به عنوان مثال، اگر زمان مشخص شده در عنصر <StartTime> خط مشی Quota 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 خاص که در آن شکست رخ داده است، بررسی کنید. اگر هر خط مشی Quota وجود داشته باشد که در آن مقدار مشخص شده در عنصر <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> خط مشی Quota مطابق با قالب مورد نیاز 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 UI یا 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> در یک خط مشی Quota مشخص شده باشد که نوع سهمیه آن از نوع تقویم نیست، در این صورت استقرار پراکسی API با شکست مواجه می شود.

عنصر <StartTime> فقط برای نوع سهمیه calendar پشتیبانی می شود.

به عنوان مثال، اگر ویژگی type در عنصر <Quota> از خط مشی Quota روی rolling window flexi یا چرخشی تنظیم شده باشد، استقرار پراکسی API با شکست مواجه می‌شود.

تشخیص

  1. نوع سهمیه مشخص شده در خط مشی ناموفق سهمیه را شناسایی کنید. می توانید این اطلاعات را از پیام خطا پیدا کنید. برای مثال در خطای زیر زمان شروع نامعتبر flexi است

    Starttime is not supported for quotatype flexi. Starttime is
    supported only for calendar based type.
    
  2. تمام خط مشی های سهمیه را در پروکسی API خاص که در آن شکست رخ داده است، بررسی کنید. اگر خط مشی Quota وجود داشته باشد که در آن مشخصه type مشخص شده با نوع سهمیه مشخص شده در مرحله شماره 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.
    

قطعنامه

هنگامی که نوع سهمیه مشخص شده با ویژگی type در عنصر <Quota> flexi یا rolling window باشد، مطمئن شوید که عنصر <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>
</Quota>

InvalidTimeUnitForDistributedQuota

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا 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 تنظیم شود، استقرار پراکسی API با شکست مواجه می شود. واحد زمانی second برای سهمیه توزیع شده نامعتبر است.

هنگامی که عنصر Distributed روی true تنظیم می شود، سیاست باید یک شمارنده مرکزی داشته باشد و به طور مداوم آن را در تمام پردازشگرهای پیام همگام سازی کند. بنابراین، همگام سازی و همچنین تأیید اینکه تعداد درخواست ها از سهمیه تعیین شده در یک بازه زمانی کوتاه مانند ثانیه تجاوز نکرده باشد، مشکل خواهد بود. به همین دلیل، واحد زمانی second برای سهمیه توزیع شده نامعتبر در نظر گرفته می شود.

تشخیص

تمام خط مشی های سهمیه را در پروکسی API خاص که در آن شکست رخ داده است، بررسی کنید. اگر هر خط مشی Quota با عنصر <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>

قطعنامه

اطمینان حاصل کنید که وقتی عنصر <Distributed> روی true تنظیم می شود، عنصر <TimeUnit> هرگز روی second تنظیم نمی شود. عنصر <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 UI یا 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 کمتر از صفر باشد، در آن صورت استقرار پراکسی API با شکست مواجه می‌شود.

تشخیص

تمام خط مشی های سهمیه را در پروکسی API خاص که در آن شکست رخ داده است، بررسی کنید. اگر هر خط مشی Quota وجود داشته باشد که در آن عنصر <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> در یک خط مشی Quota تعیین می کنید. به عنوان مثال:

<?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 UI یا 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> در یک خط مشی Quota روی true تنظیم شود، که همچنین دارای پیکربندی ناهمزمان است که با استفاده از عنصر <AsynchronousConfiguration> تعریف شده است، در این صورت استقرار پراکسی API با شکست مواجه می شود.

تشخیص

تمام خط مشی های سهمیه را در پروکسی API خاص که در آن شکست رخ داده است، بررسی کنید. اگر خط مشی Quota وجود داشته باشد که در آن عنصر <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> در یک خط مشی Quota روی 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>