【技术实现步骤摘要】
一种基于存储过程设计优化的热部署方法
[0001]一种基于存储过程设计优化的热部署方法,用于解决生产环境数据库版本部署不停机问题,属于金融行业核心应用
技术介绍
[0002]现在的很多应用都是支持24小时不间断提供服务的,在不停机更新版本时,不影响服务调用。作为主要业务逻辑依赖数据库存储过程设计的系统,如何保证不停机部署数据库版本时,服务调用不发生异常是面临的一个难题。为解决该问题,热部署概念被提了出来。结合系统自身特点,基于数据库存储过程设计优化的热部署方法也属于热部署的一种。
[0003]目前热部署有多种方案,但大多数都是基于Java的应用服务器,包括EJB服务器和 Servlet容器的热部署。另外基于蓝绿版本发布的也可以实现24小时不间断的提供服务。
[0004]但第一种方法,不适用于业务处理逻辑依赖于数据库存储过程的系统。第二种方法,需要搭建两套相同的蓝绿环境,使用成本增加,且改造难度稍大,影响范围较广。
技术实现思路
[0005]针对上述研究的问题,本专利技术的目的在于提供 ...
【技术保护点】
【技术特征摘要】
1.一种基于存储过程设计优化的热部署方法,其特征在于,不需要重启应用直接部署数据库版本,部署完成后应用仍然可正常对外提供服务:步骤如下:步骤1:部署数据库版本前,先在数据库中窗口维护参数表中维护版本部署时间,在维护版本部署时间内,版本维护窗口参数置为Y
‑
有效;步骤2:数据库版本部署时间维护好后,开始部署数据库版本,使用自动化版本部署工具部署数据库版本包,部署完成后自动进行包编译,至此版本部署结束;步骤3:将版本维护窗口参数由效状态更新为N
‑
失效;数据库版本部署完毕后,解决不停机部署数据库版本可能导致的包失效问题的具体步骤如下:步骤4:当应用接收渠道服务请求调用时,调用jdbc api建立数据库连接,数据库层进行交易接入窗口维护期检查逻辑,若版本维护窗口参数为有效,则检查服务请求时间,如接收到的服务请求时间在维护版本部署时间内,则直接返回报错“系统正在维护,请稍后重试”;否则认为检查通过,则继续执行;步骤5:继续执行业务逻辑调用,根据数据库层接口功能定义参数表,接口调用引擎按照事先定义好的业务片段调用顺序依次执行,在调用各个业务片段前设置对应的回滚点savepoint,然后按照顺序依次调用各业务片段,每个业务片段调用时进行异常捕获,针对包失效进行异常封装处理,若未发生异常,则交易结束,若发生异常且为包失效异常,则交易失败,封装异常返回错误码,并进行交易回滚至设置的回滚点savepoint,并登记交易流水且交易失败原因登记为包失效;步骤6:消费方接收到该特定含义的错误码后,重新发起相同服务调用请求,新的服务请求会建立新的会话连接,再次调用发生变更的数据库包对象时该包已是重新编译过的则不会检测到包失效异常。2.根据权利要求1所述的一种基于存储过程设计优化的热部署方法,其特征在于:在部署数据库版本前已存在的请求会话连接,即在部署数据库版本前还存在服务请求没有执行完成,若交易接口的某个业务片段调用发生了包变更的数据库对象时会检测到包发生了变更而提示包失效异常。3.根据权利要求1所述的一种基于存储过程设计优化的热部署方法,其特征在于:系统基于交易重复控制机制,即不允许同一个交易渠道当日具有相同流水号的服务请求,针对由于包失效导致的交易失败场景,检查交易流水登记簿,若重新发起的相同交易请求,即与上一笔服务请求流水号相同,失败原因为包失效,则允许继续交易,依次完成步骤1
‑
4。4.根据权利要求1所述的一种基于存储过程设计优化的热部署方法,其特征在于:在部署数据库版本前,先进行版本维护时间参数配置。5.根据权利要求4所述的一种基于存储过程...
【专利技术属性】
技术研发人员:文兵,李耀,彭磊,
申请(专利权)人:武汉众邦银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。