以前写了一篇介绍Mina简单示例的文章:Mina TCP服务端客户端 示例
在初始化客户端连接的时候,我是在构造方法里面写的:
public MinaTcpClient() { connector = new NioSocketConnector(); connector.setHandler(this); ConnectFuture connFuture = connector.connect(new InetSocketAddress("localhost", MinaTcpServer.PORT)); connFuture.awaitUninterruptibly(); session = connFuture.getSession(); System.out.println("TCP 客户端启动"); }
那客户端会有中断的情况,那就得重连吧,怎么重连,马上想到的就是不断创建MinaTcpClient对象,或者把Mina的对象都重新创建一次。
是的,我就是这么干的,当时确实没注意。后来发现,总是死机,现象是Tomcat没有死,而是该程序宕机了。
我开始认为是其他问题,后来使用JDK自带的jconsole查看(如果默认安装,路径是C:\Program Files\Java\jdk1.6.0_06\bin\jconsole.exe),发现对象一直在无限制增加,而内存和CPU却没有太多的变化,加上每次都是服务端宕机时这边才会出现宕机,我在想应该就是不断重连带来的问题。
我尝试把一些方法内的变量提取到类里面,使用时再进行NEW操作,可是仍然不能解决问题。偶然看到NioSocketConnector这个对象,联想到JDBC连接池,我貌似找到了问题的所在。
于是我把NioSocketConnector实例对象单例化,只是通过NioSocketConnector对象的connect方法不断获取ConnectFuture然后来获得会话,等于整个过程我不会自己去NEW对象。
测试后发现问题解决。
这里就先说一下问题现象和问题是怎么解决的吧,后续我们再继续讨论这个问题。
请您到ITEYE网站看原创,谢谢!
http://cuisuqiang.iteye.com/ !
自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!
相关推荐
在本文中,我们将深入探讨Mina的核心概念,包括连接管理、心跳机制以及断线重连策略。 首先,让我们理解"Mina连接"。在Mina中,连接是指客户端与服务端之间建立的通信链路。它支持多种传输协议,如TCP/IP(Socket)...
当我们遇到"MINA断线重连死锁解决"的问题时,通常涉及到的是网络连接的稳定性和并发处理的复杂性。 MINA框架提供了非阻塞I/O模型,允许处理大量并发连接。然而,在某些情况下,特别是在断线重连的机制中,可能会...
Apache Mina是一个流行的Java框架,专门用于简化和优化网络应用开发,它支持多种协议如TCP/IP、UDP/IP等,并提供了长连接和短连接的支持。在这个实例中,我们将探讨如何使用Mina实现长连接和短连接。 首先,理解长...
在IT行业中,网络通信是至关重要的一个领域,而Apache Mina作为一个高性能、事件驱动的网络应用框架,广泛应用于TCP、UDP等协议的开发。本文将深入探讨Mina框架中的长连接与短连接,并通过提供的Minaclient和...
Android客户端需要处理好网络权限问题,并考虑到移动设备的网络环境可能变化,需要适当地处理网络断开和重连的情况。 4. **MINA的过滤器机制**:MINA的FilterChain允许开发者插入自定义的过滤器,每个过滤器可以...
Socket通信和MINA长连接是网络编程中的两个关键概念,主要应用于服务器与客户端之间的数据交互。在移动应用开发,特别是需要实时推送功能时,这两种技术显得尤为重要。 **Socket通信** Socket,也称为套接字,是...
Mina和Socket是两种常见的网络通信框架和技术,它们在Java编程环境中被广泛使用。本篇文章将深入探讨如何使用Mina与Socket实现通信,并提供客户端和服务端的实现代码概述。 Mina(全称“MINA: Minimalistic ...
**Mina通信框架详解** Apache Mina 是一个高度可扩展且功能丰富的网络应用开发框架,主要用在Java环境中。这个“Mina通信demo”是为了帮助初学者理解和掌握Mina的基本用法而创建的。通过分析这个demo,我们可以深入...
Mina 是一个强大的开源框架,主要用于构建网络应用,如服务器和客户端。在Java环境中,它提供了高效的、事件驱动的网络应用程序框架,支持TCP和UDP协议,适用于开发高性能、高并发的网络服务。在这个"mina 长连接 ...
Apache Mina是一个开源的网络通信应用框架,主要应用于Java平台,它为高性能、高可用性的网络应用程序提供了基础架构。在本文中,我们将深入探讨Mina的高级使用,特别是在文件图片传送、文件发送、XML和JSON报文处理...
- **连接管理**:保持长连接需要考虑网络波动、设备休眠等因素,确保在异常情况下能自动重连。 - **心跳机制**:为了检测连接是否断开,通常需要设置心跳包,定时发送和接收,防止连接因长时间无数据传输而被网络...
1.mina socket客户度工程相关类,添加mina jar包后可独立运行。 2.mina若有空闲连接则使用已有连接,若无则新建mina连接; 3.mina空闲连接超过保活时间25分钟后,自动删除; 4.mina发送指令后,接收指定时长内收到的...
Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这个"apache-mina-2.0.4.rar"压缩包包含的是Apache Mina 2.0.4版本的源代码,是深入理解和定制Mina的...
MINA (Java IO Network Application Framework) 是一个由Apache软件基金会开发的开源网络通信框架,主要应用于构建高性能、高可用性的网络服务器。这个压缩包包含了MINA API文档、自学手册以及开发指南,对于学习和...
如果服务器在一段时间内没有收到心跳包,可能会认为客户端已经断开,从而触发相应的处理逻辑,比如关闭连接或者触发重连机制。 在Mina的配置中,开发者可以通过设置Filter链来实现心跳包的处理。例如,可以创建一个...
MINA(Multipurpose Infrastructure for Network Applications)是一个Java框架,专门设计用于构建高性能、高可用性的网络应用程序,尤其适合TCP和UDP协议的长连接应用。它提供了异步I/O模型,可以处理大量的并发...
本资料包主要关注如何在Android端集成Mina框架,并解决断线重连及多端口问题。 首先,Mina框架是Apache软件基金会的一个项目,它提供了一个事件驱动、异步的I/O模型,使得开发者可以构建高性能、高可用性的网络应用...
Apache Mina是一个开源项目,它提供了一个高度可扩展的网络通信框架,用于简化开发高性能、高可用性的网络服务器和客户端应用程序。"Mina demo mina jar包"指的是使用Apache Mina框架创建的一个演示示例,这个示例...
根据异常类型,可以选择重连、关闭连接或记录错误日志。 5. **客户端连接**:在客户端,同样需要配置`ClientBootstrap`,并通过`connect()`方法建立到服务器的连接。对于长连接,客户端也需要实现心跳机制。 在...
Apache Mina是一个高度可扩展的网络通信框架,它允许开发者创建高性能、高效率的服务端和客户端应用程序。在Java世界中,Mina以其简洁的API和灵活性而受到青睐,尤其适用于处理大量的并发连接,如TCP/IP和UDP协议。...