从上一节的介绍可以看出,每个连接最终可以通过 JDBC/ODBC 和具体的 DataStore进行通讯。而应用在选择连接方式,可以有如下的三种选择:


u       直接连接方式       Direct Driver Connection

u       C/S连接方式        Client/Server Connection

u       驱动管理器方式    Driver Manager Connection


直接连接方式

在上面介绍TimesTen为什么快的时候,我们讲到传统的数据库和应用之间是通过IPC方式通讯的,而TimesTen和传统数据库之间一个不同点正是应用和数据库之间的通讯方式。该方式也是所有三种模式中最快的,所以如果允许的话,建议尽可能地采用该方式。


当应用和TimesTen被部署在同一台机子上时,应用可以采用直接连接方式和TimesTen连接。TimesTen通过ODBC直接驱动,即ODBC的动态连接库以及相关的TimesTen例程实现对DataStore的访问管理;Java应用则基于架构在ODBC之上的JDBC实现。此时,应用以共享模式访问DataStore,即DataStore被预先装载到共享内存段中,应用则映射该共享内存段到自己的运行地址空间上,这种模式使得一个应用的提交可以立即被其它的应用看到。


TimesTen通过Micro-Logging技术保护共享的内存段不被个别应用的失败所破坏。


C/S连接方式

虽然直接连接方式是效率最高的,但在某些情况下,无法使用直接连接方式。比如应用必须和TimesTen部署在不同的机子上,或者 32位的应用程序必须连接64位的DataStore,且32位的应用不能在64位的机子上重新编译,此时就只能选择C/S连接方式。


该方式下,客户端必须安装TimesTen Client模块。服务器端必须安装TimesTen Server模块。如下:

Which product would you like to install? [ 1 ]  

Of the three components:

  [1] Client/Server and Data Manager

  [2] Data Manager Only

  [3] Client Only


当应用提交一个SQL时,应用先发送该请求给本地的ODBC 驱动,然后由本地的ODBC驱动和服务器端所派生的服务子进程通讯,最终由服务子进程将该请求发送给ODBC直接驱动去访问DataStore


驱动管理器方式

应用程序通过ODBC驱动管理器连接到DataStore,该驱动管理器是独立于具体的数据源的,即在应用和数据源之间增加了一个抽象层。这种方式下,应用通过驱动管理器去加载并连接具体数据库的驱动程序,并连接该数据库。驱动管理器方式允许进程同时保持直接连接和客户端连接方式到DataStore


驱动管理器本身在MS Windows中一个动态连接链接库文件(ODBC.DLL)。驱动管理器主要工作如下:


u       使用ODBC INI文件映射数据源到具体的驱动 DLL

u       服务器端ODBC初始化

u       为每个驱动提供ODBC函数的相应调用入口

u       ODBC调用提供参数及顺序的检查

留言