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

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

علامت

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

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

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

حافظه خالی است

تشخیص

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

  1. ممکن است خطایی مشابه خطای موجود در فایل Message Processor log /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 نشان می‌دهد که پردازنده پیام (Message Processor) با کمبود فضای Java Heap مواجه شده است.

وضوح تصویر

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

حداکثر فضای Java Heap را روی پردازنده‌های پیام افزایش دهید.

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

  1. مقدار حافظه‌ای که می‌توان فضای هیپ جاوا را افزایش داد، تعیین کنید:
    1. مقدار فعلی تعیین‌شده برای حداکثر فضای هیپ، max_mem، را در فایل /opt/apigee/edge-message-processor/bin/setenv.sh بررسی کنید.
    2. با استفاده از دستور /proc/meminfo روی سیستم، MemTotal (مقدار کل رم قابل استفاده) و MemFree (مقدار رم فیزیکی استفاده نشده روی سیستم) را دریافت کنید.
      1. مطمئن شوید که اطلاعات فوق شامل حافظه مصرف شده توسط سایر فرآیندهای موجود در همان سیستم مانند Edge Router و غیره نیز می‌شود.
      2. بر اساس اطلاعات فوق، تعیین کنید که فضای هیپ جاوا برای پردازنده پیام چقدر می‌تواند افزایش یابد.
      3. برای مثال، حداکثر فضای هیپ فعلی در پردازنده پیام ۱۰۲۴ مگابایت، MemTotal 8 گیگابایت (۸۱۹۲ مگابایت) و MemFree 5 گیگابایت (۵۱۲۰ مگابایت) است، پس می‌توانید حداکثر فضای هیپ جاوا را به ۳ گیگابایت (۳۰۷۲ مگابایت) افزایش دهید.
      4. اگر برای تعیین میزان افزایش فضای هیپ جاوا به کمک نیاز دارید، با پشتیبانی Apigee تماس بگیرید.
  2. اگر فایل زیر از قبل وجود ندارد، آن را ایجاد کنید:
    /opt/apigee/customer/application/message-processor.properties
  3. خط زیر را به فایل اضافه کنید، با تنظیم افزایش یافته‌ی heap (برای مثال، 3072M):
    bin_setenv_max_mem=3072m
  4. فایل را ذخیره کنید.
  5. پردازشگر پیام را مجدداً راه‌اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  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 تماس بگیرید.