一、背景
软件程序调用数据库服务出现如题错误:Cause: java.sql.SQLRecoverableException: 无法从套接字读取更多的数据。
软件版本:Oracle 11g
二、解决
用DBA用户登录数据库,进行如下配置:
--修改数据库配置
alter system set "_optim_peek_user_binds"=FALSE
alter system set optimizer_features_enable='10.2.0.4';
--1. 设置rman从SGA取内存
alter system set dbwr_io_slaves=2 scope=spfile;
alter system set backup_tape_io_slaves=true scope=spfile;
--2. 调整SGA大小
alter system set sga_target=1200m;
--上面面语句如果执行出错,暂不理会,等下面语句全部执行完后,重新启动 oracle service,再次执行这条语句。
alter system set sga_max_size=1200m scope=spfile;
--3. 设置使用内存最大大小
alter system set large_pool_size=80m;
--4. 重启oracle service。
shutdown immediate
startup
--再次执行步骤 2 报错的那句指令
--5. 查看sga,pga,pool的大小。
show parameter pool;
三、总结
重启服务后程序访问JDBC正常,至此“套接字无法获取更多数据”问题解决