4-c 数据管理平台详细设计文档_第1页
4-c 数据管理平台详细设计文档_第2页
4-c 数据管理平台详细设计文档_第3页
4-c 数据管理平台详细设计文档_第4页
4-c 数据管理平台详细设计文档_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、金融市场数据管理平台详细设计文档金融市场数据管理平台详细设计文档2013 年 4 月Copyright 2006,2013 Financial China, All Rights Reserved1 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档文档修订记录表Copyright 2006,2013 Financial China, All Rights Reserved2 / 55信息&服务 帮助客户创造财富编号修订内容简述修订日期修订前版本号修订后版本号修订人批准人1创建2013.4.311.0肖彬史海雄金融市场数据管理平台详细设计文档目录文档修订记录表2目录31引言5

2、1.11.2目的和范围5术语52主要功能及业务介绍52.12.2主要功能介绍5模块划分63程序结构设计73.1 系统技术架构73.2 代码架构...6包结构8jsp 目录9配置说明9MyBatiis Generator 代码生成工具简单的使用11公共标签12树形控件134功能详细设计144.1工作流与 ETL 任务管理与调度...64.1.7类图与说明14工作流树管理15工作流注册15手工启动17工作流监控20ETL 任务管理与调度23关键代码或伪代码的说明344.2数据质量统计424

3、..44.2.5数据下载量统计42内码映射转换量统计43双路校验数据量统计44入主库量统计46ETL 错误统计474.3系统日志4.24.3.3系统访问日志48双路校验任务日志49双路校验表日志50Copyright 2006,2013 Financial China, All Rights Reserved3 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档..7ETL 任务执行日志50工作流执行日志51人工干预日志52系统错误日志525异常处理535.15.2文件可预知异常的处理53无法

4、预知异常的处理53. 536Copyright 2006,2013 Financial China, All Rights Reserved4 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档1 引言1.1 目的和范围本详细设计说明书编写的目的是说明数据管理平台的技术设计细节,包括系统结构,功能设计,数据库设计,异常处理机制。范围包括程序功能描述,框架设计和算法设计。为软件编程和系统后期维护提供指导。数据管理平台是金融市场数据中心的一部分,主要功能包含对主数据库的管理、双路数据检验、PWC 工作流调度管理、以及数据质量分析、日志管理等部分。本设计文档的预期读者为系统设计人员

5、,软件开发人员,软件测试人员和项目评审人员。1.2 术语术语描述2 主要功能及业务介绍2.1 主要功能介绍1.基础配置功能:包括数据源、数据表分类、数据表结构、数据字典、工作流分类、工作流注册、ETL 任务配置、双路检验表配置及双路任务配置、调度策略维护、各种海外数据维护、各种参数维护等。这部分功能由于是一些基本的增删改查操作,复杂的也就涉及到主从Copyright 2006,2013 Financial China, All Rights Reserved5 / 55信息&服务 帮助客户创造财富序号术语或缩略语说明性定义1金融市场数据中心一个金融市场数据中心,致力于打造一个全面的、精确的金融

6、市场数据中心。2PWCPowercenter,Infomatic 的 ETL 工具3双路数据校验在整个金融数据中心中,对多个数据源进行数据对比校验的一个程序,数据管理平台提供对这些校验表与校验规则、调度规则的维护。4主库指金融市场数据中心的主数据库,存储包含所有的金融数据。5工作流Powercenter 中处理数据的一个基本的单元。在本期的工作中,一个工作流处理一个数据表,与数据表是一对一的关系。金融市场数据管理平台详细设计文档关系的增删改查操作,所以这部分将不做详细介绍。2.3.核心功能包括:工作流的手工启动、ETL 任务的自动调度。这部分功能将作重点介绍。日志部分功能包括:系统错误日志、访

