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

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 với thông báo lỗi sau:

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 thời gian hạn mức được chỉ định trong phần tử <Interval> của Chính sách hạn mức không phải là số nguyên, thì quá trình 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ì sẽ không triển khai được proxy API.

Chẩn đoán

  1. Xác định chính sách Hạn mức nơi xảy ra lỗi và khoảng 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 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 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 hạn mức là 0.1, khớp với giá trị 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 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ên, giá trị của khoảng hạn mức là 0,1, đây không phải là một số nguyên. Do đó, quá trình triển khai Proxy API sẽ 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 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

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 với thông báo lỗi sau:

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ì sẽ không triển khai được proxy API.

Các đơ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 hạn mức, thì sẽ không triển khai được proxy API.

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 hạn mức là year, khớp với giá trị 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 được chỉ định trong Chính sách 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 hiển thị ở trên, đơn vị thời gian được chỉ định là year và đơn vị thời gian này không được hỗ trợ. Do đó, quá trình triển khai Proxy API sẽ 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 đơ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

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 với thông báo lỗi sau:

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 chỉ định trong phần tử <Quota> của chính sách Hạn mức là không hợp lệ, thì không thể triển khai proxy API.

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> của chính sách Hạn mức, thì sẽ không triển khai được proxy API.

Chẩn đoán

  1. Xác định loại hạn mức không hợp lệ được dùng 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, 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 Hạn mức trong Proxy API cụ thể nơi xảy ra lỗi. Nếu có bất kỳ chính sách Hạn mức nào trong đó 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ợ đã xác định ở Bước 1 ở trên, thì đó chính là nguyên nhân gây ra lỗi.

    Ví dụ: Chính sách sau đây chỉ định loại là window, khớp với nội dung trong 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>
    

    Vì thuộc tính loại được đặt là window và thuộc tính này không được hỗ trợ nên việc triển khai Proxy API sẽ không thành công do 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

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 với thông báo lỗi sau:

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 của thời gian được chỉ định trong phần tử <StartTime> của chính sách Hạn mức không hợp lệ, thì tức là không triển khai được proxy API.

Định dạng hợp lệ là yyyy-MM-dd HH:mm:ss, là định dạng ngày và giờ 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ì 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 chỉ đị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 Hạn mức trong Proxy API cụ thể nơi xảy ra lỗi. Nếu có bất kỳ chính sách Hạn mức nào mà trong đó 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ệ đã xác định ở Bước 1 ở trên, thì đó chính là nguyên nhân gây ra lỗi.

    Ví dụ: Chính sách sau đây chỉ định loại là 7-16-2017 12:00:00, khớp với nội dung trong 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 đặt là 7-16-2017 12:00:00 và không theo định dạng ngày/giờ bắt buộc, nên quá trình triển khai Proxy API không thành công do 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 đị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

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 với thông báo lỗi sau:

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ì proxy API sẽ không triển khai được.

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ì sẽ không triển khai được proxy API.

Chẩn đoán

  1. Xác định loại hạn mức được chỉ định trong chính sách 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 Hạn mức trong Proxy API cụ thể nơi xảy ra 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 đã chỉ định khớp với loại hạn mức đã xác định ở Bước 1 ở trên và đã chỉ định phần tử <StartTime>, thì đó chính 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 và cũng 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>
    

    Vì 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 không triển khai Proxy API do 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 phần tử <Quota> chỉ định 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

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 với thông báo lỗi sau:

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ì sẽ không triển khai được proxy API. Đơ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ì một bộ đếm trung tâm và liên tục đồng bộ hoá bộ đếm này trên mọi Bộ xử lý thông báo. Do đó, sẽ khó đồng bộ hoá và cũng khó 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 Hạn mức trong Proxy API cụ thể nơi xảy ra lỗi. Nếu có bất kỳ chính sách Hạn mức nào có phần tử <TimeUnit> được đặt thành second và phần tử <Distributed> được đặt thành true, 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ử <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 đúng. Bạn có thể đặt phần tử <TimeUnit> thành bất kỳ giá trị nào được phép khác, minute, hour, day, week, hoặc month. 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

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 với thông báo lỗi sau:

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> của chính sách Hạn mức nhỏ hơn 0, thì quá trình 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 Hạn mức trong Proxy API cụ thể nơi xảy ra 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, trong phần tử <AsynchronousConfiguration>, thì đó chính là nguyên nhân gây ra lỗi.

Ví dụ: chính sách bên dưới có 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

Nhớ chỉ định một số nguyên dương cho phần tử <SyncIntervalInSeconds> trong phần tử <AsynchronousConfiguration> trong chính sách về 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

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 với thông báo lỗi sau:

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, đồng thời cũng có cấu hình không đồng bộ được xác định bằng phần tử <AsynchronousConfiguration>, thì sẽ không triển khai được proxy API.

Chẩn đoán

Kiểm tra tất cả các chính sách Hạn mức trong Proxy API cụ thể nơi xảy ra lỗi. Nếu có bất kỳ chính sách Hạn mức nào trong đó phần tử <Synchronous> được đặt thành true và nếu 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ó một phần tử <Synchronous> được đặt thành true và cũng có một 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 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>