0 0

DBA可能会因为某些操作将一些会话强行通过DB工具将会话kill,而缓存中的连接并不知道这种变化,当10

在实际应用中,比如DBA可能会因为某些操作将一些会话强行通过DB工具将会话kill,而缓存中的连接并不知道这种变化,当客户端获取到该连接时,也不能正常的进行操作,请问可以通过哪种手段来判断该连接是有效的呢?经过测试,Connection接口好象并没有提供哪个方法来完成这个工作,isClosed()并不能处理这个问题。如下代码:

//在这之前,有有数据库操作,conn连接正常

//接下来,我禁用网络连接,然后再启用连接

A:{
pstmt = conn.prepareStatement(sqlDelete);//执行到这时,没报错,可此时连接的TCP/IP SOCKETS 好像已经断开 }

for (int j = 0; j < ls.size(); j++) {
pstmt.setInt(1, Integer.parseInt(s.getSid()));
pstmt.addBatch();
}
B:{
pstmt.executeBatch();
}

//在此处一执行,就报错 ERROR - A communication error has been detected. Communication protocol being used: T4Agent.sendRequest(). Communication API being used: OutputStream.flush(). Location where the error was detected: Connection reset by peer: socket write error. Communication function detecting the error: *. Protocol specific error codes(s) TCP/IP SOCKETS

如何使程序在执行代码块A之前就已经知道连接的socket断开,我在A块之前加上

try {
if(conn==null){
conn=EntityManager.getConnection();
}else{

if(conn.isClosed()==true){
conn=EntityManager.getConnection();
}
}
} catch (Exception e) {
// TODO: handle exception
log.info(e);
}


这段代码不能解决问题.请大家帮忙

问题补充:
我没用连接池,直接用JDBC
DAO 
2008年8月28日 10:24

1个答案 按时间排序 按投票排序

0 0

connection pool通常都会提供校验机制,以DBCP为例子,你可以设置validationQuery参数:
http://commons.apache.org/dbcp/configuration.html

2008年8月28日 10:28

相关推荐

    Oracle经典故障解析 连接数&会话数

    在使用Oracle数据库的过程中,连接数和会话数是影响系统性能的关键因素。下面将详细解析这两个概念,以及它们在Oracle故障排查中的重要性。 1. 连接数和会话数的概念:在Oracle中,连接数指的是同一时间连接到...

    db2 数据库连接客户端

    在实际使用中,你可能需要下载和安装相应的DB2 JDBC驱动(通常为db2jcc.jar和db2jcc_license_cu.jar),并将它们添加到SQuirreL的类路径中,以便能够成功连接到DB2服务器。同时,确保你的系统已安装Java运行环境...

    db2(DBA手册)

    以下是一些DB2 DBA手册中可能涵盖的关键知识点: 1. **数据库设计优化**: - **规范化**:这是数据库设计的基础,通过消除数据冗余和提高数据一致性,如第一范式(1NF)、第二范式(2NF)、第三范式(3NF),以及...

    db db2 dba

    标题中的“db db2 dba”暗示了我们讨论的核心是关于数据库管理,特别是IBM的DB2数据库管理系统,以及与之相关的数据库管理员(DBA)工作。DB2是一款强大的关系型数据库系统,广泛应用于企业级数据存储和处理。DBA则...

    DB2 DBA学习资料

    文件名列表中,看似不包含直接的DB2学习资料,可能是因为提供的列表中包含了播放式PPT的辅助文件(如.gddo97.dll可能是一个图形库文件,.hlp可能是帮助文件),但实际的学习资料可能需要解压后才能查看。因此,为了...

    牛新庄 db2 dba教程

    在实际工作中,DBA 需要不断监控数据库的运行状态,识别并解决性能问题。他们还需要熟悉 DB2 的各种管理工具,如 db2top 和 db2pd,这些工具可以帮助实时查看数据库的状态,进行问题诊断。同时,了解数据库的内部...

    oracle kill session

    **Oracle Kill Session**是指在Oracle数据库中终止某个或某些会话(session)的操作。这项操作通常由DBA(数据库管理员)执行,用于解决因长时间运行的查询、锁定资源等问题导致的应用程序或系统性能下降的情况。通过...

    DB2 认证之DBA 611考试

    从给出的片段内容可以了解到,DBA 611考试中可能包含选择题形式的考核,考试中会给出不同的场景,要求考生根据场景描述选择最合适的处理方式或命令。 以上知识点都是DB2数据库中级管理员应该掌握的核心技能,它们...

    有效关闭Oracle死锁进程,和释放状态为killed的session

    通常情况下,当使用`ALTER SYSTEM KILL`命令杀死一个会话后,该会话将自动释放。然而,在某些复杂场景下,可能需要手动干预,如重新启动数据库实例或使用更高级的DBA权限进行清理。 ### 四、总结与预防策略 处理...

    POLARDB DBA性能优化最佳实践.pptx

    在SQL执行速度突然变慢或同一SQL在不同主机上表现不一致的情况中,性能洞察也能通过选择时间范围和观察不同维度,有效地帮助DBA找到问题并解决。 通过使用性能洞察,内部和外部客户已经看到了显著的优化成果。例如...

    DB2常用的命令

    DB2数据库系统作为IBM公司的一款旗舰级数据库产品,广泛应用于企业级数据库...然而,随着DB2版本的更新和迭代,命令的具体参数和用法可能会有所变化,因此DBA需要持续关注官方文档的更新,以便更新和升级自己的技能。

    BLOG_Oracle_lhr_如何让普通用户可以杀掉自己用户的会话.pdf

    通常情况下,需要结束某个数据库会话,尤其是当会话出现异常时,DBA(数据库管理员)会使用kill session命令来强制终止会话。然而,对于普通用户来说,要让他们拥有足够的权限来杀掉自己的会话,而不会影响到其他...

    OracleDBA数据库操作手册

    此外,备份和恢复策略也是DBA的重要职责,Oracle的RMAN(恢复管理器)工具通常用于执行这些任务,手册会详细讲解如何使用RMAN进行备份、恢复和克隆操作。 性能优化是Oracle DBA工作中的核心环节。手册可能会详细...

    DB2数据库自动导出数据INSERT SQL脚本工具

    例如,你可能需要在数据迁移前进行某些数据清洗或转换操作,或者在生成的脚本中加入事务控制语句(如BEGIN和COMMIT),以确保数据的一致性。 DB2 INSERT 数据 SQL脚本的生成是数据库管理和维护的重要环节,尤其在...

    dba.zip_OLE DB

    综上所述,“dba.zip_OLE DB”压缩包中的内容可能涵盖了如何使用ADO和OLE DB进行数据库应用开发的各个方面,包括连接数据库、执行SQL命令、处理结果集、事务管理以及错误和参数化查询的处理。这些知识对于任何需要...

    DB2题库(包含多门DBA考试)

    1. **数据库安装与配置**:DB2的安装过程涉及操作系统兼容性、环境变量设置、实例创建、数据库配置参数调整等,DBA需要熟悉这些步骤并能解决可能出现的问题。 2. **数据库性能优化**:DB2提供多种工具和方法来监控...

    DB2性能安全文件

    RAPID SQL工具可能因为权限不足或配置不当导致无法成功执行reorg命令。 #### 十六、为什么有些表执行reorg后实际压缩比例仍为0? 这种情况通常是由于表的某些属性没有被正确设置。例如,表可能缺少`NO OVERHEAD`...

    循序渐进DB2.DBA系统管理、运维与应用案例-web(完整书签)

    通过本文档的学习,读者将全面了解DB2.DBA系统管理、运维与应用案例的关键知识点。无论是对于初学者还是有一定经验的技术人员来说,都能够在实际工作中得到有益的指导和帮助。希望本文能够成为您深入探索DB2领域的...

    oracle 查看当前会话执行的sql语句

    在某些情况下,我们需要关注被锁定的对象,因为它们可能会影响到SQL语句的执行。 ```sql -- 查询锁定的对象信息 SELECT SESS.SID, SESS.SERIAL#, LO.ORACLE_USERNAME, LO.OS_USER_NAME, AO.OBJECT_NAME, LO.LOCKED_...

    打开db文件的工具_SQLiteSpy

    8. **跨平台**:尽管提供的压缩包中包含`win32`和`win64`两个目录,意味着该工具主要面向Windows操作系统,但SQLiteSpy也有其他平台的版本,因为SQLite本身是跨平台的。 9. **源码软件**:SQLiteSpy作为一个开源...

Global site tag (gtag.js) - Google Analytics