7、问日志、工作流执行日志、ETL 任务执行日志、双路任务执行日志、双路校验表日志等、ETL 错误日志等,这部分功能是一些简单查询,也不做详细介绍。4.数据质量分析部分功能有:数据下载量分析、救命映射数据量分析、入主库数据量分析、双路检验数据量分析、ETL 错误量分析等。5.系统管理部分的功能有:模块管理、角色管理、角色管理、参数管理、日志归档等,这部分功能是非常常用的(用户角色功能)权限体系,在此不做详细的实现介绍。2.2 模块划分数据管理平台分为系统管理、双路数据检验管理、ETL 管理与调度、数据质量分析与日志几个模块。具体的功能模块图如下所示:5.0理与1.0系统管理2.0业务参数管理3.0

8、双路数据校验4.0工作流管理6.0数据质量统计7.0系统日志ETL任务管调度7.1系统日志1.1用户管理2.1业务分类管理3.1校验表配置4.1工作流树管理5.1调度策略维护6.1数据下载量统计访问双路校验任务日志1.2模块管理2.2数据源配置4.2工作流注册5.2任务设置双路调度策略维内码映射转换量护统计6.31.3角色管理2.3主数据表管理3.3校验任务设置4.3手工启动5.3任务管理7.3双路校验表日志双路数据校验统计6.4误统1.4系统参数设置2.4主数据字典管理3.4校验任务管理4.4工作流监控5.4任务监控7.4工作流执行日志ETL数据错计ETL

9、任务执行日志1.5日志归档3.5校验任务监控4.5人工数据修改聚源未匹配机构数据入主库量统信息维护计2.61.6参数管理3.6校验表监控7.6人工干预日志聚源未匹配证券信息维护2.7海外数据维护7.7系统错误日志2.8业务系统数据表维护7.8数据下载日志7.9表数据流日志7.10勾稽关系错误统计Copyright 2006,2013 Financial China, All Rights Reserved6 / 55信息&服务 帮助客户创造财富数据管理平台0.0金融市场数据管理平台详细设计文档3 程序结构设计3.1 系统技术架构数据管理平台为 B/S 结构的系统,其中需要和 PWC 的 Web

10、Service 进行交互。前台界面用到的开发语言为 JAVA,服务除 workflow 调度服务使用 JAVA 语言以外。所用到的开发环境和运行环境有:服务器操作系统为 Windows XP+、JDK 版本为 1.6、应用服务器使用 Weblogic10,数据库为 Oracle10G。其中数据管理平台的内部实现架构:以 Spring3.1 为基础架构,以 Spring3 MVC+JSP 为展示层、MyBatis3.1 为持久层、Quartz2.1.6 为任务调度框架、CXF2.7 为 Web Service 框架。数据管理平台按实现方式可以分为五个部分:前台网页形式的日常运维管理界面、日志查询

11、与分析模块,工作流调度模模块,工作流运行状态监控模块,人工启动 workflow 运行模块, 境外数据导入、双路数据校验、报警等 Windows 服务。以下是该技术架构图的说明:1. 前台网页形式的管理界面使用 Java 开发,采用市面现有比较成熟的 JAVA 开发框架,降低了开发风险并使系统的健壮性得到保证。2. 工作流调度与监控模块采用成熟的 Quartz 框架从数据管理平台的数据库中读取任务配置信息,将任务加入到框架中,自动运行。3. 工作流监控:直接从 PowerCenter 的数据库中读取工作流执行状态来实现。4. 手工调度:使用内置于数据管理平台的 WebService 客户端来调

12、用 PowerCenter提供的 Web Service 操作接口来实现。数据管理平台主要功能与软件技术框架之间的关系如图 2.2 数据管理平台功能与技术框架关系图所示:Copyright 2006,2013 Financial China, All Rights Reserved7 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档数据管理平台技术架构双路logslogs 海外数据管理平台库PowerCenter WS Server/DB3.2 代码架构3.2.1 包结构以 com.finchina 为基础包a)mon 下放入基础类b)com

