后台运行进程(background job)
在一些日常业务中,总有一些长时间处理的任务,系统运行这些任务需要一晚甚至一个周末。
这就需要后台运行单元(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)的更多相关文章
- linux 后台运行进程 fg bg ctrl+z nohup
fg.bg.jobs.&.nohup.ctrl+z.ctrl+c 命令 一.& 加在一个命令的最后,可以把这个命令放到后台执行,如 watch -n 10 sh test.sh &am ...
- linux如何后台运行进程,而且不随终端关闭而关闭
参考:http://www.cnblogs.com/kaituorensheng/p/3980334.html 使用命令nohup:no hang up,表示关闭终端后,进程并不随着终端关闭而关闭 f ...
- Linux 下在后台运行进程:nohup,setsid,& 以及 tmux
参考: Linux 技巧:让进程在后台可靠运行的几种方法 ssh 登录了远程服务器时,如果在前台运行耗时较长的任务, 当 ssh 掉线或关闭窗口时会导致命令停止运行. hup 与 nohup 当用户注 ...
- Linux后台运行进程
方式一: /bin/bash /var/www/html/crontab.sh & 缺点:终端关闭的话,进程也会关闭. 方式二: nohup /bin/bash /var/www/html/c ...
- linux 下通过fork实现后台运行进程
1 # 通常建议使用双fork方法.在每个fork处,父级退出,子级继续 2 3 #!/usr/bin/env python 4 5 import time,platform 6 7 import o ...
- 在后台运行Python脚本服务
在服务器,程序都是后台运行的,当写的python脚本时,需要: 你要是想python robot.py & 是不行的,一旦用户登出,脚本就自动退出了.用at, cron也可以实现不过我发现 ...
- linux===linux后台运行和关闭、查看后台任务(转)
fg.bg.jobs.&.ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的 一.& 最经常被用到这个用在一个命令的最后,可以把这个命令放 ...
- Linux后台运行和关闭程序、查看后台任务
fg.bg.jobs.&.ctrl+z 1.& (最经常被用到) 这个用在一个命令的最后,可以把这个命令放到后台执行 2.ctrl + z 可以将一个正在 ...
- 使程序在Linux下后台运行,程序运行前后台切换
一.为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期.我们用的环境是用putty远程连接到日本Linux服务器.所以使程序在后台跑有以下三个好处: 1:我们这边是否关 ...
随机推荐
- android 处理302地址
最近项目中需要用到重定向下载,所以找了很多的方法都不合适.因为下载的链接并非单纯的地址,而是需要多次转发的, 在下载的时候用的是URL来打开数据流.但是多次测试并不能对多次跳转的链接打开请求.对于30 ...
- Anliven - 如何逼疯你的小伙伴
如果你也曾为某人某事"发疯发狂,懵逼连连". . 无礼:随意牵扯他人,不了解实际情况,却对他人工作横加点评甚至是指责. 无知:自我感觉良好,自己总是最正确最合理的,除了自己,没人会 ...
- Admin Panel – 非常漂亮的后台管理系统模板
网站或者应用系统的管理后台的设计虽然不像前台界面那样要求设计精美,但是也需要有清晰的管理模块划分,下面分享的这个后台管理模板的设计非常漂亮,特别是导航部分,头部还有未读的短消息和提醒的条数显示.赶紧下 ...
- [java] 汇率换算器实现(1)
[java] 汇率换算器实现(1) // */ // ]]> [java] 汇率换算器实现(1) Table of Contents 1 问题描述 2 类设计 3 初步实现 3.1 建立项目 ...
- Android反编译(三)之重签名
Android反编译(三) 之重签名 [目录] 1.原理 2.工具与准备工作 3.操作步骤 4.装X技巧 5.问题 1.原理 1).APK签名的要点 a.所有的应用程序都必须有数字证书 ,Androi ...
- Mina架构与优化指南
MINA架构 这里,我借用了一张Trustin Lee在Asia 2006的ppt里面的图片来介绍MINA的架构. Remote Peer就是客户端,而下方的框是MINA的主要结构,各个框之间的箭头代 ...
- 关于Entity Framework中的Attached报错的完美解决方案终极版
之前发表过一篇文章题为<关于Entity Framework中的Attached报错的完美解决方案>,那篇文章确实能解决单个实体在进行更新.删除时Attached的报错,注意我这里说的单个 ...
- C#+ html 实现类似QQ聊天界面的气泡效果
/**定义两个人的头像*/ Myhead = "<img src=qrc:/chatdemo/Msg/Head.png width='30px'heigth='30px'>&qu ...
- 让sublime实现js控制台(前提是安装了nodejs)
步骤: 1.找到tools-->build system-->new build system 2.输入 { "cmd": ["D://nodejs/node ...
- C# 异步工具类 及一点小小的重构经验
2015年新年第一篇随笔, 祝福虽然有些晚,但诚意还在:新年快乐. 今天主要是想分享一异步工具类,在C/S架构中.先进行网络资源异步访问,然后将回调函数 Invoke到UI线程中进行UI处理. 这样的 ...