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

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 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 dữ liệu thống kê không được hỗ trợ, thì việc triển khai proxy API sẽ không thành công.

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 dữ liệu thống kê, 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 Trình thu thập số liệu thống kê trong Proxy API cụ thể nơi xảy ra lỗi.
  2. Hãy xác định loại dữ liệu không được hỗ trợ trong chính sách của 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 được sử dụng trong chính sách của Trình thu thập thống kê bị lỗi 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 kiểu dữ liệu là char, khớp với 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 thành char và thuộc tính này không được hỗ trợ. Do đó, việc triển khai Proxy API 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 loại dữ liệu của các biến được chỉ định bởi thuộc tính tham chiếu trong phần tử <Statistic> của chính sách Trình thu thập dữ 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

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 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 được thu thập cho biến được chỉ đị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ì bạn sẽ không triển khai proxy API được.

Một số biến đã biết do hệ thống xác định 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 dữ liệu thống kê, 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 Trình thu thập thống kê nơi xảy ra lỗi và tên của phần tử <Statistic> xung đột với 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ê bị lỗi 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 tên 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. 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ì đó 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 dùng là organization. Thuộc tính này thường là tên biến hệ thống. Do đó, bạn không thể triển khai Proxy API do lỗi:

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

Độ phân giải

Đảm bảo rằng tên của phần tử <Statistic> dùng để tham chiếu dữ liệu được thu thập cho biến đã chỉ định được xác định trong phần tử <Statistic> trong chính sách của Trình thu thập thống kê không giống với các 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

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 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 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 thống kê bị thiếu, 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 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 dữ liệu thống kê bị lỗi. 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 thống kê ở trên, lưu ý rằng cả hai phần tử <Statistic> đều bị thiếu thuộc tính loại. Do đó, không triển khai Proxy API được.

Độ phân giải

Hãy đảm bảo rằng thuộc tính loại của 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 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>