เกิดข้อผิดพลาดในการประมวลผลการอัปเดต

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

ลักษณะปัญหา

การติดตั้งใช้งานการแก้ไขพร็อกซี API ผ่าน UI ของ Edge หรือการเรียก API การจัดการของ Edge ล้มเหลวโดยมี ข้อผิดพลาด "Unexpected error occurred while processing the updates"

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

Error in deployment for environment sit.

The revision is deployed and traffic can flow, but flow may be impared. com.apigee.kernel.exceptions.spi.UncheckedException{ code = messaging.runtime.UpdateFailed, message = Unexpected error occurred while processing the updates, associated contexts = []}

สาเหตุที่เป็นไปได้

ข้อผิดพลาดนี้อาจเกิดจากสาเหตุหลายประการ ตัวอย่างสาเหตุบางประการมีดังนี้

สาเหตุ รายละเอียด สำหรับ
หน่วยความจำไม่เพียงพอ Message Processor มีพื้นที่ฮีปของ Java ไม่เพียงพอ ซึ่งส่งผลให้การติดตั้งใช้งานพร็อกซี API ล้มเหลว ผู้ใช้ Private Cloud
ข้อผิดพลาดในแพ็กเกจพร็อกซี API แพ็กเกจพร็อกซี API มีข้อผิดพลาดที่อาจทำให้การติดตั้งใช้งานพร็อกซี API ล้มเหลว ผู้ใช้ Private และ Public Cloud

ขั้นตอนทั่วไปที่ควรลองทำก่อน

  1. ตรวจสอบว่ามีข้อผิดพลาดในการทำให้ใช้งานได้หรือสแต็กเทรซของการยกเว้นในบันทึกของ Message Processor บันทึก /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
  2. โดยปกติแล้วคุณจะเห็นสแต็กเทรซที่ให้ข้อมูลเกี่ยวกับสาเหตุของข้อผิดพลาดในการติดตั้งใช้งาน โปรดอ่านการติดตามสแต็กอย่างละเอียดเพื่อทำความเข้าใจสาเหตุ

หน่วยความจำไม่เพียงพอ

การวินิจฉัย

หมายเหตุ: มีเพียงผู้ใช้ Edge Private Cloud เท่านั้นที่ทำตามขั้นตอนต่อไปนี้ได้ หากคุณ ใช้ Edge Public Cloud โปรดติดต่อ ทีมสนับสนุนของ Apigee

  1. คุณอาจเห็นข้อยกเว้นที่คล้ายกับข้อยกเว้นในบันทึกของ Message Processor /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log ดังที่แสดงใน รูปภาพด้านล่าง:
    Apigee-Main-4 ERROR BOOTSTRAP - RuntimeConfigurationServiceImpl.dispatchToListeners() : RuntimeConfigurationServiceImpl.dispatchToListeners : Error occurred while dispatching the request DeployEvent{organization=myorg', application='person-credentials-api', applicationRevision='275', deploymentSpec=basepath=/;env=dev;, deploymentID=null} to com.apigee.application.bootstrap.listeners.MessageProcessorBootstrapListener@5db88cb8
    com.apigee.kernel.exceptions.spi.UncheckedException: Unexpected error occurred while processing the updates
            at com.apigee.entities.AbstractConfigurator.throwUncheckedException(AbstractConfigurator.java:280) ~[config-entities-1.0.0.jar:na]
            at com.apigee.messaging.configuration.MessageProcessorServiceImpl.configure(MessageProcessorServiceImpl.java:665) ~[message-processor-1.0.0.jar:na]
            at com.apigee.application.bootstrap.listeners.MessageProcessorBootstrapListener.configureMessageProcessorService(MessageProcessorBootstrapListener.java:54) ~[application-bootstrap-1.0.0.jar:na]
            at com.apigee.application.bootstrap.listeners.MessageProcessorBootstrapListener.deploy(MessageProcessorBootstrapListener.java:29) ~[application-bootstrap-1.0.0.jar:na]
            …<snipped>
            at com.apigee.application.bootstrap.proto.RuntimeConfig_ConfigRPCService_BlockingSkeleton$1.run(RuntimeConfig_ConfigRPCService_BlockingSkeleton.java:38) [application-bootstrap-1.0.0.jar:na]
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_75]
            at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_75]
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_75]
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_75]
            at java.lang.Thread.run(Thread.java:745) [na:1.7.0_75]
    Caused by: java.lang.OutOfMemoryError: Java heap space
  2. ข้อความ Caused by: java.lang.OutofMemoryError: Java Heap space แสดงว่า Message Processor มีพื้นที่ฮีปของ Java ไม่เพียงพอ

ความละเอียด

หมายเหตุ: มีเพียงผู้ใช้ Edge Private Cloud เท่านั้นที่ทำตามขั้นตอนต่อไปนี้ได้ หากคุณ ใช้ Edge Public Cloud โปรดติดต่อ ทีมสนับสนุนของ Apigee

