问题描述
我正在使用TNS名称连接到Oracle DB。应用程序使用的条目正在使用具有3个DB IP地址(均为虚拟)的故障转移方案。
我试图获取并显示这些数据库IP地址,但是当我使用从Oracle连接对象获得的主机名时,就会获得数据库服务器的物理IP地址。
比方说物理地址22.23.24.25,它具有3个VM:22.23.24.50,.51和.52。
在TNSNAMES.ORA文件中,我有:
ABCD =
(DESCRIPTION =
(ADDRESS_LIST =
(FAILOVER = off)
(LOAD_BALANCE = off)
(ADDRESS = (PROTOCOL = TCP)(HOST =22.23.24.50)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST =22.23.24.51)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST =22.23.24.52)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = abcd)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
)
)
)
我尝试过:
public static string GetDBHost()
{
string sHostName = string.Empty;
OracleDbContext dbContext = new OracleDbContext();
try
{
dbContext.Open();
sHostName = dbContext.DbConnection.HostName;
}
catch (Exception e)
{
}
finally
{
dbContext.Close();
}
return sHostName;
}
// Calling above method:
string sDBHostName = ServerData.GetDBHost();
IPAddress[] ipadd = Dns.GetHostAddresses(sDBHostName); <--- returns 22.23.24.25
是否有一种使用22.23.24.25来获取VM IP的方法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)