Khắc phục sự cố khi triển khai chính sách hạn mức

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

InvalidQuotaInterval

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

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

Ví dụ về thông báo lỗi

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

Ảnh chụp màn hình mẫu

Nguyên nhân

Nếu khoảng hạn mức được chỉ định trong phần tử <Interval> của Chính sách về hạn mức không phải là số nguyên, thì việc triển khai proxy API sẽ không thành công.

Ví dụ: nếu khoảng hạn mức được chỉ định là 0, 1 trong phần tử <Interval> của Chính sách hạn mức, thì việc triển khai proxy API sẽ không thành công.

Chẩn đoán

  1. Xác định chính sách về Hạn mức xảy ra lỗi và khoảng thời gian của hạn mức không hợp lệ. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách là Quota-1 và khoảng thời gian hạn mức không hợp lệ là 0.1:

    Error Saving Revision 1
    Invalid quota interval 0.1 in quota policy Quota-1.
    
  2. Xác minh rằng giá trị của khoảng thời gian hạn mức được chỉ định trong chính sách Hạn mức không thành công khớp với giá trị được xác định trong thông báo lỗi (bước #1 ở trên). Ví dụ: chính sách sau đây chỉ định giá trị của khoảng thời gian hạn mức là 0.1, khớp với nội dung trong thông báo lỗi:

    <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. Nếu khoảng thời gian hạn mức được chỉ định không phải là số nguyên, thì đó là nguyên nhân gây ra lỗi.

    Trong ví dụ về Chính sách hạn mức trình bày ở trên, giá trị của khoảng thời gian hạn mức là 0, 1.Đây không phải là một số nguyên. Do đó, việc triển khai Proxy API không thành công kèm theo lỗi:

    Invalid quota interval 0.1 in quota policy Quota-1.
    

Độ phân giải

Đảm bảo rằng giá trị của khoảng hạn mức được chỉ định trong phần tử <Interval> của Chính sách về hạn mức là một số nguyên. Ví dụ:

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

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý 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].

Ví dụ về thông báo lỗi

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.

Ảnh chụp màn hình mẫu

Nguyên nhân

Nếu đơn vị thời gian được chỉ định trong phần tử <TimeUnit> của chính sách Hạn mức không được hỗ trợ, thì bạn sẽ không triển khai được proxy API.

Đơn vị thời gian được hỗ trợ là minute, hour, day, weekmonth.

Ví dụ: nếu đơn vị thời gian được chỉ định là year trong phần tử <TimeUnit> của Chính sách về hạn mức, thì việc triển khai proxy API sẽ không thành công.