13、.finchina.项目名 下放入项目下的文件c)项目下的包名按模块划分,如com.finchina.ssf.sys com.finchina.ssf.task com.finchina.ssf.analysis(ssf 为社保数据管理平台的包名)分别表示 系统模块、任务管理模块、数据分析模块d)每一个具体模块下有四个包 web,mapper,service,entity,entity 下放 MyBatis的Model 类,web 包下放入 web 层面的 Controller 类、mapper 包下放入 Mybatis 的与映射文件和 DAO(即 Mapper 接口,无需手工实现,MyBat

14、is 将会自动实现)、service 包下放入 Service 类。Copyright 2006,2013 Financial China, All Rights Reserved8 / 55信息&服务 帮助客户创造财富LogsMyBatis(DB读写)Spring MVC JSPSpringSpringUI系统管理参数管理双路管理工作流与任务配置日志/统计分析工作流监控任务监控手工调度UI操作日志异常日志WS日志报警/日志查询分析模块配置信息读取工作流调度与监控模块任务调度(QUARTZ)WebService Client(CXF)基础管理模块金融市场数据管理平台详细设计文档3.2.2 js

15、p 目 录Jsp 目录置于 WEBROOT 目的 jsp 目录下。在 jsp 子目录中,页面以模块划分,如jsptaskjspsysjspanalysis3.2.3 配置说明a) 除 Spring 全局配置文件以外,使用注解 annotation 代替配置文件,一般情况下,在开发过程中无需修改配置文件b) 省去 MyBatis 的全局配置文件,由 Spring 代劳c) Spring-mvc 配置同样使用 annotation,URL 使用 rest 风格d) 注解的使用,下面的注解全部由代码生成工具生成,具体说明如下: 1)Controller 类注解说明类注解Controll

16、erRequestMapping(value = /模块名/功能名)方 法 上 的 注 解 为 : RequestMapping(value = /list) 自动注入注解:Autowired,使用后无需提供 getter与 setter方法如Copyright 2006,2013 Financial China, All Rights Reserved9 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档Service 类的注解类注解Component Transactional(readOnly = true) 方法注解Transactional(readOnly = f

17、alse) 例:标明该类由 Spring 管理声明默认的事务(只读事务)声明事务(可写事务)Mapper 接口的注解只只在类上有一个注解Component标明该类由 Spring 管理(Spring 将会自动生成其实现Copyright 2006,2013 Financial China, All Rights Reserved10 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档类,直接在 Service 中引用即可)MyBatis 部分MyBatis 的 Model 类、配置文件、Mapper(DAO)接口,均由 MyBatis Generator(官方代

18、码生成工具生成),无需手工编写。后面的部分有简单的代码生成工具的使用说明。3.2.4 MyBatiis Generator 代码生成工具简单的使用在下载好的 MyBatiis Generator 里,找到 config.xml,打开,找到以下几行:在这几行中指定包名,修改 targetPackage(包名)与 targetProject (生成的位置,可直接指定到工程的源文件目录,注意:如果目录下已经存在同名文件,生成的 Java 文件将会覆盖原有文件,映射文件将会被追加生成,会造成文件内容重复。)两个属性。javaModelGenerator 表示生成 Model 类。sqlMapGener

19、ator 表示生成 映射文件。javaClientGenerator 表示生成 Mapper 接口(即通常意义上的 DAO)。再找到下面几行:在这里配置好 jdbc 的驱动 jar 包与数据库连接字段。再找到下面的行,配置要生成的数据表:这里的 Table 元素可以无限多个。也就是说,一次可以生成多个表的代码。双击 readme.bat 文件,运行即可生成代码。若没有在目标目录找到生成的文件,可使用命令行重新运行 readme,即可查看失败原因。Copyright 2006,2013 Financial China, All Rights Reserved11 / 55信息&服务 帮助客户创造

