在一些日常业务中,总有一些长时间处理的任务,系统运行这些任务需要一晚甚至一个周末。

这就需要后台运行单元(background work process)来完成,而且其是不会发生超时(time out) 错误的。

进程(job)有下面几种类型:

时间驱动(Time-driven  job):按照用户预先设定的有时间启动进程。

事件驱动(Event-Driven job):在一个事件或另一个进程后,该进程启动。

周期型(periodic  job) :在每时或每天,定时执行的进程。

删除型(deleting  job): 为删除系统中盈余的数据的进程,可能会执行较长时间,需要在后台进行。

进程的属性:

Job name:进程的名最长为32字符。

Job count:为了去该进程在系统中的唯一性。比如周期性进程的名都是一样的,

Job name+Job count就能确定其的唯一性。

Step:在该进程内中定义的程序数量。

Start data:启动的时间点有:立即(immediatlly),指定时间(data/time),

时间(event)…等等。

Job owner:产生该进程的用户。

Job class:该进程在系统中的执行等级。

Client:决定该进程在哪个Client中执行,有些系统进程必须在Client000中执行。

Target sever:决定该进程在那个服务器中执行,这有助于合理的分配系统资源

进程状态:

Planned:进程已经被定义,但是还没有开始。

Release:进程已经开始,但是进程中定义的程序还没有被执行。

Ready: 进程已经开始,所有程序开始的条件(启动时间)也已满足,等候系统分配运行资源

(运行所需的后台进程处理单元<BTC-WP>)。

Active:   进程开始,而且定义的每一个程序(STEP)都被按序执行。

Finished: 进程顺利完成。

Cancelled:因为错误,进程没有正常完成。

各个进程的关系:

Planned   <>  Release  > Ready -> Active -->  finished or Cancelled

执行后台进程的方法:

事务执行命令(transaction code):

SM36,SM37, SA38

ABAP 程序:

SAP系统程序或客户自定义的程序。

外部程序或工具:

外部工具(第三方)通过BAPI-XBP接口,从外部定义执行后台进程。

后台进程相关的系统表:

TBTCO:   存放后台进程所有的信息和状态。

TBTCP:存放后台进程中定义程序的信息。

TBTCS:    时间驱动进程相关的信息。

BTCEVTJOB:事件驱动进程相关的信息。

后台进程的日志(joblog):

日志存放在文件系统(其是TemSe子系统)中,列如:/usr/sap/<sid>/sys/global/001joblg…

一般的问题处理:

问题1:  后台进程没有启动。

原因1:系统没有足够的资源。可以用T-cd:Sm51,Rz04,SM66,Sm37确认。

原因2:进程调度(Scheduler)没有运行。T-cd:Sm61确认。

原因3:无法生产日志,用Sm21确认系统日志,和ST11确认developer trace。

可能是有TemSe不整合或有OS文件的访问问题。

原因4:TCTCO,TCTCP…等一系列表之间的不整合;用SM65->Goto->Additional test->

选择:Perform TemSe check

Consistency check DB Table

Remove inconsistencies

->执行

问题2:后台进程在执行的过程中,发生互锁。

原因1:确认应用程序的逻辑,一般情况下这个问题都是有应用程序本身导致的。

原因2:数据库的原因,但是这样的情况较少。

原因3:两个周期进程,间隔时间太短,以至于第一个还没有执行完,第二个已开始执行。

建议·: 根据note-16083中的说明,设定标准进程,以减少系统负担和数据盈余。

