从上一节的介绍可以看出,每个连接最终可以通过 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调用提供参数及顺序的检查
文章 (RSS)