搞死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通道(把期间累计的几百万条记录处理掉,数据量大是很重要的因素).

关于通道的暂停的方法

暂停通道的两种方式

  1. 通道配置中设置状态inactive(图三)

  2. 通道监控器停止通道(图四)

  3. 自动启动停止通道

详见链接无峰,公众号: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 通道中怎么限定每次读取的数据包大小? 这个问题期望读者能给出更好的答案.

(验证ORACLE的rownum 的获取,select 的字段顺序不一样, 会导致一条记录的rownum不一致. update 中使用的rownum 可能是基于select * 获取的. 这就要求SELECT 语句一定不能修改字段原本顺序,否则可能导致更新的数据和读取的数据不一致)

THE

END

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容