Kesalahan Memproses Pembaruan

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

ini.

Gejala

Penerapan revisi proxy API melalui panggilan API pengelolaan Edge atau UI Edge gagal dengan kesalahan "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

Ada banyak penyebab error ini. Berikut adalah beberapa contoh penyebabnya:

Cause Detail Untuk
Kehabisan Memori Pemroses Pesan kehabisan ruang heap Java sehingga deployment proxy API gagal. 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 stack trace pengecualian di Pemroses Pesan catatan /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
  2. Anda biasanya melihat stack trace yang memberikan informasi tentang penyebab deployment {i>error<i}. Harap 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 berada di Edge Public Cloud, hubungi Dukungan Apigee.

  1. Anda mungkin melihat pengecualian yang serupa dengan yang ada di log Pemroses Pesan /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log seperti yang terlihat dalam gambar di bawah ini:
    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 Pemroses Pesan telah kehabisan ruang Java Heap.

Resolusi

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

Tingkatkan ruang Java Heap maksimum di Pemroses Pesan.

Ruang Java Heap maksimum dikontrol oleh properti JVM -Xmx. Berikut adalah langkah-langkah untuk meningkatkan ruang Java Heap di Message Processors:

  1. Tentukan jumlah memori yang dapat digunakan untuk menambah ruang heap Java:
    1. Memeriksa set nilai saat ini untuk ruang heap maksimum, max_mem, dalam file /opt/apigee/edge-message-processor/bin/setenv.sh
    2. Dapatkan MemTotal (Total jumlah RAM yang dapat digunakan), MemFree (jumlah RAM fisik yang tersisa yang tidak digunakan pada sistem) menggunakan /proc/meminfo di sistem.
      1. Pastikan informasi di atas menyertakan memori yang digunakan oleh proses lainnya seperti Edge Router dll. yang ada di sistem yang sama.
      2. Berdasarkan informasi di atas, tentukan seberapa banyak ruang heap Java yang dapat meningkat untuk Pemroses Pesan.
      3. Misalnya, ruang heap maksimum saat ini pada Message Processor adalah 1024 MB, MemTotal adalah 8GB (8192MB), MemFree adalah 5GB (5120MB), maka Anda dapat meningkatkan ruang heap menjadi 3 GB (3072 MB).
      4. Jika bantuan diperlukan dalam menentukan banyaknya ruang heap Java, hubungi Dukungan Apigee.
  2. Buat file berikut, jika belum ada:
    /opt/apigee/customer/application/message-processor.properties
  3. Tambahkan baris berikut di 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. Bila Anda memiliki lebih dari satu Pemroses Pesan, ulangi langkah 3 sampai 6 pada semua Pemroses Pesan.

Jika masalah berlanjut, hubungi Apigee Dukungan.

Terjadi error dalam paket proxy API

Jika ada error di salah satu kebijakan yang digunakan di proxy API, deployment akan gagal dengan pesan error "Unexpected error occurred while processing the updates".

Misalnya, lihat ini postingan komunitas ini.

Diagnosis

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

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

Resolusi

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

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