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

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

ลักษณะปัญหา

การทำให้การแก้ไขพร็อกซี API ใช้งานได้ผ่าน Edge UI หรือการเรียก 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 = []}

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

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

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

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

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

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

การวินิจฉัย

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

  1. คุณอาจเห็นข้อยกเว้นที่คล้ายกับข้อยกเว้นในบันทึกของโปรแกรมประมวลผลข้อความ /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 Heap ไม่เพียงพอ

ความละเอียด

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

เพิ่มพื้นที่ Java Heap สูงสุดใน Message Processor

พื้นที่สูงสุดของ Java Heap จะควบคุมโดยพร็อพเพอร์ตี้ JVM -Xmx ขั้นตอนต่างๆ มีดังนี้ เพิ่มพื้นที่ Java Heap ใน Message Processor ด้วยคำสั่งต่อไปนี้

  1. กำหนดจำนวนหน่วยความจำที่จะเพิ่มพื้นที่ฮีปของ Java ได้ ดังนี้
    1. ตรวจสอบค่าปัจจุบันที่กำหนดไว้สำหรับพื้นที่ฮีปสูงสุด max_mem ในไฟล์ /opt/apigee/edge-message-processor/bin/setenv.sh
    2. รับ MemTotal (จำนวน RAM ที่ใช้ได้ทั้งหมด), MemFree (จำนวน RAM จริงที่เหลือในระบบ) โดยใช้ /proc/meminfo บนระบบ
      1. ตรวจสอบว่าข้อมูลข้างต้นรวมหน่วยความจำที่ใช้โดยกระบวนการอื่นๆ เช่น Edge Router และอื่นๆ ที่อยู่ในระบบเดียวกัน
      2. จากข้อมูลข้างต้น คุณจะพิจารณาปริมาณฮีปของ Java ได้ เพิ่มขึ้นสำหรับตัวประมวลผลข้อความ
      3. ตัวอย่างเช่น พื้นที่ฮีปสูงสุดปัจจุบันในตัวประมวลผลข้อความคือ 1024 MB MemTotal คือ 8 GB (8192 MB), MemFree คือ 5 GB (5120 MB) คุณจึงสามารถเพิ่ม Java สูงสุดได้ ฮีป Space ได้ถึง 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. หากคุณมีโปรแกรมประมวลผลข้อความมากกว่าหนึ่งโปรแกรม ให้ทำขั้นตอนที่ 3 ถึง 6 ซ้ำในส่วน ตัวประมวลผลข้อความ

หากยังคงพบปัญหาอยู่ ให้ติดต่อ 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 สำหรับ ความช่วยเหลือเพิ่มเติม