SAP Backgroud job

来源:互联网 发布:加工中心铣刀铣孔编程 编辑:程序博客网 时间:2024/05/16 17:32

后台作业,主要用于运行需要处理大量数据,对交互没有要求的程序。个人认为,简单的创建,配置和监控后台作业没有什么难度。后台作业管理最为困难的解决方案的取舍,系统负载的调控。失控的后台作业,往往对系统带来灾难性的性能问题,也会导致权限管理的风险,结果是得不偿失,而且可能导致流程混乱。所以个人认为,要创建一个周期性的后台作业之前,首先应该慎重分析。比方说,一个已经明显偏向 OLAP类型的报表,如果能够用BI去实现,为什么还要坚持在生产系统去跑长时间的后台作业?这极有可能是一种严重的重复运行的性能问题。再比方说,用户获得授权随意创建后台作业,结果导致后台作业失控,在业务繁忙的时候,因为大量的后台作业导致整个系统的停顿,会造成实实在在的经济损失。再比如说,后台作业安排的不合理,可能耗资源的和重要的后台作业直接或者间接安排到了同一个时间段,那么必然会影响流程的运作。

详细解释一下sap得后台作业。 sap得后台作业的启动方式可以是定时地,也是可以是事件触发的。后台作业里面包含一个或者多个步骤,每一个步骤则包含调用的程序,外部shell命令以及外部程序,也包含了调用者以及变量,还可以定义打印参数。后台作业的名字往往需要遵循一定的命名规则,用来明确该后台作业的重要程度,启动方式,作用等等。我们往往通过SM36去创建后台作业,(也可以通过SM36去查看SAP标准后台作业),通过SM37去监控和管理后台作业。

后台作业有Scheduled, Released, Ready, Active, Finished, Canceled六种状态。另外还可以指定执行的服务器组(后台job执行的服务器组可以用sm61来配置)。 Scheduled状态的job是创建了但是还没有release,这种状态的job是不会跑的。Released状态的job在启动条件满足后会启动,Ready就是启动条件满足后,系统开始为该job分配但尚未分配合适的后台进程的一个中间状态,Active代表这个job正在运行当中,换言之,其相应的后台进程正在运行job某一个step得程序;Finished代表job得所有step都成功的完成了。Canceled代表job在某一个step得运行过程中异常中止了。

sap job得信息存在一系列的表TBTC*里面。有的时候,某个job对应的进程中止了,但是表里面的状态信息仍然没有更新,会出现job是active状态,而实际没有进程在跑的情况,那么,我们只需要check status,就可以手动修正表里面的状态信息。

如果要分析job cancel得原因,应该检查job log,往往job得step都是跑的是abap程序,所以,job cancel得时候常伴随着dump产生,这个时候,双击job log的条目,可以跳转对应的dump。另外,有的时候,因为进程被中止导致的job cancel没有被写入日志,需要结合system log去分析。job log是保存在\usr\sap\SID\SYS\global日志文件<client nr>JOBLOG中的,在某些特定的情况下,日志文件访问问题会导致所有的job cancel,在DI上出现这种问题的时候,据说可能是NFS不稳定,这个我还不确定。

触发Event 基本本是function module BP_EVENT_RAISE或者sapevt.exe。

0 0
原创粉丝点击