后台运行进程(background job)的更多相关文章

  1. linux 后台运行进程 fg bg ctrl+z nohup

    fg.bg.jobs.&.nohup.ctrl+z.ctrl+c 命令 一.& 加在一个命令的最后,可以把这个命令放到后台执行,如 watch -n 10 sh test.sh &am ...

  2. linux如何后台运行进程,而且不随终端关闭而关闭

    参考:http://www.cnblogs.com/kaituorensheng/p/3980334.html 使用命令nohup:no hang up,表示关闭终端后,进程并不随着终端关闭而关闭 f ...

  3. Linux 下在后台运行进程:nohup,setsid,& 以及 tmux

    参考: Linux 技巧:让进程在后台可靠运行的几种方法 ssh 登录了远程服务器时,如果在前台运行耗时较长的任务, 当 ssh 掉线或关闭窗口时会导致命令停止运行. hup 与 nohup 当用户注 ...

  4. Linux后台运行进程

    方式一: /bin/bash /var/www/html/crontab.sh & 缺点:终端关闭的话,进程也会关闭. 方式二: nohup /bin/bash /var/www/html/c ...

  5. linux 下通过fork实现后台运行进程

    1 # 通常建议使用双fork方法.在每个fork处,父级退出,子级继续 2 3 #!/usr/bin/env python 4 5 import time,platform 6 7 import o ...

  6. 在后台运行Python脚本服务

    在服务器,程序都是后台运行的,当写的python脚本时,需要:   你要是想python robot.py & 是不行的,一旦用户登出,脚本就自动退出了.用at, cron也可以实现不过我发现 ...

  7. linux===linux后台运行和关闭、查看后台任务(转)

    fg.bg.jobs.&.ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的 一.& 最经常被用到这个用在一个命令的最后,可以把这个命令放 ...

  8. Linux后台运行和关闭程序、查看后台任务

    fg.bg.jobs.&.ctrl+z   1.&    (最经常被用到)     这个用在一个命令的最后,可以把这个命令放到后台执行   2.ctrl + z     可以将一个正在 ...

  9. 使程序在Linux下后台运行,程序运行前后台切换

    一.为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期.我们用的环境是用putty远程连接到日本Linux服务器.所以使程序在后台跑有以下三个好处: 1:我们这边是否关 ...

随机推荐

  1. PHP 字符串函数

    字符串是字符序列,比如 "Hello world!". PHP 字符串函数 在本节中,我们将学习常用的字符串操作函数. PHP strlen() 函数 strlen() 函数返回字 ...

  2. selenium-webdriver(python) (十四) -- webdriver原理

    之前看乙醇视频中提到,selenium 的ruby 实现有一个小后门,在代码中加上$DEBUG=1 ,再运行脚本的过程中,就可以看到客户端请求的信息与服务器端返回的数据:觉得这个功能很强大,可以帮助理 ...

  3. html/css基础篇——html代码编写过程中的几个警惕点

    本文想说的警惕点与浏览器兼容无关,主要是几个本人在项目中遇到的几个小问题的总结,问题虽小,但是却有时很困扰人,在此记录一下,如果后期有此类问题会持续添加到这里. 1.内联标签之间的空格 正常情况下书写 ...

  4. UWP开发入门(二十一)——保持Ui线程处于响应状态

    GUI的程序有时候会因为等待一个耗时操作完成,导致界面卡死.本篇我们就UWP开发中可能遇到的情况,来讨论如何优化处理. 假设当前存在点击按钮跳转页面的操作,通过按钮打开的新页面,在初始化过程中存在一些 ...

  5. Struts2 源码分析——核心机制

    MVC和三层的看法 通过上一章我们明白我们要学习的知识点和目标.所以这章我将从使用者来讲struts2的机制原理.我们都清楚的知道struts2的核心思想是MVC思想.MVC全名是Model View ...

  6. 30天C#基础巩固-----序列化,集合

    关于集合的练习. ----->计算字符串每个字符出现的次数. Console.WriteLine("请输入?"); string input = Console.ReadLi ...

  7. Emit学习(2) - IL - 常用指令介绍

    学习Emit必不可少的, 会使用到IL中间代码. 初见IL代码, 让我有一种汇编的感觉, 让我想起了, 大学时, 学习8051的汇编语言. 多的就不扯了, 直接进入正题, OpCodes指令集是不是有 ...

  8. 把DataTable转换为泛型List<T>或是JSON

    在开发ASP.NET Web API或ASP.NET MVC时,我们从数据库得到的数据往往是DataSet或是DataTable.为了能让前端JQuery能方便使用至这些数据,我们需要把这些数据转换为 ...

  9. Winform开发框架中实现信息阅读状态的显示和存储

    在很多项目中,可能会有要求对一些数据的阅读状态进行记录,用户阅读过或者未阅读过,都做不同的标识,方便了解数据的状态.如在我的客户关系管理系统中,对于客户的状态进行跟踪,如果最近联系时间超过配置天数的, ...

  10. php中的常用数组函数(五)(数组中获取键名集合)

    array_keys($arr, $search_value, $strict); --数组中获取键名的集合. //参数1 要检索的数组:参数2 要检索的键值 默认NULL: 参数3 是否严格比较(= ...