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

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Triệu chứng

Không triển khai được các bản sửa đổi proxy API thông qua lệnh gọi API Quản lý Edge hoặc Giao diện người dùng Edge, gặp phải 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ể xảy ra

Có thể có nhiều nguyên nhân khác nhau dẫn đến lỗi này. Dưới đây là một vài nguyên nhân mẫu:

Nguyên nhân Chi tiết Đối với
Hết bộ nhớ Bộ xử lý thư đã hết dung lượng vùng nhớ khối xếp Java dẫn đến lỗi triển khai proxy API. Người dùng Đám mây riêng tư
Lỗi trong Gói proxy API Gói Proxy API gặp các lỗi có thể dẫn đến lỗi triển khai proxy API. Người dùng đám mây riêng tư và công khai

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ý Trình xử lý thư /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 để tìm hiểu 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 Edge Public Cloud, hãy liên hệ với Apigee Support.

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

Độ 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 Edge Public Cloud, hãy liên hệ với Apigee Support.

Tăng dung lượng vùng nhớ khối xếp Java tối đa trên Bộ xử lý thư.

Không gian Vùng nhớ khối xếp Java tối đa do thuộc tính JVM -Xmx kiểm soát. Sau đây là các bước tăng dung lượng vùng nhớ khối xếp Java trên Bộ xử lý thư:

  1. Xác định dung lượng bộ nhớ có thể tăng dung lượng vùng nhớ khối xếp Java:
    1. Kiểm tra giá trị hiện tại được đặt cho dung lượng vùng nhớ khối xếp tối đa, max_mem, trong tệp /opt/apigee/edge-message-processor/bin/setenv.sh
    2. Nhận MemTotal (Tổng dung lượng RAM có thể sử dụng), MemFree (lượng RAM vật lý còn lại chưa được 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ớ được sử dụng bởi bất kỳ quy trình nào khác, chẳng hạn như Bộ định tuyến Edge, v.v. tồn tại 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 dung lượng vùng nhớ khối xếp Java có thể tăng cho Trình xử lý thông báo.
      3. Ví dụ: dung lượng vùng nhớ khối xếp tối đa hiện tại trên Bộ xử lý thông báo là 1024MB, MemTotal là 8GB (8192MB), MemFree là 5GB (5120MB), sau đó bạn có thể tăng dung lượng vùng nhớ khối xếp Java tối đa lên 3GB (3072MB).
      4. Nếu cần được hỗ trợ trong việc xác định mức tăng dung lượng vùng nhớ khối xếp Java, hãy liên hệ với Bộ phận hỗ trợ API.
  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 vùng nhớ khối xếp tăng lên (ví dụ: 3072M):
    bin_setenv_max_mem=3072m
    
  4. Lưu tệp.
  5. Khởi động lại bộ xử lý thư:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Nếu bạn có nhiều Bộ 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ả các Bộ 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ợ API.

Lỗi trong gói proxy API

Nếu xảy ra lỗi trong bất kỳ chính sách nào dùng trong proxy API, thì quá trình triển khai sẽ không thành công do lỗi "Unexpected error occurred while processing the updates".

Ví dụ: hãy 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 Edge Public Cloud, hãy liên hệ với Apigee Support.

  1. Kiểm tra nhật ký của Trình xử lý thư để xem các trường hợp ngoại lệ hoặc lỗi liên quan đến việc triển khai proxy API. Lỗi sẽ cung cấp cho bạn thông tin về những gì 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 trong nhật ký Trình xử lý thông báo, hãy kiểm tra sự khác biệt trong nhật ký sửa đổi của proxy API. Nếu các bản sửa đổi cũ triển khai mà không gặp vấn đề gì, hãy xem lại 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 đề.
  2. Huỷ bỏ mọi thay đổi về mã đối với proxy API đã gây ra sự cố cho quá trình triển khai.

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