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

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

ลักษณะปัญหา

การติดตั้งใช้งานการแก้ไขพร็อกซี API ผ่าน Edge UI หรือการเรียก Edge Management API ไม่สำเร็จโดยมีข้อผิดพลาด "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 ใช้งานได้ไม่สำเร็จ ผู้ใช้ Private Cloud และผู้ใช้ Cloud สาธารณะ

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

  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 สูงสุดบนตัวประมวลผลข้อความ

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

  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. เช่น พื้นที่ฮีปสูงสุดในปัจจุบันใน Message Processor คือ 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. ตรวจสอบบันทึกเครื่องมือประมวลผลข้อความเพื่อดูข้อยกเว้นหรือข้อผิดพลาดที่เกี่ยวข้องกับการทำให้พร็อกซี API ใช้งานได้ ข้อผิดพลาดนี้จะให้ข้อมูลเกี่ยวกับสิ่งที่ควรเปลี่ยนแปลงในกลุ่มพร็อกซี API เพื่อแก้ไขปัญหา
  2. หากไม่มีข้อความแสดงข้อผิดพลาดแสดงในบันทึกตัวประมวลผลข้อความ ให้ตรวจสอบความแตกต่างในประวัติการแก้ไขของพร็อกซี API หากเวอร์ชันเก่าใช้งานได้โดยไม่มีปัญหา ให้ตรวจสอบว่ามีการเปลี่ยนแปลงโค้ดใดไปบ้าง

ความละเอียด

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

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