Kesalahan Memproses Pembaruan

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Gejala

Deployment revisi proxy API melalui panggilan UI Edge atau panggilan API pengelolaan Edge gagal dengan error "Unexpected error occurred while processing the updates".

Pesan Error

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 = []}

Kemungkinan Penyebab

Error ini dapat disebabkan oleh banyak hal. Berikut beberapa contoh penyebabnya:

Cause Detail Untuk
Kehabisan Memori Message Processor kehabisan ruang heap Java yang mengakibatkan kegagalan deployment proxy API. Pengguna Private Cloud
Error pada Paket Proxy API Paket Proxy API memiliki error yang dapat menyebabkan kegagalan deployment proxy API. Pengguna Cloud Pribadi dan Publik

Langkah umum yang harus dicoba terlebih dahulu

  1. Periksa apakah ada error deployment atau pelacakan tumpukan pengecualian dalam log Message Processor /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
  2. Anda biasanya melihat pelacakan tumpukan yang memberikan informasi tentang penyebab error deployment. Baca pelacakan tumpukan secara menyeluruh untuk memahami penyebabnya.

Kehabisan Memori

Diagnosis

Catatan: Hanya pengguna Edge Private Cloud yang dapat melakukan langkah-langkah berikut. Jika Anda menggunakan Edge Public Cloud, hubungi Dukungan Apigee.

  1. Anda mungkin melihat pengecualian yang mirip dengan yang ada di /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log log Message Processor, seperti ditunjukkan dalam gambar di bawah:
    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. Pesan Caused by: java.lang.OutofMemoryError: Java Heap space menunjukkan bahwa Message Processor telah kehabisan ruang Java Heap.

Resolusi

Catatan: Hanya pengguna Edge Private Cloud yang dapat melakukan langkah-langkah berikut. Jika Anda menggunakan Edge Public Cloud, hubungi Dukungan Apigee.

Tingkatkan ruang Java Heap maksimum di Message Processors.

Ruang Java Heap maksimum dikontrol oleh properti JVM -Xmx. Berikut langkah-langkah untuk meningkatkan ruang Java Heap di Prosesor Pesan:

  1. Tentukan jumlah memori yang dapat digunakan untuk meningkatkan ruang heap Java:
    1. Periksa nilai saat ini yang disetel untuk ruang heap maksimum, max_mem, dalam file /opt/apigee/edge-message-processor/bin/setenv.sh
    2. Dapatkan MemTotal (Jumlah total RAM yang dapat digunakan), MemFree (jumlah RAM fisik yang tidak digunakan pada sistem) menggunakan perintah /proc/meminfo di sistem.
      1. Pastikan informasi di atas menyertakan memori yang digunakan oleh proses lain, seperti Router Edge, dll. yang ada di sistem yang sama.
      2. Berdasarkan informasi di atas, tentukan seberapa banyak ruang heap Java yang dapat ditingkatkan untuk Message Processor.
      3. Misalnya, ruang heap maksimum saat ini pada Message Processor adalah 1.024 MB, MemTotal 8 GB (8192 MB), MemFree 5 GB (5120 MB), lalu Anda dapat meningkatkan ruang heap Java maksimal menjadi 3 GB (3072 MB).
      4. Jika diperlukan bantuan dalam menentukan jumlah penambahan ruang heap Java, hubungi Dukungan Apigee.
  2. Buat file berikut, jika belum ada:
    /opt/apigee/customer/application/message-processor.properties
    
  3. Tambahkan baris berikut dalam file, dengan setelan heap yang ditingkatkan (misalnya, 3072M):
    bin_setenv_max_mem=3072m
    
  4. Simpan file.
  5. Mulai ulang Pemroses Pesan:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Jika Anda memiliki lebih dari satu Pemroses Pesan, ulangi langkah 3 sampai 6 untuk semua Pemroses Pesan.

Jika masalah masih berlanjut, hubungi Dukungan Apigee.

Error dalam paket proxy API

Jika terdapat error dalam kebijakan yang digunakan di proxy API, deployment akan gagal dengan error "Unexpected error occurred while processing the updates".

Misalnya, lihat postingan komunitas ini.

Diagnosis

Catatan: Hanya pengguna Edge Private Cloud yang dapat melakukan langkah-langkah berikut. Jika Anda menggunakan Edge Public Cloud, hubungi Dukungan Apigee.

  1. Periksa log Pemroses Pesan untuk menemukan pengecualian atau error yang terkait dengan deployment proxy API. Error tersebut akan memberi Anda informasi tentang apa yang harus diubah dalam paket proxy API untuk mengatasi masalah tersebut.
  2. Jika tidak ada pesan error yang muncul pada log Message Processor, periksa perbedaan dalam histori revisi proxy API. Jika revisi lama di-deploy tanpa masalah, tinjau perubahan kode apa yang dilakukan.

Resolusi

  1. Buat perubahan yang diperlukan pada paket proxy API untuk mengatasi masalah.
  2. Kembalikan setiap perubahan kode pada proxy API yang bermasalah untuk deployment.

Jika masalah berlanjut, hubungi Dukungan Apigee untuk mendapatkan bantuan lebih lanjut.