惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
N
News and Events Feed by Topic
PCI Perspectives
PCI Perspectives
Help Net Security
Help Net Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
V2EX - 技术
V2EX - 技术
Google Online Security Blog
Google Online Security Blog
Hacker News: Ask HN
Hacker News: Ask HN
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
P
Palo Alto Networks Blog
The Last Watchdog
The Last Watchdog
C
Cyber Attacks, Cyber Crime and Cyber Security
Security Latest
Security Latest
Application and Cybersecurity Blog
Application and Cybersecurity Blog
W
WeLiveSecurity
Cloudbric
Cloudbric
O
OpenAI News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Webroot Blog
Webroot Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Schneier on Security
罗磊的独立博客
雷峰网
雷峰网
S
Security Affairs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
博客园 - Franky
S
Security @ Cisco Blogs
Project Zero
Project Zero
AI
AI
T
Troy Hunt's Blog
Latest news
Latest news
Simon Willison's Weblog
Simon Willison's Weblog
S
SegmentFault 最新的问题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
The Cloudflare Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Scott Helme
Scott Helme
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
I
Intezer
V
Visual Studio Blog
Cyberwarzone
Cyberwarzone
博客园 - 叶小钗

博客园 - My Data Support

用户中心 - 博客园 ORACLE版本说明 ORACLE KILL回话 MOS文章分类整理 如何在 SQL Server 2005 实例之间传输登录和密码 动态修改MYSQL配置参数 只导出表结构的SQL语句 查询大字段对象脚本 BMC监控的一个坑 RAC环境下创建本地数据文件的解决方法 如何清理监听日志 RMAN基于时间点的恢复 RAC一个节点添加本地监听地址 ORACLE坏块检查 什么时候会刷新备库控制文件refresh the standby database control file? Why AIXTHREAD_SCOPE Should Be Set To 'S' On AIX 在一个RAC集群中最多支持多少节点 Database name和SID Oracle Semaphore Management in UNIX Administration
远程访问数据库查询数据量一大就Hang
My Data Support · 2014-04-10 · via 博客园 - My Data Support

最近刚为客户升级了一套Oracle Database,一切进展顺利,眼看就要顺利验收时,发现有部分客户端软件连接新版本数据库时会Hang,问题非常诡异。

系统环境如下 
升级前的环境
OS:Windows Server 2003 
DB:Windows Database Enterprise Edition 9.2.0.5 
升级后环境
OS:Windows Server 2008 R2 64bit 
DB:Oracle Database Enterprise Edition 11.2.0.4 64bit 
 客户端环境
OS:Windows XP 
DB Client:ODAC 11.2 Release 3 and Oracle Developer Tools for Visual Studio (11.2.0.2.1) 

问题描述 
通过DataPump进行异机升级,升级后的主机和升级前的主机位于同一网段内。升级后发现部分.NET客户端程序访问11.2.0.4版本的数据库时,可以正常登录,
但访问的数量大时就死掉了。升级前所有的.NET客户端应用程序访问9.2.0.5的数据库可以正常工作

The below queries works 
----------------------------------------- 
select * from all_objects where rownum<60;--Response within 296 Millisecond 
select * from all_objects where rownum<70;--Response within 312 Millisecond 
select * from all_objects where rownum<80;--Response within 312 Millisecond 
select * from all_objects where rownum<90;--Response within 312 Millisecond 
select * from all_objects where rownum<100;--Response within 312 Millisecond 
select * from all_objects where rownum<110;--Response within 312 Millisecond 
select * from all_objects where rownum<120;--Response within 312 Millisecond 
select * from all_objects where rownum<130;--Response within 328 Millisecond 
The following queries hang 
----------------------------------------------- 
select * from all_objects where rownum<140;--Hang


而在客户端环境下通过SQL*PLUS访问11.2.0.4数据库,返回大数据量没有问题,在客户端环境下通过.NET程序 
访问原来的9.2.0.5数据库也可以返回大数据量。 问题非常奇怪。
如果是新版本数据库的问题,为什么通过SQL*PLUS可以,为什么不是所有的.NET程序都有问题?
如果是.NET程序问题,为什么不是所有的.NET程序都有问题?
如果是网络/防火墙的问题,为什么连接同网段的9i库是可以的?
问题分析 
问题非常诡异,通过10046服务器端跟踪,也没有什么有价值的信息,因为客户端采用ODAC驱动,无法进行相关客户端跟踪。
MOS要了adplus hang dump也没分析出原因,只知道在read()时Hang主了。

问题很有规律,到达一定量的数据,会直接Hang,看起来像服务器无法传递数据到客户端。Oracle能设置网络传递数据的参数不多。
首先想到了SDU,根据官方文档描述,服务器端和客户端都设置,取最小的那个。因为改动程序较为麻烦,就直接设置了服务器端。
无论设置512还是65535都没有用。

在试试防火墙的问题,找一台中间机器通过Oracle Connection Manager (CMAN)进行中转下,还是不行,吐血!(注:CMAN在类似有防火墙的地方还是很有用的,安装时候
注意要选择监听一起安装,不然无法安装成功,最好SQL*PLU也安装,这样方便测试)。

能试的都试了,还是不能解决访问,MOS也没有什么说法,郁闷!死马当活马医,预备以下测试方案:

1、客户端设置SDU
2、客户端设置OPD.NET FetchSize等相关参数
3、测试防火墙的TimeOut时间

客户端连接字符串中设置SDU=512,测试OK!OPD.NET/防火墙的问题就不用测试了。
进一步测试发现,SDU设置为4096还是OK的,设置5120就会Hang,不管它什么原因了,总算解决了。