查看: 780|回复: 1

[分享] GeneXus连接Oracle RAC以及Oracle容器数据库

[复制链接]

8

主题

11

帖子

150

积分

注册会员

Rank: 2

积分
150
QQ
发表于 2019-10-8 11:36:57 | 显示全部楼层 |阅读模式
本帖最后由 scott.chiu 于 2019-10-8 11:40 编辑

我们知道,Java  JDBC连接Oracle是有三种方式的:
格式一:jdbc:oracle:thin:@//<host>:<port>/<service_name>
格式二:jdbc:oracle:thin:@<host>:<port>:<SID>
格式三:jdbc:oracle:thin:@<TNSName>


GeneXus 连接Oracle默认使用的是SID方式连接。
那么,是否可以改用service_name方式连接呢?——目前已知Oracle RAC以及Oracle cloud云容器数据库是需要使用service_name方式连接的。
GeneXus WIKI中有个参考方法:
           https://wiki.genexus.com/commwiki/servlet/wiki?23250,Java%20JDBC%20Connection%20with%20Oracle%20RAC

在项目应用过程中,什么时候用SID连接,什么时候用service_name连接呢?
Oracle RAC架构实施后,GeneXus应用程序的开发与测试不受影响,应用程序在正式环境部署时仅仅需要修改对应的client.cfg中关于Oracle数据库的部分即可。

l  开发过程:
GeneXus开发过程中,仍然使用单数据库方式,原来的数据库连接信息不做调整。

l  测试部署:
GeneXus开发过程中,仍然使用单数据库方式,原来的数据库连接信息不做调整。

l  上线部署:
需要修改相应的连接信息,方法是直接修改tomcat的webapps下对应的client.cfg文件(注意,如果使用了工作流、GAM等等则需要查找出多个client.cfg文件进行修改)。
修改的内容包括:
⑴JDBC连接信息,例如:
JDBC_DRIVER=oracle.jdbc.driver.OracleDriver
DB_URL=jdbc:oracle:thin:@localhost:1521:glsc1
修改为:
JDBC_DRIVER=oracle.jdbc.driver.OracleDriver
DB_URL=jdbc:oracle:thin:@10.10.10.123:1521/glsc
注意使用斜杠/斜杠/表示使用service_name,service_name为“glsc

⑵用户名与密码修改


回复

使用道具 举报

8

主题

11

帖子

150

积分

注册会员

Rank: 2

积分
150
QQ
 楼主| 发表于 2019-10-8 11:50:49 | 显示全部楼层
补充:
在Oracle RAC中,SID表示运行在某一个服务器上的数据库实例,service_name表示整个RAC架构共同提供和共担负载。
如果用户接入时使用SID则表示应用将接入到指定的服务器上;如果如果用户接入时使用service_name则表示应用将接入到RAC由RAC分配负载到服务器。
在Oracle  容器数据库中,service_name用于抽屉数据库,SID是指容器数据库,因此SID指向毫无意义,service_name才是真正要使用的数据库。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|GeneXus中国技术论坛

GMT+8, 2021-1-22 18:02 , Processed in 0.069945 second(s), 22 queries .

 

© 2019 GeneXus中国技术论坛

快速回复 返回顶部 返回列表