AFA4J参数内存化使用说明书Word文件下载.docx
《AFA4J参数内存化使用说明书Word文件下载.docx》由会员分享,可在线阅读,更多相关《AFA4J参数内存化使用说明书Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。
![AFA4J参数内存化使用说明书Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/9/31780554-a695-48ec-b1a7-19ad2c542ddd/31780554-a695-48ec-b1a7-19ad2c542ddd1.gif)
警告、说明等提示等内容一律用楷体,并且在内容前后增加线条与
正文隔离。
屏幕显示描述:
对于来自屏幕的显示信息,采用如下格式:
英文CourierNew,中文宋体,文字大小为小四号;
信息中夹杂的用户从终端输入的信息,使用加粗字体表示。
2、各类标志
本书还采用各种醒目标志来表示在操作过程中应该特别注意的地方,这些标志意义如下:
:
警告、危险、提醒操作中应注意的事项。
说明、注意、提醒操作中应注意的事项。
变更记录
序号
修改内容
页号
修改人
完成日期
1
2
3
4
5
6
注:
对该文件内容增加、删除或修改均需填写此变更记录,详细记载变更信息,以保证其可追溯性。
第一章基础平台
1.1应用概述
为提高常用参数获取速度(特别是那些与业务无关的,很少发生变化的参数),减少数据库或配置文件IO操作次数,通过内存预加载的方式,像访问内存一样从数据库获取参数。
参数以XML格式文件的形式存储,AFA4J平台将该文件解析存储进内存中,在内存中参数以一个二维Map数据结构的形式组织起来。
形式如下:
Map<
String,Map<
String,String>
>
第一维的Map对应SYSID和该SYSID下的KEY-VALUE,第二维的Map则对应特定SYSID下的参数KEY和参数VALUE。
AFA4J提供了从数据库导出参数到XML文件的工具,使用说明参见本文档第三章数据库参数导出工具使用说明。
参数一旦加载,中途不可卸载,但支持参数重新加载。
工作组与工作组之间的参数资源相互隔离,互不干扰。
单个工作组支持配置多个参数源文件。
在AFAIDE中进行应用开发时可根据__REQ__[‘__MFFLG__’]的值来判断是否以内存化的方式去参数,如果值为”1”,则使用内存模式,值为”0”则采用数据库模式.
1.2配置说明
配置文件platform.xml中关于参数内存化配置的形式如下所示:
参数内存化配置:
<
paramMemorize>
<
usable>
true<
/usable>
paramSources>
paramSource>
${afahome}/conf/platform/paramsrc/paramsrc001.xml<
/paramSource>
<
${afahome}/conf/platform/paramsrc/paramsrc002.xml<
${afahome}/conf/platform/paramsrc/paramsrc003.xml<
/paramSources>
/paramMemorize>
表1-1参数内存化配置说明
配置名
功能
说明
usable
参数内存化开关
true—开启
false—关闭
paramSource
参数源文件路径,支持多个参数源。
支持在路径中使用${afahome}获取工作空间根目录
1.3功能说明
1.3.1开关切换
AFA4J平台启动时,如果在platform.xml文件中有参数内存化的配置并且开关为true,则加载指定参数源到内存中,否则则不加载。
AFA4J在运行时支持通过修改配置的方式中途初始加载或重新加载参数,加载的条件是当开关由falsetrue时。
已加载在内存中的参数不能被卸载,只能被替换。
亦即当修改配置文件把开关由true置为false时,此时__REQ__[“__MFFLG__”]值为”0”,应当以查询数据库的方式取得参数,但内存中的参数依然存在,实际上可以从内存中取参数,不建议在开关切换为false后依然使用内存的方式获取方式,因为在开关由truefalsetrue这一过程中,参数源可能发生人为修改,AFA4J不保证取得的参数具有时效性。
之所以使内存中的参数在开关由true置为false时不被卸载,是为了保证在切换开关时还没执行完毕的交易能够正常执行完毕。
1.3.2指定编码
参数源XML文件的文件头encoding指定的编码即该文件所有参数存储在内存中的编码。
数据库参数导出小工具支持在导出参数到XML文件时,将数据库里参数的字符串编码记录在XML文件头的encoding里。
参见数据库导出小工具配置说明。
1.3.3资源隔离
AFA4J允许各个工作组配置各自的参数源,在运行时保证资源的隔离,不会相互干扰。
1.3.4组件支持
AFA4J提供了从内存中取参数的组件AFAParamMemorize.getParam(Stringsysid,Stringkey);
参数说明:
Sysid:
应用id
Key:
参数key
具体使用方法请参见AFAIDE开发示例。
第二章AFAIDE开发
二.1开发示例
在AFAIDE环境下首先判断__REQ__[“__MFFLG__”]的值,若为”1”,则从内存中去参数,若为”0”,去从数据库中取数据。
开发步骤如下所示:
开发步骤:
a)
fromAFAParamMemorizeimportgetParam;
在python文件中引入AFAParamMemorize模块
b)调用getParam,把相应的sysid和key作为入参
#说明:
P_GetRecordByDB为从视图中获取参数的组件
if(__REQ__[‘__MFFLG__’][0]==‘1’):
#若为”1”则调用getParam从内存中取
ret=getParam(sysid,key);
if(ret[0]!
=1):
#如果内存中取不到参数则从数据库中取
ret=P_GetRecordByDB(sysid,key);
if(ret[0]!
return[0,”xxx”,”无此参数”];
else
returnret;
else#若不为”1”则默认从数据库中取
returnP_GetRecordByDB(sysid,key)
返回值ret为一个PyList,若参数获取成功,则该PyList为[1,None,None,[value,]],value即为所取得的参数。
若参数获取失败,则该PyList为[0,ErrorCode,ErrorMsg]。
ErrorCode为错误代码,ErrorMsg为错误信息。
第三章数据库参数导出工具使用说明
三.1配置说明
配置文件的形式如下所示:
config>
databasetype="
oracle"
name="
AFA"
userName>
ibpsdev<
/userName>
password>
aWJwc2Rldg==<
/password>
url>
jdbc:
oracle:
thin:
@192.168.0.5:
1521:
afa<
/url>
driverClass>
oracle.jdbc.driver.OracleDriver<
/driverClass>
encoding>
GBK<
/encoding>
schema>
ORACLE<
/schema>
outputFileName>
output.xml<
/outputFileName>
tablename="
test_sqlite"
<
sysidReflection>
SYSID<
/sysidReflection>
keyReflection>
KEY<
/keyReflection>
valueReflection>
VALUE<
/valueReflection>
specificSysidList>
<
specificSysid>
xxxxxxxxxx482<
/specificSysid>
xxxxxxxxxx483<
xxxxxxxxxx484<
xxxxxxxxxx485<
xxxxxxxxxx486<
/specificSysidList>
/table>
/database>
/config>
三.1.1database节点配置说明
表3-1database节点配置说明
元素名/属性名
type
指定数据库类型
目前支持oracle,db2以及mysql
name
数据库名
username
数据库用户名
password
数据库密码
通过base64加密后的密码
url
数据库连接Url
Jdbc方式
driverClass
Jdbc驱动类
encoding
指定存放到内存时的字符串编码
该编码将被记录在输出xml文件的文件头,加载参数进内存前将依据该编码对字符串进行编码
schema
用户schema
支持db2的schema机制,oracle和mysql不需要。
outputFileName
输出文件路径
table
指定被导出数据所在的表
参考数据所在表table配置说明
三.1.2table节点配置说明
表3-2table节点配置说明
表名
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。
@echooff
rem----------------------------------------------------------------------------
rem