2011年,一份太原市轨道交通规划图开始在互联网上流传。一时间,太原要修地铁的消息传遍了大街小巷。作为中部城市的太原和地铁这种当年还尚未普及的新鲜事物联系到一起,已经足够给人以遐想空间。当然,当时的人们对此大概也仅限于街头巷尾的谈资,并未想到有一天这样一座看起来不大的城市真正会拥有轨道交通。
继续阅读山西轨道交通运转报告(2)——太原轨道交通2号线山西轨道交通运转报告(1)——阳泉市域铁路
作为一个轨道交通迷,从2011年到大学起我就一直在尽可能多的运转国铁线路和城市轨道交通线路。但作为一个中部省份,我的家乡山西一直在轨道交通领域表现的不温不火。在周边省份地铁纷纷开通,市域铁路、市郊铁路概念炒得火热的情况下,山西一直没有在这一领域有所进一步动作。2012年太原城市轨道交通一期工程获得国家发改委批准,然而批准后却一直未能全面铺开建设,直到2016年底才进入了快速施工阶段。2015年,为了解决阳泉北站距市区太远市民乘车不便问题,阳大铁路作为省重点工程得以开工。经过多年的不懈努力,2020年底这两条轨道线路都迎来了收货期。阳泉市域铁路于2020年9月24日正式开通,太原城市轨道交通2号线于2020年12月26日正式开通。然而由于疫情的原因,被困在北京近半年未能出京,因此也没能在2020年末第一时间去运转这两条线路。转眼来到2021年开春,随着国内疫苗的快速铺开,国内的第三波疫情也渐渐得到了平息,单位的出京管控也渐渐解除。终于在清明假期迎来了久违的机会,可以满足一下运转的小小心愿。
继续阅读山西轨道交通运转报告(1)——阳泉市域铁路1000天的回望与出发
从2018年6月29日入行算起到今天恰好1000天。时光的车轮滚滚向前,带着过去1000天的记忆奔向下一个1000天的开始。既然如此,不妨在这个驻点上稍作停留,第一次回望来路,也再一次由此出发。
初与我行结缘还要回到少年时代。作为我行成立较早的分行,太原分行以遍布大街小巷的ATM机赢得了世纪初的先手棋,而相比于国有行强出几个身位的客户服务更是在太原人中树立了股份行难得的口碑。在那个年代里提到我行,漂亮的柜员小姐姐和上乘的客服水平几乎成了固定的标签。就这样,在我早年间的印象里,我行一直是一个不错的存在。当然,作为一个个人客户,实际上我并未与我行发生过什么实质性的业务接触,直到又一个机缘巧合看到了我行的校招通知,故事才真正的开始。
继续阅读1000天的回望与出发系统A/B F5探测问题分析报告
问题描述:
2020年11月、2021年1月,系统A和系统B在使用我行自有开发框架升级投产时,发生F5探测失效问题。表现为应用启动正常,手动测试服务可用,但F5探测机制失效,无法判定应用是否存活。两个应用均选择了回退。
当前我行F5探测机制有两种方式,一种是根据端口号判定应用是否存活,另一种是配置某一具体服务,通过服务的返回来确定应用是否存活。考虑到端口探活其实并不准确,时常发生应用启动失败但端口仍被占用的情况,因此网络推荐采用具体服务的探测方式。经调研,系统A和系统B均采用配置服务方式完成F5探测。
端口探测在传输层完成,传输的内容理论上都是byte[],因此从理论上并不会出现应用正常但探测不到的情况。所以重点分析配置服务完成探测的场景。
继续阅读系统A/B F5探测问题分析报告X系统OOM问题分析报告
问题描述
10月9日、11月2日、11月3日,X系统发生了三次OOM情况,均表现为出现长时间未提交事务,随后引发OOM情况。
问题分析
从生产及测试环境堆Dump发现,发生OOM时内存中均有大量的DelegatingDatabaseMetadata类的对象未释放。从测试环境的复现结果看,该对象在发生OOM时占用内存达60%-70%左右。单一对象大小为20328B,堆Dump时共有49037个对象。
DelegatingDatabaseMetadata类为DBCP数据源的代理类。在每次与数据源进行交互时,均会创建该类的对象。理论上在完成与数据库交互后,相应对象即可以被标记为可释放。DelegatingDatabaseMetadata类继承AbandonedTrace类。AbandonedTrace类被用作DBCP数据源的追踪,DBCP要求所有代理类均需继承该类。根据AbandonedConfig配置情况决定该类的执行情况。
AbandonedConfig共有三个参数可配置,分别为removeAbandoned(移除作废链接),logAbandoned(记录作废链接日志),removeAbandonedTimeout(作废链接超时设置)。
继续阅读X系统OOM问题分析报告