20、财富金融市场数据管理平台详细设计文档项目中代码生成工具的使用:使用开发工具(MyEclipse 或 IDEA)打开工程。2、如果 MyBatiis Generator 生成好的文件与项目工程不在同一目录,将把生成的文件 COPY 到项目中对应的目录。3、打开 CodeGenerator 类。按照 CodeGenerator 类的注释运行代码生成工具。1) 确保数据库连接设置正确(查看 CgConst 类的数据库连接常量、生成 ID 的序列常量)2) 确保本类常量设置正确(查看 本类的 PROJECT_DIR 常量) 3)在 CodeGenerator 类的 Main 方法里定义要生成的实体类4

21、)运行 CodeGenerator5)生成完毕,启动服务器,在浏览器地址栏输入 http:/localhost:8080/模块名/bean 类的默认变量名。如系统管理( 模块名为 sys) 下的用户(User 变量名 user) 功能的 URL 为http:/localhost:8080/sys/user 即可访问该表的 CRUD 页面代码生成的限制:1、数据库为Oracle,目前只做了 Oracle。2、表中有一个字段名为 ID 的整型或长整型主键。3、创建了序列名为 CgConst 类的 COMMON_SEQ 常量定义的序列。4、表的每一个字段最好有中文注释,生成工具会将中文注释放在列表页

22、,编辑页。3.2.5 公共标签标签放在 WEB-INF 下的 tags 目录下,目前的标签有以下几个:引入方式:在 JSP 文件头部加入以下代码:标签说明:Copyright 2006,2013 Financial China, All Rights Reserved12 / 55信息&服务 帮助客户创造财富标签名说明调用示例dictName输出字典项名dictSelect输出字典项下拉列表str输出日期等的特殊对象的格式化userName根据用户 ID 输出用户名金融市场数据管理平台详细设计文档3.2.6 树形控件一般树形控件的实现有以下三个步骤:1、从数据库查询出需要展示的节点。2、将各节

23、点组装成树状结构。3、将树状结构展示为前台的 JS。现有的树形控件可以完成后面两个步骤的工作,将提供的结点展示为树形结构。下面是一个调用的示例:/查询所有菜单List menus = sysMenuService.query(new SysMenu();/构建树状图String treeString = new ZtreePrinter().printTreeByNodes(menus,TreeSelectMode.NONE, TreeConst.EXPAND_FIRST_LEVEL);可以看到,其实就是一个方法调用:ZtreePrinter 类的 printTreeByNodes 可以组建树

24、状菜单。第一个参数是 节点 List,可以是无序的列表,List 中的对象必须实现 Nodeable 接口。第二个参数是选择框,表示是否包含选择框,有三种方式,checkbox,radio,none第三个参数为是否展开第一级菜单展示菜单:在前台 JSP 页面中输出 treeString (如$ treeString ) 即可生成树状图。Copyright 2006,2013 Financial China, All Rights Reserved13 / 55信息&服务 帮助客户创造财富preHTML PRE 标签不好用,写一个dictCheckbox输出字典项单选列表金融市场数据管理平台详细

25、设计文档4 功能详细设计4.1 工作流与 ETL 任务管理与调度4.1.1 类图与说明这个图包含工作流的手工调用与自动调度流程,其中左侧部分是手工调用与工作流监控部分的调用,右侧是任务自动调度的流程与监控。类说明1.两个 Service 类(WorkflowService 与 EtlTaskService)提供服务给 Web 层调用。a) WorkflowService 类提供对 WEB 页面的服务,提供工作流启动、停止、监控等方法b) EtlTaskService 类提供对 WEB 页面的服务,提供工作流启动、停止、监控等方法两个全局 Context 类(WorkflowCon

26、text 与 EtlTaskContext)分别用来保存的工作流的运行状态与调度任务状态。EtlQuartzManager 类,用来管理 Quartz 容器的任务。EtlTaskJob 类,任务执行器,由 Quartz 调度器自动调用。WorkflowThread 工作流执行线程类,由 EtlTaskJob 来开启。.Copyright 2006,2013 Financial China, All Rights Reserved14 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档6.WorkflowExecutor 工作流执行器,为工作流手工启动程序(Wor

27、kflowService)和自动调度程序(WorkflowThread)公用。它负责工作流的具体调用、监控、监控超时、强制停止等工作,是一个核心类。WorkflowTimeLimiterMonitor 全局的工作流超时监控器,由 WorkflowExecutor 调用。WorkflowWebServiceInvoker 工作流的 WebService 调用器, 专门负责调用PowerCenter 的 WebService 来控制工作流,由 WorkflowExecutor 调用PowercenterQueryService 用来查询工作流的实际运行状态。.1.2 工作流树管理工作

