分类
Apache Java 笔记

mod_jk奇怪的连接问题

最近进行了一次生产环境的迁移。原来的环境是做了虚拟化,所以迁移时把原来的虚拟机保持状态停用,再复制一份。但就是这么简单的理论上不会有问题的迁移,出现了奇怪问题。具体表现在,系统运行一段时间后tomcat无响应。
生产上的应用系统是使用apache+tomcat集群,所有的请求由apache的mod_jk转发至tomcat的apj13监听端口。系统运行一段时间后,tomcat无响应。tomcat1的apj13端口是8010,tomcat2的监听端口是8011。使用

netstat -nt|grep 8010|wc -l
netstat -nt|grep 8011|wc -l

查看到各有二百多个连接。

分类
Java

Spring整合ehcache

20150505171917
20150505171928

ehcache参数说明

name:cache的名称,必须是唯一的(ehcache会把这个cache放到HashMap里)。如果在CacheManager中直接加入了一个其他名字的cache,系统会把defaultCache的设置给它clone一份。
maxElementsInMemory:cache 中最多可以存放的元素的数量。如果放入cache中的元素超过这个数值,有两种情况:1、若overflowToDisk的属性值为true,会将cache中多出的元素放入磁盘文件中。2、若overflowToDisk的属性值为false,会根据memoryStoreEvictionPolicy的策略替换cache中原有的元素。
eternal :意思是是否永驻内存。如果值是true,cache中的元素将一直保存在内存中,不会因为时间超时而丢失,所以在这个值为true的时候,timeToIdleSeconds和timeToLiveSeconds两个属性的值就不起作用了。

分类
Java 编程

常用开源软件maven坐标

Maven仓库查询
http://search.maven.org
补充:查询maven仓库中已存在软件的版本,可以在仓库url(http://repo1.maven.org/maven2/)后面加上groupid(把groupid中的.换成/)。如spring的groupid是org.springframework,则maven仓库中的版本列表地址是: http://repo1.maven.org/maven2/org/springframework

分类
Java 笔记

端口批量转发工具v1.1

之前因为工作需求,开发了一款端口转发工具,实现原理参见:JAVA实现端口转发功能。这段程序只能针对一个端口转发,要实现多个转发功能就需要运行多个程序,所以便开发了新的增强版端口转发工具。

新版端口批量转发工具的配置文件是参考另一款转发工具 (rinetd) 的格式来实现的,完全可以和rinetd配置文件共用。使用格式如下:

listenIP listenPort destinationIP destinationPort
参数说明:
listenIP:本地监听网卡地址,输入0.0.0.0接受所有连接
listenPort:本地监听端口
destinationIP:转发目标地址
destinationPort:转发目标端口

分类
Java 笔记

JAVA实现端口转发功能

使用vmware workstation发现NAT模式端口转发存在一些问题。

1.在windows系统下虚拟XP,在XP中使用VPN,然后用ccproxy架设代理。虚拟xp使用的是NAT模式连网,使用vmware workstation自带的端口转发工具设置808端口转发(ccproxy代理端口)不能上网。

2.在centos系统下vmware workstation的网络工具中,没有NAT端口转发选项。手动更改配置文件实现端口转发失败。

其实我要的功能很简单,就一个端口转发。在B机器上安装好虚拟机C,用A机器去连接。因为B机器和A机器是不同网段且不相通(但是A能连接B),所以A连接C需要B转发。使用vmware workstation自带转发实现不了,于是自己写了一个端口转发的小程序。是使用JAVA编写的,能运行于全平台。