为了测试应用程序的健壮性,故意对正常连接的Pro*C应该程序进行了中断,从而观察它们的表现。
测试的方法为:
1、在编译Pro*C应用的时候加上cpool=no或cpool=yes,测试有连接池和没连接池的不同表现;
2、启动应用程序后等待输入,将流程挂起;
3、在数据库中查询此测试程序的SESSION:
SELECT * FROM v$session WHERE program='TestConnPool.exe';
|
4、生成杀掉Session的代码:
SELECT 'alter system kill session ''' || sid || ',' || serial# || ''';' FROM v$session WHERE program='TestConnPool.exe';
|
5、执行SQL杀掉SESSION:
alter system kill session '23,1308';
…..
|
6、按任意键让应用程序继续执行,查看错误信息。
7、发生错误的时候尝试重新连接。
以下是各种情况下的测试结果:
测试情况
|
调用时的错误码
|
能否重连
|
不使用连接池,使用kill session人为断开连接
|
ORA-00028 your session has been killed
|
能
|
使用连接池,使用kill session人为断开所有连接
|
ORA-03114: 未连接到 ORALCE |
不能。连接池被破坏,只有重启进程。重新连接的时候显示这个错误: ORA-00022 invalid session ID; access denied
|
使用连接池,使用kill session人为断开连接池连接
|
不报错。很奇怪的现象,照理说物理连接都被断开了,结果仍然能够正常执行。
|
|
使用连接池,使用kill session人为断开非连接池连接
|
ORA-03114: 未连接到 ORALCE
|
能。
|
不使用连接池,拔掉网线后恢复网络连接
|
ORA-12571:TNS:packet writer failure
|
能。这个错误是客户端错误,重新连接后创建了新的SESSION,旧的SESSION仍在ORACLE的SESSION列表中。(猜想如果应用程序频繁崩溃和重启,可能导致ORACLE的连接耗尽)
|
使用连接池,拔掉网线后恢复网络连接
|
ORA-12571:TNS:packet writer failure
|
能。ORACLE重新创建了连接池的物理连接,但是没有创建新的逻辑连接。
|
分享到:
相关推荐
本篇文章将详细探讨Linux下使用C/C++和Pro*C连接Oracle数据库的技术细节。 1. **Pro*C介绍**: Pro*C是Oracle客户端工具集的一部分,它将PL/SQL块转换为C/C++函数,使得开发者可以在C或C++程序中直接执行Oracle...
《Pro*C程序设计ORACLE调用接口》是关于在C语言中使用Oracle数据库的一种高效方法。Pro*C,全称为Pre-Compiler for C,是Oracle公司提供的一个预编译器,它允许开发者直接在C程序中嵌入SQL语句,极大地提高了数据库...
《精通Oracle 10g Pro*C/C++编程》是一本专为数据库开发人员设计的教程,作者王海亮和张立民通过这本书深入探讨了如何使用C或C++语言与Oracle 10g数据库进行高效交互。源代码与学习笔记的提供,为读者提供了实践操作...
Oracle 9i是一款由甲骨文公司推出的数据库管理系统,它在2001年发布,是Oracle数据库产品线中的一个重要版本。本讲座和教材主要针对的是Oracle 9i的管理和使用,涵盖了SQL语言以及数据库的日常维护和优化。以下是...
综上所述,Oracle 9I客户端压缩包包含了运行和管理Oracle数据库所需的关键工具,让用户能够在不部署完整数据库服务器的情况下,实现与Oracle服务器的连接和数据操作。对于开发人员、DBA以及需要与Oracle数据库交互的...
Oracle9i Pro*C/C++编程指南源码是一个深入学习Oracle数据库与C/C++结合编程的重要资源,它提供了丰富的示例代码和实践指导,帮助开发者掌握如何利用Pro*C/C++工具进行数据库应用程序开发。Pro*C/C++是Oracle公司...
Oracle 9i是一款由甲骨文公司开发的关系型数据库管理系统,是Oracle数据库产品线中的一个重要版本。本教程“Oracle9i中文版基础培训教程”由赵松涛制作,旨在帮助初学者掌握Oracle 9i的基本操作和概念,对于那些从...
1. **Oracle 9i介绍**:Oracle 9i是Oracle公司推出的一个重要数据库版本,它引入了诸多新特性,如数据仓库优化、实时应用集群、XML支持以及互联网数据库连接(JDBC和ODBC)等,极大地提升了数据库的性能和易用性。...
Oracle 9i Client (Oracle 9i 客户端) 简化版 (不安装Oracle客户端,也可以使用PLSQL Developer 不用安装Oracle客户端也可以使用PLSQL Developer 绿色! 安全! 轻便! 可靠! 1、本软件可作为简单的Oracle9i客户端...
1. Pro*C简介:Pro*C是一种将SQL语句嵌入C程序中的开发工具,它允许开发者在C语言中直接使用SQL语句访问Oracle数据库。它是一种第三代语言嵌入式SQL工具,可以在Oracle数据库管理系统中使用。Pro*C程序可以执行...
Oracle 9i是一款由甲骨文公司(Oracle Corporation)发布的数据库管理系统,它是Oracle数据库产品系列中的一个重要版本。这个“精简版”的Oracle 9i310.rar可能是指针对特定需求或环境优化过的轻量级版本,旨在降低...
Oracle 9i客户端精简版是一款专为数据库测试和数据检查设计的应用,它提供了一个轻量级的解决方案,便于快速安装和使用。这个版本优化了内存占用,节省了磁盘空间,使得用户能够迅速地进行数据库连接、查看表结构...
### Oracle Pro*C 程序开发相关知识点 #### 1. 前言与读者对象 - **前言**:本文档旨在为那些希望通过使用Oracle预编译工具Pro*C/C++来开发高效、稳定的数据库应用程序的开发人员提供指导。Pro*C/C++允许开发者将...
Oracle Pro*C 是一种集成的开发工具,用于在C语言中嵌入SQL语句,以便高效地与Oracle数据库进行交互。这种技术将C语言的强大功能与SQL的数据库操作能力结合在一起,提供了一种灵活且高性能的方式来构建数据库应用...
Oracle 9i精简版客户端是一款专为那些只需要基本Oracle数据库连接和查询功能的用户设计的轻量级软件。这款客户端无需复杂的安装过程,只需解压即可使用,大大简化了Oracle客户端的部署流程,尤其适合在对系统资源...
JAVA通过JDBC连接ORACLE9I 一、概述 本文讲述了如何使用JAVA语言通过JDBC(Java Database Connectivity)连接ORACLE9I数据库。JDBC是一种标准的API,用于与各种类型的数据库进行交互。通过使用JDBC,JAVA程序可以...
Oracle9i客户端精简版。 Oracle9i客户端精简版Oracle9i客户端精简版Oracle9i客户端精简版Oracle9i客户端精简版Oracle9i客户端精简版Oracle9i客户端精简版Oracle9i客户端精简版
5. **验证连接**:成功登录后,可以执行SQL查询来测试连接。 6. **使用其他工具连接**:除了SQL*Plus,还可以使用其他工具如PL/SQL Developer、Toad或SQL Developer进行连接。 请注意,Oracle 9i已经非常老旧,...
Pro*C增删改查Oracle数据库中数据表的代码
2. **SQL嵌入C语言**:详细解释如何在C代码中嵌入SQL语句,包括SELECT、INSERT、UPDATE、DELETE等操作,以及如何处理结果集。 3. **PL/SQL在Pro*C中的应用**:展示如何在C程序中调用存储过程、函数和包,以利用...