28、流树从原理上讲是业务分类的一个 COPY。系统界面、致。请参考业务分类的管理,在此不详细介绍。业务等都与业务分类一4.1.3 工作流注册工作流注册用来管理 PWC 里定义的所有工作流。页面展示、查询、管理1.2.3.点击左侧工作流树,筛选出该工作流分类下的工作流根据工作流名对工作流进行模糊查询在工作流没有被关联的情况下,可以删除工作流。Copyright 2006,2013 Financial China, All Rights Reserved15 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档新增/修改工作流Copyright 2006,2

29、013 Financial China, All Rights Reserved16 / 55信息&服务 帮助客户创造财富示例界面输入 工作流中文名(必填)、工作流控制编号(必填,唯一)、工作流名(必填)、文件夹名(必填) 工作流业务分类、工作流分类、转换最大记录、超时时间、目标表、手工启动类型输出新增/修改成功处理逻辑1. 工作流控制编号、工作流名全系统唯一,若存在则提示输入错误2. 存入数据库金融市场数据管理平台详细设计文档4.1.4 手工启动人工时间戳采集流程如下:1、 读取工作流表,判断是否登入资料库,如果没有登录则调用 Webservice 中的 Login使用用户名和等信息登入 P

30、owercenter 资料库,取得当前 session 的 ID。2、 然后调用 webservice 通过 opb_wflow_run 获取该工作流当前运行状态。3、 如果该工作流的当前状态为正在运行,则显示为强制启动,强制启动为调用 webservice 的 stopworkflow 方法停止该工作流并立即调用 startwork 分类方法启动。若工作流状态为等待,则显示手工启动。调用 webservice 通过startWorkFlow 启动该 workflow。4、 启动工作流后的流程请参考 3.5.5 工作流自动调度服务流程图。以上流程如下图所示。Copyright 2006,201

31、3 Financial China, All Rights Reserved17 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档开始工作流注册表是否已登入资料库?是登入资料库Login是否登入成功?是当前SessionIDY启动WorkFlow startWorkFlow(校验、更新时间戳)是否正在运行?N否是否到达最大超时时间?否是否返回?是是是否正在运行?业务操作日志否是系统错误日志系统错误日志结束线程人工按时间戳采集数据流程图手工执行工作流的实现流程基本上可以视为自动调度任务的一个部分,区别在于一个由Quartz 调度管理器驱动,一个由手工驱动。具体流程如下图所示:

32、Copyright 2006,2013 Financial China, All Rights Reserved18 / 55信息&服务 帮助客户创造财富是否业务错误是写入业务错误否业务错误日志PowerCenter终止WorkFlow stopWorkFlow读取工作流日志getWorkFlowLog记录超时到系统错误错误日志读取rep_sess_log, 更新工作流业务操作日志读取运行状态opb_wflow_ru n记录成功日志,更新时间戳及状态字段为1,工作流结束读取运行状态opb_wflow_ru n记录SsessionID否读取工作流表否金融市场数据管理平台详细设计文档工作流执行日志

