查找tnsnames.ora时未设置“names.default_domain = world”

时间:2013-12-19 15:13:17

标签: java oracle

我要求我的java应用程序使用Oracle钱包连接到Oracle数据库(10和11g)以获取数据库凭据。

我的问题是当连接尝试连接到数据库时,我得到:

java.sql.SQLException: could not resolve the connect identifier "mydb".

sqlnet.ora如下所示:

AUTOMATIC_IPC = OFF
TRACE_LEVEL_CLIENT = OFF
names.directory_path = (TNSNAMES)
names.default_domain = world
names.default_zone = world


WALLET_LOCATION =
 (SOURCE =
 (METHOD = FILE)
 (METHOD_DATA =
   (DIRECTORY = <wallet location C:....>)
 )
)

SQLNET.WALLET_OVERRIDE = TRUE
SSL_CLIENT_AUTHENTICATION = FALSESSL_VERSION = 0

我的tnsnames.ora条目如下:

mydb.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP) (Host = <HOST>)
    (Port = <PORT>))
)
(CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = <DB_SERVICES>)
  (INSTANCE_NAME = mydb)
 )
)

我的钱包条目设置如下:

mkstore -wrl C:\oracle\wallet -createCredential mydb username "password"

Java应用程序连接字符串如下:

jdbc:oracle:thin:/@mydb

现在,如果从tnsnames.ora中的条目中删除.world,则连接有效,但根据我的理解,names.default_domain = world应该传递给tnsnames.ora查找,这是正确的吗?如果是这样,为什么不设置? 我可以使用sqlplus / @mydb

连接到dos中的sqlplus

由于

0 个答案:

没有答案