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

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

علامت

استقرار ویرایش‌های پراکسی API از طریق تماس‌های Edge UI یا مدیریت Edge با خطای " 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 = []}

علل احتمالی

دلایل مختلفی برای این خطا می تواند وجود داشته باشد. در اینجا چند نمونه از دلایل وجود دارد:

علت جزئیات برای
از حافظه فضای پشته‌های جاوا در پردازشگر پیام تمام شد که منجر به عدم استقرار پروکسی API شد. کاربران خصوصی Cloud
خطا در API Proxy Bundle بسته API Proxy دارای خطاهایی است که می‌تواند منجر به شکست استقرار پروکسی API شود. کاربران خصوصی و عمومی Cloud

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

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

از حافظه

تشخیص

توجه: فقط کاربران 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: فضای پشته جاوا نشان می دهد که فضای پردازشگر پیام جاوا هیپ تمام شده است.

قطعنامه

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

حداکثر فضای جاوا Heap را در پردازشگرهای پیام افزایش دهید.

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

  1. مقدار حافظه ای را که می توان فضای پشته جاوا را افزایش داد، تعیین کنید:
    1. مقدار فعلی تنظیم شده برای حداکثر فضای پشته، max_mem را در فایل /opt/apigee/edge-message-processor/bin/setenv.sh بررسی کنید.
    2. MemTotal (مجموع مقدار RAM قابل استفاده)، MemFree (مقدار رم فیزیکی بدون استفاده در سیستم) را با استفاده از دستور /proc/meminfo روی سیستم دریافت کنید.
      1. اطمینان حاصل کنید که اطلاعات فوق شامل حافظه مصرف شده توسط هر فرآیند دیگری مانند Edge Router و غیره که در همان سیستم وجود دارد باشد.
      2. بر اساس اطلاعات فوق، تعیین کنید که فضای پشته جاوا چقدر می تواند برای Message Processor افزایش یابد.
      3. به عنوان مثال، حداکثر فضای هپ فعلی در پردازنده پیام 1024 مگابایت، MemTotal 8 گیگابایت (8192 مگابایت)، MemFree 5 گیگابایت (5120 مگابایت) است، سپس می توانید حداکثر فضای پشته جاوا را به 3 گیگابایت (3072 مگابایت) افزایش دهید.
      4. اگر برای تعیین میزان افزایش فضای پشته جاوا به کمک نیاز است، با پشتیبانی 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. اگر بیش از یک پردازشگر پیام دارید، مراحل 3 تا 6 را در همه پردازشگرهای پیام تکرار کنید.

اگر مشکل ادامه داشت، با پشتیبانی 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 تماس بگیرید.