用哪种命名方法连接TimesTen? TNS还是DSN

先来看一下下面这张概念图:
用哪种命名方法连接TimesTen? TNS还是DSN_第1张图片

Java程序支持DSN文件连接TimesTen(参见极简Java连接TimesTen程序 ),也支持绕过DSN直接连接目标数据库(参见开发者和DBA-不通过DSN连接TimesTen)。
需要指出, JAVA不支持TNS方式,因为对于TimesTen,TNS的支持是在OCI中实现的,而JAVA并不基于OCI而是基于ODBC。

由于Pro*C基于OCI,因此C的API全都支持TNS和DSN两种方式。
详见极简OCI连接TimesTen程序 和 极简ProC连接TimesTen程序
不过,需要强调,TNS方法最终还是会引用DSN中的服务。

DSN方法可以用easy connect string来指定。反过来说,easy connect string只能用于DSN方法。
环境变量TWO_TASK支持TNS和DSN两种方法。

用哪种方法好,我个人倾向于用TNS方法,反之timesten安装时已经带了oracle instant client,无需单独安装oracle客户端了。并且程序可以和连接Oracle保持一致,也即,程序不用修改即可连接Oracle或TimesTen,这实在是太方便了。

你可能感兴趣的:(TNS,内存数据库,timesten,dsn)