SAP R/3系统的应用层由应用服务器及消息服务器(Message Server)组成。
应用服务器组件如下:
工作进程(Work Process)
调度机(Dispatcher)
网关服务器(Gateway Server)
在SAP中可以设定Loading-Balance登陆,当有多个安装实例做负载平衡,SAP组登陆需要SAP Message Server,一般SAP系统默认就具有Message Server的功能,通过3600端口通讯。SAP 登陆时会从Windows的service文件中获取服务名称,需要在这个文件中指定service名称与端口映射,在%systemroot%system32driversetc中打开文件services并在其最后加入一行:
sapmsSID 3600/tcp
与Message Server有关的事务码SMMS(查看MS状态), SMLG(设定登陆组):
SMMS
- 调度机(Dispatcher)
在Work Process与应用服务器的用户之间起连接作用,每一个应用服务器中都包括一个Dispatcher,作用是接收SAP GUI的Dialog请求,并将其发给你当前处于IDLE的Work Process,同时将返回结果送回到用户GUI进行显示。
- 工作进程(Work Process)
- Dialog [ DIA ] : 用于执行前台&对话框程序
- Background [ BGD ] : 用于执行批处理&后台进程
- Spool [ SPO ] : 用于执行打印格式化&输出管理,每个应用服务器至少包含一个
- Enqueue [ ENQ ] : 用于执行锁操作,在共享内存区中管理表的锁定,一个R/3 系统中只能有一个锁定。因此只有一个应用服务器进行锁定相关操作。
- Update [ UPD ] (V1/V2) : 用于异步数据库更新
- V1 用于更新Time-Critical重要信息,V2 用于更新Non-Critical文本备注等不重要信息
- V1优先级高于V2,V1更新使用V1进程处理,V1进程名字一般为UPD,V1进程绑定独立的数据库进程.在V1进程中调度的更新函数如果更新失败,回滚,不进行V2操作.成功则提交更改到数据库,同时删除所有的SAP锁
- V2更新使用V2进程处理,如果没有配置V2进程则共用V1进程,V2进程名字为UP2,V2更新在独立DB LUW中,V2更新回滚后不会影响到V1更新提交的数据,由于V1更新结束后会删除SAP的锁,所以V2更新是在没有逻辑锁的情况下进行的,V2更新出错后可以在SM13中重新执行
SM13
SM51
SM50
PID为进程号,可通过SM66来查看
可根据业务时间通过RZ04来调整Process的数量
RZ03 设置不同时间段的模式
合理的配置和使用Opearation Modes and Instances 在不增加系统硬件配置下,不失为性能调优的好方法。系统运行时,可以根据时间段来实现不同操作模式的切换,因为通常情况下白天用户Dialog要多于Background,夜间则相反。
PS: 特别要注意的是模式切换后不会立即生效 , 笔者之前在做Data Archive的时候就有遇到性能问题
工作进程(Work Process)