Lỗi khi xử lý bản cập nhật

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Dấu hiệu

Việc triển khai các bản sửa đổi của proxy API thông qua giao diện người dùng Edge hoặc các lệnh gọi API quản lý Edge không thành công kèm theo lỗi "Unexpected error occurred while processing the updates".

Thông báo lỗi

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

Nguyên nhân có thể dẫn đến vấn đề này

Có thể có nhiều nguyên nhân gây ra lỗi này. Sau đây là một số nguyên nhân mẫu:

Nguyên nhân Chi tiết Trong khoảng
Hết bộ nhớ Message Processor hết dung lượng heap của Java, dẫn đến việc triển khai proxy API không thành công. Người dùng Đám mây riêng tư
Lỗi trong gói Proxy API Gói API Proxy có các lỗi có thể dẫn đến việc triển khai API Proxy không thành công. Người dùng Đám mây riêng tư và Đám mây công cộng

Các bước phổ biến nên thử trước tiên

  1. Kiểm tra xem có lỗi triển khai hoặc dấu vết ngăn xếp ngoại lệ nào trong nhật ký Message Processor (Trình xử lý thông báo) không /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
  2. Bạn thường thấy một dấu vết ngăn xếp cung cấp thông tin về nguyên nhân gây ra lỗi triển khai. Vui lòng đọc kỹ dấu vết ngăn xếp để hiểu rõ nguyên nhân.

Hết bộ nhớ

Chẩn đoán

Lưu ý: Chỉ người dùng Edge Private Cloud mới có thể thực hiện các bước sau. Nếu bạn đang sử dụng Đám mây công khai Edge, hãy liên hệ với Nhóm hỗ trợ Apigee.

  1. Bạn có thể thấy ngoại lệ tương tự như ngoại lệ trong nhật ký Message Processor /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log như minh hoạ trong hình bên dưới:
    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. Thông báo Caused by: java.lang.OutofMemoryError: Java Heap space cho biết Trình xử lý thông báo đã hết vùng nhớ khối xếp Java.

Độ phân giải

Lưu ý: Chỉ người dùng Edge Private Cloud mới có thể thực hiện các bước sau. Nếu bạn đang sử dụng Đám mây công khai Edge, hãy liên hệ với Nhóm hỗ trợ Apigee.

Tăng dung lượng tối đa của vùng nhớ xếp Java trên Trình xử lý thông báo.

Dung lượng tối đa của Heap Java được kiểm soát bằng thuộc tính JVM -Xmx. Sau đây là các bước để tăng dung lượng Heap Java trên Trình xử lý thông báo:

  1. Xác định lượng bộ nhớ mà vùng nhớ khối xếp Java có thể tăng lên:
    1. Kiểm tra giá trị hiện tại được đặt cho dung lượng tối đa của vùng nhớ heap, max_mem, trong tệp /opt/apigee/edge-message-processor/bin/setenv.sh
    2. Lấy MemTotal (Tổng dung lượng RAM có thể sử dụng), MemFree (Dung lượng RAM vật lý còn lại chưa sử dụng trên hệ thống) bằng lệnh /proc/meminfo trên hệ thống.
      1. Đảm bảo thông tin trên bao gồm bộ nhớ mà mọi quy trình khác tiêu thụ, chẳng hạn như Edge Router, v.v. có trên cùng một hệ thống.
      2. Dựa trên thông tin trên, hãy xác định mức tăng không gian vùng nhớ khối xếp Java cho Trình xử lý thông báo.
      3. Ví dụ: nếu vùng nhớ khối xếp tối đa hiện tại trên Trình xử lý tin nhắn là 1024 MB, MemTotal là 8 GB (8192 MB), MemFree là 5 GB (5120 MB), thì bạn có thể tăng vùng nhớ khối xếp tối đa của Java lên 3 GB (3072 MB).
      4. Nếu bạn cần được trợ giúp để xác định mức tăng không gian vùng nhớ heap Java, hãy liên hệ với Nhóm hỗ trợ Apigee.
  2. Tạo tệp sau đây (nếu chưa có):
    /opt/apigee/customer/application/message-processor.properties
  3. Thêm dòng sau vào tệp, với chế độ cài đặt heap tăng lên (ví dụ: 3072M):
    bin_setenv_max_mem=3072m
  4. Lưu tệp.
  5. Khởi động lại Trình xử lý tin nhắn:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Nếu bạn có nhiều Trình xử lý thông báo, hãy lặp lại các bước từ 3 đến 6 trên tất cả Trình xử lý thông báo.

Nếu vấn đề vẫn tiếp diễn, hãy liên hệ với Nhóm hỗ trợ Apigee.

Lỗi trong gói proxy API

Nếu có lỗi trong bất kỳ chính sách nào được dùng trong proxy API, thì quá trình triển khai sẽ không thành công kèm theo lỗi "Unexpected error occurred while processing the updates".

Ví dụ: xem bài đăng này trên thẻ Cộng đồng.

Chẩn đoán

Lưu ý: Chỉ người dùng Edge Private Cloud mới có thể thực hiện các bước sau. Nếu bạn đang sử dụng Đám mây công khai Edge, hãy liên hệ với Nhóm hỗ trợ Apigee.

  1. Kiểm tra nhật ký Message Processor (Trình xử lý thông báo) để biết các trường hợp ngoại lệ hoặc lỗi liên quan đến việc triển khai API proxy. Lỗi này sẽ cung cấp cho bạn thông tin về những nội dung cần thay đổi trong gói proxy API để giải quyết vấn đề.
  2. Nếu không có thông báo lỗi nào xuất hiện trên nhật ký Message Processor, hãy kiểm tra các khác biệt trong nhật ký sửa đổi của API proxy. Nếu các bản sửa đổi cũ hơn triển khai mà không gặp vấn đề gì, hãy xem xét những thay đổi về mã đã được thực hiện.

Độ phân giải

  1. Thực hiện các thay đổi cần thiết trong gói proxy API để giải quyết vấn đề này.
  2. Huỷ mọi thay đổi về mã đối với proxy API gây ra vấn đề cho quá trình triển khai.

Nếu vấn đề vẫn tiếp diễn, hãy liên hệ với Nhóm hỗ trợ Apigee để được trợ giúp thêm.