第二十七章 开发Productions - ObjectScript Productions - 定义业务流程 - 关键原则
关键原则
在开发业务流程时,请考虑以下关键原则:
- 有时希望使响应对象成为传入请求对象的修改版本,分阶段进行修改可能很有用。但是,不要修改传入的请求对象。而是将其复制到上下文变量(或者,对于自定义业务流程,将数据复制到局部变量)。然后修改副本。
- 同步发送消息时要小心(只能在自定义业务流程中或
BPL
中的<code>
中执行)。
当业务流程A
同步调用业务流程B时,流程A不会继续,直到收到响应。如果进程 A
需要完成对其他进程 (B
) 的调用才能完成自身,并且如果这些进程共享参与者作业池,则如果没有空闲的参与者作业来处理被调用的业务流程,则参与者池可能会陷入死锁( B
).
发生这种情况是因为在被调用业务流程返回之前,调用业务流程无法完成并释放参与者作业,但被调用业务流程无法执行,因为没有空闲的参与者作业来执行它。