BPEL - Sử dụng Xử lý lỗi

Để hiểu cách sử dụng xử lý lỗi, chúng ta cần tìm hiểu kiến ​​trúc cơ bản của Service Composite trong Oracle SOA Suite.

  • Service components- Quy trình BPEL, Quy tắc kinh doanh, Nhiệm vụ của con người, Người hòa giải. Chúng được sử dụng để xây dựng một ứng dụng tổng hợp SOA.

  • Binding components - Thiết lập kết nối giữa SOA composite và thế giới bên ngoài.

  • Services - Cung cấp một điểm vào ứng dụng tổng hợp SOA.

  • Binding - Xác định các giao thức giao tiếp với dịch vụ như SOAP / HTTP, bộ điều hợp JCA, v.v.

  • WSDL - Xác định định nghĩa dịch vụ của một dịch vụ web.

  • References - Cho phép ứng dụng tổng hợp SOA gửi tin nhắn đến các dịch vụ bên ngoài

  • Wires - Cho phép kết nối giữa các thành phần dịch vụ.

Các loại lỗi

Bây giờ chúng ta hãy xem các loại lỗi khác nhau.

Lỗi kinh doanh

Xảy ra khi ứng dụng thực hiện hoạt động THROW hoặc INVOKE nhận được lỗi dưới dạng phản hồi. Tên lỗi được chỉ định bởi thành phần dịch vụ quy trình BPEL. Trình xử lý lỗi sử dụng Tên lỗi và biến Lỗi sẽ bắt lỗi này.

Lỗi thời gian chạy

Điều này được ném bởi hệ thống. Những lỗi này có liên quan đếnRunTimeFaultMessage và được bao gồm trong

http://schemas.oracle.com/bpel/extensionnamespace.

Các cách xử lý lỗi

Trong phần này, chúng ta sẽ tìm hiểu về các cách xử lý lỗi khác nhau.

Hoạt động ném

Hoạt động ném ném lỗi một cách rõ ràng. Khối bắt bắt lỗi này và các hành động tương ứng sẽ được thực thi do đó.

  • Sử dụng hoạt động ném, bạn có thể đưa ra các lỗi kinh doanh & trong phạm vi đã tạo, bạn có thể bắt lỗi này và chuyển hướng đến người gọi (người tiêu dùng) để thực hiện hành động.

  • Thay vì cách tiếp cận ở trên, bạn ném cùng một lỗi bị bắt trong hoạt động bắt của phạm vi đã tạo. Trong phạm vi chính, bạn có thể bắt lỗi này bằng cách sử dụng hoạt động catchall.

Khung xử lý lỗi (EHF)

2 tệp chính được sử dụng trong EHF là:

  • Fault-Policy.xml
  • Fault-Bindings.xml

Bất cứ khi nào quá trình BPEL gặp lỗi, EHF sẽ kiểm tra xem lỗi có tồn tại trong các tệp Fault-Bindings.xml hay không. Nếu vậy, hành động trong tệp Fault-Policy.xml sẽ được thực hiện. Nếu hành động không được tìm thấy, lỗi sẽ được ném ra và nó sẽ được xử lý trong khối bắt.

Khung quản lý lỗi (Fault-Policy.xml và Fault-Bindings.xml) được lưu giữ bên trong SOA Composite.

Các trình xử lý lỗi như bắt và lấy catchall nằm bên trong một BPEL để bắt tất cả các lỗi, nhưng fault policies will only be executed when an invoke activity fails.