方案描述
最终用户或管理员提交了触发工作流的表单。正针对其执行工作流的实例通常就是存在用户会话的实例,但是在某些预定任务上,它们可能不是同一个。实例在工作流正在进行时关闭。
不具有会话持久性
用户体验:不透明的故障转移。在提交表单时,系统将用户返回到登录页面。正在执行的工作流任务实例应当位于系统信息库中,但是,由于执行节点已关闭,因此工作流状态将为“已终止”。
恢复步骤:必须再次提交工作流,方法是返回到同一表单,重新输入在节点失败之前用来触发工作流的信息。
在某些情况(但并非所有情况)下,提交同样的请求数据可能会起作用。如果在工作流执行期间将其置备给多个资源,而其中的一些资源在发生故障之前已经置备,则在用户重新提交工作流时将必须考虑“已经置备的”资源。请注意,已终止的工作流仍停留在系统信息库中,直到 resultLimit 在 TaskInstance 对象上过期为止。
具有会话持久性
用户体验:不透明的故障转移。不会将用户注销,因为用户的会话将得以保持并在新实例中重新建立。但是,在提交表单时可能会因工作流将被终止而导致错误。此故障转移是不透明的,因为需要执行恢复操作。
恢复步骤:与不具有会话持久性的模式相同。用户必须使用相同或经过修改的参数重新提交在先前的工作流中触发的请求。
该方案的其他示例
最终用户只要提交一个用来创建 Identity Manager 帐户的自行注册请求,该实例就关闭了。
管理员只要提交正在进行的“密码重置”请求,该实例就关闭了。