管理 BPEL 生产环境
一些企业将其 70% 的 IT 预算花在了维护和管理当前 IT 功能以及操作上。但矛盾的是,对于多数使用面向服务体系结构 (SOA) 的公司而言,管理 Web 服务的性能和可用性并非首要之事。因此,随着企业采用 Web 服务和 BPEL 来构建 SOA 基础架构,设计新的策略来降低应用程序管理成本变得愈加势在必行。
一些企业将其 70% 的 IT 预算花在了维护和管理当前 IT 功能以及操作上。但矛盾的是,对于多数使用面向服务体系结构 (SOA) 的公司而言,管理 Web 服务的性能和可用性并非首要之事。因此,随着企业采用 Web 服务和 BPEL 来构建 SOA 基础架构,设计新的策略来降低应用程序管理成本变得愈加势在必行。
因为通常会将多个业务流程部署至生产环境,所以这对于 BPEL 实施而言尤其重要。随着生产环境中部署了越来越多的流程,有效管理变得日趋重要。每个已执行完毕的 BPEL 流程(无论成功与否)都存储在数据库中,在流程流的不同步骤间进行交换的每条 XML 消息也是如此。正如您可能预料到的,该流程将导致数据库大小呈几何级增长,进而导致出现性能瓶颈。
由于这些原因,在 BPEL 生产环境中,最为重要的是要能够
- 在不影响生产系统稳定性的情况下,存档已完成 BPEL 流程的信息
- 删除从数据库成功交付和解析的所有 XML 消息
- 删除陈旧的实例
- 重新运行失败的流程
在 BPEL 简明手册的这一部分中,您将了解到 BPEL 流程管理器的 API 和 Dehydration Store 是如何实行这些功能,以及如何存档和删除已完成 BPEL 流程实例的信息。您还将学习如何使用 PL/SQL 和 EJB 删除陈旧的实例、完成调用以及回调 XML 消息。最后,将介绍如何通过 BPELTest 实用程序返回失败的流程实例。
BPEL 流程管理器 API 和 Dehydration Store
Oracle BPEL 流程管理器控制台为管理、调试部署至 BPEL 服务器的流程提供了一个基于 Web 的友好界面。但是,在生产环境中,管理员需要对管理任务具有强有力的控制。通过针对 BPEL Dehydration Store 数据库的 PL/SQL 查询或 BPEL API,可以将这些管理任务中的多数进行自动化。但在创建操作项之前,了解 Dehydration Store 和 BPEL 流程管理器 API 的基础概念至关重要。
Dehydration Store 数据库用于存储流程状态数据,尤其是异步 BPEL 流程的数据。以下简要介绍了一些非常重要的表。
| 表 | 内容 |
| CUBE_INSTANCE | 实例元数据信息(创建日期、当前状态、流程 id) |
| CUBE_SCOPE | 实例的范围数据 |
| AUDIT_TRAIL | 实例的审计跟踪信息。该信息可通过 BPEL 控制台查看 |
| AUDIT_DETAILS | 流程实例的详细审计信息 |
| DLV_MESSAGE | 回调消息元数据 |
| DLV_MESSAGE_BIN | 回调消息的有效负载 |
| INVOKE_MESSAGE | 调用消息元数据 |
| INVOKE_MESSAGE_BIN | 调用消息的有效负载 |
| DLV_SUBSCRIPTION | 实例的交付订阅 |
| TASK | 为实例创建的任务(即标题、任务接受人、状态、有效期) |
表 1:BPEL Dehydration Store 中的重要表
- 本文关键词:

