一种数据源同步与告警的装置和方法

文档序号:6540742阅读:150来源:国知局
一种数据源同步与告警的装置和方法
【专利摘要】本申请提供了一种数据源同步与告警的装置和方法,其中,所述装置设置于JBoss应用服务器的核心组件模块中,所述装置包括:监控器、管理器和告警器;所述监控器用于对数据库中存储的账户的当前口令进行周期性检测;在确定所述当前口令满足口令更换条件时,按照设定规则生成新口令;所述管理器用于获取所述监控器生成的新口令,将所述新口令更新至所述数据库下的数据源配置文件中;在所述数据库中发布更新后的数据源配置文件;所述告警器用于侦测所述数据源配置文件的更新事件;在侦测到更新事件时,生成并发送指示所述更新事件的告警通知。通过本申请解决了EJB服务无法获取有效的Connection对象,进而导致业务开展失败的问题。
【专利说明】一种数据源同步与告警的装置和方法
【技术领域】
[0001]本申请涉及数据源处理【技术领域】,特别是涉及一种数据源同步与告警的装置和方法。
【背景技术】
[0002]当前在较为大型的企业信息化系统中,为了增强信息系统数据的安全性,企业一般都要求系统提供商遵循“数据库系统安全规范”设计开发企业信息化系统。如,规范要求数据库系统支持账户口令高复杂度并定期更新,否则过期后账户将被锁定。然而,当账户口令发生变更生成新口令时,JBoss应用服务器中EJB (Enterprise JavaBean,执行特定任务的组件)服务在操作数据库系统时会产生严重故障。造成故障的具体原因如下:
[0003]JBoss DataSource (JBoss数据源)是JBoss应用服务器访问数据库的适配器,JBoss DataSource在JBoss应用服务器启动时被初始化并创建,而且在JBoss应用服务器运行期间其属性参数一直保持初始值不变。EJB服务从JBoss DataSource的连接池中获取账户口令,进行账户的登陆操作。如果JBoss DataSource的连接池为空,则需要建立新的Connection (连接)对象。然而,当数据库系统账户口令更新后,JBoss DataSource与数据库系统二者之间的账户口令不同步,连接池仍获取到过期的账户口令,导致连接池建立新Connection的流程异常,进而,EJB服务则无法从连接池中获取有效的Connection,导致账户登陆失败,无法正常开展业务。

【发明内容】

