设为首页 收藏本站
查看: 1056|回复: 0

[经验分享] WAS集群系列(2):数据库连接低级错误——网络连接问题

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-10 08:45:22 | 显示全部楼层 |阅读模式
环境

项目点
   

指标

WAS版本
   

7.0

应用服务器操作系统
   

Windows 2008

应用服务器系统位数
   

64bit

数据库服务器操作系统
   

CentOS 5.6

数据库版本
   

Oracle 11.0.2.1



       今天搭建WAS集群后,发布应用程序包及启动均成功,但在测试数据库连接时提示,不成功,建议查看KVM日志。

于是到日志路径下查看相关日志(此处参考为D:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1\SystemOut.log),信息如下:



    [14-9-3 16:34:08:609 CST] 0000001d DataSourceCon E   DSRA8040I: 无法连接到 DataSource。遇到 "":java.sql.SQLException: The Network Adapter could not establish the connectionDSRA0010E: SQL 状态:61000,错误码:20。  
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)  
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)  
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)  
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)  
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)  
        at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:280)  
        at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:207)  
        at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:139)  
        at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:88)  
        at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:70)  
        at com.ibm.ws.rsadapter.DSConfigurationHelper$2.run(DSConfigurationHelper.java:1704)  
        at com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:5263)  
        at com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:5441)  
        at com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255)  
        at com.ibm.ws.rsadapter.DSConfigurationHelper$3.run(DSConfigurationHelper.java:1720)  
        at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)  
        at com.ibm.ws.rsadapter.DSConfigurationHelper.getPooledConnection(DSConfigurationHelper.java:1732)  
        at com.ibm.ws.rsadapter.DSConfigurationHelper.getPooledConnection(DSConfigurationHelper.java:1627)  
        at com.ibm.ws.rsadapter.DSConfigurationHelper.getConnectionFromDSOrPooledDS(DSConfigurationHelper.java:3370)  
        at com.ibm.ws.rsadapter.DSConfigurationHelper.getConnectionFromDSOrPooledDS(DSConfigurationHelper.java:3245)  
        at com.ibm.ws.rsadapter.DSConfigurationHelper.testConnectionForGUI(DSConfigurationHelper.java:4105)  
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)  
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
        at java.lang.reflect.Method.invoke(Method.java:600)  
        at com.ibm.ws.management.DataSourceConfigHelperMBean.testConnectionToDataSource2(DataSourceConfigHelperMBean.java:556)  
        at com.ibm.ws.management.DataSourceConfigHelperMBean.testConnection(DataSourceConfigHelperMBean.java:484)  
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)  
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
        at java.lang.reflect.Method.invoke(Method.java:600)  
        at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:37)  
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)  
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
        at java.lang.reflect.Method.invoke(Method.java:600)  
        at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:244)  
        at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1074)  
        at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:955)  
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)  
        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)  
        at com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:1331)  
        at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)  
        at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:1224)  
        at com.ibm.ws.management.connector.AdminServiceDelegator.invoke(AdminServiceDelegator.java:181)  
        at com.ibm.ws.management.connector.ipc.CallRouter.route(CallRouter.java:242)  
        at com.ibm.ws.management.connector.ipc.IPCConnectorInboundLink.doWork(IPCConnectorInboundLink.java:353)  
        at com.ibm.ws.management.connector.ipc.IPCConnectorInboundLink$IPCConnectorReadCallback.complete(IPCConnectorInboundLink.java:595)  
        at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)  
        at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)  
        at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)  
        at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)  
        at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)  
        at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)  
        at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)  
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1613)  
    Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection  
        at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:359)  
        at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422)  
        at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:672)  
        at oracle.net.ns.NSProtocol.connect(NSProtocol.java:237)  
        at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)  
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)  
        ... 55 more  
    Caused by: java.net.ConnectException: Connection refused: connect  
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:370)  
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:232)  
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:219)  
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)  
        at java.net.Socket.connect(Socket.java:528)  
        at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:141)  
        at oracle.net.nt.ConnOption.connect(ConnOption.java:123)  
        at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:337)  
        ... 60 more  
    。  
    [14-9-2 16:34:27:921 CST] 0000005f NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  
    [14-9-2 16:35:27:921 CST] 00000060 NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  
    [14-9-2 16:36:27:921 CST] 00000061 NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  
    [14-9-2 16:37:27:937 CST] 00000062 NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  
    [14-9-2 16:38:27:937 CST] 00000063 NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  
    [14-9-2 16:39:27:937 CST] 00000064 NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  
    [14-9-2 16:40:27:921 CST] 00000065 NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  
    [14-9-2 16:41:27:953 CST] 00000066 NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  
    [14-9-2 16:42:27:921 CST] 00000067 NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  
    [14-9-2 16:43:27:937 CST] 00000068 NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  
    [14-9-2 16:44:27:937 CST] 00000069 NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  
    [14-9-2 16:45:27:921 CST] 0000006a NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  
    [14-9-2 16:46:27:937 CST] 0000006b NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  
    [14-9-2 16:47:27:921 CST] 0000006c NodeSyncTask  A   ADMS0003I: 配置同步成功完成。  

        虽然这么冗长的日志信息,但问题锁定到第一行,“The Network Adapter could not establish the connectionDSRA0010E”,这个问题按理说是常规问题,但由于进行了一个下午的各种配置设置,脑袋有些晕了。看到这个问题后,整个思路都跑偏了。现在将其记录,引以为戒。



错误的思考:

1、看到“The Network Adapter”,肯定是网络问题,想到是不是WAS集群两台服务器网卡问题,进行对数据库服务器及集群服务器互相ping通测试,ping通状态正常;

2、查看WAS数据源配置信息,开始检查各节点服务,重启各节点服务及HTTP服务等等,有些碰运气的胡乱尝试了,这个结果就是我的思路被自己彻底弄乱了;

3、于是接下来,做了更可笑的事,查看WAS集群下配置信息,怀疑数据源连接问题,对数据源格式由原来的“jdbc:oracle:thin:@10.53.105.64:1521:hyl”改为“jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.53.105.64)(PORT =1521)))(CONNECT_DATA = (SERVICE_NAME =hyl)))”。这里想的是因为网络连接问题,怀疑可能是集群服务器无法完成连接,可能是解析出问题了,于是修改成完整格式。测试数据库连接,依旧不成功。这里问题就出现了,忽略了简单的问题,把问题越想越复杂化了。



更正后的思考:

        其实由上面第一点开始,就有些跑偏了,ping通测试后,应该最先想到的就是去看下数据库监听起来没有。而我完全忽略了这点,原因很简单,因为这台数据库服务器之前连接着单节点的WAS,连接测试没有问题,也就笃定了监听没有问题。就这么小的地方,自己有没有亲自去验证,而引发问题的复杂化。当发现数据库监听没有起来时才意识到,问题出在了这里,原来是当停止单实例WAS时,数据库服务器被重启过,而且该服务器上的监听并没有设置自动启动。说来是如此的简单。于是我启动监听,将之前改动过的测试恢复回刚刚配置完成后的常规设置状态,WAS数据源测试连接,结果两节点测试连接通过。



小结:

1、处理问题时,正确的思路比胡乱的尝试重要,只有方向对了才会“药到病除”,否则可能会“火上浇油”,把自己思路都弄乱了。

2、在技术上,记住了“The Network Adapter couldnot establish…”出现时,切记ping测试后,检查监听状态,确认后再做进一步分析。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-24591-1-1.html 上篇帖子: WAS集群系列(1):卸载 下篇帖子: WAS集群系列(3):集群搭建:步骤1:准备文件 数据库连接 网络连接
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表