今天内网linux服务器中部署了一个java的web应用程序,连接已有其他服务器上的oracle数据库报错,telnet 1521端口也是通的,那证明数据库是没问题。
经过oracle官网及网络上的查询情况主要分两种情况:
1)random 生成的随机值不够,大致就是连接oracle数据库时需要从随机熵池中取随机数,而这熵池就是 /dev/random这个文件产生的。而这个文件是阻塞产生熵值的,会导致连接阻塞。
2)未在 /etc/hosts文件中添加 本机主机名和IP的映射,且没有dns域名解析有可能会导致获取连接的时间太久。
于是网上查询,总结下解决过程及思路:
1、检查主机名配置:
查询主机的hostname,在 /etc/hosts
文件中添加ip与主机名的映射关系:
192.168.0.1 hostname
2、检查应用启动时参数:
1)检查JVM环境,$JAVA_HOME/jre/lib/security路径下的java.security文件配置信息:
securerandom.source=file:/dev/./urandom
2)检查tomcat环境,tomcat/bin/catalina.sh中加入这么一行:
-Djava.security.egd=file:/dev/./urandom
然而,1/2配置都是没有问题的,所以解决不了问题!!
3、继续查找原因