`
心动音符
  • 浏览: 336880 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

无法分发客户端连接

 
阅读更多
在团队成员增多时,经常出现“无法分发客户端连接”等问题。在网上搜索一番后,最终解决了该问题,现将解决方案总结如下,以供参考和以后备用。

原因:团队成员增多,原有数据库设置不够用,导致连接plsql和启动tomcat时经常抛出“无法分发客户端连接”的异常。

解决方案:

第一步:调整process和session值

1. 检查process和session是否够用。

a)使用plsql连接到oracle,查看process进程数:

select count(*) from v$process; --取得数据库目前的进程数。

select value from v$parameter where name = 'processes';     --取得进程数的上限。

b)查看session会话数:

select count(*) from v$session; --取得数据库目前的会话数。

select value from v$parameter where name = 'sessions'; --取得会话数的上限。

查看当前process和sessions是否接近上限值。若接近,可以将其增大。

2. 调整这两个参数值大小。

系统进程数process和系统会话数session之间存在一个关系:

process数=session数*1.1+5

我们在配置时参考该规律进行设定。

a)  修改process值

alter system set processes=1000 scope=spfile;   --将process值改为1000

b)  修改session值

alter system set sessions=1105 scope=spfile;    --将sessions值改为1105

3. 备份pfile,重启oracle

a) 修改完成后,备份pfile

create pfile from spfile;           --从spfile(运行时配置)创建pfile(系统配置)

c)  重启oracle

重启的方法有很多种,可以重启oracle服务,或者重启数据库。Windows下可以直接重启服务。

第二步:修改dispatchers个数

如果第一步解决不了问题。可以进行第二步的操作。

查看当前dispatchers个数,和dispatchers使用率
select name,busy,status,accept,idle from v$dispatcher;  --查看当前dispatchers个数和部分信息。一般默认安装的库只有一个。

select name,(busy/(busy+idle))*100 "busy rate%" from v$dispatcher; --查看dispatchers使用率

如果使用率大于50%,则要考虑增加dispatchers个数。

调整dispatchers个数
alter system set dispatchers='(protocol=tcp)(dispatchers=3)(service=youroracleservicenameXDB)';

--修改dispatchers个数为3.

3. 重启oracle。



常见问题处理办法:

在配置时,有时我们会误操作。导致数据无法正常启动。这时可以从之前备份过的pfile来恢复oracle系统设置。
sqlplus /nolog   --连接到数据库

出现连接提示光标

SQL> conn / as sysdba    --以windows用户以sysdba身份登录,便于操作数据库

SQL> create spfile from pfile= 'D:\pfile.ora'    --从D:\pfile.ora(之前备份出来的pfile文件)创建系统配置信息。

将提示创建文件成功。

这时,启动数据库即可

SQL> startup



分享到:
评论

相关推荐

    SAP客户端连接脚本

    "SAP客户端连接脚本"是自动化连接SAP GUI(图形用户界面)的一种工具,它能帮助IT人员快速、高效地设定连接,避免繁琐的手动配置步骤。本文将详细介绍SAP客户端连接脚本的工作原理、应用场景以及如何创建和使用。 ...

    C++基于控制台的集群聊天服务器.zip

    C++基于控制台的集群聊天服务器:配置nginx负载均衡模块分发客户端连接、基于发布-订阅的redis作为服务器消息队列,mysql数据库存储用户数据 C++基于控制台的集群聊天服务器:配置nginx负载均衡模块分发客户端连接、...

    pb不装客户端连接sqlserver,制作绿色安装文件

    标题中的“pb不装客户端连接sqlserver,制作绿色安装文件”指的是使用PowerBuilder(PB)开发的应用程序,无需在目标机器上安装SQL Server客户端组件,就能实现与SQL Server数据库的连接。这种技术对于分发应用程序...

    客户端服务器连接通信

    首先,客户端发送一个SYN(同步序列编号)包给服务器,然后服务器回应一个SYN+ACK(同步+确认)包,最后客户端再回一个ACK(确认)包,完成连接。 3. **套接字(Socket)编程**:在编程中,客户端和服务器通过套接...

    RabbitMQ源码和客户端工具

    消息交换机是RabbitMQ的核心组件,它根据预定义的路由规则将消息分发到不同的队列。通过源码,我们可以看到RabbitMQ如何实现不同类型的交换机(如Direct、Fanout、Topic、Header)及其路由策略。 5. **队列(Queue)...

    服务器端应用程序,监听客户端的连接请求,处理各客户端发送来的数据

    可扩展性可以通过负载均衡和集群技术来实现,当单个服务器无法处理所有请求时,可以将请求分发到多个服务器。安全性方面,服务器需要保护自身免受恶意攻击,例如DDoS攻击,同时也要确保传输数据的安全,比如使用SSL/...

    一段无需安装Oracle客户端即可访问Oracle数据库的delphi控件

    标题中的“一段无需安装Oracle客户端即可访问Oracle数据库的Delphi控件”指的是在Delphi编程环境中,使用特定的第三方控件或组件库,可以实现与Oracle数据库的连接和交互...

    andorid客户端与服务器端连接示意图

    在Android开发中,客户端与服务器端的连接是应用程序与云端数据交互的基础。本文将详细解析Android客户端如何与服务器端建立连接,并重点介绍心跳包机制、发送与接收数据的流程以及线程管理。 首先,Android客户端...

    多客户端和服务端通讯

    描述中提到的“上线提示”,意味着服务端需要记录在线的客户端,并在有新的客户端连接时向所有在线的客户端广播这个信息。这可能涉及到设计一个简单的状态管理机制和消息广播机制。服务端需要维护一个客户端列表,当...

    oracle11g无需客户端连接的DLL

    这里的"oracle11g无需客户端连接的DLL"指的是Oracle提供的Managed Data Access (ODP.NET Managed Driver)组件,特别是文件"Oracle.ManagedDataAccess.dll"。 Oracle.ManagedDataAccess.dll是Oracle Database 11g...

    Oracle 客户端JDBC连接测试工具

    这个工具通常包含在Oracle客户端安装中,或者可以作为一个独立的JAR文件(如`zkOracleClient.jar`)进行分发。`sqlTest.bat`很可能是该工具的启动脚本,用于在Windows环境下运行Java应用程序。 **JDBC基础知识** ...

    C# Socket_服务端向指定的客户端发送消息(包含服务器)

    当有客户端连接时,`serverSocket.Accept()`会阻塞,直到接受到一个连接请求,返回一个新的Socket对象用于与客户端通信。此时,服务器可以使用这个新Socket发送和接收数据。 接下来,我们要了解"客户端"。客户端也...

    WCF客户端多服务器选择Demo

    功能由来:WCF服务器断开,客户端无法连接将导致错误。 解决:对同一个WCF宿主功能布设在多台服务器上,客户端调用方法前会测试连接服务器,当第一台服务器无法连接时会切换到第二台服务器。当所有服务器无法连接...

    基于MQTT协议的C#版客户端源码

    2. **C# MQTT客户端实现**:C#源码可能包括了MQTT客户端类,负责连接到Broker,订阅和发布消息。客户端可能包含连接管理、身份验证、心跳保持等功能。 3. **连接与断开**:源码中应该有建立和断开与MQTT Broker连接...

    使用Netty4实现多线程的消息分发

    在服务器端,通常会创建两个 EventLoopGroup,一个用于接收客户端连接(BossGroup),另一个用于处理连接后的业务逻辑(WorkerGroup)。BossGroup 负责接收新的连接请求,然后将其分配给 WorkerGroup 中的一个事件...

    自己实现的 ActiveMQ 多线程客户端 包含生产消息客户端和消费者消息客户端

    在这个项目中,我们看到的是一个自己实现的 ActiveMQ 客户端,它特别关注多线程的实现,这在处理大量并发消息时非常关键。 1. **ActiveMQ 的基本概念**: - **消息队列**:ActiveMQ 中的核心概念,用于存储待处理...

    kmip客户端简单实现

    `LICENSE.txt`文件通常包含了开源项目或库的许可协议,它定义了用户可以如何使用、修改和分发该软件。在KMIPClient的案例中,阅读这个文件了解KMIP4J库的授权条款是非常重要的,以确保你的使用符合其许可规定。 **...

    p2p的客户端和服务器的小程序

    2. **接受连接**:当收到客户端连接请求时,服务器会建立连接,并分配必要的资源。 3. **处理请求**:服务器解析客户端的请求,然后根据请求内容提供相应的服务。 4. **分发资源**:如果请求是获取资源,服务器会将...

    免费【steam客户端】Steam客户端安装包

    【Steam客户端】是全球最大的数字游戏分发平台,由Valve公司开发,提供数千款游戏的购买、下载、更新及社区交流服务。本资源为2022年的Steam客户端离线安装包,无需付费或积分,只需点赞即可获取。下面将详细介绍...

    WPF-Socket服务端对多个客户端_新

    我们可以创建一个新的Socket实例来处理每个客户端连接,这样就可以同时处理多个客户端。 ```csharp while (true) { var clientSocket = socketServer.Accept(); Task.Run(() => HandleClientConnection...

Global site tag (gtag.js) - Google Analytics