การแก้ปัญหาข้อผิดพลาดในการทำให้นโยบายเครื่องมือรวบรวมสถิติใช้งานได้

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

UnsupportedDatatype

ข้อความแสดงข้อผิดพลาด

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management 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}.

ภาพหน้าจอตัวอย่าง

สาเหตุ

หากประเภทของตัวแปรที่แอตทริบิวต์ ref ระบุในองค์ประกอบ <Statistic> ของนโยบายเครื่องมือรวบรวมสถิติไม่ได้รับการสนับสนุน การทำให้พร็อกซี API ใช้งานได้จะล้มเหลว

ประเภทข้อมูลที่รองรับ ได้แก่ string, integer, float, long, double และ boolean

ตัวอย่างเช่น หากระบุประเภทของตัวแปรเป็น char ในองค์ประกอบ <Statistic> ของนโยบายเครื่องมือเก็บข้อมูลสถิติ การทำให้พร็อกซี API ใช้งานได้จะล้มเหลว

การวินิจฉัย

  1. ระบุนโยบายเครื่องมือรวบรวมสถิติในพร็อกซี API เฉพาะที่เกิดความล้มเหลวขึ้น
  2. ระบุประเภทข้อมูลที่ไม่รองรับซึ่งใช้ในนโยบายเครื่องมือรวบรวมข้อมูลสถิติ คุณดูข้อมูลนี้ได้จากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ประเภทข้อมูลที่ไม่รองรับคือ char ในข้อผิดพลาดต่อไปนี้

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    
  3. ตรวจสอบว่าแอตทริบิวต์ประเภทที่ใช้ในนโยบายเครื่องมือเก็บข้อมูลสถิติที่ล้มเหลวตรงกับประเภทข้อมูลที่ระบุในข้อความแสดงข้อผิดพลาด (ขั้นตอนที่ 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. หากแอตทริบิวต์ประเภทไม่ใช่ประเภทข้อมูลที่รองรับ นั่นก็คือสาเหตุของข้อผิดพลาด

    ในตัวอย่างนโยบายเครื่องมือรวบรวมสถิติที่แสดงด้านบน โปรดทราบว่าแอตทริบิวต์ type ได้รับการตั้งค่าเป็น char ซึ่งระบบไม่รองรับ ดังนั้นการทำให้พร็อกซี API ใช้งานได้จึงล้มเหลวโดยมีข้อผิดพลาดดังนี้

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

ความละเอียด

ตรวจสอบว่าประเภทข้อมูลของตัวแปรที่ระบุโดยแอตทริบิวต์อ้างอิงในองค์ประกอบ <Statistic> ของนโยบายเครื่องมือรวบรวมสถิติได้รับการรองรับและถูกต้อง เช่น

<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

ข้อความแสดงข้อผิดพลาด

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management 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.

ภาพหน้าจอตัวอย่าง

สาเหตุ

หากชื่อที่ใช้อ้างอิงข้อมูลที่รวบรวมสำหรับตัวแปรที่ระบุซึ่งกำหนดไว้ภายในองค์ประกอบ <Statistic> ของนโยบายเครื่องมือเก็บข้อมูลสถิติขัดแย้งกับตัวแปรที่ระบบกำหนด การทำให้พร็อกซี API ใช้งานได้จะล้มเหลว

ตัวแปรที่ระบบกำหนดบางตัวที่ทราบคือ organization และ environment

ตัวอย่างเช่น หากระบุแอตทริบิวต์ชื่อเป็น organization ในองค์ประกอบ <Statistic> ของนโยบายเครื่องมือเก็บข้อมูลสถิติ การทำให้พร็อกซี API ใช้งานได้จะล้มเหลว

การวินิจฉัย

  1. ระบุนโยบายเครื่องมือรวบรวมสถิติที่เกิดข้อผิดพลาดและชื่อขององค์ประกอบ <Statistic> ที่ขัดแย้งกับตัวแปรที่ระบบกำหนด คุณจะพบทั้ง 2 รายการนี้ในข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ StatCollector ชื่อขององค์ประกอบ <Statistic> ที่ขัดแย้งกับตัวแปรที่ระบบกำหนดคือ organization

    StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.
    
  2. ตรวจสอบว่าชื่อขององค์ประกอบ <Statistic> ที่ใช้ใน XML ของนโยบายเครื่องมือรวบรวมสถิติที่ล้มเหลวตรงกับชื่อที่ระบุในข้อความแสดงข้อผิดพลาด (ขั้นตอนที่ 1 ด้านบน) ตัวอย่างเช่น นโยบายต่อไปนี้ระบุชื่อเป็น organization ในองค์ประกอบ <Statistic> ซึ่งตรงกับสิ่งที่อยู่ในข้อความแสดงข้อผิดพลาด

    <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> แต่ละรายการ หากมีองค์ประกอบ <Statistic> ที่แอตทริบิวต์ name ขัดแย้งกับตัวแปรของระบบ นั่นก็คือสาเหตุของข้อผิดพลาด

ในตัวอย่างนโยบายเครื่องมือเก็บข้อมูลสถิติที่แสดงด้านบน โปรดทราบว่าแอตทริบิวต์ชื่อของ <Statistic> ที่ใช้คือ organization ซึ่งเป็นชื่อตัวแปรของระบบ ดังนั้นการทำให้พร็อกซี API ใช้งานได้จึงล้มเหลวโดยมีข้อผิดพลาดดังนี้

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

ความละเอียด

ตรวจสอบว่าชื่อขององค์ประกอบ <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

ข้อความแสดงข้อผิดพลาด

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management 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}.

ภาพหน้าจอตัวอย่าง

สาเหตุ

หากประเภทของตัวแปรที่ระบุโดยแอตทริบิวต์ ref ในองค์ประกอบ <Statistic> ของนโยบายเครื่องมือเก็บข้อมูลสถิติขาดหายไป การทำให้พร็อกซี API ใช้งานได้จะล้มเหลว

การวินิจฉัย

  1. ระบุนโยบายเครื่องมือรวบรวมสถิติในพร็อกซี API เฉพาะที่เกิดความล้มเหลวขึ้น
  2. ตรวจสอบคำจำกัดความขององค์ประกอบ <Statistic> แต่ละรายการใน XML ของนโยบายเครื่องมือรวบรวมสถิติที่ล้มเหลว หากมีองค์ประกอบ <Statistic> ที่แอตทริบิวต์ประเภทขาดหายไป นั่นก็คือสาเหตุของข้อผิดพลาด

ต่อไปนี้คือตัวอย่างของนโยบายเครื่องมือรวบรวมสถิติ

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

ในตัวอย่างนโยบายเครื่องมือเก็บข้อมูลสถิติที่แสดงด้านบน โปรดสังเกตว่าแอตทริบิวต์ประเภทสำหรับองค์ประกอบ <Statistic> ทั้ง 2 องค์ประกอบขาดหายไป ดังนั้นการทำให้พร็อกซี API ใช้งานได้จึงล้มเหลว

ความละเอียด

ตรวจสอบว่าแอตทริบิวต์ประเภทของตัวแปรที่ระบุโดยแอตทริบิวต์ ref ในองค์ประกอบ <Statistic> ของนโยบายเครื่องมือรวบรวมข้อมูลสถิติระบุไว้เสมอและเป็นประเภทข้อมูลที่รองรับ

ประเภทข้อมูลที่รองรับ ได้แก่ 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>