数据库连接池修改
1.允许一个线程获取一个以上的连接:
默认情况下,线程路径上的任何函数,操作同一个数据源使用的是同一个连接对象。
但有时可能有特殊的需要.
如在处理单据,需要写入SEMQ时,由于业务可能包含比较复杂的逻辑,执行时间较长.获取SEMQ记录序列值会成为性能瓶颈.
新增2个宏:
.GETNEWDBC:对应GETDBC版本,获取一个新的连接对象
.USENEWDBC:对应USEDBC版本,获取一个新的连接对象
2.允许对后台线程和高负载任务指定一个可使用连接的限额
可指定这些与交互式服务争用,影响系统对用户的响应能力的处理所能使用的连接数在连接总数的比例。
<conn constr="DRIVER={MySQL ODBC 3.51 Driver};SERVER=192.168.0.77;DATABASE=cqq_supply;USER=root;PASSWORD=****;OPTION=3;charset=gbk" count="50" name="laton" tune_mode="1" tune_factor="0.8" db_ext="mysql_ext.dll"/>
<tune_mode>为调节模式,0表示不限制(默认值),1表示按比例限制.以后可能扩展到其它模式.
<tune_factor>为调节因子,当<tune_mode>为1时,表示可用连接数在总数中的占比.(ceil值)
UMX消息增加属性:
HIGH_PAYLOAD_MASK = 0x0080, ///< 是否是高负载任务
客户端对耗时的分析查询请求,用SetMsgAttr指定HIGH_PAYLOAD_MASK消息属性.
日志文件整合
.可以指定插件的日志是输出到主日志文件还是插件私有的日志文件
在插件配置文件中配置:
<private_log>true</private> <!--是否输出到私有日志文件 默认false -->
.可以指定SQL日志是输出到主日志还是专门的SQL日志文件文件
在hotfox.conf中配置:
<sql_log>原语义为是否写SQL日志,现在修改为:
bit0: 独立日志(1),主日志(0)
bit1: 所有日志(1),仅错误日志(0)
如:<sql_log>0</sql_log> 表示写入主日志文件,且只记录执行错误的SQL命令.
默认为0。
待处理消息队列调整:
不同优先级的消息共用一个消息队列.
有时序控制要求的队列数可配置.
<Scheduler>
<Thread>10</Thread> <!--消息队列处理线程数 -->
<SeqTaskNum>10</SeqTaskNum> <!-- 时序消息处理任务数 -->
<SendTaskNum>1</SendTaskNum> <!-- 发送线程数 -->
</Scheduler>