一种数据库代理方法和装置制造方法

文档序号:6489851阅读:136来源:国知局
一种数据库代理方法和装置制造方法
【专利摘要】本发明公开了一种数据库代理方法和装置,其中数据库代理方法包括:为多个数据库中的每个数据库建立连接池;接收数据库应用端发送的请求;按接收的请求,调取连接池中的数据库连接进行数据库操作;将执行结果返回给数据库应用端;其中,所述调取连接池中的数据库连接进行数据库操作包括:解析请求中的信息获得数据库操作命令;根据数据库操作命令和配置信息确定作为操作对象的数据库,其中所述配置信息包含所述多个数据库的数据库类型;从所确定的数据库所对应的连接池中调取数据库连接,应用该数据库连接将数据库操作命令发送给所确定的数据库,并从该数据库接收执行结果。
【专利说明】一种数据库代理方法和装置
【技术领域】
[0001]本发明涉及数据库【技术领域】,特别涉及一种数据库代理方法和装置。
【背景技术】
[0002]数据库代理是处于底层数据库和用户应用系统之间的,主要用于屏蔽异构数据库的底层细节问题的中间件,是应用服务器与后台的数据库之间进行通讯的桥梁。应用服务器需要对某个数据库执行操作请求,例如SQL请求时,通过数据库中间件搜索匹配的数据库连接,并将SQL请求转发给对应的数据库,通过数据库中间件对数据库进行操作。其主要作用是封装复杂繁琐的数据库应用接口和数据库操作过程,简化应用程序的数据库操作,提高应用程序开发效率。
[0003]但是目前很多数据库代理软件没有做后端数据库读写分离的处理,或者多个数据库使用同一个连接池,对于数据库操作频繁、数据量大的请求,增加了数据库压力,数据库响应时间增加,影响系统性能,因此,亟需一种查询效率高、响应时间短的数据库代理方法和装置。

【发明内容】

