搞死SAP系统系列 让PO系统宕机
点击蓝字 关注我们
一
前言
首先郑重申明:本文并不是想教唆你怎么把SAP服务器搞死.
虽然你确实可以从本文中学到搞死SAP服务器的技巧,但是如果因为你对公司的抱怨而导致你无意中使用了本文中的方式无意中搞死了贵公司的SAP服务器.
请不要甩锅给本文作者. 罪过在于你无意的报复之心及贵公司无意让你拥有了报复之心.
鉴于本文可能让部分心有芥蒂的程序员有更强的破坏力.
在文末会给出相应的解决方案
本文主要介绍怎么无意中让PO系统宕机
二
技能储备
干坏事之前先储备一些技能,关键时候才能发挥出重要的作用. 比如:节假日中让系统挂掉(这对开发或系统维护人员无疑是最大的噩耗,美美的假期泡汤,还不一定有加班工资).
使用本文的方式之前需要先储备如下的知识
使用PO的JDBC通道从中间表读取数据,生成消息传递到目标系统.
可能你无意中查询到了SAP的这个帮助. 如图一
在JDBC通道中按图一中方式配置了发出通道的读取语句和更新语句,如图二
https://help.sap.com/doc/saphelp_nw73/7.3.16/en-US/7e/5df96381ec72468a00815dd80f8b63/content.htm?no_cache=true
select * from table where processed = 0
update table set processed = 1 where processed = 0
图一
图二
三
天时地利人和
中国传统文化讲究天时地利人和,三者合一方成大事. 因此要干票大的,也得考虑考虑这些因素.
01
天时
你夜观天象,发现最近七星不亮,似有不吉之兆. 因此暂停了JDBC SENDER通道一段时间,恰逢元旦假期,为了安度假期,又重新打开了JDBC SENDER通道(把期间累计的几百万条记录处理掉,数据量大是很重要的因素).
关于通道的暂停的方法
暂停通道的两种方式
通道配置中设置状态inactive(图三)
通道监控器停止通道(图四)
自动启动停止通道
详见链接
无峰,公众号:ABAP 技巧与实战PO系列之 通道的可用性计划
图三
图四
02
地利
这个存粹凑数的, 想不到啥地利的因素. 如果要硬凑, 那么你恰好出现在银河系猎户座旋臂-太阳系-地球-亚洲-中国-某地. 是为地利
03
人和
开发和系统维护人员在假期中休假的休假,结婚的结婚,离异的离异. 总之各顾各的去了. 人都不在是为人和.
四
案发
然后PO系统就挂了. 在岗的的业务人员及时的发现了问题: 怎么仓库收不到收货单据, 供应商货都拉到了仓库,在等着按单收货呢.
事件持续发酵几个小时. 估计中国移动的营收又增加了0.00000000165890个百分点.(这个梗来自拼多多)
BASIS紧急介入. 祭出重启大法. 重启了PO系统, 重启后几分钟,系统又不响应了. 靠,重启都没法解决的问题,那基本无解了.
休假结婚离异的开发人员被紧急召回:没改任何代码呀, 咱可是严格遵照中国程序员编程规范,节假日前不发布新版本.
维护人员也很冤枉: 我只是重新开启了一个接口. 这不是正常操作么?
五
解决办法
找到之前使用JDBC SENDER 通道访问的表, 把处理标记 都设置为已处理 processed = 9. 然后再重启PO系统. BINGO,问题成功解决. 有没有觉得这个问题的发生和解决都有点不可思议?
六
总结
PO JDBC SENDER 通道中的SELECT 语句用于获取数据产生一个消息. 如果读取数据库的SELECT 语句读取了大量数据,PO尝试把所有这些数据构造成一个巨大的XML时,出现系统宕机, 重启后, 通道重新激活,再次读取,再次构造,再次宕机. (感觉PO好脆弱).
不太建议PO中使用JDBC SENDER 通道. 因为很难解决PO读取数据, 外部系统同时写入数据的场景(序列化读取是系统推荐的一种方式,需要读写双方都设置序列化操作).
如果一定需要使用JDBC SENDER通道, 可以尝试通过rownum<= N 限定一下消息的大小(ORACLE数据库有效, 其它数据库类型不确定)
SELECT ROWnum ,exord,flag FROM DANIANG.Zttemp
WHERE (flag IS NULL OR FLAG = '') AND rownum <= 100;
UPDATE DANIANG.Zttemp SET FLAG = 'X'
WHERE (flag IS NULL OR FLAG = '') AND rownum <= 100;
通过rownum 获取的数据和更新的数据是否严格一致, 这一点有些存疑. 在JDBC SENDER 通道中怎么限定每次读取的数据包大小? 这个问题期望读者能给出更好的答案. 控制参数详见NOTE 801367 .
(验证ORACLE的rownum 的获取,select 的字段顺序不一样, 会导致一条记录的rownum不一致. update 中使用的rownum 可能是基于select * 获取的. 这就要求SELECT 语句一定不能修改字段原本顺序,否则可能导致更新的数据和读取的数据不一致)
THE
END
约定
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)
公众号 : syjf1976_abap
ABAP开发技巧
微信号 : 392077
请微信联系管理员:
syjf1976
sharry_xlp
Yannick_Duan
申请进入公众号讨论群提问或者参与话题讨论
搞死SAP系统系列 让PO系统宕机相关推荐
- 搞死SAP系统系列 让系统无法登录(二)
一 前言 首先郑重申明:本文并不是想教唆你怎么把SAP服务器搞死. 虽然你确实可以从本文中学到搞死SAP服务器的技巧,但是如果因为你对公司的抱怨而导致你无意中使用了本文中的方式无意中搞死了贵公司的SA ...
- linux硬盘自动停转,求助硬盘异常系统自动挂起导致宕机
引用: Sep 1 09:44:55 os kernel: ehci_hcd 0000:00:1d.7: EHCI Host Controller Sep 1 09:44:55 os kernel: ...
- SAP LSMW 导入Open PO单据,系统报错 --- GL account 670100 cannot be used ---
SAP LSMW 导入Open PO单据,系统报错 --- GL account 670100 cannot be used --- 笔者所在的项目,近期忙于主数据的准备和导入,我导入Open PO的 ...
- 【EWM系列】SAP EWM WCU和Non-SAP系统接口
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP EWM WCU和Non-SA ...
- SAP ERP与国内ERP系统的对比,为什么建议选SAP
德国制造业的领先是全世界有目共睹的,这是因为德国制造业并不相信人,而是相信精确度极高的机器以及最重要的数据.我们的中国制造2025也是以德国的工业40为参考,因此,对国内工业的升级来说,德国制造业是非 ...
- SAP License:选择ERP系统的诀窍
选择ERP系统的诀窍 对于一个企业来说,一个好的ERP系统是至关重要的,关系到企业走向信息化过程的转型.一个"好"的选型必将达成好的效果,选择一个"金玉其外"的 ...
- SAP运维管理平台系统
SAP运维管理平台系统 一.系统概述 二.系统原理 三.系统构架 四.系统特性 五.系统功能 一.系统概述 SAP运维管理平台系统(简称AMS-Ops)旨在确保企业SAP应用系统健康.稳定运行的基础上 ...
- 【科普】基础教程系列之装系统篇
[科普]基础教程系列之装系统篇 目录 0.前言 1.物质准备 2.制作启动盘 3.选择自己需要的系统 4.其他准备工作 5.进入win pe 6.举例进入win pe 7-1.确保正确安装系统的准备工 ...
- 基础教程系列之装系统篇
[科普]基础教程系列之装系统篇 鉴于每天有很多新人询问安装系统问题,我决定花一些时间来系统性的整理一下安装系统的步骤,带领新人一步步来安装好系统. 文档下载链接:http://download.csd ...
最新文章
- C语言的集成开发环境
- 2019 好笔友-见字如面
- 如何解决编程的误差问题_柏威机械丨高精密零件加工是如何解决误差精度问题的?...
- Solr vs ElasticSearch,搜索技术哪家强
- SQL Server 视图设计器
- NCB|心咽发育多样化的单细胞转录轨迹分析
- 【ffmpeg】基本使用方法总结
- 在Android NDK下打印log
- cocosbuilder3.0使用小记
- 惠普m128fn中文说明书_惠普M128fn使用教程
- vnc远程控制软件怎么用,vnc远程控制软件到底该怎么用,使用教程
- iframe调用其他网站出现验证码错误
- 有了神经网络,带汤姆实时追踪杰瑞
- 2021-2027中国高效空气过滤器市场现状及未来发展趋势
- 基于优化LSTM 模型的股票预测
- 【Unity3D 灵巧小知识点】☀️ | Unity 中 怎样切换 天空盒 背景
- clone别人远程仓库的代码,运行npm install报错npm ERR! Maximum call stack size exceeded
- 跨利润中心外协业务生成利润中心结算凭证
- Gavin老师Transformer直播课感悟 - Rasa项目实战之银行金融Financial Bot智能业务对话机器人业务功能微服务解析与调试(八十九)
- linux shell 在后台运行命令