Production是开发者基于InterSystems IRIS产品家族实现互操作功能的主要技术架构。而每个Production的运行依赖于三类主要的业务组件:
- 业务服务(Business Service)
- 业务流程(Business Process)
- 业务操作(Business Operation)
三类组件间以消息作为信息交换的主要媒介。因此,要保障互操作业务的稳定运行,除保障软件平台有充足的软硬件资源运行外,保障Production中消息的高效传输以及三类组件的平稳、高效运行则是运维团队面临的主要目标。下面列举的若干项任务则有助于运维团队实现这些目标:
优化业务组件运行效率
Production中的业务组件都有运行池的概念,允许业务组件运行在多个进程上并发工作以提高整体性能。运行池又可以分为私有池和参与者池两类。
私有运行池
-
- 业务组件的CPU作业的数量
- 默认为1即可工作
- 通过性能测试确定最佳的池大小
- 拥有私有池的业务组件从私有队列中处理消息
- 无适配器业务服务的池大小需设置为0
- 需要多进程时,池大小设为1可以保证信息以先进先出(FIFO)顺序处理
- 整个消息流中的所有业务组件的池大小都不应大于1
- 业务组件的CPU作业的数量
参与者池
-
- Production级的参与者池设置
- 用于处理公共队列中的请求的CPU作业的数量
- 由使用公共队列的所有业务流程共享。
- 业务流程和业务操作的池大小设置。
- 0 - 使用参与者池和公共队列
- 非0--使用私人队列,有指定的CPU作业数
- 对于FIFO,设置池大小=1
- Production级的参与者池设置
参与者池与业务流程的启停
-
- 任何一个池大小为0(仅使用公有池)的业务流程被禁用时,所有的参与者都不会启动
- 防止任何池大小为0的业务组件从公共队列中处理消息
- 要保障其他参与者正常工作
- 将要被禁用的组件的Pool Size改为大于0并应用
- 如果已经禁用,要启动其他参与者
- 保持组件禁用,但将其Pool Size为大于0并应用
- 任何一个池大小为0(仅使用公有池)的业务流程被禁用时,所有的参与者都不会启动
Production的运行维护的运行维护
Production本身具备一系列的运行状态管理功能,帮助运维团队在生产环境上处理Production运行的一系列任务,包括
Production运行维护 – 自动启动运行维护 – 自动启动
-
- Ensemble > 管理 自动启动Production > 选择要自动启动的Production
- 在Ensemble启动时自动启动Production
- 如果需要的话,会自动调用RecoverProduction()方法,恢复Production状态
- 系统级启用开关
- 系统管理 > 配置 > 其他设置 > 启动 > EnsembleAutoStart
- 默认情况下为 "真"。
- 在排除故障时,可能需要禁用。
- Ensemble > 管理 自动启动Production > 选择要自动启动的Production