昨天部署两台机器,同时连接的数据库是第三台机器,其中一台生产机运行是发生异常:
报错代码:
Failed to get local InetAddress for VMID. This is unlikely to matter. At all. We'll add some extra randomness
java.net.UnknownHostException: p2p-8-41: p2p-8-41
 
源码大概是这段:
public final class C3P0ImplUtils {
try{
      dos.write( InetAddress.getLocalHost().getAddress() );
    }catch (Exception  e)
      {
       if (logger.isLoggable(MLevel.INFO))
             logger.log(MLevel.INFO, "Failed to get local InetAddress for VMID. This is unlikely to matter. At all. We'll add some extra randomness", e);
           dos.write( srand.nextInt() );
}
 
}
....
 
那么:p2p-8-41是怎么得来的呢?
 
[root@p2p-8-41 ~]#     cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=p2p-8-41
 
很明确了吧!
 
解决办法:
搜索谷歌和百度,整合一些资料:
主要是因为系统没有找到主机名p2p-8-41对应的IP,修改Linux的hosts文件即可。具体操作步骤如下:
vi /etc/hosts
在行127.0.0.1  localhost localhost.localdomain 后加上 p2p-8-41保存即可。
Linux查找域名时通常指先查找文件/etc/hosts,找不到时再向DNS服务器请求。
 
127.0.0.1               localhost.localdomain localhost p2p-8-41
 
原因分析:
Linux于host相关的几个文件如下:
/etc/host.conf
功能:指定主机名查找方法,通常指先查找文件/etc/hosts,找不到时再向DNS服务器请求。
对于大多数用户不用改动此文件内容。
Linux: /etc/host.conf文件内容
order hosts, bind
multi on
/etc/resolv.conf
文件功能:DNS客户机配置文件,设置DNS服务器的IP地址及DNS域名
相关文件:/etc/host.conf
文件格式:
domainname 域名
search 域名
nameserver Primary_DNS_Server_IP_address
nameserver Second_DNS_Server_IP_address
其中domainname和search可同时存在,也可只有一个;nameserver可指定多个
/etc/hosts
#/etc/hosts
#文件格式: IPaddress hostname aliases
#文件功能: 提供主机名到IP地址的对应关系,建议将自己经常使用的主机
# 加入此文件中,也可将没有DNS记录的机器加入到此文件中,
# 这样会方便网络应用
127.0.0.1 localhost localhost.localdomain