现在的位置: 首页 > 综合 > 正文

java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12519)(ERROR_STACK=(ERROR=(CODE=12519)

2016年11月26日 ⁄ 综合 ⁄ 共 3392字 ⁄ 字号 评论关闭

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

这样的问题,先前我让他检查一下程序,他说已确定程序没什么问题。后来我也和他们一起检测过程序,确实程序是没有问题的。这时我想到了可能是数据库连接数的问题

我先用select *  from   sys.v_$session 

SQL> select count(*) from v$process;

  COUNT(*)
----------
        44

SQL> select count(*) from v$session;

  COUNT(*)
----------
        39

这个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的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:

  sessions=(1.1*process+5)

  但是我们增加process数时,往往数据库不能启动了。这因为我们还漏调了一个unix系统参数:它是/etc/system/ 中semmns,这是unix系统的信号量参数。每个process会占用一个信号量。semmns调整后,需要重新启动unix
操作系统

,参数才能生效。不过它的大小会受制于
硬件

的内存或ORACLE SGA。范围可从200-2000不等。

  semmns的计算公式为:SEMMNS > processes +
instance_processes + system processes = 数据库参数processes的值
instance_processes = 5(smon,pmon,dbwr,lgwr,arch)

  system=系统所占用信号量。

  系统所占用信号量可用下列命令查出:#ipcs -sb

  其中列NSEMS显示系统已占用信号量。

  其它一些跟连接有关的参数,如 licence_max_sessions, licence_sessions_warning 等默认设置都为零,也就是没有限制。

转自:
http://blog.sina.com.cn/s/blog_53d27b3a01008o5r.html

抱歉!评论已关闭.