`
nugunaga
  • 浏览: 2949 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

handoff 流程

阅读更多
1.main 读applicationxml配置文件到context中
2.context 生成一个handoff_generator_template类,这个类构造时指定需要使用什么hand_off_generator for haijie, it's the class <com.citi.dde.hoffs.templateimpl.DDEBgPbstFileAckGen>
3.通过刚才创建的DDEBgPbstFileAckGen对象中的getCommandLineParams()创建并返回引用HandOffCmdLineParams对象
 
/**
   * In PbestFileAckGen, 创建这个命令行参数对象的时候期待三个键值
   * 1.handoff_generator_class_name
   * 2.pFileId the second parameter of HoffMain
   * 3.pFileType the third-parameter of HoffMain
   * 
   * opinional parameter: pRejectErrorCode the fourth parameter of HoffMain
   */

   将返回的对象也保留了其引用在template对象中
4.初始化handoffenvironment
4.1调用handoff_main中的inithoffenv方法
4.11创建HoffService对象其实是创建了HoffServiceimpl对象,只是一个接口
4.12取得handoffparameter,HandOffParameter这个对象的构造器做的工作实际上是读取一个配置文件hoff_parameters.properties,将这个文件中的键值配置记录读到handoffparameter对象中的parameterCache里。
4.13取得handoffparameter中的handoff_id
4.14通过取得的handoff_id利用HoffServiceimpl对象的getProcessId去数据库中的getProcessId方法执行select process_id from hoff_config_master where hoff_id=?取得process_id
4.15同上利用HoffServiceimpl中的getLogFileNames方法取得tracefile_name和logfile_name select tracefile_name, logfile_name from hoff_config_files where hoff_id=?
4.16将cmdLineParameters中的map取回,将上面取得的handoff_id,process_id,tracefile_name,logfile_name存放到cmdlineparameter里

4.17创建HoffEnv对象并且执行Initialize(cmdLineParams)方法,一开始就从handoff_paramter对象中读取D_ENV_FILE_NAME属性对应的值,
     这个值其实就是一个配置文件的路径和ddenv.ini作用貌似是一样的。
     将这个文件中配置的属性装载到properties成员中,创建processInfoVOCache对象,这个就是一个HashMap<String, ProcessInfoVO>,
     而其中的ProcessInfoVO保存了processId processName applicationName packetSize四个属性,ProcessInfoVO有set和get的方法。
     执行loadProcessInfo(cmdLineParams)方法
      通过EnvVar.D_CFG_DIR取得procDataFilePath=D:\workspace\dde_handoffs_frmwrk\src
      通过取得EnvVar.D_PROCDATA_FILE_NAME并且和上面的D_CFG_DIR进行拼接得到了procDataFile=D:\workspace\dde_handoffs_frmwrk\src\proc_info.dat
      从cmdlinparameter中取得process_id
      在proc_info.dat文件中读取含有process_id的属性最终将processId processName applicationName packetSize四个属性装载到上面提及到的ProcessInfoVO对象中。
      processInfoVOCache,也将process_id和ProcessInfoVO装入他的map
4.18使用cmdlineparamteter创建TraceLogger
            使用cmdlineparamteter创建SqlLogger
     使用cmdlineparamteter创建TivoliLogger

5.执行hoffTemplate().generateHoff
  gethandoffgenerator().sethandoffcmdlineparameters(handoffcmdlineparameter);
  gethandoffgenerator().initilizer();初始化handoffgenernator.
validateCmdParameter
  先取得handoffcmdlineparameter 调用log4j printout handoffcmdlineparameter,只是简单的把cmdparameter容器打印出来而已。
create handoff_session创建一个handoff会话
  什么是Hand off Session?
  HoffSessionVO对象中使用Map<String, String>创建了一个session对象用来保存特定的一些程序参数,
  使用这个对象的创建是通过使用复制另外一个Map<Stiring,String>来进行初始化,当前的版本中使用的是handoff cmd line parameter对象
  对象初始化完成以后,通过特定的数据库交互的函数,获取ProcessName:根据SessionConstants.JOB_CODE SessionConstants.JOB_NUM + ProcessName
  这个是hand-off enviroment对象的一个结构
  HoffEnv< processInfoVoCache< ProcessInfoVO < processId processName applicationName packetSize > > >
  HoffSession< HoffSessionVO< session<String, String > > >
  session是使用handoff cmdline parameter创建的基本map,然后再加上一个ProcessName。
载入handoff配置:与数据库交互取得master,detail,mapping等配置信息到特定对象中的map容器中。
  这里所指的是一个handoff_config:对象的结构
  handoff_config< hoff_config_detail, hoff_config_mapping, hoff_config_master, hoff_config_files, hoff_config_othersps>
   从HandoffSessionVO中读取到session,再从session中读取到handoff_id使用handoff_id取
   hoff_config_detail:
   hoff_config_mapping:存储过程的名称,存储过程调用期待的参数,存储过程获取结果是否分页。
   hoff_config_master:包含了hand_off_generator类名,hoff_format_type,page_length, process_id, repeat_rectype_id, root_tag_name
   hoff_config_files:包含了tracefile和logfile的名字对应特定的hoff_id
   hoff_config_othersps:
   HoffConfigKey< record_type, config_id >
  updateSessionWithHoffConfig使用配置好的hoff_config对象来更新hoff_sessionVO:把hoff_config_files和hoff_config_master中的数据装载到
  ( HoffSession< HoffSessionVO< session<String, String > > >  )session中
  设置处理过的记录类型的列表

HoffEnvelope prepare
什么是hoffenvelope?
为当前会话取得hoff_config,files,masters
initialize
{
  1.hoff_envelope object 先创建一个xml自对象, 然后从HoffEnv对象中取得env_root_element_ns.
  2.get rootelement & create recordElementMap
}
processConfigMapRecord执行sp,格式化返回的结果记录:
1.resetConfigMapRecordSession
  1.1在当前session中保留rectype_id_break配置
  1.2给当前的session清除IS_LAST_RECORD标志位
  1.3给当前session清楚IS_LAST_PAGE标志
2.把recordTypeId加到processedRecTypeIdList里
   processedRecTypeIdList是什么?
3.processNFormatRecords:处理数据库返回的结果,处理,设定好格式,写到文件里生成handoff
   由于结果是分类的,所以调用这个函数preparePaginatedRecords
   调用前先要调用SqlUtil.getPaginatedQueryVO获取执行sp的语句,名字,参数
   setCallableStatement 取得数据库连接,prepare执行语句,设置CallableStatement语句中的参数
   在启用pagingUtil的时候,其构造函数使用已经拼凑好的sql调用语句调用pagingUtil.setPageStatistics,这时候就会执行需要调用的语句,如果没有记录返回,则会抛出一个异常和警告

formatVO就是对detail表中每条记录的映射对象
分享到:
评论

相关推荐

    苹果Handoff功能使用方法及体验感受.docx

    苹果Handoff功能是一种在苹果设备间无缝切换和继续工作流程的技术,主要应用于iPhone、iPad和Mac之间。这一功能是苹果Continuity的一部分,旨在提供多设备间的高效协作体验。以下是对Handoff功能的详细说明和使用...

    Hand off怎么用?.docx

    这时,你可以在iPhone上接收验证码,利用Handoff功能将验证码同步到Mac的消息应用中,复制并粘贴到iReserve的相应字段,然后输入电话号码,就能顺利完成预订流程。 总的来说,Handoff的SMS同步功能让多设备间的协作...

    HHO、Handoff&SHO

    HHO(Hard Handover)、Handoff(通常指软切换)和SHO(Soft Handover)是移动通信系统中用于维持连续通信的关键技术,特别是在UMTS(Universal Mobile Telecommunications System)和LTE(Long Term Evolution)等...

    botframework-handoff

    Bot Framework Handoff 是微软开发的一款基于 C# 的框架,用于构建智能聊天机器人并实现与人类客服代表的无缝交接。在本文中,我们将深入探讨 Bot Framework Handoff 的核心概念、功能和应用场景,以及如何利用 C# ...

    cdma ansi is41-d

    ANSI CDMA的编解码及相关流程主要由TIA/EIA-41-D标准定义,该标准详细描述了移动通信系统之间的操作流程,特别是不同系统间的切换(Handoff)过程。 #### 二、TIA/EIA-41-D 标准结构与内容 TIA/EIA-41-D...

    appc-sample-handoff:此示例应用程序演示了如何使用iOS 8中引入并受Titanium 5.0支持的Handoff

    该示例应用程序演示了如何使用iOS 8中引入并受Titanium 5.0支持的Handoff。 移交使您可以在一台设备上开始使用应用程序,例如编辑文档,然后转移到另一台设备上以继续使用它。 交接指南 有关“移交”工作原理以及...

    中国电信CDMA网络边界切换技术方案-02

    6.2.7. Inter-cell Hard Handoff (Enhanced Hard Handoff) 67 6.2.8. Intra-cell Hard Handoff 67 7. 摩托罗拉 69 7.1. 跨MSC的BSC间软切换 69 7.1.1. 基本原理 69 7.1.2. 软切换信令流程 70 7.2. 硬切换原理的...

    H.248呼叫消息流程

    二是MGC发生切换,向MG发送ServiceChange消息,TerminationId同样为Root,Method为Handoff,ServiceChangeReason为903(MGC指示的变更),并携带ServiceChangeMgcID参数。 这个流程不仅适用于基础的电话拨打、接听...

    FreeBSD 5.4 网络通信过程中内核例程调用流程

    接着,`netisr_dispatch()`调度网络线程,使用`if_handoff()`将数据包传递给正确的协议处理程序。对于IP,这将调用`ip_input()`;对于ARP,则调用`arpintr()`。 `ip_input()`负责检查IP头并调用适当的协议处理例程...

    媒体网关控制协议(h248协议)信令流程

    2. **MGC切换**:MGC即将切换时,发送ServiceChange,TerminationId为Root,Method为Handoff,原因值为903(MGC定向更改),并携带ServiceChangeMgcID参数。 在H.248协议中,这些流程确保了MG和MGC之间的稳定通信,...

    中兴CDMA基站系统员工高级培训基础知识模块CDMA_1X原理第一版呼叫流程图.doc

    2.2 **接入切换(Access Handoff)** 这种切换发生在移动台试图接入网络时,如果当前服务小区无法提供足够的信号质量,系统会引导移动台接入另一个更适合的小区。 2.3 **硬切换** - **一样BSC的硬切换(半软切换...

    vanet 跨层演示文稿

    评估指标主要包括但不限于手递成功率(handoff success rate)、系统吞吐量(system throughput)以及平均端到端延迟(average end-to-end delay)等。实验结果表明,CCRP方法在提高手递效率的同时,也能显著提升整个系统...

    CDMA路测优化流程以及基本概念PPT教学课件.pptx

    - **HandOff参数**:如T_add和T_Tdrop的设定,过高或过低都会导致掉话或频繁切换的问题。 - **功率控制**:分为开环和闭环两种,开环功率控制用于手机接入,闭环功率控制则在通信过程中动态调整上下行功率,以维持...

    ios问答题-这份文档总结了100个iOS开发/设计面试中可能会问到的问题,涵盖了非常全面的内容.md

    针对iOS系统的一些核心技术和新特性,如Handoff、iCloud、iOS扩展、HealthKit、HomeKit、Apple Pay、应用沙盒、辅助功能、多任务处理、游戏中心、iBeacons等,考察面试者对这些技术的理解程度。 3. 编程相关 围绕...

    CDMA路测要点

    - **信令示意**:整个切换过程中涉及多个步骤,包括终端报告Pilot Strength Measurement Message(PSMM),基站确认(BS Acknowledge order),发送Universal Handoff Direction Message(切换指示消息),终端再次...

    电信设备-WiMax通信系统以及通信方法.zip

    小区重选是设备自动选择信号强度最高的基站,handoff则是在设备从一个基站转移到另一个基站时,保持通信连续性的过程。 6. **服务质量(QoS)** WiMax支持多种QoS策略,确保不同类型的数据流(如语音、视频、数据...

    智慧互理、智慧病房建设解决方案.pptx

    - NIS与PDA Handoff:无缝衔接护理信息系统和移动设备,保证信息流畅。 总的来说,智慧互理、智慧病房建设解决方案通过AIoT技术的集成,实现了护理流程的智能化、自动化,提高了医疗服务的安全性和效率,同时也为...

    Accelerating Service Creation and Deployment

    为了实现这些服务,文章提出了“Reflective Handoff”方法。这是一种可编程架构,包含绑定模型和服务创建环境两部分。绑定模型利用信标系统和测量系统来检测网络状态,通过检测算法和手off适配器实现对切换过程的...

    计算机外文资料翻译.pdf

    【计算机专业】外文资料《A Comprehensive and Efficient Handoff Procedure for IPv6 Mobility Support》主要探讨了移动IPv6的切换性能优化问题。随着互联网服务在日常生活中的普及,用户对随时随地访问互联网的...

Global site tag (gtag.js) - Google Analytics