[0004]本发明提供一种数据库代理方法和装置,以达到查询效率高、响应时间短的效果。为达到上述目的,本发明采用如下技术方案:
[0005]本发明公开了一种数据库代理方法,包括:
[0006]为多个数据库中的每个数据库建立连接池;
[0007]接收数据库应用端发送的请求;
[0008]按接收的请求,调取连接池中的数据库连接进行数据库操作;
[0009]将执行结果返回给数据库应用端;
[0010]其中,所述调取连接池中的数据库连接进行数据库操作包括:
[0011]解析请求中的信息获得数据库操作命令;
[0012]根据数据库操作命令和配置信息确定作为操作对象的数据库,所述配置信息包含所述多个数据库的数据库类型;
[0013]从所确定的数据库所对应的连接池中调取数据库连接,应用该数据库连接将数据库操作命令发送给所确定的数据库,并从该数据库接收执行结果。
[0014]其中,该方法还包括在接收请求之前建立线程池,线程池中包括至少一个线程;
[0015]所述按接收的请求,调取连接池中的数据库连接进行数据库操作具体包括:调用线程池中一个空闲的线程,所述线程按接收的请求,调取连接池中的数据库连接进行数据库操作;完成数据库操作后,将该线程的状态设置为空闲或删除该线程。
[0016]其中,所述数据库包括用于执行数据库写操作的主数据库和用于执行数据库读操作的从数据库;
[0017]所述根据数据库操作命令和配置信息确定作为操作对象的数据库具体包括:[0018]判断数据库操作命令是否为执行读的操作,若判断为是,则确定数据库类型为从数据库,若判断为否,则确定数据库类型为主数据库;进而根据配置信息包含的数据库类型,确定作为操作对象的数据库。
[0019]其中,当通过数据库连接与数据库通信出现故障时,将所述数据库连接所属的连接池中的数据库连接的状态设置为异常,并定时从该连接池调取一个数据库连接来与数据库重新建立连接,直到正常连接后将所述连接池中的数据库连接的状态设置为正常。
[0020]其中,从该数据库接收执行结果完成后,将所调取的数据库连接的状态设置为空闲或删除该数据库连接。
[0021]所述为多个数据库中的每个数据库建立连接池具体包括:为每个数据库,创建预设数目的数据库连接;
[0022]所述从所确定的数据库所对应的连接池中调取数据库连接具体包括:判断所确定的数据库所对应的连接池中是否有空闲的数据库连接,若判断为是,则直接从连接池中调取空闲的数据库连接,若判断为否,则进一步判断数据库连接的数目是否达到了预设的最大值,若判断为是,则延迟一段预设时间后判断连接池中是否有空闲的数据库连接,若判断为否,则创建新的数据库连接。
[0023]本发明还公开了一种数据库代理的装置,该装置与多个数据库连接,并包括连接配置单元、交互单元和操作单元:
[0024]连接配置单元,用于为多个数据库中的每个数据库建立连接池;
[0025]交互单元,用于接收数据库应用端发送的请求,将执行结果返回给数据库应用端;
[0026]操作单元,用于从交互单元接收请求、按接收的请求,调取连接池中的数据库连接进行数据库操作,包括:
[0027]解析模块,用于解析请求中的信息获得数据库操作命令,并将数据库操作命令发送给选择模块和执行模块;
[0028]选择模块,用于根据数据库操作命令和配置信息确定作为操作对象的数据库,并将确定结果发送给执行模块,所述配置信息包含所述多个数据库的数据库类型;
[0029]执行模块,用于从所确定的数据库所对应的连接池中调取数据库连接,应用该数据库连接将数据库操作命令发送给所确定的数据库,并从该数据库接收执行结果,并将执行结果发送给交互单元。
[0030]其中,数据库代理装置还包括一个线程配置单元,用于在操作单元接收到请求之前建立一个线程池,线程池中包括至少一个线程;在操作单元接收到请求时,调用线程池中的一个空闲的线程供操作单元按接收的请求,调取连接池中的数据库连接进行数据库操作;在操作单元完成数据库操作之后,将该线程的状态设置为空闲或删除该线程。
[0031]其中,所述数据库包括用于执行数据库写操作的主数据库和用于执行数据库读操作的从数据库;
[0032]所述连接配置单元,用于在每一个连接池中,创建预设数目的数据库连接;
[0033]所述选择模块,用于判断数据库操作命令是否为执行读的操作,若判断为是,则确定数据库类型为从数据库,若判断为否,则确定数据库类型为主数据库;进而根据配置信息包含的数据库类型,确定作为操作对象的数据库。[0034]其中,所述执行模块,进一步用于当通过数据库连接与数据库通信出现故障时,将所述数据库连接所属的连接池中的数据库连接的状态设置为异常,并定时从该连接池调取一个数据库连接来与数据库重新建立连接,直到正常连接后将所述连接池中的数据库连接的状态设置为正常。
[0035]其中,所述执行模块,进一步用于判断与所确定的数据库所对应的连接池中是否有空闲的数据库连接,若判断为是,则直接从连接池中调取空闲的数据库连接,若判断为否,则进一步判断数据库连接的数目是否达到了预设的最大值,若判断为是,则延迟一段预设时间后判断连接池中是否有空闲的数据库连接,若判断为否,则发出创建指令给连接配置单元,并得到新创建的数据库连接;
[0036]所述连接配置单元,进一步用于在接收到创建指令时,在与所确定的数据库所对应的连接池中创建新的数据库连接;
[0037]且所述连接配置单元,进一步用于在所述执行模块从数据库接收执行结果后,将执行模块应用的数据库连接的状态置为空闲或删除该数据库连接。
[0038]本发明实施例的有益效果是:通过数据库代理根据数据库操作命令和配置信息选择对应的数据库,从而为数据库操作提供统一的接口 ;通过对每一个数据库建立一个连接池,在进行数据库操作时使用连接池中的数据库连接,使得响应时间更短、查询效率更高。
【专利附图】

