ORA-03128: connection is in blocking mode
Cause: The OCI test for non-blocking mode on a connection indicates that the connection is in blocking mode.
Action: If non-blocking mode is required use appropriate OCI calls to change the mode.
这是一个由 Oracle 数据库引擎引发的错误。它涉及到异常的数据库连接——因为服务器或客户机的原因而阻止网络连接而产生的错误。
ORA-03128消息表明连接处于阻塞状态。这说明连接或客户端收到的响应已延迟。其结果是连接被阻止,因为超出I/O处理期限或其他原因。
常见出现此错误的原因是:
1. 无法与Oracle服务器建立TCP/IP连接,可能因为防火墙等网络设置。
2. 网络连接不可靠或拥塞。
3. 僵死连接。
4. 潜在的数据库实例死锁。
5. 单个客户机阻止其他客户机连接
1. 首先,检查你是否连接到正确的数据库服务器上,同时验证网络设置/防火墙等的正确性,并做必要的修复/修改。
2. 检查客户端设置,然后检查是否允许从外部访问(如果网络中存在防火墙)。
3. 检查有没问题的客户端连接,注释掉连接/关闭此连接(如果存在僵死连接),如果还是失败,则关闭客户机网络NSL为0,然后通过增加NSL的参数重启网络。
4. 检查数据库服务器端设置,存在僵死连接时(使用下面的查询来强制关闭):
* select username,machine, program from v$session where status=’KILLED’;
* ALTER SYSTEM KILL SESSION ‘U,M,P’;
5. 验证全局数据库参数(在“_enable_cq”中禁用CQ),了解服务器端口/用户权限设置/IP地址等是否正确,客户端连接数据库时是否复制数据库名?
6. Restartlistener服务器上,检查服务器上运行的守护程序是否正确。