第一个问题:最近在测试中发现了一个很奇怪的network adapter could not establish the connection问题,一般这个问题的原因不外如下几个:
1,数据源的connection url配置存在问题,例如使用localhost而不是ip
2,防火墙问题
3,数据源的tns listener没有启动
但是最后发现这些并非都是产生问题的根源,而是以下一段获取DataSource的代码导致了问题的产生:
if (cache.containsKey(dsName)) {
return cache.get(dsName);
} else {
DataSource ds = getDataSourceByJNDI(dsName);
cache.put(dsName, ds);
return ds;
}
代码的初衷是不需要每次都通过JNDI查找获取DataSource对象,去掉这段代码之后解决了network adapter的问题,然而具体为什么缓存DataSource对象会产生这个问题,仍然未知,希望有大神指点一二。
第二个问题:在测试环境中发现,通过DataSource.getConnection()获取连接对象时,偶尔会出现方法执行了15分钟左右,然后抛出Connection timed out的异常,由于使用了jboss-datasource并配置了idle-timeout-minutes的值为30,怀疑这个问题可能与防火墙的超时时间(30分钟),jboss的IdleRemover机制有些关系,将idle-timeout-minutes改为10之后,问题得到解决。但是对问题的发生原因仍然缺乏一个整体的画面,也希望大神帮忙分析以下原因。
分享到:
相关推荐
在Java中,JDBC主要涉及以下几个核心概念: 1. **驱动程序管理器(Driver Manager)**:它是JDBC的核心组件,负责加载数据库驱动程序,并管理与数据库的连接。Java应用程序使用`Class.forName()`方法加载特定数据库...
JDBC 解析JDBC中文API各种数据库之间的链接问题,网络编程
这两个版本都是JDBC(Java Database Connectivity)驱动,允许Java开发者在应用程序中与SQL Server进行交互。下面将详细介绍这两个驱动以及如何使用它们。 1. SQLJDBC驱动: SQLJDBC是微软发布的早期版本的JDBC...
JDBC的重要性主要体现在以下几个方面: 1. **标准化**:JDBC提供了一套标准API,使得Java开发人员能够以相同的方式连接到不同的数据库,这极大地提高了代码的可移植性和灵活性。 2. **广泛的数据库支持**:通过JDBC...
hive-jdbc
JDBC是一个标准Java API,它允许Java程序运行在不同数据库管理系统(DBMS)之间。JDBC规范定义了Java程序如何与数据库交互的规则,其主要目的是让程序员能够使用统一的方法连接并操作数据库。 在本规范文档中,我们...
在示例代码中,`Dept`类代表一个实体,`DeptRepository`类展示了如何使用Spring Data JDBC。`JdbcTemplate`是Spring提供的工具类,用于简化JDBC操作,例如执行SQL和处理结果集。`RowMapper`接口用于将结果集映射到...
JDBC Driver 3.0是Java SE 6引入的一个重要更新,它带来了许多增强功能和性能改进,旨在提升开发者的体验和应用程序的效率。此版本的驱动程序支持最新的SQL标准,并提供了对多种数据库特性的广泛支持,如存储过程、...
Access的JDBC驱动就是为了解决这一问题而出现的,它使得开发者能够通过Java代码直接与Access数据库建立连接,执行SQL语句,进行数据操作。 JDBC是Java平台的标准接口,用于与各种数据库进行通信。它提供了统一的API...
在Spring JDBC中,主要涉及以下几个核心概念: 1. **JdbcTemplate**: 这是Spring JDBC的核心接口,提供了一组用于执行SQL语句的方法,如`update()`, `query()`, `execute()`等。它能处理数据库连接的打开和关闭,...
JDBC主要API介绍包括以下几个核心组件: 1. DriverManager类:该类是JDBC API的管理类,负责管理JDBC驱动程序的加载和建立数据库连接。它使用Driver接口实现,Driver接口由数据库厂商提供,实现了JDBC驱动程序的...
配置 JDBC 数据源涉及以下几个关键步骤: 1. **安装必要的驱动程序**:首先,确保已安装了正确的 JDBC 驱动程序。对于 Oracle 数据库,这通常意味着下载并安装 Oracle 的 JDBC 驱动程序。 2. **配置数据源**:使用...
除了包含sqljdbc4.jar的所有功能外,它还增加了对JDBC 4.1规范的支持,这个规范是Java SE 7的一部分。它引入了新的功能,如结果集的滚动和定位,以及改进的日期和时间类型处理。 3. **sqljdbc42.jar**: 最后,sql...
在“jdbc.zip_java jdbc_java+jdbc_jdbc_jdbc Java_zip”这个压缩包中,我们可以看到两个关键文件:DemoClient.java和Server.java。这表明这是一个简单的Java客户端-服务器架构,其中可能涉及到使用JDBC来实现数据库...
在Java编程语言中,JDBC(Java Database Connectivity)是一个核心的API,用于连接Java应用程序与各种类型的数据库。这里我们关注的是两个特定版本的Microsoft SQL Server的JDBC驱动:sqljdbc41.jar和sqljdbc42.jar...
源码分析主要涉及以下几个核心组件: 1. `Driver`接口:所有JDBC驱动都必须实现这个接口,注册到JDBC DriverManager中,以便于应用程序通过`Class.forName()`加载和使用。 2. `Connection`接口:表示与数据库的...
在"Apache Camel-JDBC"这个主题中,我们可以深入探讨以下几个关键知识点: 1. **Apache Camel 概述**: Apache Camel 提供了一个丰富的组件库,涵盖了各种协议和数据格式,如HTTP、FTP、JMS、MQTT、XML和JSON等。...
此外,文件还提到了在使用JDBC进行数据库操作时可能遇到的常见问题和错误,并且给出了这些问题的可能原因以及解决这些问题的方法。这对于帮助开发者解决实际操作中遇到的问题非常有帮助。根据文档的内容,使用...