<?xml version="1.0" encoding="UTF-8"?> 
 | 
<config> 
 | 
        <server name="通信中间件" showStartInfo="true" company="http://www.dyjs.com"/> 
 | 
        <!--  
 | 
        基本配置 
 | 
        orgTag 机构tag(对应机构tag,和数据源后缀) 
 | 
        isLowPower: 是否为低功耗 
 | 
        onlyDealRtus:只处理指定RTU地址设备,其他设备数据丢弃,多个RTU地址用英文逗号隔开, 
 | 
        onlyOneProtocol:在支持多通信协议时,只有RTU上线了,才能识别出该RTU实际用的通信协议,进而用此协议解析上行数据及构造下行命令。 
 | 
                         如果RTU未曾上线(通信中间件启动后该RTU未曾上线),那么在向它发送下行命令时,不能判断出其采用的协议,也不能构造命令,尤其是低功耗情况下,不上线是正常现象。 
 | 
                         当只有一个协议情况下,在RTU未曾上线时,也能用此协议构造命令并缓存下来,尤其适合低功耗情况。 
 | 
                      onlyOneProtocol=true: 通信中间件当前只有一个协议    
 | 
        downComandMaxResendTimes: 下行命令允许发送的最大次数X,即允许重发X-1 
 | 
        commandSendInterval: 针对一个RTU,下发命令的时间间隔(秒) 
 | 
        cachWaitResultTimeout: 命令已经发送达最大次数,仍未收到命令结果,需要在缓存继续等待,其等待最大时长(秒),本系统RTU,对于开关泵命令,其先执行开关泵报,然后再进行命令应答,所以此值 要大一些 
 | 
        offLineCachTimeout: 不在线缓存的命令最大缓存时长(秒) 
 | 
        lastUpDataTimeLive: TCP上行数据时刻缓存时长(毫秒),当达到时长时,TCP上行数据时刻被清空,采用TCP上行数据时刻目的是,阻止上行数据同时下发数据,因为RTU处理不过来(经初次实验,1秒还是有问题,2秒无问题) 
 | 
        dbDataIdSuffix:数据库数据id生成器的id后缀,0是默认的后缀,一般web系统应用,数据中间件id后缀大于等于1  
 | 
        cacheUpDownDataWarnCount:上下行数据缓存队列中缓存数据个数的报警量,这个与现实项目所接水表数相关 
 | 
        cacheUpDownDataMaxCount:上下行数据缓存队列中缓存数据个数的最大值,这个与现实项目所接水表数相关 
 | 
        disconnectedByNoUpDataMinutes:没有上行数据的分钟数,达到这个分钟数,认为RTU断网了,取值范围是2-100 
 | 
        workReportDealOneByTimes: 工作报太频繁,N次上报处理1次,取值范围是1-100 
 | 
        sendDingDingAlarmMsInterval: 有报警发生时,向钉钉发送消息的间隔时长(分钟) 
 | 
         --> 
 | 
        <base 
 | 
            orgTag="ym" 
 | 
            isLowPower="false" 
 | 
            onlyDealRtus="" 
 | 
            onlyOneProtocol="false" 
 | 
            downComandMaxResendTimes="1" 
 | 
            commandSendInterval="2" 
 | 
            cachWaitResultTimeout="120" 
 | 
            offLineCachTimeout="86400" 
 | 
            lastUpDataTimeLive="500" 
 | 
            dbDataIdSuffix="0" 
 | 
            cacheUpDownDataWarnCount="100000" 
 | 
            cacheUpDownDataMaxCount="110000" 
 | 
            disconnectedByNoUpDataMinutes="3" 
 | 
            workReportDealOneByTimes="5" 
 | 
            sendDingDingAlarmMsInterval="60" 
 | 
        /> 
 | 
         
 | 
        <!--  
 | 
        centerAddr: 中心地址,当前,centerAddr未用到 
 | 
        synchroRtuClock: 是否对RTU校时 
 | 
        synchroRtuClockTimepieces:当RTU与服务器时钟相差一定毫秒(配置文件是秒钟)后,进行校时 
 | 
         --> 
 | 
        <protocol   
 | 
            centerAddr="1" 
 | 
            synchroRtuClock="true" 
 | 
            synchroRtuClockTimepieces="300000" 
 | 
        /> 
 | 
         
 | 
  
 | 
        <!-- 软件升级 --> 
 | 
        <updateRtuSoft enable="true"> 
 | 
            <soft1 enable="true" oldVersionName="meter_v2_0,meter_v1_0" > 
 | 
                <newVersion newVersionName="meter_v3_0" file="rtuSoft/meter_v3_0.txt"></newVersion>  
 | 
            </soft1> 
 | 
            <!--  
 | 
            <soft2 enable="false" oldVersionName="rtu_v1_0,rtu_v2_0,rtu_v3_0" > 
 | 
                <newVersion newVersionName="rtu_v4_0" file="rtuSoft/rtu_v4_0.txt"></newVersion>  
 | 
            </soft2> 
 | 
             --> 
 | 
        </updateRtuSoft>     
 | 
         
 | 
        <!--  
 | 
        支持模块 
 | 
        短工作时长线程池,线程负责用时较短的工作任务 
 | 
        short_maxThread: 池中最大线程数为所有CPU核数+1(short池与long池各分一半),若为-1,不受限制 ,设置为0,表示不启动线程池 
 | 
        short_minThread: 池中最小线程数,若为-1,不受限制,设置为0,表示不启动线程池 
 | 
        short_freeTimeout: 线程数空闲时长,若池中线程数量大于minThread,且有的线程空闲时长超过freeTimeout,则清除该线程,为了不清除,把minThread与maxThread设置相等 
 | 
        short_busyTimeout:线程不间断工作时长(单位为秒)超时限,认为线程已经了崩溃,将强制清除,短工作时长设置为5秒  
 | 
        长工作时长线程池,线程负责用时较长的工作任务,例如数据库存取操作 
 | 
        long_maxThread: 池中最大线程数为所有CPU核数+1(short池与long池各分一半),若为-1,不受限制,设置为0,表示不启动线程池 
 | 
        long_minThread: 池中最小线程数,若为-1,不受限制,设置为0,表示不启动线程池 
 | 
        long_freeTimeout: 线程数空闲时长,若池中线程数量大于minThread,且有的线程空闲时长超过freeTimeout,则清除该线程 
 | 
        long_busyTimeout:线程不间断工作时长(单位为秒)超时限,若为-1,不受限制  
 | 
        enableThreadPool:是否启用线程池 
 | 
         --> 
 | 
        <support 
 | 
            short_maxThread="6" 
 | 
            short_minThread="6" 
 | 
            short_freeTimeout="60" 
 | 
            short_busyTimeout="5" 
 | 
            long_maxThread="6" 
 | 
            long_minThread="6" 
 | 
            long_freeTimeout="60" 
 | 
            long_busyTimeout="-1" 
 | 
            enableThreadPool="true" 
 | 
        /> 
 | 
             
 | 
        <!--  
 | 
        资源模块 
 | 
        rtuLogDir:RTU日志文件存储目录(相对目录) 
 | 
        rtuLogFileMaxSize:RTU日志文件最大字节数(KB) 
 | 
        rtuLogFileMaxCount:RTU日志文件最大文件数 
 | 
        monitorInterval:Rtu状态监视间隔(分钟) 
 | 
        saveDbInterval:Rtu状态存数据库间隔(分钟) 
 | 
         --> 
 | 
        <resource 
 | 
            rtuLogDir="rtuLogs/" 
 | 
            rtuLogFileMaxSize="1000000" 
 | 
            rtuLogFileMaxCount="2" 
 | 
            monitorInterval="2" 
 | 
            saveDbInterval="10" 
 | 
        /> 
 | 
         
 | 
             
 | 
        <!--  
 | 
        port:rmi服务端口号 
 | 
        context:rmi服务上下文 
 | 
         --> 
 | 
        <rmi enable="true" 
 | 
            port="65400" 
 | 
            context="rtuMw" 
 | 
        /> 
 | 
         
 | 
        <!-- 
 | 
        sleepBigBusy:主线程大忙时每次执行间隔时长(毫秒) 
 | 
        sleepSmallBusy:主线程小忙时每次执行间隔时长(毫秒) 
 | 
        queueWarnSize: 缓存队列节点数警告数量 
 | 
        queueMaxSize: 缓存队列节点数最大数量 
 | 
         --> 
 | 
        <core 
 | 
            sleepBigBusy="100" 
 | 
            sleepSmallBusy="500" 
 | 
            queueWarnSize="100000" 
 | 
            queueMaxSize="300000" 
 | 
        /> 
 | 
         
 | 
        <!--  
 | 
        port:端口 
 | 
        processors: Mina IO 处理上下行数据的线程数,一般是CPU总核数+1 
 | 
        idle: 发呆时长(秒) 
 | 
         --> 
 | 
        <tcp enable="true" 
 | 
            port="60000" 
 | 
            processors="3" 
 | 
            idle="10" 
 | 
        /> 
 | 
  
 | 
</config> 
 |