Chẩn đoán

  1. Xác định chính sách Hạn mức xảy ra lỗi và đơn vị thời gian không hợp lệ. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách là Quota-1 và đơn vị thời gian không hợp lệ là year:

    Invalid quota interval time unit year in quota policy Quota-1
    in Revision 1 of application Quota_test, in organization aprabhashankar-eval.
    
  2. Xác minh rằng đơn vị thời gian được chỉ định trong phần tử <TimeUnit> của chính sách Hạn mức khớp với đơn vị thời gian được xác định trong thông báo lỗi (bước #1 ở trên). Ví dụ: chính sách sau đây chỉ định giá trị của khoảng thời gian hạn mức là year, khớp với nội dung trong thông báo lỗi:

    <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. Nếu đơn vị thời gian nêu trong Chính sách về hạn mức không được hỗ trợ, thì đó là nguyên nhân gây ra lỗi.

    Trong ví dụ về chính sách Hạn mức nêu trên, đơn vị thời gian được chỉ định là year không được hỗ trợ. Do đó, việc triển khai Proxy API không thành công kèm theo lỗi:

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

Độ phân giải

Đảm bảo rằng đơn vị thời gian được chỉ định trong phần tử <TimeUnit> của chính sách Hạn mức được hỗ trợ. Ví dụ:

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

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

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

Ví dụ về thông báo lỗi

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

Ảnh chụp màn hình mẫu

Nguyên nhân

Nếu loại hạn mức do thuộc tính type trong <Quota> chỉ định của chính sách Hạn mức không hợp lệ, thì việc triển khai proxy API không thành công.

Các loại hạn mức được hỗ trợ là default, calendar, flexirollingwindow.

Ví dụ: nếu loại chính sách được chỉ định là window trong phần tử <Quota> chính sách Hạn mức thì không triển khai proxy API được.

Chẩn đoán

  1. Xác định loại hạn mức không hợp lệ được sử dụng trong chính sách Hạn mức. Bạn có thể tìm thấy khỏi thông báo lỗi. Ví dụ: trong lỗi sau, loại chính sách không hợp lệ là window:

    Error Saving Revision 1
    No enum constant com.apigee.quota.types.QuotaType.window.
    
  2. Kiểm tra tất cả các chính sách về Hạn mức trong Proxy API cụ thể đang gặp lỗi. Nếu có bất kỳ chính sách nào về Hạn mức mà loại hạn mức được chỉ định trong phần tử <Quota> khớp với loại không được hỗ trợ nêu trong Bước 1 ở trên, thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: chính sách sau đây chỉ định kiểu là window, khớp với thông báo lỗi:

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

    Do thuộc tính loại được đặt thành window và thuộc tính này không được hỗ trợ, nên việc triển khai Proxy API không thành công kèm theo lỗi:

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

Độ phân giải

Đảm bảo rằng loại hạn mức do thuộc tính type chỉ định trong phần tử <Quota> của chính sách Hạn mức được hỗ trợ. Ví dụ:

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

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

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

Ví dụ về thông báo lỗi

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.

Ảnh chụp màn hình mẫu

Nguyên nhân

Nếu định dạng thời gian được chỉ định trong phần tử <StartTime> của chính sách Hạn mức là không hợp lệ, thì bạn sẽ không triển khai được proxy API.

Định dạng hợp lệ là yyyy-MM-dd HH:mm:ss, tức là định dạng ngày và giờ theo tiêu chuẩn ISO 8601.

Ví dụ: nếu thời gian được chỉ định trong phần tử <StartTime> của chính sách Hạn mức là 7-16-2017 12:00:00, thì bạn sẽ không triển khai được proxy API.

Chẩn đoán

  1. Xác định thời gian bắt đầu không hợp lệ được quy định trong chính sách Hạn mức. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, thời gian bắt đầu không hợp lệ là 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. Kiểm tra tất cả các chính sách về Hạn mức trong Proxy API cụ thể đang gặp lỗi. Nếu có bất kỳ chính sách Hạn mức nào mà giá trị được chỉ định trong phần tử <StartTime> khớp với thời gian bắt đầu không hợp lệ nêu trong Bước 1 ở trên, thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: chính sách sau đây chỉ định kiểu là 7-16-2017 12:00:00, khớp với thông báo lỗi:

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

    Vì giá trị đặt cho <StartTime> được thiết lập là 7-16-2017 12:00:00, nên không theo định dạng ngày/giờ bắt buộc, nên việc triển khai Proxy API không thành công kèm theo lỗi:

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

Độ phân giải

Đảm bảo rằng định dạng của thời gian bắt đầu được chỉ định trong phần tử <StartTime> của chính sách Hạn mức là hợp lệ theo định dạng yyyy-MM-dd HH:mm:ss bắt buộc. Ví dụ:

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

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

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

Ví dụ về thông báo lỗi

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

Ảnh chụp màn hình mẫu

Nguyên nhân

Nếu phần tử <StartTime> được chỉ định trong chính sách Hạn mức có loại hạn mức không phải là loại lịch, thì việc triển khai proxy API sẽ không thành công.

Phần tử <StartTime> chỉ được hỗ trợ cho loại hạn mức calendar.

Ví dụ: nếu bạn đặt thuộc tính type thành flexi hoặc rolling window trong phần tử <Quota> của chính sách Hạn mức, thì việc triển khai proxy API sẽ không thành công.

Chẩn đoán

  1. Xác định loại hạn mức được chỉ định trong chính sách về Hạn mức không đạt. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, thời gian bắt đầu không hợp lệ là flexi

    Starttime is not supported for quotatype flexi. Starttime is
    supported only for calendar based type.
    
  2. Kiểm tra tất cả các chính sách về Hạn mức trong Proxy API cụ thể đang gặp lỗi. Nếu có bất kỳ chính sách Hạn mức nào trong đó thuộc tính loại được chỉ định khớp với loại hạn mức xác định trong Bước 1 ở trên và phần tử <StartTime> được chỉ định, thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: chính sách sau đây chỉ định loại hạn mức là flexi, khớp với nội dung trong thông báo lỗi đồng thời chỉ định phần tử <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>
    

    Do phần tử <StartTime> được chỉ định trong Chính sách hạn mức có loại hạn mức được chỉ định là flexi, nên việc triển khai Proxy API không thành công gây ra lỗi:

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

Độ phân giải

Đảm bảo rằng bạn không chỉ định phần tử <StartTime> khi loại hạn mức mà thuộc tính type trong <Quota> biểu thị là flexi hoặc rolling window. Ví dụ:

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

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

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

Ví dụ về thông báo lỗi

Error Saving Revision 1
Invalid timeunit second for distributed quota.

Ảnh chụp màn hình mẫu

Nguyên nhân

Nếu bạn đặt phần tử <Distributed> thành true và đặt phần tử <TimeUnit> thành second, thì việc triển khai proxy API sẽ không thành công. Đơn vị thời gian second không hợp lệ đối với hạn mức phân phối.

Khi bạn đặt phần tử Distributed thành true, chính sách này sẽ duy trì bộ đếm trung tâm và liên tục đồng bộ hoá bộ đếm này trên mọi Trình xử lý thông báo. Do đó, sẽ khó có thể đồng bộ hoá cũng như xác minh rằng số lượng yêu cầu không vượt quá hạn mức đã chỉ định trong một khoảng thời gian ngắn, chẳng hạn như giây. Vì lý do này, đơn vị thời gian second được coi là không hợp lệ đối với hạn mức phân phối.

Chẩn đoán

Kiểm tra tất cả các chính sách về Hạn mức trong Proxy API cụ thể đang gặp lỗi. Đó là nguyên nhân gây ra lỗi nếu có bất kỳ chính sách nào về Hạn mức trong đó phần tử <TimeUnit> được đặt thành second và phần tử <Distributed> được đặt thành true.

Ví dụ: chính sách bên dưới có phần tử <TimeUnit> được đặt thành second và phần tử <Distributed> được đặt thành 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>

Độ phân giải

Đảm bảo phần tử <TimeUnit> không bao giờ được đặt thành second khi phần tử <Distributed> được đặt thành true. Bạn có thể đặt phần tử <TimeUnit> thành bất kỳ giá trị nào khác được phép – minute, hour, day, week,hoặcmonth. Ví dụ:

<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

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

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

Ví dụ về thông báo lỗi

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

Ảnh chụp màn hình mẫu

Nguyên nhân

Nếu giá trị được chỉ định cho phần tử <SyncIntervalInSeconds> trong phần tử <AsynchronousConfiguration> trong chính sách Hạn mức nhỏ hơn 0, thì việc triển khai proxy API không thành công.

Chẩn đoán

Kiểm tra tất cả các chính sách về Hạn mức trong Proxy API cụ thể đang gặp lỗi. Nếu có bất kỳ chính sách Hạn mức nào mà trong đó phần tử <SyncIntervalInSeconds> được đặt thành một giá trị nhỏ hơn 0 thì trong phần tử <AsynchronousConfiguration>, thì đó là nguyên nhân gây ra lỗi.

Ví dụ: chính sách dưới đây có một giá trị âm được chỉ định cho phần tử <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>

Độ phân giải

Đảm bảo rằng bạn luôn chỉ định một số nguyên dương cho phần tử <SyncIntervalInSeconds> trong phần tử <AsynchronousConfiguration> trong chính sách Hạn mức. Ví dụ:

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

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

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

Ví dụ về thông báo lỗi

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

Ảnh chụp màn hình mẫu

Nguyên nhân

Nếu bạn đặt giá trị của phần tử <Synchronous> thành true trong chính sách Hạn mức ( cũng có cấu hình không đồng bộ được xác định bằng phần tử <AsynchronousConfiguration>), thì việc triển khai proxy API sẽ không thành công.

Chẩn đoán

Kiểm tra tất cả các chính sách về Hạn mức trong Proxy API cụ thể đang gặp lỗi. Nếu có chính sách về Hạn mức mà phần tử <Synchronous> được đặt thành true và phần tử này cũng có phần tử <AsynchronousConfiguration> được xác định, thì đó là nguyên nhân gây ra lỗi.

Ví dụ: chính sách bên dưới có phần tử <Synchronous> được đặt thành true và cũng có phần tử <AsynchronousConfiguration> được xác định:

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

Độ phân giải

Đảm bảo rằng không có cấu hình không đồng bộ nào được xác định bằng phần tử <AsynchronousConfiguration> nếu phần tử <Synchronous> được đặt thành true trong chính sách Hạn mức.

Bạn có thể sửa ví dụ ở trên bằng cách xoá phần <AsynchronousConfiguration> như minh hoạ dưới đây:

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