SYS_COMMIT_FREQ="100" 数据库提交超时时间设置,单位:秒。 SYS_COMMIT_TIMEOUT="10" 重新运行处理标志设置。这是一个相当重要的程序控制属性,缺省为N。若设置为Y,则程序在下次重新运行程序时,会从上次中断处接着处理。 SYS_RESTART_FLAG="N" 3.3.2 文件输出处理 (1)处理结果输出 用户需要得到的处理输出包括文件输出或存入数据库。如果系统输入方式为文件输出,则输出文件的命名方式为:当前运行程序的Job Id加上输入配置的seq文件。在通常情况下,需要得到的数据文件输出为文本文件,但在某些特殊需求下,需把文本文件手工地提取为excel文件。为此,系统提供了相应的接口供用户使用,以便用户直接得到处理完好的excel文档。 (2)系统日志 系统日志输出部分主要包括:系统控制log文件、系统错误或异常log文件等。 (3)程序参数设定 程序在此框架下运行,需设置两个重要的系统参数:Program参数和VM参数。若程序需要调用服务器端的EJB,则需在VM参数中设置服务器端参数,如IP地址、端口等。 4关键技术及其实现(Key technology and its implementation) 4.1 支持多类型数据库操作 在执行数据库操作时,在系统ini配置文件的application query中配置数据库类型,这样可以在不修改代码情况下,直接配置设置文件,提高系统的灵活性。实现关键技术代码如下: paraSqlOpGetSI = "SELECT A.ACCT_ID,B.MASTER_ACCT_ID FROM OP_SVC_INST A, OP_ACCT B WHERE A.ACCT_ID = B.ACCT_ID AND A.SVC_INST_ID = ?" opGetSI = opomCon.prepareStatement(apc.getAppsParam(paraSqlOpGetSI)); PreparedStatement sqlSelectnwinst = opomCon.prepareStatement(opGetSI); sqlSelectnwinst.setString(1,SVC_INST_ID); ResultSet rs = sqlSelectnwinst.executeQuery( ); 4.2 Batch循环流程控制 系统启动后是否接着上次未处理完处继续处理还是从头开始处理,并循环处理所有数据,直至全部处理完成,这就需要对批处理作业进行循环流程控制。实现关键技术代码如下: if(restarted && !restarted_ok){ dbRow = chkpnt.getCurrentDbRow( ); if(dbRow == null) dbRow = chkpnt.getNextDbRow( ); restarted_ok = true; } elsedbRow = chkpnt.getNextDbRow( ); if (dbRow != null) { apps.startSource( ); while((rsRow = dbRow.getNextRSRow()) != null){ if(dbRow.keyBased)apps.process(rsRow); elseapps.process(map); dbRow.cnt++; chkpnt.checkPoint( ); } apps.endSource( ); } 5 实验结果分析(Experimental results) 利用该系统先后对某气象局、电信营业厅的一些历史业务数据进行了实验分析,并与这些历史数据以前的实际处理情况进行对比,结果如表1所示。 表1实验分析结果数据 Tab.1Experimental data analysis results 数据所属行业 数据处理方式 数据量(条) 处理时间(秒) 断点续接能力(%) 异常(错误) 中断数据(条) 气象 通用批处理作业系统 251345 683 99 28 原有处理系统 251345 915 90 37 电信 通用批处理作业系统 85420 296 98 12 原有处理系统 85420 410 92 19 从表1可以看出,该系统可明显缩短业务数据处理时间,处理速度大概提高了1.34倍,断点续接能力也有所提高,减少了因异常(或错误)而中断数据处理的几率。从而表明:该系统在批处理方面要比原有系统更准确,也提高了效率。 6 结论(Conclusion) Batch处理系统由服务器进行统一管理,集中了所有业务逻辑处理,各类用户负责数据的录入和查询,用户分布广泛,数据集中处理,因此在设计时选择了三层模式进行设计实现。和类似系统比较,本系统具有如下优势:第一,具有断点续接机制:当批处理遇到一些可恢复性错误时,比如输入数据不平等,批处理中断运行,并给出详细的错误提示和运行日志,便于维护人员查找,同时提供断点续接功能,使批处理能在断点处继续运行。第二,具备完善的控制机制:应用平台在各项操作之间提供顺序控制,能有效避免人工误操作带来的影响。通过调节参数,对系统运行参数进行设置,以满足不同业务的需要。第三,采用参数化和模块化的设计思想:系统的各种控制都以参数形式实现,通过管理和配置可以满足不同业务需要;系统分成一些基本处理单元,每一处理单元形成一个模块,这种模块化的设计使得应用系统机构清晰、维护方便、具有良好的可扩展性。 因此,本文阐述的通用批处理作业系统在快速处理海量的业务数据、提高业务工作效率方面具有较广意义的普适性和通用性。 参考文献(References) [1] 池建强.基于Spring Batch的大数据量并行处理[EB/OL].http://wenku.it168.com/d_000687949.shtml,2012-12-13. [2] 张海藩.软件工程导论(第6版)[M].北京:清华大学出版社,2013. [3] 陈亚.基于中间件技术的数据批处理系统的设计与实现[J].电脑知识与技术,2008,4(34):1567-1568;1570.
|