![[z/OS]](../images/ngzos.gif)
在没有服务方可用来处理工作请求时,自动拒绝这些请求
当控制器确定服务方已终止时,该控制器会按正常情况清除分派到该服务方中的任何其他工作请求。如果该服务方是最后一个服务方,那么会将新的工作请求放置到请求队列中直到服务方可用。根据服务方变为可用所花的时间,这些请求可能会因为允许处理请求的时间到期而终止。为避免发生这种情况,可更改应用程序服务器的配置设置以阻止控制器接受新请求。
关于此任务
当新的服务方准备开始接受请求时,队列中的下一个请求可能会因为非常接近超时而导致请求的分派进程不能完成,并且服务方再次被超时处理过程终止。请求再次在队列中累积,直到又一个新的服务方就绪,并且可能会发生同样的超时问题。如果一再发生此问题,那么有时会称之为弹回服务方问题。可以通过下列其中一种方法来处理此问题:
- 可以配置服务器以便自动检测没有服务方的情况,并且停止接受请求,直到准备好接受工作的服务方数目达到最小配置数目。这是最简单的方法。
- 如果能够在服务方因为超时而终止之前检测到存在的系统问题,那么可创建自动化例程以处理该问题。此自动化例程可发出 f server, pauselisteners 命令以阻止此服务器接受请求。然后,该例程必须在情况变化时进行检测并在解析检测到的系统问题时发出 f server, resumelisteners 命令。
- 可以配置服务器以便检测没有服务方的情况,并且停止接受请求,同时创建先前讨论的自动化例程。自动化例程必须识别可能发生的不同处理,原因是服务器配置为检测没有服务器的情况:
- 如果最后一个服务方终止,那么即使发出 f server, pauselisteners 命令,服务器也会开始拒绝所有请求并发出消息 BBOO0299I。当准备好接受工作的服务方达到所要求的最小数目(已将服务器配置为使用该数目)时,服务器自动开始接受请求。它还发出消息 BBOO0300I 以指示再次处理这些请求。因此,自动化例程必须注意到以下事实:服务器可能会在检测到最小数目的服务方可用时恢复接受请求。
- 如果对服务器指定了 control_region_confirm_recovery_on_no_srs 定制属性,那么服务器会在检测到准备好处理新请求的服务方达到最小数目(已将服务器配置为使用该数目)之后发出 WTOR 消息 BBOO0297A。在服务器实际开始接受工作前,必须输入对此消息的响应。
- 如果自动化例程阻止服务器终止服务方(因为超时处理),那么它还必须确定服务器何时恢复获取请求比较安全,并在该时间点发出 f server, resumelisteners 命令。自动化例程可设置为根据是否发出消息 BBOO0299I 来确定是否需要发出 f server, resumelisteners 命令。此消息指示服务器的服务方数目不足,并且将拒绝请求。此方法最复杂,但也最灵活。
如果要将服务器配置为处理没有服务器的情况,请完成以下步骤。
过程
- 在管理控制台中,单击 ,然后选择要对其自动检测无服务方情况的应用程序服务器。
- 在“其他属性”下,单击 。
- 在“名称”字段中指定 control_region_dreg_on_no_srs,并在“值”字段中指定 1。 当此定制属性设置为 1 时,如果服务器检测到没有服务方可用于处理请求,它将拒绝要分派的所有请求。将此属性设置为 0(零)会禁用此功能。
- 在“名称”字段中指定 control_region_confirm_recovery_on_no_srs 并在“值”字段中指定 0(零)或 1。 如果在“值”字段中输入 0,那么控制器会在准备好接收请求的服务方达到最小数目时立即恢复接受请求。如果在“值”字段中输入 1,那么控制器会在检测到准备好接受工作的服务方达到最小数目(已将服务器配置为使用该数目)时立即发出 WTOR 消息 BBOO0297A。在服务器实际恢复获取请求前,服务器将等待直到它接收到此消息的响应。
- 单击查看,选择与节点同步更改,然后单击保存以使用这些更改来更新主存储库。