[0004]本申请提供一种数据源同步与告警的装置和方法,以解决EJB服务无法从连接池中获取有效的Connection对象,进而导致业务开展失败的问题。
[0005]为了解决上述问题,本申请公开了一种数据源同步与告警的装置,所述装置设置于JBoss应用服务器的核心组件模块中,所述装置包括:监控器、管理器和告警器;
[0006]其中,
[0007]所述监控器,用于对数据库中存储的账户的当前口令进行周期性检测;以及,在确定所述当前口令满足口令更换条件时,按照设定规则生成新口令;
[0008]所述管理器,用于获取所述监控器生成的新口令,并将所述新口令更新至所述数据库下的数据源配置文件中,并在所述数据库中发布更新后的数据源配置文件;
[0009]所述告警器,用于侦测所述数据源配置文件的更新事件;并,在侦测到更新事件时,生成并发送指示所述更新事件的告警通知。
[0010]较佳地,所述告警器包括:注册器和发送器;
[0011]所述注册器,用于监听订阅服务的传输控制协议,登记注册所述订阅服务指示的对象;并,侦测所述数据源配置文件的更新事件;
[0012]所述发送器,用于在侦测到更新事件时,生成指示所述更新事件的告警通知,将所述告警通知发送至所述订阅服务指示的对象。[0013]较佳地,所述监控器包括:口令监控器和口令管理器;
[0014]所述口令监控器,用于将口令检测任务注入至所述JBoss应用服务器下的内置时钟管理器中;并,在所述JBoss应用服务器启动时,通过所述内置时钟管理器对所述当前口令进行周期性检测,判断所述当前口令是否满足口令更换条件;
[0015]所述口令管理器,用于在确定所述当前口令满足更换条件时,按照设定的口令复杂度规则生成新口令。
[0016]较佳地,所述口令监控器在判断所述当前口令是否满足口令更换条件时:
[0017]从所述数据库中获取所述当前口令;
[0018]使用当前口令登陆所述当前口令对应的账户,并分析登陆后的告警码信息;
[0019]在所述告警码信息指示所述当前口令超过设定的口令使用期限时,确定所述当前口令满足口令更换条件;或,在所述告警码信息指示所述当前口令在设定时间阈值之后将超过所述设定的口令使用期限时,确定所述当前口令满足口令更换条件。
[0020]较佳地,所述管理器包括:同步器和发布器;
[0021]所述同步器,用于获取所述监控器生成的新口令,将所述新口令写入所述数据库下的数据源配置文件中,并,从所述数据源配置文件中删除被所述新口令替换的当前口令;
[0022]所述发布器,用于调用所述JBoss应用服务器中的主发布器,在所述数据库中发布更新后的数据源配置文件。
[0023]较佳地,所述发送器,还用于建立与所述订阅服务指示的对象之间的心跳检测机制,以在所述告警通知发送失败时,重新向所述订阅服务指示的对象发送所述告警通知。
[0024]较佳地,所述装置还包括:
[0025]口令更新模块,用于在所述告警器将所述告警通知发送至订阅服务指示的对象之后,根据所述更新后的数据源配置文件更新所述JBoss应用服务器下的数据源,以将所述新口令更新至所述数据源中。
[0026]本申请还公开了一种数据源同步与告警的方法,包括:
[0027]对数据库中存储的账户的当前口令进行周期性检测;并,在确定所述当前口令满足口令更换条件时,按照设定规则生成新口令;
[0028]获取所述新口令并将所述新口令更新至所述数据库下的数据源配置文件中;并,在所述数据库中发布更新后的数据源配置文件;
[0029]侦测所述数据源配置文件的更新事件;并,在侦测到更新事件时,生成并发送指示所述更新事件的告警通知。
[0030]较佳地,所述侦测所述数据源配置文件的更新事件;并,在侦测到更新事件时,生成并发送指示所述更新事件的告警通知,包括:
[0031]监听订阅服务的传输控制协议,登记注册所述订阅服务指示的对象;并,侦测所述数据源配置文件的更新事件;
[0032]当侦测到更新事件时,生成指示所述更新事件的告警通知,将所述告警通知发送至所述订阅服务指示的对象。
[0033]较佳地,所述对数据库中存储的账户的当前口令进行周期性检测;并,在确定所述当前口令满足口令更换条件时,按照设定规则生成新口令,包括:[0034]将口令检测任务注入至所述JBoss应用服务器下的内置时钟管理器中;并,在所述JBoss应用服务器启动时,通过所述内置时钟管理器对所述当前口令进行周期性检测,判断所述当前口令是否满足口令更换条件;
[0035]当确定所述当前口令满足更换条件时,按照设定的口令复杂度规则生成新口令。
[0036]与现有技术相比,本申请包括以下优点:
[0037]本申请实施例通过设置于JBoss应用服务器核心组件模块中的数据源同步与告警装置,在线监控和更新数据库账户的当前口令,当发现当前口令满足更换条件时,及时生成新口令。并,在线将所述新口令同步至数据库下的数据源配置文件中,动态生效JBossDataSource中的新实例。最后,在侦测到所述数据源配置文件的更新事件时,生成并发送指示所述更新事件的告警通知,从而使EJB服务及时更新JBoss DataSource实例引用。EJB服务获取到有效的Connection对象,正常开展各项业务。
[0038]进一步地,本申请实施例所述的数据源同步与告警装置,首先,自动地、在线实时检测口令的使用条件,可以及时发现满足更换条件的口令,降低了检测不及时的风险,同时避免了漏检情况的发生,提高了操作数据库的可靠性。其次,在检测到满足更换条件的口令后,自动按照设定规则生成新口令,并完成新口令的在线更新发布,操作准确度高。最后,及时在线发布告警通知,EJB可以及时根据告警通知重新获取JBoss DataSource新实例,保证了 EJB服务的正常开展。
【专利附图】

