1、警告、说明等提示等内容一律用楷体,并且在内容前后增加线条与正文隔离。屏幕显示描述:对于来自屏幕的显示信息,采用如下格式:英文Courier New ,中文宋体,文字大小为小四号;信息中夹杂的用户从终端输入的信息,使用加粗字体表示。2、各类标志本书还采用各种醒目标志来表示在操作过程中应该特别注意的地方,这些标志意义如下: :警告、危险、提醒操作中应注意的事项。说明、注意、提醒操作中应注意的事项。变更记录序号修改内容页号修改人完成日期123456注:对该文件内容增加、删除或修改均需填写此变更记录,详细记载变更信息,以保证其可追溯性。第一章 基础平台1.1 应用概述为提高常用参数获取速度(特别是那些
2、与业务无关的,很少发生变化的参数),减少数据库或配置文件IO操作次数,通过内存预加载的方式,像访问内存一样从数据库获取参数。参数以XML格式文件的形式存储,AFA4J平台将该文件解析存储进内存中,在内存中参数以一个二维Map数据结构的形式组织起来。形式如下:MapString, Map第一维的Map对应SYSID和该SYSID下的KEY-VALUE,第二维的Map则对应特定SYSID下的参数KEY和参数VALUE。AFA4J提供了从数据库导出参数到XML文件的工具,使用说明参见本文档第三章数据库参数导出工具使用说明。参数一旦加载,中途不可卸载,但支持参数重新加载。工作组与工作组之间的参数资源相
3、互隔离,互不干扰。单个工作组支持配置多个参数源文件。在AFAIDE中进行应用开发时可根据_REQ_MFFLG_的值来判断是否以内存化的方式去参数, 如果值为”1”, 则使用内存模式,值为”0”则采用数据库模式.1.2 配置说明配置文件platform.xml中关于参数内存化配置的形式如下所示:参数内存化配置: trueparamSourcesparamSource$afahome/conf/platform/paramsrc/paramsrc001.xml $afahome/conf/platform/paramsrc/paramsrc002.xml$afahome/conf/platform
4、/paramsrc/paramsrc003.xml/paramMemorize表1-1 参数内存化配置说明配置名功能说明usable参数内存化开关true开启false关闭paramSource参数源文件路径,支持多个参数源。支持在路径中使用$afahome获取工作空间根目录1.3 功能说明1.3.1 开关切换AFA4J平台启动时,如果在platform.xml文件中有参数内存化的配置并且开关为true,则加载指定参数源到内存中,否则则不加载。AFA4J在运行时支持通过修改配置的方式中途初始加载或重新加载参数,加载的条件是当开关由false true时。已加载在内存中的参数不能被卸载,只能被替
5、换。亦即当修改配置文件把开关由true置为false时,此时_REQ_“_MFFLG_”值为”0”,应当以查询数据库的方式取得参数,但内存中的参数依然存在,实际上可以从内存中取参数,不建议在开关切换为false后依然使用内存的方式获取方式,因为在开关由true false true这一过程中,参数源可能发生人为修改,AFA4J不保证取得的参数具有时效性。之所以使内存中的参数在开关由true置为false时不被卸载,是为了保证在切换开关时还没执行完毕的交易能够正常执行完毕。1.3.2 指定编码参数源XML文件的文件头encoding指定的编码即该文件所有参数存储在内存中的编码。数据库参数导出小工
6、具支持在导出参数到XML文件时,将数据库里参数的字符串编码记录在XML文件头的encoding里。参见数据库导出小工具配置说明。1.3.3 资源隔离AFA4J允许各个工作组配置各自的参数源,在运行时保证资源的隔离,不会相互干扰。1.3.4 组件支持AFA4J提供了从内存中取参数的组件AFAParamMemorize.getParam(String sysid, String key);参数说明:Sysid:应用idKey:参数key具体使用方法请参见 AFAIDE开发示例。第二章 AFAIDE开发二.1 开发示例在AFAIDE环境下首先判断_REQ_“_MFFLG_”的值,若为”1”,则从内存
7、中去参数,若为”0”,去从数据库中取数据。开发步骤如下所示:开发步骤:a) from AFAParamMemorize import getParam;在python文件中引入AFAParamMemorize模块b) 调用getParam,把相应的sysid和key作为入参#说明:P_GetRecordByDB 为 从视图中获取参数的组件 if(_REQ_MFFLG_0 = 1):#若为”1”则调用getParam从内存中取 ret = getParam(sysid,key); if(ret0!= 1):#如果内存中取不到参数则从数据库中取 ret=P_GetRecordByDB(sysid,
8、key); if(ret0! return 0,”xxx”,”无此参数”; else return ret;else #若不为”1”则默认从数据库中取 return P_GetRecordByDB(sysid,key)返回值ret为一个PyList,若参数获取成功,则该PyList为1, None, None,value,,value即为所取得的参数。若参数获取失败,则该PyList为0, ErrorCode, ErrorMsg。ErrorCode为错误代码,ErrorMsg为错误信息。第三章 数据库参数导出工具使用说明三.1 配置说明配置文件的形式如下所示:configdatabase ty
9、pe=oracle name=AFAuserNameibpsdevpasswordaWJwc2Rldg=urljdbc:oracle:thin:192.168.0.5:1521:afadriverClassoracle.jdbc.driver.OracleDriverencodingGBKschemaORACLEoutputFileNameoutput.xmltable name=test_sqlite SYSIDkeyReflectionKEYvalueReflectionVALUEspecificSysidList xxxxxxxxxx482xxxxxxxxxx483xxxxxxxxxx4
10、84xxxxxxxxxx485xxxxxxxxxx486/table/database/config三.1.1 database节点配置说明表3-1 database节点配置说明元素名/属性名type指定数据库类型目前支持oracle, db2以及mysqlname数据库名username数据库用户名password数据库密码通过base64加密后的密码url数据库连接UrlJdbc方式driverClassJdbc驱动类encoding指定存放到内存时的字符串编码该编码将被记录在输出xml文件的文件头,加载参数进内存前将依据该编码对字符串进行编码schema用户schema支持db2的sch
11、ema机制,oracle和mysql不需要。outputFileName输出文件路径table指定被导出数据所在的表参考数据所在表table配置说明三.1.2 table节点配置说明表3-2 table节点配置说明表名sysidReflection应用ID在表中的映射字段keyReflection参数键在表中的映射字段valueReflection参数只在表中的映射字段specificSysidList指定特定应用ID该节点为可选节点,若配置了该节点,则仅导出指定应用ID的参数,若没有配置该节点,则默认导出所有应用ID的参数。三.2 使用示例本工具以名为export-tool.rar压缩包的形式分发和使用,解压缩后的文件列表如下图所示:该工具预先内置了oracle,db2和mysql数据库jdbc连接驱动,使用者应根据不同的数据库类型指定连接驱动的classpath或者根据实际情况替换驱动文件。运行方法如下: 在windows环境下,编辑run.bat文件,指定数据库连接驱动路径和导出配置XML文件的地址。保存后退出。双击执行run.bat文件。 在类UNIX环境下,编辑run.sh文件,指定数据库连接驱动路径和导出配置XML文件的地址。命令行执行./run.sh。echo offrem -rem
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1