33、UI(业务操作日志表)工作流执行日志执行错误日志系统错误日志表工作流执行器(与自动调度通用)函数(状态、超时)WS请求SessionId WorkFlow启动函数停止函数日志函数业务错误日志表读取执行详情/ 系统错误日志WebService WebService错误日志工作流执行日志详情PowerCenter设计细则:1. 手工启动工作流时,系统先将工作流的当前启动状态改为 2(时间戳启动)或 3(业务要素启动)。2. 为了保证手工启动工作流不与自动任务冲突。修改之前判断当前工作流是否马上到达自动调度时间,若(工作流下次运行时间 - 当前时间 读取启动模式 - 读取时间戳或业务要素 - 执行业

34、务 - 日志SessionID/登录组件手工业务要素启动修改启动模式为3手工时间戳启动修改启动模式为2金融市场数据管理平台详细设计文档服务实现调用。5. WorkflowExecutor 通过全局的 WorkflowTimeLimiterMonitor 开启一个监控线程, 同时对监控线程启动最大超时时间的监控。停止流程1.2.3.WEB 层调用 WorkflowService 类的 stopWorkflow(工作流停止方法)WorkflowService 直接调用WorkflowExecutor 类的将调用结果返回给 WEB 层。stopWorkflow 方法来完成调用。4.1.

35、4.3关键代码4.1.5 工作流监控工作流监控是用来对当前正在运行的工作流的监控。包括工作流启动时间、下次启动时间等。Copyright 2006,2013 Financial China, All Rights Reserved20 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档监控界面1.2.3.运行中可查看正在处于运行中状态的工作流等待中可查看已经进入调度,但目前还没有运行的工作流最近错误可查看最近运行错误的工作流。监控流程1.WEB 层调用 WorkflowService 类的 queryRunningWorkflows 方法。查询正在

36、运行的工作流。queryRunningWorkflows 方法里,调用 WorkflowContext 可查询到工作流的本地调度状态。queryRunningWorkflows 方法里,调用 PowercenterQueryService 可查询到工作流的真实状态。.5.3关键代码查询运行中的工作流:Copyright 2006,2013 Financial China, All Rights Reserved21 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档setRunStatusWoWorkflows 方法中设置运行时间与 PWC 状态的关键代码:查询

37、等待中的工作流:Copyright 2006,2013 Financial China, All Rights Reserved22 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档4.1.6 ETL 任务管理与调度任务设置.5.一个 ETL 任务包含任务基础设置、所关联的工作流、所关联的调度策略。任务设置包含基础信息,任务名、备注。任务的状态为初始状态。可针对任务添加一个或多个工作流,一个工作流可属于一个任务。可针对任务添加一个调度策略,一个任务只能有一个调度策略。任务设置完成后需要到任务管理里去启动任务,使任务的调度生效。任务管

38、理任务管理页面设计:Copyright 2006,2013 Financial China, All Rights Reserved23 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档1.对于处于关闭状态的任务,可执行启动操作(判断是否关联工作流与调度策略),启动后任务进入调度器。对于处于启动状态的任务,可执行关闭操作,关闭时若任务正在运行则不进行干预。对于所有当前没有运行的任务,可执行“立即执行”操作,立即执行操作不影响下次正在运行的时间。.6.2.1 关键代码启动任务:立即执行:停止任务:Copyright 2006,2013 Financial Chi

39、na, All Rights Reserved24 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档任务自动调度.1 ETL 任务执行流程ETL 任务执行流程过程如下:1、服务一启动,即加载具有调度策略属性的任务列表,到 QUARTZ 的任务管理器中。2、当任务管理器中的任务即将到达启动时间时,该任务将被放入 QUARTZ 调度队列,队列中任务到达启动条件时,创建新线程,在线程中启动任务,生成任务执行编号,记录任务初始时间、任务执行编号到业务操作日志表,并更新任务下的所有工作流注册信息任务执行编号字段。3、当用户在页面上新增任务并为任务分配调度策

40、略时,则先将任务放入数据表中,当此任务在界面上点击启动时,则将数据表中的信息读取到 QUARTZ 任务管理器中等待被调度。当正在 QUARTZ 管理器中的任务有变更时,需先将其停止,停止即将该任务从QUARTZ 任务管理器中移除,等待用户再次点击启动时,在此将任务信息读取到QUARTZ 任务管理器中进行调度运行。4、当任务启动以后,读取该任务下所有工作流,每个工作流创建独立子线程。判断SESSIONID 是否存在,如果不存在则登入资料库,并记录 SESSIONID。5、然后调用 webservice 的 startworkflow 方法启动工作流,记录工作流启动时间,等待该方法的返回值并判断是

41、否达到超时时间。6、POWERCENTER 工作流运行工作流运行过程中进行勾稽关系校验,如果发生校验错误写业务错误日志表,直到更新时间戳、工作流结束。7、当在超时时间内得到返回值的,则记录数据管理平台工作流日志并同步 powercenter 中该工作流的rep_sess_log 业务成功日志表,并通过 webservice 的getWorkFlowLog 同步 powercenter 中运行该工作流时产生的系统错误。8、如果达到超时时间还没有返回值的,则读取工作流的运行状态,如果工作流仍在运行的, 则强制停止该工作流并记录系统错误日志。以上流程见下图所示:Copyright 2006,2013

42、 Financial China, All Rights Reserved25 / 55信息&服务 帮助客户创造财富金融市场数据管理平台详细设计文档流程开始任务表业务操作日志是否到达调度?是否工作流表否是否登入成功?是否当前SessionID是否已登入资料库?记录SsessionID是是是否正在运行?业务操作日志否是否到达最大超时时间?运行完成返回?启动WorkFlow startWorkFlow否是系统错误日志是是否正在运行?业务操作日志是否系统错误日志结束线程Copyright 2006,2013 Financial China, All Rights Reserved26 / 55信息&

43、服务 帮助客户创造财富是否业务错误是否业务错误日志PowerCenter读取工作流日志getWorkFlowLog终止WorkFlow stopWorkFlow读取rep_sess_log, 更新工作流业务操作日志记录超时到系统错误错误日志读取运行状态opb_wflow_ru n写成功日志并更新时间戳,工作流结束写入业务错误记录工作流初始时间读取运行状态opb_wflow_ru n创建独立线程读取工作流登入资料库Login更新工作流注册表当前任务执行编号时间记录任务初始时间并生成任务执行编号加载任务到QUARTZ任务管理器QUARTZ调度更新任务到QUARTZ任务管理器任务启动为任务分配调度策

44、略从QUARTZ任务管理器中移除更新任务表插入任务表新首次运行任务调度更新任务创建金融市场数据管理平台详细设计文档.2 程序结构在调度策略与任务设置好以后,需要启用将任务按照调度策略启用。放入任务管理器中,监控每一个任务的运行情况并记录相应日志。整个自动调度服务分为四大组件:任务设置与监控器、Quartz 调度管理器、任务执行器、WebService 调用组件。整体程序结构图如下:任务执行日志任务设置与监控器QUARTZ调度管理器工作流 执行日志(业务操作日志表)调度策略(任务1) 调度策略(任务2) 调度策略(任务3)工作流执行日志系统错误日志执行错误日志表任务执行器工作流执行

45、器(多线程)任务器函数WS请求(启动、进停止函数日志函数启动函数(状态、超时)SessionId WorkFlow度、完成)业务错误日志表读取执行详情/系统错误日志错误日志工作流执行日志详情PowerCenter由上图可见,整个自动调度服务的四个组件的概要关系如下:1. 任务设置与监控组件启动调度服务,将任务加入到 Quartz 调度管理器,并对这些任务的状态进行全局监控。2. Quartz 将会根据调度策略自动调用任务执行器来启动任务。3. 任务执行器是真正执行任务的组件,它使用工作流执行器对具体工作流进行调用。另外它还包括两个小组件:任务器、SessionID 存储与登录组件。4. 工作流执行器和登录组件将会通过 WebService 组件操作 PowerCenter 的工作流。5. 该图的最下方是 PowerCenter 的服务器,它包括提供服务的 WebService 层与工作流执行器。工作流执行器会记录每个工作流的概要执行情况(成功、出错、成功记录数、失败记录数等)。而具体的工作流将记录工作流自身的业务日志(是否检验成功等)。6.该图的右侧

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论