【附图说明】
[0039]图1是本申请第一实施例中一种数据源同步与告警的装置的结构框图;
[0040]图2是图1所示实施例中一种JBoss服务器的核心服务组件框架示意图;
[0041]图3是本申请第二实施例中一种数据源同步与告警的装置的结构框图;
[0042]图4是本申请第三实施例中一种数据源同步与告警的装置的工作时序图;
[0043]图5是图4所示实施例中一种数据源同步与告警装置的工作原理图;
[0044]图6是图4所示实施例中一种告警器的工作原理图;
[0045]图7是本申请第四实施例中一种数据源同步与告警的方法的流程图;
[0046]图8是本申请第五实施例中一种数据源同步与告警的方法的流程图。
【具体实施方式】
[0047]为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本申请作进一步详细的说明。
[0048]参照图1,示出了本申请第一实施例中一种数据源同步与告警的装置的结构框图。
[0049]JBoss 应用服务器是一种建立在 JMX (Java Management Extensions,即 Java 管理扩展,是一个为应用程序、设备、系统等植入管理功能的可复用框架)架构之上的模块化框架,使用JMX来管理、运行EJB的J2EE应用服务器。JBoss应用服务器的框架结构使得JBoss的所有核心组件模块都具有“可插拔性”。本申请在遵循现有的JBoss XMBeanCMBean即Managed Bean。在JMX中MBean代表一个被管理的资源实例,夕卜界可以获取被管理的资源的状态和操纵MBean的行为)开发规范的基础之上,在JBoss核心服务组件模块中扩展了一个新的组件模块,即本实施例中所述数据源同步与告警的装置。其中,JMX框架下的JBoss应用服务器的核心组件模块用于完成JBoss的基本功能,所有核心组件模块是一系列JBoss XMBean的封装包。
[0050]参照图2,是图1所示实施例中一种JBoss服务器的核心服务组件框架示意图。在本实施例中,扩展后的JBoss服务器的核心服务组件模块可以包括:EJB容器、JBoss事务管理、Deployment 部署器、JBoss 网络服务、WebServer 服务、JCA (J2EE ConnectorArchitecture,支持连接池和事务管理等技术)服务、JBossSx (配置安全域)安全服务、JBossMQ (JBoss消息队列)消息服务和JBoss-DS-Monitor (即,本实施例中的数据源同步与告警装置)。其中,所有核心服务组件模块均是在JMX框架下构建的。
[0051]在本实施例中,所述数据源同步与告警的装置设置于JBoss应用服务器的核心组件模块中,所述装置具体可以包括:监控器102、管理器104和告警器106。
[0052]其中,
[0053]所述监控器102,用于对数据库中存储的账户的当前口令进行周期性检测;以及,在确定所述当前口令满足口令更换条件时,按照设定规则生成新口令。
[0054]所述管理器104,用于获取所述监控器生成的新口令,并将所述新口令更新至所述数据库下的数据源配置文件中,并在所述数据库中发布更新后的数据源配置文件。
[0055]所述告警器106,用于侦测所述数据源配置文件的更新事件;并,在侦测到更新事件时,生成并发送指示所述更新事件的告警通知。
[0056]综上所述,本实施例所述数据源同步与告警的装置设置于JBoss应用服务器核心组件模块中,在线监控和更新数据库账户的当前口令,当发现当前口令满足更换条件时,及时生成新口令。并,在线将所述新口令同步至数据库下的数据源配置文件中,动态生效JBoss DataSource中的新实例。最后,在侦测到所述数据源配置文件的更新事件时,生成并发送指示所述更新事件的告警通知,从而使EJB服务及时更新JBoss DataSource实例引用,EJB服务获取到有效的Connection对象,正常开展各项业务。
[0057]进一步地,本申请实施例所述的数据源同步与告警装置,首先,自动地、在线实时检测口令的使用条件,可以及时发现满足更换条件的口令,降低了检测不及时的风险,同时避免了漏检情况的发生,提高了操作数据库的可靠性。其次,在检测到满足更换条件的口令后,自动按照设定规则生成新口令,并完成新口令的在线更新发布,操作准确度高。最后,及时在线发布告警通知,EJB可以及时根据告警通知重新获取JBoss DataSource新实例,保证了 EJB服务的正常开展,进一步提高了操作数据库的可靠性。
[0058]参照图3,示出了本申请第二实施例中一种数据源同步与告警的装置的结构框图。在本实施例中,所述数据源同步与告警的装置设置于JBoss应用服务器的核心组件模块中,所述装置包括:监控器302、管理器304和告警器306。
[0059]在具体构建所述数据源同步与告警装置时,所述数据源同步与告警装置的构建遵循JBoss XMBean规范,同时依托OP平台(0P(0SS Platform)。OP平台是基于成熟的JavaEE技术实现的网络管理基础开发平台,包括日志、安全、系统管理等通用模块,并提供大量支撑网管业务开发的API接口供开发者使用),使用JDK1.6(Sun Microsystems针对Java开发员的产品)开发工具进行开发。所述数据源同步与告警的装置被作为核心组件模块部署于JBoss应用服务器内部,管理JBoss应用服务其它核心组件模块(如,JBoss DataSource),并肩负对外部数据库系统的监控管理工作。[0060]其中,
[0061]所述监控器302,用于对数据库中存储的账户的当前口令进行周期性检测;以及,在确定所述当前口令满足口令更换条件时,按照设定规则生成新口令。在具体实现时,所述监控器302可以通过标准的JDBC (Java Data Base Connectivity, Java数据库连接)规范对数据库中存储的口令进行管理。
[0062]较佳地,所述监控器302具体可以包括:口令监控器3022和口令管理器3024。其中,
[0063]所述口令监控器3022,用于将口令检测任务注入至所述JBoss应用服务器下的内置时钟管理器中;并,在所述JBoss应用服务器启动时,通过所述内置时钟管理器对所述当前口令进行周期性检测,判断所述当前口令是否满足口令更换条件。
[0064]在具体实现时,所述口令监控器3022可以将口令检测任务注入到时钟管理Scheduler服务的Timer中,通过JBoss应用服务器下的内置时钟管理器完成周期性的口令检测任务。即,当JBoss应用服务器启动后,所述口令监控器3022负责24小时周期性的对数据库中存储的账户的当前口令进行检测,并根据检测结果判断所述当前口令是否满足口令更换条件。
[0065]例如,数据库中存储的账户口令设定的使用期限是30天,则,
[0066]当所述口令监控器3022检测到账户A对应的当前口令已经使用了 31天,则确定所述账户A对应的当前口令已过期,满足口令更换条件。
[0067]当所述口令监控器3022检测到账户B对应的当前口令已经使用了 28天,满足设定时间阈值(即,设定时间阈值为2天,所述当前口令在2天之后将超过设定的口令使用期限30天),则确定所述账户B对应的当前口令已过期,满足口令更换条件。
[0068]当所述口令监控器3022检测到账户C对应的当前口令已经使用了 15天,则确定所述账户C对应的当前口令未过期,不满足口令更换条件。
[0069]较佳地,所述口令监控器3022在判断所述当前口令是否满足口令更换条件时,具体可以包括:
[0070]从所述数据库中获取所述当前口令;
[0071]使用当前口令登陆所述当前口令对应的账户,并分析登陆后的告警码信息;
[0072]在所述告警码信息指示所述当前口令超过设定的口令使用期限时,确定所述当前口令满足口令更换条件;或,在所述告警码信息指示所述当前口令在设定时间阈值之后将超过所述设定的口令使用期限时,确定所述当前口令满足口令更换条件。
[0073]所述口令管理器3024,用于在确定所述当前口令满足更换条件时,按照设定的口令复杂度规则生成新口令。
[0074]新口令的生成方法有多种方法,本实施例中所述按照设定的口令复杂度规则生成新口令可采用现有技术中的任何一种口令生成方法,本申请对此不做任何限定。例如,所述设定的口令复杂度规则可以为:口令长度要求至少为6位(大于等于6位),且,口令字符中包括数字、小写字母、大写字母和特殊符号(如,”等)中的至少两种。
[0075]所述管理器304,用于获取所述监控器生成的新口令,并将所述新口令更新至所述数据库下的数据源配置文件中,并在所述数据库中发布更新后的数据源配置文件。
[0076]较佳地,所述管理器304具体可以包括:同步器3042和发布器3044。[0077]其中,
[0078]所述同步器3042,用于获取所述监控器生成的新口令,将所述新口令写入所述数据库下的数据源配置文件中,并,从所述数据源配置文件中删除被所述新口令替换的当前口令。
[0079]在具体实现时,所述同步器3042可以将由口令管理器3024生成的新口令写入所述数据库下的数据源配置文件中,如,将所述新口令写入至x-ds-xm文件中。其中,所述x-ds-xm文件是JBoss数据源的xml格式的配置文件,一般发布于JBoss的deploy目录中,X代表某种数据库名称,比如Oracle-ds.xml就是Oracle数据库的JBoss数据源配置文件。并,在将所述新口令写入至x-ds-xm文件之后,从所述x-ds-xm文件中删除被所述新口令替换的当前口,以完成x-ds-xm文件中口令的在线同步过程。
[0080]所述发布器3044,用于调用所述JBoss应用服务器中的主发布器,在所述数据库中发布更新后的数据源配置文件。
[0081]在本实施例中,所述发布器3044调用所述JBoss应用服务器中的主发布器,重新发布完成在线同步更新的x-ds-xm文件,使x-ds-xm文件中属性配置信息动态生效。
[0082]所述告警器306,用于侦测所述数据源配置文件的更新事件;并,在侦测到更新事件时,生成并发送指示所述更新事件的告警通知。
[0083]在本实施例中,所述告警器306采用“订阅/发布”模式发布告警通知。即,向订阅服务指示的订阅对象(如,EJBl服务)在线发送所述告警通知;否则,不发送,即不向非订阅服务指示的非订阅对象(如,EJB2服务)发送所述告警通知。其中,所述订阅服务指示的对象为完成注册登记的EJB服务。
[0084]较佳地,所述告警器306具体可以包括:注册器3062和发送器3064。
[0085]其中,
[0086]所述注册器3062,用于监听订阅服务的传输控制协议,登记注册所述订阅服务指示的对象;并,侦测所述数据源配置文件的更新事件。
[0087]所述发送器3064,用于在侦测到更新事件时,生成指示所述更新事件的告警通知,将所述告警通知发送至所述订阅服务指示的对象。
[0088]较佳地,所述发送器3064,还用于建立与所述订阅服务指示的对象之间的心跳检测机制(如,TCP (Transmission Control Protocol传输控制协议)保活心跳机制),以在所述告警通知发送失败时,重新向所述订阅服务指示的对象发送所述告警通知。
[0089]在本实施例中,在所述告警器306将所述告警通知发送至订阅服务指示的对象之后,还可以通过口令更新模块完成数据源(JBoss DataSource, JBoss数据源,包含JBoss访问数据库系统的基本信息,是JCA组件建立JDBC连接的工厂,EJB服务可以通过JNDKJavaNaming and Directory Interface, Java 命名和目录接口)方式获取其连接池 ConnectionPool中空闲的Connection。)中口令的更新。其中,
[0090]所述口令更新模块,用于在所述告警器将所述告警通知发送至订阅服务指示的对象之后,根据所述更新后的数据源配置文件更新所述JBoss应用服务器下的数据源,以将所述新口令更新至所述数据源中。
[0091]综上所述,本实施例所述数据源同步与告警的装置设置于JBoss应用服务器核心组件模块中,在线监控和更新数据库账户的当前口令,当发现当前口令满足更换条件时,及时生成新口令。并,在线将所述新口令同步至数据库下的数据源配置文件中,动态生效JBoss DataSource中的新实例。最后,在侦测到所述数据源配置文件的更新事件时,生成并发送指示所述更新事件的告警通知,从而使EJB服务及时更新JBoss DataSource实例引用,EJB服务获取到有效的Connection对象,正常开展各项业务。
[0092]其次,本申请实施例所述的数据源同步与告警装置,首先,自动地、在线实时检测口令的使用条件,可以及时发现满足更换条件的口令,降低了检测不及时的风险,同时避免了漏检情况的发生,提高了操作数据库的可靠性。其次,在检测到满足更换条件的口令后,自动按照设定规则生成新口令,并完成新口令的在线更新发布,操作准确度高。最后,及时在线发布告警通知,EJB可以及时根据告警通知重新获取JBoss DataSource新实例,保证了 EJB服务的正常开展,进一步提高了操作数据库的可靠性。
[0093]最后,本申请实施例所述的数据源同步与告警装置采用了“订阅/发布”的消息模式,其他服务或系统只能通过订阅方式才能捕获数据源告警,避免无效告警的广播。
[0094]结合上述实施例,下面对本申请所述数据源同步与告警的装置的具体工作流程进行详细介绍。
[0095]参照图4,示出了本申请第三实施例中一种数据源同步与告警的装置的工作时序图。
[0096]其中,Scheduler-Service (时钟服务)、JBoss-DS-Monitor (数据源同步与告警的装置)、DataS0UrCe (数据源)和EJB (订阅服务)均为JBoss应用服务器中的核心组件模块。
[0097]在本实施例中,一方面介绍了所述数据源同步与告警的装置运行流程中所涉及的所有JBoss应用服务器中内置核心组件模块和外部对象(如,DB,Database,数据库系统),另外一方面分两次轮询阶段分别介绍数据库系统账户口令正常状态和过期状态的处理流程过程。具体流程如下:
[0098]数据库口令正常检测流程:
[0099]SI, JBoss应用服务器启动成功后,Scheduler-Service被初始化,并开始第一次轮询调度,对数据库中存储的账户的当前口令进行检测。
[0100]S2,通过Scheduler-Service的调度,JBoss-DS-Monitor的监控器尝试连接数据库DB。
[0101]S3,成功连接数据库,分析Connection对象(如,账户的当前口令)的告警码为非过期,则本次检测结束。
[0102]数据库口令过期检测流程:
[0103]S4, Scheduler-Service 开始第二次轮询调度。
[0104]S5,通过Scheduler-Service的调度,JBoss-DS-Monitor的监控器尝试连接数据库DB。
[0105]S6,成功连接数据库,分析Connection对象(如,账户的当前口令)的告警码为将过期或已过期,则立刻根据设定的口令复杂度规则生成新口令。
[0106]S7, JBoss-DS-Monitor的监控器使用SQL语句远程更新数据库系统账户口令。更新成功后继续执行S8,否则,返回重复执行S7。
[0107]S8,JBoss-DS-Monitor的管理器捕获到数据库账户的新口令后,首先定位并打开JBoss应用服务器deploy目录下的x_ds.xml文件,然后把新口令在线同步更新到此文件中。
[0108]S9,管理器通过RMI (Remote Method Invocation,远程方法调用)适配器接口调用JBoss应用服务器MainDeployer组件重新发布更新后的x_ds.xml文件。
[0109]参照图5,是图4所示实施例中一种数据源同步与告警装置的工作原理图。在本实施例中上述S4-S9的详细流程如下:
[0110]首先,JBoss-DS-Monitor组件模块的周期调度任务由JBoss应用服务器内置的时钟服务Scheduler-Service服务负责完成:将监控器的口令检测任务注入到Scheduler-Service服务的Timer进程中,当JBoss应用服务器启动成功后,JBoss-DS-Monitor组件模块就会实时在线监测数据库系统下账户的口令状态,一旦发现账户口令过期,立刻在线更新数据库系统下的账户口令。
[0111]其次,管理器进行如下流程:首先,获取由监控器根据口令复杂度规则生成的“新口令”;然后,将所述“新口令”在线同步更新到x-ds.xml文件中;最后,调用JBoss应用服务器下的MainDeployerMBean (主发布器)发布x_ds.xml文件,使x_ds.xml中属性配置信息动态生效。
[0112]最后,JCA组件下的DataSource(数据源)获取由MainDeployerMBean发布的x_ds.xml文件信息。
[0113]在本实施例中,当上述S7和S9成功执行完成后,JBoss-DS-Monitor的告警器向JBoss应用服务器内所有满足条件的EJB服务在线发送异步的“新口令告警事件”。所述满足条件的EJB服务接收到在线告警后,重新通过JNDI获取JBoss数据源实例引用,然后继续正常的业务工作。其中,所述满足条件的EJB服务是指完成注册登记的订阅服务。其详细工作流程如下:
[0114]参照图6,是图4所示实施例中一种告警器的工作原理图。其中,EJBl是订阅服务对象,EJB2是非订阅服务对象。
[0115]所述告警器侦测数据源配置文件的更新事件,当侦测到有更新事件发生时,生成指示所述更新事件的告警通知。发送器从注册器中获取告警对象(如,EJBl和EJB2),由于EJBl是订阅服务对象,EJB2是非订阅服务对象,故,所述发送器通过Socket通道将告警通知发送给EJB1,而不发送给EJB2。进一步地,注册器与EJBl之间建立了 TCP心跳机制,当TCP心跳机制监测到向EJBl发送的告警通知发送失败时,指示所述发送器重新发送所述告警通知,提高了发送器发送告警通知的可靠性。
[0116]以上两个检测工作流程始终循环交替运行,通过上述流程使得JBoss-DS-Monitor成为了一种具备“在线监控、在线同步、在线告警”特性的JBoss数据源管理装置。
[0117]综上所述,本实施例所述数据源同步与告警的装置设置于JBoss应用服务器核心组件模块中,在线监控和更新数据库账户的当前口令,当发现当前口令满足更换条件时,及时生成新口令。并,在线将所述新口令同步至数据库下的数据源配置文件中,动态生效JBoss DataSource中的新实例。最后,在侦测到所述数据源配置文件的更新事件时,生成并发送指示所述更新事件的告警通知,从而使EJB服务及时更新JBoss DataSource实例引用,EJB服务获取到有效的Connection对象,正常开展各项业务。
[0118]进一步地,本申请实施例所述的数据源同步与告警装置,首先,自动地、在线实时检测口令的使用条件,可以及时发现满足更换条件的口令,降低了检测不及时的风险,同时避免了漏检情况的发生,提高了操作数据库的可靠性。其次,在检测到满足更换条件的口令后,自动按照设定规则生成新口令,并完成新口令的在线更新发布,操作准确度高。最后,及时在线发布告警通知,EJB可以及时根据告警通知重新获取JBoss DataSource新实例,保证了 EJB服务的正常开展,进一步提高了操作数据库的可靠性。
[0119]基于上述装置实施例的说明,本申请还提供了相应的一种数据源同步与告警的方法实施例,来实现上述装置实施例。
[0120]参照图7,示出了本申请第四实施例中一种数据源同步与告警的方法的流程图。在本实施例中,所述数据源同步与告警的方法具体可以包括:
[0121]步骤702,对数据库中存储的账户的当前口令进行周期性检测;并,在确定所述当前口令满足口令更换条件时,按照设定规则生成新口令。
[0122]步骤704,获取所述新口令并将所述新口令更新至所述数据库下的数据源配置文件中;并,在所述数据库中发布更新后的数据源配置文件。
[0123]步骤706,侦测所述数据源配置文件的更新事件;并,在侦测到更新事件时,生成并发送指示所述更新事件的告警通知。
[0124]综上所述,本实施例所述数据源同步与告警的方法,在线监控和更新数据库账户的当前口令,当发现当前口令满足更换条件时,及时生成新口令。并,在线将所述新口令同步至数据库下的数据源配置文件中,动态生效JBoss DataSource中的新实例。最后,在侦测到所述数据源配置文件的更新事件时,生成并发送指示所述更新事件的告警通知,从而使EJB服务及时更新JBoss DataSource实例引用,EJB服务获取到有效的Connection对象,正常开展各项业务。
[0125]进一步地,本申请实施例所述的数据源同步与告警的方法,首先,自动地、在线实时检测口令的使用条件,可以及时发现满足更换条件的口令,降低了检测不及时的风险,同时避免了漏检情况的发生,提高了操作数据库的可靠性。其次,在检测到满足更换条件的口令后,自动按照设定规则生成新口令,并完成新口令的在线更新发布,操作准确度高。最后,及时在线发布告警通知,EJB可以及时根据告警通知重新获取JBoss DataSource新实例,保证了 EJB服务的正常开展,进一步提高了操作数据库的可靠性。
[0126]参照图8,示出了本申请第五实施例中一种数据源同步与告警的方法的流程图。在本实施例中,所述数据源同步与告警的方法具体可以包括:
[0127]步骤802,数据源同步与告警装置对数据库中存储的账户的当前口令进行周期性检测;并,在确定所述当前口令满足口令更换条件时,按照设定规则生成新口令。
[0128]较佳地,所述步骤802可以包括以下子步骤:
[0129]子步骤8022,数据源同步与告警装置将口令检测任务注入至所述JBoss应用服务器下的内置时钟管理器中;并,在所述JBoss应用服务器启动时,通过所述内置时钟管理器对所述当前口令进行周期性检测,判断所述当前口令是否满足口令更换条件。
[0130]在本实施例中,所述判断所述当前口令是否满足口令更换条件的具体步骤可以如下:
[0131]第一步,从所述数据库中获取所述当前口令。
[0132]第二步,使用当前口令登陆所述当前口令对应的账户,并分析登陆后的告警码信肩、O[0133]第三步,在所述告警码信息指示所述当前口令超过设定的口令使用期限时,确定所述当前口令满足口令更换条件;或,在所述告警码信息指示所述当前口令在设定时间阈值之后将超过所述设定的口令使用期限时,确定所述当前口令满足口令更换条件。
[0134]子步骤8024,当确定所述当前口令满足更换条件时,数据源同步与告警装置按照设定的口令复杂度规则生成新口令。
[0135]步骤804,数据源同步与告警装置获取所述新口令并将所述新口令更新至所述数据库下的数据源配置文件中;并,在所述数据库中发布更新后的数据源配置文件。
[0136]较佳地,所述步骤804可以包括以下子步骤:
[0137]子步骤8042,数据源同步与告警装置获取所述监控器生成的新口令,将所述新口令写入所述数据库下的数据源配置文件中,并,从所述数据源配置文件中删除被所述新口令替换的当前口令。
[0138]子步骤8044,数据源同步与告警装置调用所述JBoss应用服务器中的主发布器,在所述数据库中发布更新后的数据源配置文件。
[0139]步骤806,数据源同步与告警装置侦测所述数据源配置文件的更新事件;并,在侦测到更新事件时,生成并发送指示所述更新事件的告警通知。
[0140]较佳地,所述步骤806可以包括以下子步骤:
[0141]子步骤8062,数据源同步与告警装置监听订阅服务的传输控制协议,登记注册所述订阅服务指示的对象;并,侦测所述数据源配置文件的更新事件。
[0142]子步骤8064,当侦测到更新事件时,数据源同步与告警装置生成指示所述更新事件的告警通知,将所述告警通知发送至所述订阅服务指示的对象。
[0143]较佳地,数据源同步与告警装置还建立了与所述订阅服务指示的对象之间的心跳检测机制,以在所述告警通知发送失败时,重新向所述订阅服务指示的对象发送所述告警通知。
[0144]在本实施例中,当数据源同步与告警装置将所述告警通知发送至订阅服务指示的对象之后,还可以执行下述步骤808。
[0145]步骤808,数据源同步与告警装置根据所述更新后的数据源配置文件更新所述JBoss应用服务器下的数据源,以将所述新口令更新至所述数据源中。
[0146]综上所述,本实施例所述数据源同步与告警的方法,在线监控和更新数据库账户的当前口令,当发现当前口令满足更换条件时,及时生成新口令。并,在线将所述新口令同步至数据库下的数据源配置文件中,动态生效JBoss DataSource中的新实例。最后,在侦测到所述数据源配置文件的更新事件时,生成并发送指示所述更新事件的告警通知,从而使EJB服务及时更新JBoss DataSource实例引用,EJB服务获取到有效的Connection对象,正常开展各项业务。
[0147]其次,本申请实施例所述的数据源同步与告警的方法,首先,自动地、在线实时检测口令的使用条件,可以及时发现满足更换条件的口令,降低了检测不及时的风险,同时避免了漏检情况的发生,提高了操作数据库的可靠性。其次,在检测到满足更换条件的口令后,自动按照设定规则生成新口令,并完成新口令的在线更新发布,操作准确度高。最后,及时在线发布告警通知,EJB可以及时根据告警通知重新获取JBoss DataSource新实例,保证了 EJB服务的正常开展,进一步提高了操作数据库的可靠性。[0148]最后,本申请实施例所述的数据源同步与告警的方法采用了“订阅/发布”的消息模式,其他服务或系统只能通过订阅方式才能捕获数据源告警,避免无效告警的广播。
[0149]需要说明的是,对于上述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必需的
[0150]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0151]以上对本申请所提供的一种数据源同步与告警的装置和方法进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
【权利要求】
1.一种数据源同步与告警的装置,其特征在于,所述装置设置于JBoss应用服务器的核心组件模块中,所述装置包括:监控器、管理器和告警器; 其中, 所述监控器,用于对数据库中存储的账户的当前口令进行周期性检测;以及,在确定所述当前口令满足口令更换条件时,按照设定规则生成新口令; 所述管理器,用于获取所述监控器生成的新口令,并将所述新口令更新至所述数据库下的数据源配置文件中,并在所述数据库中发布更新后的数据源配置文件; 所述告警器,用于侦测所述数据源配置文件的更新事件;并,在侦测到更新事件时,生成并发送指示所述更新事件的告警通知。
2.如权利要求1所述的装置,其特征在于,所述告警器包括:注册器和发送器; 所述注册器,用于监听订阅服务的传输控制协议,登记注册所述订阅服务指示的对象;并,侦测所述数据源配置文件的更新事件; 所述发送器,用于在侦测到更新事件时,生成指示所述更新事件的告警通知,将所述告警通知发送至所述订阅服务指示的对象。
3.如权利要求1所述的装置,其特征在于,所述监控器包括:口令监控器和口令管理器; 所述口令监控器,用于将口令检测任务注入至所述JBoss应用服务器下的内置时钟管理器中;并,在所述JBoss应用服务器启动时,通过所述内置时钟管理器对所述当前口令进行周期性检测,判断所述当前口令是否满足口令更换条件; 所述口令管理器,用于在确定所述当前口令满足更换条件时,按照设定的口令复杂度规则生成新口令。
4.如权利要求3所述的装置,其特征在于,所述口令监控器在判断所述当前口令是否满足口令更换条件时: 从所述数据库中获取所述当前口令; 使用当前口令登陆所述当前口令对应的账户,并分析登陆后的告警码信息; 在所述告警码信息指示所述当前口令超过设定的口令使用期限时,确定所述当前口令满足口令更换条件;或,在所述告警码信息指示所述当前口令在设定时间阈值之后将超过所述设定的口令使用期限时,确定所述当前口令满足口令更换条件。
5.如权利要求1所述的装置,其特征在于,所述管理器包括:同步器和发布器; 所述同步器,用于获取所述监控器生成的新口令,将所述新口令写入所述数据库下的数据源配置文件中,并,从所述数据源配置文件中删除被所述新口令替换的当前口令; 所述发布器,用于调用所述JBoss应用服务器中的主发布器,在所述数据库中发布更新后的数据源配置文件。
6.如权利要求2所述的装置,其特征在于, 所述发送器,还用于建立与所述订阅服务指示的对象之间的心跳检测机制,以在所述告警通知发送失败时,重新向所述订阅服务指示的对象发送所述告警通知。
7.如权利要求2所述的装置,其特征在于,所述装置还包括: 口令更新模块,用于在所述告警器将所述告警通知发送至订阅服务指示的对象之后,根据所述更新后的数据源配置文件更新所述JBoss应用服务器下的数据源,以将所述新口令更新至所述数据源中。
8.一种数据源同步与告警的方法,其特征在于,包括: 对数据库中存储的账户的当前口令进行周期性检测;并,在确定所述当前口令满足口令更换条件时,按照设定规则生成新口令; 获取所述新口令并将所述新口令更新至所述数据库下的数据源配置文件中;并,在所述数据库中发布更新后的数据源配置文件; 侦测所述数据源配置文件的更新事件;并,在侦测到更新事件时,生成并发送指示所述更新事件的告警通知。
9.如权利要求8所述的方法,其特征在于,所述侦测所述数据源配置文件的更新事件;并,在侦测到更新事件时,生成并发送指示所述更新事件的告警通知,包括: 监听订阅服务的传输控制协议,登记注册所述订阅服务指示的对象;并,侦测所述数据源配置文件的更新事件; 当侦测到更新事件时,生成指示所述更新事件的告警通知,将所述告警通知发送至所述订阅服务指示的对象。
10.如权利要求8所述的方法,其特征在于,所述对数据库中存储的账户的当前口令进行周期性检测;并,在确定所述当前口令满足口令更换条件时,按照设定规则生成新口令,包括: 将口令检测任务注入至所述JBoss应用服务器下的内置时钟管理器中;并,在所述JBoss应用服务器启动时,通过所述内置时钟管理器对所述当前口令进行周期性检测,判断所述当前口令是否满足口 令更换条件; 当确定所述当前口令满足更换条件时,按照设定的口令复杂度规则生成新口令。
【文档编号】G06F17/30GK103870307SQ201410097666
【公开日】2014年6月18日 申请日期:2014年3月14日 优先权日:2014年3月14日
【发明者】贺治国 申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1