เพิ่มพื้นที่ฮีปของ Java สูงสุดในตัวประมวลผลข้อความ

พื้นที่ฮีปของ Java สูงสุดถูกควบคุมโดยพร็อพเพอร์ตี้ JVM -Xmx ขั้นตอนในการเพิ่มพื้นที่ฮีปของ Java ในตัวประมวลผลข้อความมีดังนี้

  1. กำหนดจำนวนหน่วยความจำที่สามารถเพิ่มพื้นที่ฮีปของ Java ได้ โดยทำดังนี้
    1. ตรวจสอบค่าปัจจุบันที่ตั้งไว้สำหรับพื้นที่ฮีปสูงสุด, max_mem ในไฟล์ /opt/apigee/edge-message-processor/bin/setenv.sh
    2. รับ MemTotal (RAM ทั้งหมดที่ใช้ได้), MemFree (RAM จริงที่เหลือในระบบ) โดยใช้คำสั่ง /proc/meminfo ในระบบ
      1. ตรวจสอบว่าข้อมูลข้างต้นรวมหน่วยความจำที่กระบวนการอื่นๆ ใช้ เช่น เราเตอร์ Edge เป็นต้น ซึ่งอยู่ในระบบเดียวกัน
      2. กำหนดจำนวนพื้นที่ฮีปของ Java ที่สามารถเพิ่มได้สำหรับ Message Processor ตามข้อมูลข้างต้น
      3. ตัวอย่างเช่น พื้นที่ฮีปสูงสุดปัจจุบันในตัวประมวลผลข้อความคือ 1024 MB, MemTotal คือ 8 GB (8192 MB), MemFree คือ 5 GB (5120 MB) จากนั้นคุณจะเพิ่มพื้นที่ฮีปของ Java สูงสุดเป็น 3 GB (3072 MB) ได้
      4. หากต้องการความช่วยเหลือในการกำหนดจำนวนพื้นที่ฮีปของ Java ที่จะเพิ่ม โปรดติดต่อ ทีมสนับสนุนของ Apigee
  2. สร้างไฟล์ต่อไปนี้ หากยังไม่มี
    /opt/apigee/customer/application/message-processor.properties
  3. เพิ่มบรรทัดต่อไปนี้ในไฟล์โดยใช้การตั้งค่าฮีปที่เพิ่มขึ้น (เช่น 3072M)
    bin_setenv_max_mem=3072m
  4. บันทึกไฟล์
  5. รีสตาร์ทตัวประมวลผลข้อความ
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. หากมี Message Processor มากกว่า 1 ตัว ให้ทำซ้ำขั้นตอนที่ 3 ถึง 6 ใน Message Processor ทั้งหมด ตัว

หากยังพบปัญหาอยู่ โปรดติดต่อทีมสนับสนุนของ Apigee.

ข้อผิดพลาดในแพ็กเกจพร็อกซี API

หากมีข้อผิดพลาดในนโยบายใดๆ ที่ใช้ในพร็อกซี API การติดตั้งใช้งานจะ ล้มเหลวโดยมีข้อผิดพลาด "Unexpected error occurred while processing the updates"

ตัวอย่างเช่น โปรดดูโพสต์ชุมชนนี้

การวินิจฉัย

หมายเหตุ: มีเพียงผู้ใช้ Edge Private Cloud เท่านั้นที่ทำตามขั้นตอนต่อไปนี้ได้ หากคุณ ใช้ Edge Public Cloud โปรดติดต่อ ทีมสนับสนุนของ Apigee

  1. ตรวจสอบบันทึกของ Message Processor เพื่อดูข้อยกเว้นหรือข้อผิดพลาดที่เกี่ยวข้องกับการติดตั้งใช้งานพร็อกซี API ข้อผิดพลาดควรให้ข้อมูลเกี่ยวกับสิ่งที่ควรเปลี่ยนแปลงในแพ็กเกจพร็อกซี API เพื่อแก้ปัญหา
  2. หากไม่มีข้อความแสดงข้อผิดพลาดปรากฏในบันทึกของ Message Processor ให้ตรวจสอบความแตกต่างในประวัติการแก้ไข ของพร็อกซี API หากการแก้ไขเวอร์ชันเก่าติดตั้งใช้งานได้โดยไม่มีปัญหา ให้ตรวจสอบการเปลี่ยนแปลงโค้ด ที่ทำ

ความละเอียด

  1. ทำการเปลี่ยนแปลงที่จำเป็นในแพ็กเกจพร็อกซี API เพื่อแก้ปัญหา
  2. เปลี่ยนโค้ดกลับไปเป็นเวอร์ชันก่อนหน้าในพร็อกซี API ที่ทำให้เกิดปัญหาในการติดตั้งใช้งาน

หากยังพบปัญหาอยู่ โปรดติดต่อ ทีมสนับสนุนของ Apigee เพื่อขอ ความช่วยเหลือเพิ่มเติม