【附图说明】
[0039]图1为本发明数据库代理方法的第一较佳实施例的流程图;
[0040]图2为第一较佳实施例的详细的流程图;
[0041]图3为图2之中步骤S320与S330的【具体实施方式】的流程图;
[0042]图4为本发明数据库代理装置的第一较佳实施例的框图;
[0043]图5为本发明数据库代理装置的第二较佳实施例的框图。
【具体实施方式】
[0044]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步的详细描述。
[0045]图1为本发明数据库代理方法的第一较佳实施例的流程图,接收数据库应用端根据应用需要发送的请求,并将执行结果返回给数据库应用端,该方法包括以下的步骤:
[0046]S100、为多个数据库中的每个数据库建立连接池。
[0047]S200、接收数据库应用端发送的请求。
[0048]S300、按接收的请求,调取连接池中的数据库连接进行数据库操作。
[0049]S400、将执行结果返回给数据库应用端。
[0050]图2为第一较佳实施例的详细的流程图。图2与图1相比,详细地说明步骤S300,其中,步骤S300具体包括:
[0051]S310、解析请求中的信息获得数据库操作命令。
[0052]S320、根据数据库操作命令和配置信息确定作为操作对象的数据库,所述配置信息包含所述多个数据库的数据库类型。
[0053]S330、从所确定的数据库所对应的连接池中调取数据库连接,应用该数据库连接将数据库操作命令发送给所确定的数据库,并从该数据库接收执行结果。
[0054]步骤SlOO中,与每个数据库进行连接时,相对应地建立一个连接池,连接池中具有预设数目的数据库连接,当然预设数目可以根据实际工作需要使用配置文件进行调整。
[0055]通过数据库代理根据数据库操作命令和配置信息选择对应的数据库,从而为数据库操作提供统一的接口 ;通过为每一个数据库建立一个连接池,在进行数据库操作时使用连接池中的数据库连接,使得响应时间更短、查询效率更高。
[0056]在一实施例中,步骤S320之中,数据库包括用于执行数据库写操作的主数据库和用于执行数据库读操作的从数据库,因此配置信息中各数据库的数据库类型为主数据库或从数据库。步骤S320之中根据数据库操作命令确定数据库类型,包括判断数据库操作命令是否为执行读的操作,若判断为是,则确定数据库类型为从数据库,若判断为否,表示执行写的操作,则确定数据库类型为主数据库;进而根据配置信息包含的数据库类型,确定作为操作对象的数据库。
[0057]本实施例中,配置信息至少包含数据库类型,也可以包含数据库的名称、IP地址和端口等信息,数据库在连接或断开时,配置信息会被相应地修改,因而能够根据配置信息来判断数据库的类型为主数据库还是从数据库,根据数据库类型确定了使用的数据库之后可以知道所确定的数据库的名称、IP地址和端口等信息,这样就实现了主数据库执行写操作而从数据库执行读操作的读写分离机制。
[0058]数据库接收上述步骤S330之中发送的数据库操作命令之后会执行操作命令,如果是由主数据库执行了写操作,则在主数据库和从数据库之间进行数据库同步操作。主从数据库的同步为数据库的惯常操作,采用现有技术便可实现。
[0059]采用上述方法,实现了读写分离,减少了读写同时在一个数据库中操作带来的错误,提高数据库操作的成功率。
[0060]此外,现实中与数据库的连接可能出现异常情况,如果在步骤S330中,无法将数据库操作命令发送给数据库或者无法从数据库接收执行结果,则判断通过数据库连接与数据库通信出现故障,此时将所述数据库连接所属的连接池中的全部数据库连接的状态设置为异常,并定时从该连接池调取一个数据库连接来与数据库重新建立连接,直到正常连接后将所述连接池中的数据库连接的状态设置为正常。再相应地发送数据库操作命令或接收执行结果,这样的针对数据库连接错误,定时请求连接的机制,能实现纠错。
[0061]采用本实施例中技术方案,当与数据库间连接发生异常时,使用一个数据库连接来与数据库重新建立连接,避免了由于连接池中的多个数据库连接同时与一个数据库重建连接,而带来的网络资源浪费和数据库的操作负担。
[0062]本实施例的具体实现中可以采用以下方式,数据库操作命令是SQL命令,所述数据库应用端发送的请求,是由数据库应用端调用MYSQL数据库操作接口生成的请求;因为数据库代理与数据库应用端的交互采用最普通的开源MYSQL协议,减小了接口调用的复杂性;对于用户鉴权,加密可以采用MYSQL自带的加密算法。
[0063]在一实施例中,步骤S320与S330的【具体实施方式】如下所述。
[0064]图3为图2之中步骤S320与S330的详细的流程图。其中,对于步骤S320和步骤S330,进行进一步详细叙述。
[0065]步骤S320,具体包括:[0066]S320A:判断数据库操作命令是否为执行读的操作,若判断为是,则执行步骤S320B,若判断为否,则执行步骤S320C。
[0067]S320B:确定一个从数据库作为操作对象。
[0068]S320C:确定一个主数据库作为操作对象。
[0069]步骤S330具体包括:
[0070]S330A:判断所确定的数据库所对应的连接池中是否有空闲的数据库连接,若判断为是,则执行步骤S330B,若判断为否,则执行步骤S330C。
[0071]S330B:直接从连接池中调取一个空闲的数据库连接,执行步骤S330F。
[0072]S330C:判断数据库连接的数目是否达到了预设的最大值,若判断为是,则执行步骤S330D,若判断为否,则执行步骤S330E。
[0073]S330D:延迟一段预设时间后返回步骤S330A以重新判断连接池中是否有空闲的数据库连接。
[0074]S330E:创建新的数据库连接,执行步骤S330F。
[0075]S330F:应用该数据库连接将数据库操作命令发送给数据库,并从该数据库接收执行结果。
[0076]当然对于数据库连接,预设的最大值可以根据实际工作需要使用配置文件进行调整;由于数据库和连接池构成一一对应的关系而且根据实际工作需要设置了允许建立的数据库连接的最大值,因此保证了请求的独立性和处理速度,使得响应时间更短;
[0077]步骤S330F之中,从该数据库接收执行结果后,还释放数据库连接,即根据连接池中数据库连接的数目,将该所调取的数据库连接的状态设置为空闲(waiting)以供后续的数据库操作命令使用,或删除该数据库连接以释放系统资源。
[0078]本发明第二较佳实施例提供的一种数据库代理方法,接收数据库应用端根据应用需要发送的请求,并将执行结果返回给数据库应用端,第二较佳实施例与第一较佳实施例的方法大致相同,不同之处在于:
[0079]还包括在接收请求之前建立线程池,线程池中包括至少一个线程;接收请求后,调用线程池中一个空闲的线程用于进行数据库操作,所述线程按接收的请求,调取连接池中的数据库连接进行数据库操作;以及在完成数据库操作后,释放该线程,即将该线程的状态设置为空闲(waiting)或删除该线程。因此可以实现多线程机制,加快处理速度且可以并行地处理多个请求。
[0080]图4为本发明数据库代理装置的第一较佳实施例的框图。该装置与多个数据库连接,并包括:连接配置单元100、交互单元200,和操作单元300。操作单元300包括解析模块310、选择模块320,和执行模块330。
[0081]连接配置单元100,用于为多个数据库中的每个数据库建立连接池(ConnectPool),每个连接池中具有至少一个数据库连接;交互单元200,用于接收数据库应用端发送的请求,以及将执行结果返回给数据库应用端;操作单元300,用于从交互单元200接收请求、按接收的请求,调取连接池中的数据库连接进行数据库操作。
[0082]其中,解析模块310,用于解析请求中的信息获得数据库操作命令,并将数据库操作命令发送给选择模块320和执行模块330。
[0083]选择模块320,用于根据数据库操作命令和配置信息确定作为操作对象的数据库,并将确定结果发送给执行模块330,所述配置信息包含所述多个数据库的数据库类型。
[0084]执行模块330,用于从所确定的数据库所对应的连接池中调取数据库连接,应用该数据库连接将数据库操作命令发送给所确定的数据库,并从数据库接收执行结果,并将执行结果发送给交互单元200。
[0085]通过数据库代理根据数据库操作命令和配置信息选择对应的数据库,从而为数据库操作提供统一的接口 ;通过为每一个数据库建立一个连接池,在进行数据库操作时使用连接池中的数据库连接,使得响应时间更短、查询效率更高。
[0086]其中,数据库包括用于执行数据库写操作的主数据库和用于执行数据库读操作的从数据库;
[0087]连接配置单元100,用于在每一个连接池中,创建预设数目的数据库连接;选择模块320,用于判断数据库操作命令是否为执行读的操作,若判断为是,则确定数据库类型为从数据库,若判断为否,则确定数据库类型为主数据库;进而根据配置信息包含的数据库类型,确定作为操作对象的数据库。
[0088]采用上述方法,实现了读写分离,减少了读写同时在一个数据库中操作带来的错误,提高数据库操作的成功率。
[0089]其中,执行模块330,用于判断与所确定的数据库所对应的连接池中是否有空闲的数据库连接,若判断为是表示存在空闲的数据库连接,则直接从连接池中调取空闲的数据库连接,若判断为否表示不存在空闲的数据库连接,则进一步判断数据库连接的数目是否达到了预设的最大值,若判断为是,则延迟一段预设时间后判断连接池中是否有空闲的数据库连接,若判断为否,则发出创建指令给连接配置单元100,并得到新创建的数据库连接;连接配置单元100,进一步用于在接收到创建指令时,在与所确定的数据库所对应的连接池中创建新的数据库连接;且连接配置单元100,进一步用于在执行模块330从数据库接收执行结果后,将执行模块330调取的数据库连接的状态置为空闲或删除该数据库连接。
[0090]需要说明的是,这里数据库连接的预设的最大值可以通过配置信息来配置,且不同数据库对应的连接池,可以具有不同的预设的最大值,本实施例通过设定最大值,可以避免过度地占用系统资源。连接配置单元100将数据库连接的状态设置为空闲,可以供后续的数据库操作命令使用,删除该数据库连接可以释放系统资源。
[0091]本实施例中,执行模块330,发出创建指令之后,经过一段预设的等待间隔,再次判断连接池中是否有空闲的数据库连接,或者是由连接配置单元100针对创建指令发出响应信号通知执行模块330执行调取数据库连接的操作,类似的方法较多,不以本实施例的公开为限。
[0092]就本实施例更具体地讲,数据库类型通过配置信息来存储。本实施例中,配置信息可以包含数据库的名称、IP地址和端口,以及数据库类型等信息,数据库连接或断开时,配置信息会被相应地修改,因而能够根据配置信息来判断数据库的类型为主数据库还是从数据库,根据数据库类型确定了使用的数据库之后可以知道所确定的数据库的名称、IP地址和端口等信息,这样就实现了主数据库执行写操作而从数据库执行读操作的读写分离机制。数据库连接配置单元100为各个连接池,创建预设数目的数据库连接,预设数目可以通过数据库的配置信息来配置,且不同数据库对应的连接池,可以具有不同数目的数据库连接。[0093]现实中与数据库的连接可能出现异常情况,如果无法将数据库操作命令发送给数据库,或者无法从数据库接收执行结果,则判断与数据库的连接出现故障,故本实施例还具有以下的纠错机制:当通过数据库连接与数据库通信出现故障时,执行模块330,将该数据库连接所属的连接池中的数据库连接的状态设置为异常,并定时从该连接池调取一个数据库连接来与数据库重新建立连接,直到正常连接后将连接池中的数据库连接的状态设置为正常。与数据库连接正常之后再相应地发送数据库操作命令或接收执行结果,这样的针对数据库连接错误,定时请求重新建立连接的机制,能实现纠错。
[0094]采用本实施例中技术方案,当与数据库间连接发生异常时,使用一个数据库连接来与数据库重新建立连接,避免了由于连接池中的多个数据库连接同时与一个数据库重建连接,而带来的网络资源浪费和数据库的操作负担。
[0095]本实施例中,数据库操作命令是SQL命令,所述数据库应用端发送的请求,是由数据库应用端调用MYSQL数据库操作接口生成的请求;因为数据库代理与数据库应用端的交互采用最普通的开源MYSQL协议,减小了接口调用的复杂性;对于用户鉴权,加密可以采用MYSQL自带的加密算法。
[0096]图5为本发明数据库代理装置的第二较佳实施例的框图。该装置与第一较佳实施例的装置大致相同,不同之处在于:
[0097]还包括一个线程配置单元400,用于在操作单元300接收到请求之前建立一个线程池,线程池中具有至少一个线程。本实施例中,是在数据库代理装置启动时建立线程池。
[0098]在操作单元300接收到请求时,线程配置单元400调用线程池中的一个空闲的线程供操作单元按接收的请求进行数据库操作,即按接收的请求调取连接池中的数据库连接进行数据库操作;在操作单元完成数据库操作之后,线程配置单元400释放线程,即将该线程的状态设置为空闲(waiting)或删除该线程。本实施例中,操作单元300接收到请求时向线程配置单元400发送调用线程的请求,线程配置单元400可以是在接收到交互单元200发出的上述请求时分配空闲的线程,当然,也可以由交互单元200,在将请求发送给操作单元300时向线程配置单元400发送调用线程的请求。同样地,线程的调度和管理以及线程池中线程的数目,可以根据操作系统的实际状况而调整,不以本实施例的公开为限。
[0099]上述连接配置单元、操作单元、线程配置单元可以由处理器来实现,交互单元可以由收发器来实现。
[0100]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【权利要求】
1.一种数据库代理方法,其特征在于,该方法包括: 为多个数据库中的每个数据库建立连接池; 接收数据库应用端发送的请求; 按接收的请求,调取连接池中的数据库连接进行数据库操作; 将执行结果返回给数据库应用端; 其中,所述调取连接池中的数据库连接进行数据库操作包括: 解析请求中的信息获得数据库操作命令; 根据数据库操作命令和配置信息确定作为操作对象的数据库,所述配置信息包含所述多个数据库的数据库类型; 从所确定的数据库所对应的连接池中调取数据库连接,应用该数据库连接将数据库操作命令发送给所确定的数据库,并从该数据库接收执行结果。
2.根据权利要求1所述的数据库代理方法,其特征在于, 该方法还包括: 在接收请求之前建立线程池,线程池中包括至少一个线程; 所述按接收的请求,调取连接池中的数据库连接进行数据库操作具体包括: 调用线程池中一个空闲的线程,所述线程按接收的请求,调取连接池中的数据库连接进行数据库操作;` 在完成数据库操作后,将该线程的状态设置为空闲或删除该线程。
3.根据权利要求1所述的数据库代理方法,其特征在于, 所述数据库包括用于执行数据库写操作的主数据库和用于执行数据库读操作的从数据库; 所述根据数据库操作命令和配置信息确定作为操作对象的数据库具体包括: 判断数据库操作命令是否为执行读的操作,若判断为是,则确定数据库类型为从数据库,若判断为否,则确定数据库类型为主数据库;进而根据配置信息包含的数据库类型,确定作为操作对象的数据库。
4.根据权利要求1所述的数据库代理方法,其特征在于, 该方法还包括: 当通过数据库连接与数据库通信出现故障时,将所述数据库连接所属的连接池中的数据库连接的状态设置为异常,并定时从该连接池调取一个数据库连接来与数据库重新建立连接,直到正常连接后将所述连接池中的数据库连接的状态设置为正常。
5.根据权利要求1所述的数据库代理方法,其特征在于, 所述从该数据库接收执行结果完成后,所述方法还包括: 将所调取的数据库连接的状态设置为空闲或删除该数据库连接。
6.根据权利要求1所述的数据库代理方法,其特征在于, 所述为多个数据库中的每个数据库建立连接池具体包括:为每个数据库,创建预设数目的数据库连接; 所述从所确定的数据库所对应的连接池中调取数据库连接具体包括: 判断所确定的数据库所对应的连接池中是否有空闲的数据库连接,若判断为是,则直接从连接池中调取空闲的数据库连接,若判断为否,则进一步判断数据库连接的数目是否达到了预设的最大值,若判断为是,则延迟一段预设时间后判断连接池中是否有空闲的数据库连接,若判断为否,则创建新的数据库连接。
7.一种数据库代理装置,其特征在于,该装置与多个数据库连接,并包括连接配置单元、交互单元和操作单元: 连接配置单元,用于为多个数据库中的每个数据库建立连接池; 交互单元,用于接收数据库应用端发送的请求,将执行结果返回给数据库应用端; 操作单元,用于从交互单元接收请求、按接收的请求,调取连接池中的数据库连接进行数据库操作,包括: 解析模块,用于解析请求中的信息获得数据库操作命令,并将数据库操作命令发送给选择模块和执行模块; 选择模块,用于根据数据库操作命令和配置信息确定作为操作对象的数据库,并将确定结果发送给执行模块,所述配置信息包含所述多个数据库的数据库类型; 执行模块,用于从所确定的数据库所对应的连接池中调取数据库连接,应用该数据库连接将数据库操作命令发送给所确定的数据库,并从该数据库接收执行结果,并将执行结果发送给交互单元。
8.根据权利要求7所述的数据库代理装置,其特征在于, 数据库代理装置还包括一个线程配置单元, 所述线程配置单元用于: 在操作单元接收到请求之前建立一个线程池,线程池中包括至少一个线程;在操作单元接收到请求时,调用线程池中的一个空闲的线程供操作单元按接收的请求,调取连接池中的数据库连接进行数据库操作; 在操作单元完成数据库操作之后,将该线程的状态设置为空闲或删除该线程。
9.根据权利要求7所述的数据库代理装置,其特征在于, 所述数据库包括用于执行数据库写操作的主数据库和用于执行数据库读操作的从数据库; 所述连接配置单元,用于在每一个连接池中,创建预设数目的数据库连接; 所述选择模块,用于判断数据库操作命令是否为执行读的操作,若判断为是,则确定数据库类型为从数据库,若判断为否,则确定数据库类型为主数据库;进而根据配置信息包含的数据库类型,确定作为操作对象的数据库。
10.根据权利要求7所述的数据库代理装置,其特征在于, 所述执行模块,进一步用于当通过数据库连接与数据库通信出现故障时,将所述数据库连接所属的连接池中的数据库连接的状态设置为异常,并定时从该连接池调取一个数据库连接来与数据库重新建立连接,直到正常连接后将所述连接池中的数据库连接的状态设置为正常。
【文档编号】G06F17/30GK103729373SQ201210390622
【公开日】2014年4月16日 申请日期:2012年10月15日 优先权日:2012年10月15日
【发明者】魏智强 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1