خطا در پردازش به‌روزرسانی‌ها

درحال مشاهده اسناد 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 ناموفق بود. کاربران «فضای ابری خصوصی»
خطا در «دسته پراکسی API» بسته «پراکسی API» خطاهایی دارد که می‌تواند منجر به ناموفق بودن استقرار پراکسی API شود. کاربران «فضای ابری خصوصی و عمومی»

مراحل رایج برای امتحان کردن در ابتدا

  1. بررسی کنید آیا خطای استقرار یا ردیابی پشته استثنایی در گزارش «پردازشگر پیام» وجود دارد یا نه /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
  2. معمولاً ردیابی پشته‌ای را می‌بینید که اطلاعاتی درباره علت خطای استقرار ارائه می‌دهد. لطفاً ردیابی پشته را به‌طور کامل بخوانید تا علت را متوجه شوید.

کمبود حافظه

تشخیص

توجه: فقط کاربران «ابر خصوصی Edge» می‌توانند مراحل زیر را انجام دهند. اگر در 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 نشان می‌دهد که «پردازنده پیام» فضای «پشته جاوا» را تمام کرده است.

وضوح

توجه: فقط کاربران «ابر خصوصی Edge» می‌توانند مراحل زیر را انجام دهند. اگر در Edge Public Cloud هستید، با پشتیبانی Apigee تماس بگیرید.

حداکثر فضای «پشته جاوا» را در «پردازنده‌های پیام» افزایش دهید.

حداکثر فضای پشته Java توسط ویژگی JVM -Xmx کنترل می‌شود. در اینجا مراحل افزایش فضای پشته Java در «پردازنده‌های پیام» آمده است:

  1. مقدار حافظه‌ای را که فضای پشته Java می‌تواند افزایش یابد تعیین کنید:
    1. مقدار فعلی تنظیم‌شده برای فضای پشته بیشینه، max_mem، را در فایل /opt/apigee/edge-message-processor/bin/setenv.sh بررسی کنید
    2. بااستفاده از فرمان /proc/meminfo در سیستم، MemTotal (کل مقدار RAM قابل‌استفاده)، MemFree (مقدار RAM فیزیکی که در سیستم استفاده نشده است) را دریافت کنید.
      1. مطمئن شوید که اطلاعات بالا شامل حافظه مصرف‌شده توسط هر فرایند دیگری مانند Edge Router و غیره که در همان سیستم وجود دارد باشد.
      2. براساس اطلاعات بالا، تعیین کنید فضای پشته Java برای «پردازشگر پیام» تا چه میزان می‌تواند افزایش یابد.
      3. برای مثال، اگر فضای پشته بیشینه فعلی در «پردازنده پیام» ۱۰۲۴ مگابایت باشد، ‫MemTotal‏ ۸ گیگابایت (۸۱۹۲ مگابایت)، و MemFree‏ ۵ گیگابایت (۵۱۲۰ مگابایت) باشد، می‌توانید فضای پشته بیشینه Java را به ۳ گیگابایت (۳۰۷۲ مگابایت) افزایش دهید.
      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. اگر بیش‌از یک «پردازشگر پیام» دارید، مراحل ۳ تا ۶ را در همه «پردازشگرهای پیام» تکرار کنید.

اگر مشکل برطرف نشد، با پشتیبانی Apigee.تماس بگیرید

خطا در بسته پراکسی میانای برنامه‌سازی کاربردی

اگر در هریک از خط‌مشی‌های استفاده‌شده در پراکسی API خطایی وجود داشته باشد، استقرار با خطای «Unexpected error occurred while processing the updates» ناموفق خواهد بود.

برای مثال، این پست انجمن را ببینید.

تشخیص

توجه: فقط کاربران «ابر خصوصی Edge» می‌توانند مراحل زیر را انجام دهند. اگر در Edge Public Cloud هستید، با پشتیبانی Apigee تماس بگیرید.

  1. گزارش‌های «پردازشگر پیام» را برای استثناها یا خطاهای مربوط به استقرار پراکسی API بررسی کنید. این خطا باید اطلاعاتی درباره آنچه باید در بسته پراکسی میانای برنامه‌سازی کاربردی تغییر کند تا مشکل برطرف شود به شما ارائه دهد.
  2. اگر هیچ پیام خطایی در گزارش‌های «پردازشگر پیام» نشان داده نمی‌شود، تفاوت‌ها را در سابقه اصلاحات کارگزار API بررسی کنید. اگر نسخه‌های قدیمی‌تر بدون مشکل مستقر می‌شوند، تغییرات کد را بررسی کنید.

وضوح

  1. برای رفع مشکل، تغییرات لازم را در دسته پراکسی API اعمال کنید.
  2. هرگونه تغییر کد را به پراکسی API که برای استقرار مشکل‌ساز بوده است برگردانید.

اگر مشکل برطرف نشد، برای دریافت راهنمایی بیشتر با پشتیبانی Apigee تماس بگیرید.