在WebLogic Server 6.1 SP1和JDK 3中,使用service_name而不是SID连接Oracle



在处理遗留应用程序时,第一个文件可以追溯到2005年。它用于创建映射到应用程序连接的DataSource的连接池,

URL: jdbc:oracle:thin:@host.test.intranet:1521:service_name
Driver Classname:oracle.jdbc.driver.OracleDriver
Properties(key=value):
user=makeduser
password=maskedpassword
dll=ocijdbc8
protocol=thin
ACLName: null

最近,数据库被重新托管,新的连接详细信息从SID更改为Service_name

当试图使用相同的格式"时;主机";端口:sid";

启动weblogic服务器时返回的错误无法启动连接池";veroPool";weblogic.common.ResourceException:无法>创建池连接。DBMS驱动程序异常为:java.sql.SQLException:Io异常:>连接被拒绝(DESCRIPTION=(TMP=((VSNNUM=318767104((ERR=12505((ERROR_STACK=(ERROR=>(CODE=12500((EMFI=4((

当尝试使用以下格式时:

jdbc:oracle:shin://NEWHOST.TEST。INTRANET:1521/NEW-SERVICE_NAME

返回的错误为:

无法启动连接池"veroPool";weblogic.common.ResourceException:无法创建池连接。DBMS驱动程序异常为:java.sql.SQLException:Io异常:无效的连接字符串格式,有效的格式为:";主机:端口:sid";

此驱动程序版本不支持以这种格式在url中传递的服务名称,因此您必须使用SID。尝试连接到DB并使用以下查询获取SID:

select sys_context('userenv','instance_name') from dual; 

然后,您可以在您的连接url中使用查询返回的SID:

jdbc:oracle:thin:@host.test.intranet:1521:SID

或者,您可以尝试使用以下语法来指定支持此驱动程序版本的服务名称的连接:

jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = <HOST>)(PORT = <PORT>))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = <SERVICE_NAME>)))

相关内容

最新更新