Statistics Collector 정책 배포 오류 문제 해결

Apigee X 문서입니다.
Apigee Edge 문서 보기

UnsupportedDatatype

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

Error Deploying Revision [revision_number]
StatisticsCollection [datatype]: Datatype Revision:[revision_number];APIProxy:[api_proxy];Organization:[org_name];Environment:[env_name] is unsupported . Context [context].

오류 메시지 예

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

예시 스크린샷

지원되지 않는 데이터 유형 오류 메시지입니다.

원인

Statistics Collector 정책의 <Statistic> 요소 내 ref 속성으로 지정된 변수 유형이 지원되지 않으면 API 프록시 배포가 실패합니다.

지원되는 데이터 유형은 string, integer, float, long, double, boolean입니다.

예를 들어 Statistics Collector 정책의 <Statistic> 요소에서 변수 유형이 char로 지정되면 API 프록시 배포가 실패합니다.

진단

  1. 실패가 발생한 특정 API 프록시에서 Statistics Collector 정책을 식별합니다.
  2. Statistics Collector 정책에 지원되지 않는 데이터 유형을 식별합니다. 이 정보는 오류 메시지에서 확인할 수 있습니다. 예를 들어 다음 오류에서 지원되지 않는 데이터 유형은 char입니다.

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    
  3. 실패한 Statistics Collector 정책에 사용된 유형 속성이 위의 2단계의 오류 메시지에서 식별된 데이터 유형과 일치하는지 확인합니다. 예를 들어 다음 정책에서는 데이터 유형을 오류 메시지의 내용과 일치하는 char로 지정합니다.

    <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. 유형 속성이 지원되는 데이터 유형이 아니면 이는 오류의 원인입니다.

    위의 Statistics Collector 정책 예시에서는 type 속성이 지원되지 않는 char로 설정되었습니다. 따라서 API 프록시 배포에 실패하고 오류가 발생합니다.

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

해결 방법

Statistics Collector 정책의 <Statistic> 요소에 ref 속성으로 지정된 변수의 데이터 유형이 지원되고 유효한지 확인합니다. 예를 들면 다음과 같습니다.

<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

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

Error Deploying Revision [revision_number]
StatisticsCollection: Name: [name] conflicts with system defined variables. Context policy: [policy_name]

오류 메시지 예

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

예시 스크린샷

잘못된 이름 오류 메시지입니다.

원인

Statistics Collector 정책의 <Statistic> 요소 내에서 정의된 지정된 변수에 대해 수집된 데이터를 참조하는 이름이 시스템 정의 변수와 충돌하는 경우 API 프록시 배포가 실패합니다.

알려진 시스템 정의 변수 중 일부는 organizationenvironment입니다.

예를 들어 Statistics Collector 정책의 <Statistic> 요소에서 name 속성이 organization으로 지정되면 API 프록시 배포가 실패합니다.

진단

  1. 오류가 발생한 Statistics Collector 정책 및 시스템 정의 변수와 충돌하는 <Statistic> 요소의 이름을 식별합니다. 오류 메시지에서 이러한 항목을 모두 확인할 수 있습니다. 예를 들어 다음 오류에서 정책 이름은 StatCollector이며 시스템 정의 변수와 충돌하는 <Statistic> 요소의 이름은 organization입니다.

    StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.
    
  2. 실패한 Statistics Collector 정책 XML에 사용되는 <Statistic> 요소의 이름이 위의 1단계의 오류 메시지에서 식별된 이름과 일치하는지 확인합니다. 예를 들어 다음 정책은 <Statistic> 요소에서 이름을 organization로 지정하며 이는 오류 메시지의 내용과 일치합니다.

    <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. <Statistic> 요소의 정의를 살펴보세요. name 속성이 시스템 변수와 충돌하는 <Statistic> 요소가 있는 경우 이는 오류의 원인이 됩니다.

위의 Statistics Collector 정책 예시에서 <Statistic>에 사용된 이름 속성은 organization이며 이는 시스템 변수 이름입니다. 따라서 다음 오류와 함께 API 프록시 배포가 실패합니다.

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

해결 방법

Statistics Collector 정책의 <Statistic> 요소 내에 정의된 지정된 변수에 대해 수집된 데이터를 참조하는 데 사용되는 <Statistic> 요소의 이름이 시스템 정의 변수와 동일하지 않는지 확인합니다. 예를 들면 다음과 같습니다.

<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

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

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].

오류 메시지 예

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

예시 스크린샷

데이터 유형 누락 오류 메시지입니다.

원인

Statistics Collector 정책의 <Statistic> 요소 내 ref 속성으로 지정된 변수 유형이 없으면 API 프록시 배포가 실패합니다.

진단

  1. 실패가 발생한 특정 API 프록시에서 Statistics Collector 정책을 식별합니다.
  2. 실패한 Statistics Collector 정책 XML에서 각 <Statistic> 요소의 정의를 살펴보세요. 유형 속성이 없는 <Statistic> 요소가 있는 경우 이는 오류의 원인이 됩니다.

다음은 Statistics Collector 정책의 예시입니다.

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

위의 Statistics Collector 정책 예시에서는 두 <Statistic> 요소 모두에 대해 유형 속성이 누락되었습니다. 따라서 API 프록시 배포가 실패합니다.

해결 방법

Statistics Collector 정책의 <Statistic> 요소에서 ref 속성으로 지정된 변수의 유형 속성이 항상 지정되고 지원되는 데이터 유형인지 확인합니다.

지원되는 데이터 유형은 string, integer, float, long, double, boolean입니다.

예를 들면 다음과 같습니다.

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