Güncellemeler İşleme Hatası

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Belirti

API proxy düzeltmelerinin Edge kullanıcı arayüzü veya Edge Management API çağrıları aracılığıyla dağıtımı, "Unexpected error occurred while processing the updates" hatasını vererek başarısız oluyor.

Hata mesajları

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

Olası Nedenler

Bu hatanın birçok farklı nedeni olabilir. Aşağıda birkaç örnek neden verilmiştir:

Neden Ayrıntılar Şunlar için:
Bellek Yetersiz Mesaj İşleyici'nin Java yığın alanı kalmadığı için API proxy dağıtımı hatası oluştu. Private Cloud kullanıcıları
API Proxy Paketinde Hata API Proxy paketinde, API proxy dağıtımı hatasına neden olabilecek hatalar var. Gizli ve Herkese Açık Bulut kullanıcıları

Öncelikle denemeniz gereken genel adımlar

  1. Mesaj İşleyici günlüğünde /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log dağıtım hataları veya istisna yığını izleme olup olmadığını kontrol edin
  2. Genellikle dağıtım hatasının nedeni hakkında bilgi sağlayan bir yığın izleme (stack trace) görürsünüz. Sorunun nedenini anlamak için lütfen yığın izlemeyi (stack trace) ayrıntılı bir şekilde okuyun.

Bellek Yetersiz

Teşhis

Not: Aşağıdaki adımları yalnızca Edge Private Cloud kullanıcıları gerçekleştirebilir. Edge Public Cloud'daysanız Apigee Destek Ekibi ile iletişime geçin.

  1. Aşağıdaki şekilde gösterildiği gibi Mesaj İşleyici günlüğündeki (/opt/apigee/var/log/apigee/edge-message-processor/logs/system.log) istisnaya benzer bir istisna görebilirsiniz:
    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. Neden: java.lang.OutofMemoryError: Java Yığın alanı iletisi, Mesaj İşleyici'de Java Yığın alanının tükendiğini belirtir.

Çözünürlük

Not: Aşağıdaki adımları yalnızca Edge Private Cloud kullanıcıları gerçekleştirebilir. Edge Public Cloud'daysanız Apigee Destek Ekibi ile iletişime geçin.

Mesaj İşlemcilerindeki maksimum Java Yığını alanını artırın.

Maksimum Java Yığını alanı, -Xmx JVM özelliği tarafından kontrol edilir. Mesaj İşleyicilerinde Java Yığını alanını artırmak için uygulanacak adımlar şunlardır:

  1. Java yığın alanının artırılabileceği bellek miktarını belirleyin:
    1. Dosyada maksimum yığın alanı için ayarlanmış olan maksimum_mem değerini kontrol edin. /opt/apigee/edge-message-processor/bin/setenv.sh
    2. Sistemde /proc/meminfo komutunu kullanarak MemTotal (Toplam kullanılabilir RAM miktarı), MemFree (sistemde kullanılmayan fiziksel RAM miktarı) alın.
      1. Yukarıdaki bilgilerin, aynı sistemde bulunan Edge Router gibi diğer işlemler tarafından tüketilen belleği içerdiğinden emin olun.
      2. Yukarıdaki bilgilere dayanarak Message Processor için Java yığın alanının ne kadar artırılabileceğini belirleyin.
      3. Örneğin, Mesaj İşleyici'deki geçerli maksimum yığın alanı 1.024 MB, MemTotal 8 GB (8.192 MB), MemFree 5 GB'tır (5.120 MB) ve maksimum Java yığın alanını 3 GB'a (3.072 MB) artırabilirsiniz.
      4. Java yığın alanını ne kadar artıracağınızı belirleme konusunda yardıma ihtiyacınız varsa Apigee Desteği ile iletişime geçin.
  2. Henüz mevcut değilse aşağıdaki dosyayı oluşturun:
    /opt/apigee/customer/application/message-processor.properties
    
  3. Aşağıdaki satırı, artırılmış yığın ayarıyla (ör. 3072 M) dosyaya ekleyin:
    bin_setenv_max_mem=3072m
    
  4. Dosyayı kaydedin.
  5. Mesaj İşleyici'yi yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Birden fazla Mesaj İşleyiciniz varsa tüm Mesaj İşleyicilerinde 3 ile 6 arasındaki adımları tekrarlayın.

Sorun devam ederse Apigee Destek Ekibi ile iletişime geçin.

API proxy paketinde hata

API proxy'sinde kullanılan politikaların herhangi birinde hata varsa dağıtım "Unexpected error occurred while processing the updates" hatasını alarak başarısız olur.

Örneğin, şu topluluk gönderisine göz atın.

Teşhis

Not: Aşağıdaki adımları yalnızca Edge Private Cloud kullanıcıları gerçekleştirebilir. Edge Public Cloud'daysanız Apigee Destek Ekibi ile iletişime geçin.

  1. API proxy dağıtımıyla ilgili istisnalar veya hatalar için Mesaj İşleyici günlüklerine bakın. Hata, sorunu gidermek için API proxy paketinde nelerin değiştirilmesi gerektiği hakkında size bilgi verir.
  2. Mesaj İşleyici günlüklerinde herhangi bir hata mesajı gösterilmiyorsa API proxy'sinin düzeltme geçmişindeki farkları kontrol edin. Eski düzeltmeler sorunsuz bir şekilde dağıtılıyorsa hangi kod değişikliklerinin yapıldığını inceleyin.

Çözünürlük

  1. Sorunu gidermek için API proxy paketinde gerekli değişiklikleri yapın.
  2. Dağıtımda sorunlu olan API proxy'sinde yapılan kod değişikliklerini geri alın.

Sorun devam ederse daha fazla yardım almak için Apigee Destek Ekibi ile iletişime geçin.