mysql群集网络故障_WAS集群系列(2):数据库连接低级错误网络连接问题

本文主要是介绍mysql群集网络故障_WAS集群系列(2):数据库连接低级错误网络连接问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境 项目点 指标 WAS版本 7.0 应用服务器操作系统 Windows 2008 应用服务器系统位数 64bit 数据库服务器操作系统 CentOS 5.6 数据库版本 Oracle 11.0.2.1 今天搭建WAS集群后,发布应用程序包及启动均成功,但在测试数据库连接时提示,不成功,建议查看KVM日

环境

项目点

指标

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.(PhysicalConnection.java:531)

at oracle.jdbc.driver.T4CConnection.(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测试后,检查监听状态,确认后再做进一步分析。

***********************************************声明************************************************

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/huangyanlong)。

表述有错误之处,请您留言或邮件(hyldba@163.com)指明,不胜感激。

*****************************************************************************************************

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

这篇关于mysql群集网络故障_WAS集群系列(2):数据库连接低级错误网络连接问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/708994

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下