当前位置: > 论文中心 > 科技论文 >

基于Java的通用批处理作业系统的设计与实现(3)

时间:2014-08-09 11:11 点击:
SYS_COMMIT_FREQ=100 数据库提交超时时间设置,单位:秒。 SYS_COMMIT_TIMEOUT=10 重新运行处理标志设置。这是一个相当重要的程序控制属性,缺省为N。若设置为Y,则程序在下次重新运行程序时,会从上次中断处接着处

 

  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.

 


   论文榜(www.zglwb.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导代理,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。


栏目列表
联系方式
推荐内容
 
QQ在线咨询
投稿辅导热线:
189-6119-6312
微信号咨询:
18961196312