java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12519)(ERROR_STACK=(ERROR=(CODE=12519)(EMFI=4)))) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java) at oracle.jdbc.driver.OracleConnection.<init>OracleConnection.java) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java)这样的问题,先前我让他检查一下程序,他说已确定程序没什么问题。后来我也和他们一起检测过程序,确实程序是没有问题的。这时我想到了可能是数据库连接数的问题,我先用select * from sys.v_$session 这个sql查看了一下当前的用户连接数。这个结果也基本正常,接下来我想由于他的这个业务比较复杂,可能是oracle默认的连接数不够,所以我们修改了一下oracle的init.ora文件的配置。在此和大家一起分享一下在oracle的安装目录下:%oracle_home%\admin\orcl\pfile\有一个init.ora文件,我们来分析一下这个文件的内容############################################################################### Copyright (c) 1991, 2001 by Oracle Corporation############################################################################## ############################################ MTS###########################################dispatchers="(PROTOCOL=TCP)(SER=MODOSE)", "(PROTOCOL=TCP)(PRE=oracle.aurora.server.GiopServer)", "(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)" ############################################ 其他###########################################compatible=9.0.0db_name=orcl ############################################ 分布式, 复制和快照###########################################db_domain=""remote_login_passwordfile=EXCLUSIVE ############################################ 排序, 散列联接, 位图索引###########################################sort_area_size=524288 ############################################ 文件配置###########################################control_files=("D:\oracle\oradata\orcl\CONTROL01.CTL", "D:\oracle\oradata\orcl\CONTROL02.CTL", "D:\oracle\oradata\orcl\CONTROL03.CTL") ############################################ 池###########################################java_pool_size=33554432large_pool_size=1048576shared_pool_size=33554432 ############################################ 游标和库高速缓存###########################################open_cursors=300 ############################################ 系统管理的撤销和回退段###########################################undo_management=AUTOundo_tablespace=UNDOTBS ############################################ 网络注册###########################################instance_name=orcl ############################################ 诊断和统计###########################################background_dump_dest=D:\oracle\admin\orcl\bdumpcore_dump_dest=D:\oracle\admin\orcl\cdumptimed_statistics=TRUEuser_dump_dest=D:\oracle\admin\orcl\udump ############################################ 进程和会话###########################################processes=150 ############################################ 重做日志和恢复###########################################fast_start_mttr_target=300 ############################################ 高速缓存和 I/O###########################################db_block_size=4096db_cache_size=33554432 在这个文件的processes=150我们把这个值改为260之后就没问题了! 但是要注意的是:用户最大连接数跟你的硬件配置有关,所以要谨慎
当然还有其他两种修改的方式: 第一种方法:
在 Oracle 企业管理器例程-->会话中可以查看当前连接到数据库的详细信息
第二种方法:
SQLPLUS下运行:alter system set processes=250 scope=spfile;
当然还有其他两种修改的方式: 第一种方法:
在 Oracle 企业管理器例程-->会话中可以查看当前连接到数据库的详细信息
第二种方法:
SQLPLUS下运行:alter system set processes=250 scope=spfile;