Khắc phục sự cố về lỗi triển khai chính sách của Trình thu thập số liệu thống kê

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

UnsupportedDatatype

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 Deploying Revision [revision_number]
StatisticsCollection [datatype]: Datatype Revision:[revision_number];APIProxy:[api_proxy];Organization:[org_name];Environment:[env_name] is unsupported . Context [context].

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

Error Saving Revision 1
StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.

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

Nguyên nhân

Nếu loại biến được chỉ định bởi thuộc tính ref trong phần tử <Statistic> của chính sách Trình thu thập số liệu thống kê không được hỗ trợ, thì sẽ không thể triển khai proxy API.

Dữ liệu được hỗ trợ là string, integer, float, long, doubleboolean.

Ví dụ: nếu loại biến được chỉ định là char trong phần tử <Statistic> của chính sách Trình thu thập số liệu thống kê, thì sẽ không triển khai được proxy API.

Chẩn đoán

  1. Xác định chính sách Trình thu thập số liệu thống kê trong Proxy API cụ thể nơi xảy ra lỗi.
  2. Xác định loại dữ liệu không được hỗ trợ dùng trong chính sách Trình thu thập số liệu thống kê. 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 dữ liệu không được hỗ trợ là char:

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    
  3. Xác minh rằng thuộc tính loại dùng trong chính sách Trình thu thập số liệu thống kê không thành công khớp với loại dữ liệu được xác định trong thông báo lỗi (bước #2 ở trên). Ví dụ: Chính sách sau đây chỉ định loại dữ liệu là char, khớp với nội dung trong thông báo lỗi:

    <StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1">
      <DisplayName>Statistics Collector 1</DisplayName>
      <Statistics>
          <Statistic name="statName" ref="varName" type="char">defaultStatValue</Statistic>
      </Statistics>
    </StatisticsCollector>
    
  4. Nếu thuộc tính loại không phải là loại dữ liệu được hỗ trợ, thì đó là nguyên nhân gây ra lỗi.

    Trong ví dụ về chính sách Trình thu thập số liệu thống kê ở trên, hãy nhớ rằng thuộc tính type được đặt là char và thuộc tính 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:

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    

Độ phân giải

Đảm bảo rằng kiểu dữ liệu của các biến do các thuộc tính tham chiếu chỉ định trong các phần tử <Statistic> của chính sách Trình thu thập số liệu thống kê được hỗ trợ và hợp lệ. Ví dụ:

<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1">
    <DisplayName>Statistics Collector 1</DisplayName>
    <Statistics>
        <Statistic name="statName" ref="varName" type="string">defaultStatValue</Statistic>
    </Statistics>
</StatisticsCollector>

InvalidName

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 Deploying Revision [revision_number]
StatisticsCollection: Name: [name] conflicts with system defined variables. Context policy: [policy_name]

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

Error Saving Revision 1
StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.

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

Nguyên nhân

Nếu tên dùng để tham chiếu dữ liệu đã thu thập cho biến được chỉ định được xác định trong phần tử <Statistic> của chính sách Trình thu thập thống kê xung đột với một biến do hệ thống xác định, thì sẽ không triển khai được proxy API.

Một số biến do hệ thống xác định đã biết là organizationenvironment.

Ví dụ: nếu thuộc tính tên được chỉ định là organization trong phần tử <Statistic> của chính sách Trình thu thập số liệu thống kê, thì sẽ không triển khai được proxy API.

Chẩn đoán

  1. Xác định chính sách Trình thu thập số liệu thống kê nơi xảy ra lỗi và tên của phần tử <Statistic> xung đột với một biến do hệ thống xác định. Bạn có thể tìm thấy cả hai mục này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách là StatCollector, tên của phần tử <Statistic> xung đột với biến do hệ thống xác định là organization:

    StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.
    
  2. Xác minh rằng tên của phần tử <Statistic> dùng trong tệp XML chính sách của Trình thu thập thống kê không thành công khớp với tên đượ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 tên là organization trong phần tử <Statistic>, khớp với nội dung trong thông báo lỗi:

    <StatisticsCollector name="StatCollector">
      <Statistics>
          <Statistic name="organization" ref="organization" type="string">myorg</Statistic>
          <Statistic name="traffic" ref="traffic" type="string">999999</Statistic>
      </Statistics>
    </StatisticsCollector>
    
  3. Hãy kiểm tra định nghĩa của từng phần tử <Statistic>. Nếu có bất kỳ phần tử <Statistic> nào mà thuộc tính name xung đột với một biến hệ thống, thì đó chính là nguyên nhân gây ra lỗi.

Trong ví dụ về chính sách Trình thu thập số liệu thống kê ở trên, hãy nhớ rằng thuộc tính tên của <Statistic> được sử dụng là organization, đây là tên của một biến hệ thống. Do đó, không thể triển khai Proxy API với lỗi:

StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.

Độ phân giải

Đảm bảo tên của phần tử <Statistic> dùng để tham chiếu dữ liệu thu thập được cho biến được chỉ định được xác định trong phần tử <Statistic> trong chính sách Trình thu thập số liệu thống kê không giống với biến do hệ thống xác định. Ví dụ:

<StatisticsCollector name="StatCollector">
    <Statistics>
        <Statistic name="org" ref="org" type="string">myorg</Statistic>
        <Statistic name="traffic" ref="traffic" type="string">999999</Statistic>
    </Statistics>
</StatisticsCollector>

DatatypeMissing

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 Deploying Revision [revision_number]
StatisticsCollection [ref]: Datatype of Revision:[revision_number];APIProxy:[api_proxy];Organization:[org_name];Environment:[env_name] is missing . Context [context].

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

Error Deploying Revision 2 to test
StatisticsCollection product.id: Datatype of Revision:2;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is missing. Context {2}.

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

Nguyên nhân

Nếu thiếu loại biến do thuộc tính ref chỉ định trong phần tử <Statistic> của chính sách Trình thu thập số liệu thống kê, thì tức là không triển khai được proxy API.

Chẩn đoán

  1. Xác định chính sách Trình thu thập số liệu thống kê trong Proxy API cụ thể nơi xảy ra lỗi.
  2. Kiểm tra định nghĩa của từng phần tử <Statistic> trong tệp XML chính sách của Trình thu thập số liệu thống kê không thành công. Nếu có bất kỳ phần tử <Statistic> nào bị thiếu thuộc tính loại, thì đó là nguyên nhân gây ra lỗi.

Dưới đây là ví dụ về chính sách của Trình thu thập số liệu thống kê:

  <StatisticsCollector name="publishPurchaseDetails"
      <Statistics>
          <Statistic name="productID" ref="product.id">999999</Statistic>
          <Statistic name="price" ref="product.price" type="string">1000</Statistic>
      </Statistics>
  </StatisticsCollector>
  

Trong ví dụ về chính sách Trình thu thập số liệu thống kê ở trên, hãy lưu ý rằng thuộc tính loại bị thiếu cho cả hai phần tử <Statistic>. Do đó, không thể triển khai Proxy API.

Độ phân giải

Đảm bảo rằng thuộc tính loại của biến được chỉ định bởi thuộc tính ref trong phần tử <Statistic> của chính sách Trình thu thập số liệu thống kê luôn được chỉ định và thuộc loại dữ liệu được hỗ trợ.

Dữ liệu được hỗ trợ là string, integer, float, long, doubleboolean.

Ví dụ:

<StatisticsCollector name="publishPurchaseDetails">
    <Statistics>
        <Statistic name="productID" ref="product.id" type="string">999999</Statistic>
        <Statistic name="price" ref="product.price"  type="string">1000</Statistic>
    </Statistics>
</StatisticsCollector>