שגיאה בעיבוד העדכונים

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

תיאור הבעיה

פריסת הגרסאות הקודמות של ה-API של ה-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 = []}

סיבות אפשריות

יכולות להיות סיבות רבות ושונות לשגיאה הזו. הנה כמה סיבות לדוגמה:

הסיבה פרטים עבור
מהזיכרון למעבד ההודעות נגמר שטח הערימה של Java, וכתוצאה מכך נכשלה פריסת ה-API של שרת ה-API. משתמשים בענן פרטי
שגיאה בחבילת API Proxy יש בחבילה של שרת ה-proxy של ה-API שגיאות שעלולות לגרום לכשל בפריסה של שרת ה-proxy של ה-API. משתמשים בענן פרטי וציבורי

שלבים נפוצים שכדאי לנסות קודם

  1. כדאי לבדוק אם יש שגיאות בפריסה או אם יש שגיאות פריסה או דוח קריסות חריג ביומן מעבד ההודעות /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
  2. בדרך כלל מוצג דוח קריסות שמספק מידע על הגורם לשגיאה בפריסה. חשוב לקרוא את דוח הקריסות ביסודיות כדי להבין מה הסיבה.

אין זיכרון פנוי

אבחון

הערה: רק משתמשי 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. ההודעה הסיבה שנגרמה על ידי: java.lang.OutofMemoryError: שטח ערימה של Java מציינת ששטח ה-Java Heap אזל.

רזולוציה

הערה: רק משתמשי Edge Private Cloud יכולים לבצע את השלבים הבאים. אם אתם משתמשים ב-Edge Public Cloud, תוכלו לפנות לתמיכה של Apigee.

הגדלת השטח המקסימלי של Java Heap במעבדי ההודעות.

השטח המקסימלי של Java Heap נשלט על ידי נכס ה-JVM -Xmx. אלה השלבים להגדלת שטח הערימה של Java במעבדי ההודעות:

  1. קובעים את כמות הזיכרון שבאמצעותה ניתן להגדיל את שטח הערימה של Java:
    1. כדאי לבדוק את הערך הנוכחי שהוגדר עבור נפח הערימה המקסימלי, max_mem, בקובץ /opt/apigee/edge-message-processor/bin/setenv.sh
    2. מקבלים MemTotal (כמות ה-RAM הכוללת לשימוש), MemFree (כמות ה-RAM הפיזית שנשארה ללא שימוש במערכת) באמצעות הפקודה /proc/meminfo במערכת.
      1. יש לוודא שהמידע שלמעלה כולל את הזיכרון שנצרך על ידי תהליכים אחרים, כמו Edge Router וכו' שקיימים באותה מערכת.
      2. על סמך המידע שלמעלה, קובעים באיזו מידה ניתן להגדיל את שטח הערימה של Java עבור מעבד ההודעות.
      3. לדוגמה, נפח הערימה המקסימלי הנוכחי במעבד ההודעות הוא 1,024MB, MemTotal הוא 8GB (8192MB), MemFree הוא 5GB (5,120MB), ואז אפשר להגדיל את שטח הערימה המקסימלי ב-Java ל-3GB (3,072MB).
      4. אם אתם צריכים עזרה כדי לקבוע בכמה להגדיל את נפח הערימה של Java, תוכלו לפנות לתמיכה של Apigee.
  2. יוצרים את הקובץ הבא, אם הוא עדיין לא קיים:
    /opt/apigee/customer/application/message-processor.properties
    
  3. מוסיפים את השורה הבאה לקובץ עם הגדרת הערימה המוגדלת (לדוגמה, 3, 072M):
    bin_setenv_max_mem=3072m
    
  4. שומרים את הקובץ.
  5. מפעילים מחדש את מעבד ההודעות:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. אם יש לכם יותר ממעבד הודעות אחד, חוזרים על השלבים 3 עד 6 בכל מעבדי ההודעות.

אם הבעיה נמשכת, יש לפנות לתמיכה של Apigee..

שגיאה בחבילה של proxy ל-API

אם יש שגיאות בכללי המדיניות שנעשה בהם שימוש בשרת ה-proxy של ה-API, הפריסה תיכשל ותוצג השגיאה "Unexpected error occurred while processing the updates".

לדוגמה, עיינו ב פוסט הזה לקהילה.

אבחון

הערה: רק משתמשי Edge Private Cloud יכולים לבצע את השלבים הבאים. אם אתם משתמשים ב-Edge Public Cloud, תוכלו לפנות לתמיכה של Apigee.

  1. מומלץ לבדוק ביומנים של מעבד ההודעות חריגים או שגיאות שקשורות לפריסת שרת ה-proxy של ה-API. השגיאה אמורה לספק מידע על מה שצריך לשנות בחבילה של שרת proxy ל-API כדי לטפל בבעיה.
  2. אם לא מופיעות הודעות שגיאה ביומנים של מעבד ההודעות, צריך לבדוק את ההבדלים בהיסטוריית הגרסאות של שרת ה-API של שרת ה-proxy. אם גרסאות קודמות נפרסו ללא בעיה, כדאי לבדוק אילו שינויים בוצעו בקוד.

רזולוציה

  1. מבצעים את השינויים הנדרשים בחבילה של שרת ה-proxy של ה-API כדי לטפל בבעיה.
  2. מבטלים שינויים בקוד של שרת ה-proxy של ה-API שהיו בעייתיים בפריסה.

אם הבעיה נמשכת, יש לפנות לתמיכה של Apigee לקבלת עזרה נוספת.