`
asticx
  • 浏览: 5916 次
社区版块
存档分类
最新评论

几个奇怪的JDBC问题

阅读更多

第一个问题:最近在测试中发现了一个很奇怪的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之后,问题得到解决。但是对问题的发生原因仍然缺乏一个整体的画面,也希望大神帮忙分析以下原因。

分享到:
评论

相关推荐

    jdbc jdbc jdbc

    在Java中,JDBC主要涉及以下几个核心概念: 1. **驱动程序管理器(Driver Manager)**:它是JDBC的核心组件,负责加载数据库驱动程序,并管理与数据库的连接。Java应用程序使用`Class.forName()`方法加载特定数据库...

    JDBC 解析JDBC中文API

    JDBC 解析JDBC中文API各种数据库之间的链接问题,网络编程

    sqljdbc和sqljdbc4 sqlserver最新驱动

    这两个版本都是JDBC(Java Database Connectivity)驱动,允许Java开发者在应用程序中与SQL Server进行交互。下面将详细介绍这两个驱动以及如何使用它们。 1. SQLJDBC驱动: SQLJDBC是微软发布的早期版本的JDBC...

    全面解析JDBC 全面解析JDBC

    JDBC的重要性主要体现在以下几个方面: 1. **标准化**:JDBC提供了一套标准API,使得Java开发人员能够以相同的方式连接到不同的数据库,这极大地提高了代码的可移植性和灵活性。 2. **广泛的数据库支持**:通过JDBC...

    hive-jdbc hive jdbc驱动

    hive-jdbc

    JDBC 4.3规范文档

    JDBC是一个标准Java API,它允许Java程序运行在不同数据库管理系统(DBMS)之间。JDBC规范定义了Java程序如何与数据库交互的规则,其主要目的是让程序员能够使用统一的方法连接并操作数据库。 在本规范文档中,我们...

    Spring Data JDBC与JDBC的区别

    在示例代码中,`Dept`类代表一个实体,`DeptRepository`类展示了如何使用Spring Data JDBC。`JdbcTemplate`是Spring提供的工具类,用于简化JDBC操作,例如执行SQL和处理结果集。`RowMapper`接口用于将结果集映射到...

    JDBCDriver3.0.rar_jdbc driver 3.0_sql jdbc 3.0_sql server jdbc_s

    JDBC Driver 3.0是Java SE 6引入的一个重要更新,它带来了许多增强功能和性能改进,旨在提升开发者的体验和应用程序的效率。此版本的驱动程序支持最新的SQL标准,并提供了对多种数据库特性的广泛支持,如存储过程、...

    access的jdbc驱动

    Access的JDBC驱动就是为了解决这一问题而出现的,它使得开发者能够通过Java代码直接与Access数据库建立连接,执行SQL语句,进行数据操作。 JDBC是Java平台的标准接口,用于与各种数据库进行通信。它提供了统一的API...

    spring_JDBC整合包

    在Spring JDBC中,主要涉及以下几个核心概念: 1. **JdbcTemplate**: 这是Spring JDBC的核心接口,提供了一组用于执行SQL语句的方法,如`update()`, `query()`, `execute()`等。它能处理数据库连接的打开和关闭,...

    JDBC主要API介绍.pdf

    JDBC主要API介绍包括以下几个核心组件: 1. DriverManager类:该类是JDBC API的管理类,负责管理JDBC驱动程序的加载和建立数据库连接。它使用Driver接口实现,Driver接口由数据库厂商提供,实现了JDBC驱动程序的...

    sap JDBC数据源配置

    配置 JDBC 数据源涉及以下几个关键步骤: 1. **安装必要的驱动程序**:首先,确保已安装了正确的 JDBC 驱动程序。对于 Oracle 数据库,这通常意味着下载并安装 Oracle 的 JDBC 驱动程序。 2. **配置数据源**:使用...

    sqljdbc4.jar, sqljdbc41.jar, sqljdbc42.jar三个包

    除了包含sqljdbc4.jar的所有功能外,它还增加了对JDBC 4.1规范的支持,这个规范是Java SE 7的一部分。它引入了新的功能,如结果集的滚动和定位,以及改进的日期和时间类型处理。 3. **sqljdbc42.jar**: 最后,sql...

    jdbc.zip_java jdbc_java+jdbc_jdbc_jdbc Java_zip

    在“jdbc.zip_java jdbc_java+jdbc_jdbc_jdbc Java_zip”这个压缩包中,我们可以看到两个关键文件:DemoClient.java和Server.java。这表明这是一个简单的Java客户端-服务器架构,其中可能涉及到使用JDBC来实现数据库...

    sqljdbc41、sqljdbc42的官方jar包

    在Java编程语言中,JDBC(Java Database Connectivity)是一个核心的API,用于连接Java应用程序与各种类型的数据库。这里我们关注的是两个特定版本的Microsoft SQL Server的JDBC驱动:sqljdbc41.jar和sqljdbc42.jar...

    jdbc 源码 oracle 自带jdbc

    源码分析主要涉及以下几个核心组件: 1. `Driver`接口:所有JDBC驱动都必须实现这个接口,注册到JDBC DriverManager中,以便于应用程序通过`Class.forName()`加载和使用。 2. `Connection`接口:表示与数据库的...

    ApacheCamel-JDBC

    在"Apache Camel-JDBC"这个主题中,我们可以深入探讨以下几个关键知识点: 1. **Apache Camel 概述**: Apache Camel 提供了一个丰富的组件库,涵盖了各种协议和数据格式,如HTTP、FTP、JMS、MQTT、XML和JSON等。...

    jdbc java file config

    此外,文件还提到了在使用JDBC进行数据库操作时可能遇到的常见问题和错误,并且给出了这些问题的可能原因以及解决这些问题的方法。这对于帮助开发者解决实际操作中遇到的问题非常有帮助。根据文档的内容,使用...

Global site tag (gtag.js) - Google Analytics