Hello world!

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!

Posted in Uncategorized | 1 Comment

SVN备份脚本,配合cron,实现每周备份所有库一次,并删除7天前的备份

#!/bin/bash
# Description:
#         This program is subversion data backup script
# History:
#         2010/09/19        FangYun        0.1
#—————————————————————

ReposList=`cat /data/backup_svn/conf/repos.lst`
SVNADMIN=/usr/local/bin/svnadmin
SvnDir=/data/svn_dir
BakDir=/home/backup_244
LogFile=$BakDir/svnbackup.log
DATE=`date +%Y%m%d`

#Create backup direcotry
createDir(){
    if [ -d $BakDir/$DATE ] 
    then
        echo "[$BakDir/$DATE] directory has existed!" >> $LogFile
    else
        mkdir $BakDir/$DATE
    fi
}

#Backup SVN
backupSVN(){
    cd $SvnDir
    echo "Backup repositories start at $(date +"%Y-%m-%d %H:%M:%S")." >> $LogFile
    for repos in $ReposList
    do
        desRepos=$BakDir/$DATE/$repos
        $SVNADMIN hotcopy $repos $desRepos
        echo "Repository $repos has backuped." >> $LogFile
    done
    echo "Backup repositories end at $(date +"%Y-%m-%d %H:%M:%S")." >> $LogFile
}

#Delete old directory
deleteOld(){
    oldDir=$BakDir/$(date +%Y%m%d –date=’7 days ago’)
    if [ -d $oldDir ]
    then
        rm -rf $oldDir >> $LogFile 2>&1
        echo "[$oldDir],Delete Old Directory Success!" >> $LogFile
    else
        echo "[$oldDir],No Old Backup Directory!" >> $LogFile
    fi
}

main(){
    echo "==================================================" >> $LogFile
    createDir
    backupSVN
    deleteOld
    echo "##################################################" >> $LogFile
    echo " " >> $LogFile
}

main

Posted in 计算机.编程 | Leave a comment

Linux中mount一个NFS文件系统目录到指定目录

mount一个NFS文件系统目录到指定目录:

mount -t nfs -o rw  10.130.24.244:/home/backup /home/backup_244

前提条件:

10.130.24.244开启nfs服务

1) 启动NFS的方法和启动其他服务器的方法类似。首先需要启动portmap和nfs这两个服务,并且portmap服务一定要先于nfs服务启动。

/etc/init.d/portmap start

/etc/init.d/nfs start 

2)编辑/etc/exports 

/home/backup      10.130.24.*(rw,async,anonuid=0,anongid=0)

3)运行 exportfs -a

Posted in 计算机与 Internet | Leave a comment

SVN备份脚本,配合cron,实现每天备份所有库一次,并删除3天前的备份。

#!/bin/bash
# Description:
#         This program is subversion data backup script
# History:
#         2010/09/19        FangYun        0.1
#—————————————————————
LogFile=/data/backup_svn/svnbackup.log
DATE=`date +%Y%m%d`
BakDir=/data/backup_svn
ReposLst=/data/backup_svn/conf/repos.lst
SvnDir=/data/svn_dir
SVNADMIN=/usr/local/bin/svnadmin
MAILADDR=fangyun@channelsoft.com

echo "svn backup start at $(date +"%Y-%m-%d %H:%M:%S")." >> $LogFile
echo "————————————————" >> $LogFile

if [ ! -d $BakDir/$DATE ]
then
   mkdir $BakDir/$DATE
fi

cd $BakDir
REPOS_LIST=`cat $ReposLst`
for repos in $REPOS_LIST
do
    reposData=$SvnDir/$repos
    destDir=$BakDir/$DATE/$repos
if [ -d $destDir ]
then
    echo "Backup directory have exist!" >>$LogFile
else
    $SVNADMIN hotcopy $reposData $destDir
    echo "Backup $repos done.">>$LogFile
fi
done

oldDir="$BakDir/"$(date +%Y%m%d –date=’3 days ago’)
if [ -d $oldDir ]
then
    rm -rf $oldDir >> $LogFile 2>&1
    echo "[$oldDir],Delete Old Directory Success!" >> $LogFile
else
    echo "[$oldDir],No Old Backup Directory!" >> $LogFile
fi

echo "————————————————" >> $LogFile
echo "svn backup end at $(date +"%Y-%m-%d %H:%M:%S")." >> $LogFile
echo " " >> $LogFile

#mail $MAILADDR -s svn-back_log < $LogFile

Posted in 计算机.编程 | Leave a comment

Apache2+Resin3集群实现负载均衡

Apache2(前端)+ Resin(后端集群)可以很好的实现负载均衡。Apache用来服务静态页面,Resin用来服务动态页面。

实验环境

10.130.41.233: 前端服务器,Apache2
10.130.41.233: 后端服务器b,resin-3.0.25
10.130.41.232: 后端服务器a,resin-3.0.25

编译mod_caucho.so

  • 在10.130.41.233机器下载resin-3.0.25.tar.gz,解压:tar -zxf resin-3.0.25.tar.gz
  • 进入resin-3.0.25目录:cd /home/portal/resin-3.0.25
  • 编译mod_caucho.so:
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
make install
注意:apache2以root安装的,所以make install时需要root权限
  • 编译完后,会在/usr/local/apache2/modules/目录下生成mod_caucho.so文件。并且自动更新apache2的配置文件httpd.conf,添加下面的内容
LoadModule caucho_module /usr/local/apache2/modules/mod_caucho.so
ResinConfigServer localhost 6802
CauchoConfigCacheDirectory /tmp
CauchoStatus yes

配置后端resin

需要修改2台后端resin服务器的配置文件resin.conf,如果有多个resin,均按此方式配置

找到配置文件中的 <!— The local cluster, used for load balancing and distributed backup.–>,修改负载均衡配置,需要设置服务器的ID、IP和port,例如:

10.130.41.233的设置如下:

<cluster>
<srun server-id="b" host="10.130.41.233" port="6802"/>
</cluster>

10.130.41.232的设置如下:

<cluster>
<srun server-id="a" host="10.130.41.232" port="6802"/>
</cluster>

配置前端的Apache

修改httpd.conf内容,增加ResinConfigServer。如下:

LoadModule caucho_module /usr/local/apache2/modules/mod_caucho.so
ResinConfigServer 10.130.41.232 6802
ResinConfigServer 10.130.41.233 6802
CauchoConfigCacheDirectory /tmp
CauchoStatus yes

ResinConfigServer配置的是调用resin负载均衡器的IP地址和端口号,前端服务器apache,分别调用了10.130.41.233和10.130.41.232两个Resin后端服务器

测试

5.1 编写测试页面
为了检查负载均衡是否生效,需要编写测试页面test.jsp,通过在web页面和各Resin的日志中显示的内容进行辨别,下面10.130.41.232的其中一个Resin为例说明:

<%System.out.println("server 10.130.41.232");%> //在Resin日志中显示

server 10.130.41.232 //在web页面显示

其他Resin的test.jsp参照上例,只需要将其中的内容替换掉,例如10.130.41.233的test.jsp文件可以写成

<%System.out.println("server 10.130.41.233");%> //在Resin日志中显示

server 10.130.41.233 //在web页面显示

5.2 发布项目

分别将来两个test.jsp文件放到10.130.41.232和10.130.41.233设置的resin的webapps/ROOT目录下

5.3 启动服务

#启动Apache2

#/usr/local/apache2/bin/apachectl -k start

#分别启动调用的resin

启动10.130.41.232的resin中id为"a"的服务,需要在10.130.41.232服务器执行如下命令

$ /home/portal/resin-3.0.25/bin/httpd.sh -server a start

启动10.130.41.233的resin中id为"b"的服务,需要在10.130.41.233服务器执行如下命令

$ /home/portal/resin-3.0.25/bin/httpd.sh -server b start

5.4 验证test.jsp

使用IE多次访问web发布页面,通过页面显示的内容和resin日志打印的内容,检查是否随机调用各后端服务器1&2的resin的test.jsp文件。

Web页面的访问地址如下

http://10.130.41.233/test.jsp

多次访问http://10.130.41.233/test.jsp。如果每次会随机显示其中一个resin的a.jsp文件的内容,之后关闭其中个几个resin(不是全部关闭),http://10.130.41.233/test.jsp 仍能正常访问,至此就完成了负载均衡的测试,证明配置成功。

参考

1. Resin with Apache

Posted in 计算机与 Internet | Leave a comment

LVS+keepalived 实现负载均衡

负载均衡技术主要目的

使用负载均衡技术主要的目的包括如下几点:
◆ 系统高可用性。◆ 系统可扩展性。◆ 负载均衡能力。


完整的负载均衡项目

一个完整的负载均衡项目,一般由虚拟服务器、故障隔离及失败切换3 个功能框架所组成。

  • 虚拟服务器是负载均衡体系的基本架构,它分两层结构:转发器(Director)和真实服务器。

为什么称虚拟服务器?因为从用户的角度看来,似乎只是一个服务器在提供服务。虚拟服务器最主要的功能是提供包转发和负载均衡,这个功能可以通过撰写ipvsadm 脚本具体实现。虚拟服务器项目由章文嵩博士所贡献,目前已被添加到各种linux 发行版的内核。

  • 故障隔离,指虚拟服务器中的某个真实服务器(或某几个真实服务器)失效或发生故障,系统将自动把失效的服务器从转发队列中清理出去,从而保证用户访问的正确性;另一方面,当实效的服务器被修复以后,系统再自动地把它加入转发队列。
  • 失败切换,这是针对负载均衡器Director 采取的措施,在有两个负载均衡器Director 的应用场景,当主负载均衡器(MASTER)失效或出现故障,备份负载均衡器(BACKUP)将自动接管主负载均衡器的工作;一旦主负载均衡器故障修复,两者将恢复到最初的角色。


LVS+keepalived 介绍

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。

keepalived 是运行在lvs 之上,它的主要功能是实现真实机的故障隔离及负载均衡器间的失败切换FailOver.lvs 结合keepalived,就实现了3 层、4 层、5/7 层交换的功能,下面摘录来自官方网站www.keepalived.org 的一段描述:

The main goal of the keepalived project is to add a strong & robust keepalive facility to the Linux Virtual Server project.
This project is written in C with multilayer TCP/IP stack checks. Keepalived implements a framework based on three family checks :
Layer3, Layer4 & Layer5/7. 

This framework gives the daemon the ability of checking a LVS server pool states. When one of the server
of the LVS server pool is down, keepalived informs the linux kernel via a setsockopt call to remove this server entrie from the
LVS topology. In addition keepalived implements an independent VRRPv2 stack to handle director failover. So in short keepalived
is a userspace daemon for LVS cluster nodes healthchecks and LVS directors failover.

从这段描述中,我们可以得到几个有用的信息:

  • keepalived 是lvs 的扩展项目,因此它们之间具备良好的兼容性。这点应该是keepalived部署比其他类似工具能更简洁的原因吧!
  • 通过对服务器池对象的健康检查,实现对失效机器/服务的故障隔离。
  • 负载均衡器之间的失败切换failover,是通过VRRPv2(Virtual Router Redundancy Protocol)stack 实现的。

网站负载均衡拓朴图

virtual_server

IP信息列表

名称
IP

LVS-DR-Master
10.130.41.233

LVS-DR-Backup
10.130.41.232

LVS-DR-VIP
10.130.41.231

Realserver-1
10.130.41.253

Realserver-2
10.130.41.239

真实服务器上的操作

编写lvs 客户端配置脚本

编写lvs 客户端配置脚本,保存后给予执行权限(每个服务器都是一样的操作)。其完整的内容如下:

  1. more /usr/local/bin/lvs_real
#!/bin/bash
#description : start realserver
VIP=10.130.41.231
/etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS of RealServer"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
stop)
/sbin/ifconfig lo:0 down
echo "close LVS RealServer"
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac

这里对配置文件里重要的一些项进行说明:

  • vip(virtual ip)。直接路由模式的vip 必须跟服务器对外提供服务的ip 地址在同一个网段,并且lvs 负载均衡器和其他所有提供相同功能的服务器都使用这个vip.
  • vip 被绑定在环回接口lo0:0 上,其广播地址是其本身,子网掩码是255.255.255.255。这与标准的网络地址设置有很大的不同。采用这种可变长掩码方式把网段划分成只含一个主机地址的目的是避免ip 地址冲突。
  • echo “1”,echo “2” 这段的作用是抑制arp 广播。如果不做arp 抑制,将会有众多的机器向其他宣称:“嗨!我是奥巴马,我在这里呢!”,这样就乱套了。

lvs 客户端验证

lvs 客户端不必依赖负载均衡器就可以独立运行,只不过这种运行对负载均衡没有任何作用,当然也没有任何副作用,所以我们把lvs 客户端配置完成后(配置文件就是一个shell 脚本),可以单独运行它,来检验配置是否正确。

配置脚本写好保存,给予脚本执行权限。脚本启停以start 和stop 这两个参数来控制。首先,我们来启动配置脚本,执行命令 /usr/local/bin/lvs_real start ,接着我们来检查网络的状态:

#ip a
输出如下:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
   inet 10.130.41.231/32 brd 10.130.41.231 scope global lo:0
   inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
   link/ether 00:1d:60:98:e9:ea brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 100
   link/ether 00:1d:60:98:e9:eb brd ff:ff:ff:ff:ff:ff
   inet 10.130.41.239/24 brd 10.130.41.255 scope global eth1
   inet6 fe80::21d:60ff:fe98:e9eb/64 scope link
      valid_lft forever preferred_lft forever
4: sit0: <NOARP> mtu 1480 qdisc noop
   link/sit 0.0.0.0 brd 0.0.0.0

从输出可以看出, lo0:0 确实绑定了我们指定的vip 地址。那么当我们执行/usr/local/bin/lvs_real 时,vip 应当从lo0:0 接口卸载。

LVS的核心IPVS

IPVS(IP Virtual Server)是整个负载均衡的基础,如果没有这个基础,故障隔离与失败切换就毫无意义了。IPVS 具体实现是由ipvsadm 这个程序来完成。

CentOS上安装ipvsadm

#mkdir ~/download
#mkdir ~/tools
#cd ~/download
#wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
#tar -xvzf ipvsadm-1.24.tar.gz -C ../tools
#cd ~/tools/ipvsadm-1.24
#ln -s /usr/src/kernels/`uname -r`-`uname -m`/ /usr/src/linux
#make
#make install

可执行文件被安装到/sbin/ipvsadm

检验ipvsadm 是否被正确安装

执行ipvsadm,并检查当前加载的内核模块,看是否存在ip_vs 模块

#ipvsadm
#lsmod|grep ip_vs

注1、只有执行ipvsadm 以后,才会在内核加载ip_vs 模块。

注2、不能以查进程的方式判断ipvs 是否运行。

故障隔离、失败切换框架keepalived

keepalived在这里主要作用是Realserver的健康状态检查以及负载均衡Master机和Backup主机之间失败切换的实现。

安装keepalived

#cd ~/download
#wget http://www.keepalived.org/software/keepalived-1.1.20.tar.gz
#tar -xvzf keepalived-1.1.20.tar.gz -C ../tools
#cd ~/tools/keepalived-1.1.20
#ln -s /usr/src/kernels/`uname -r`-`uname -m`/ /usr/src/linux
#./configure --prefix=/usr --sysconf=/etc
#make
#make install

配置在主负载均衡服务器上配置keepalived.conf

! Configuration File for keepalived

global_defs {
  router_id LVS_CCOD_1
}
vrrp_sync_group VGM {
  group {
    VI_1
  }
}
vrrp_instance VI_1 {
  state MASTER
  interface eth0
  virtual_router_id 51
  priority 100
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass 1111
  }
  virtual_ipaddress {
    10.130.41.231
  }
}

virtual_server 10.130.41.231 80 {
  delay_loop 6
  lb_algo wlc
  lb_kind DR
  nat_mask 255.255.255.0
  persistence_timeout 50
  protocol TCP
  real_server 10.130.41.253 80 {
    weight 1
    TCP_CHECK {
      nb_get_retry 3
      delay_before_retry 3
      connect_port 80
      connect_timeout 10
    }
  }
  real_server 10.130.41.239 80 {
    weight 1
    TCP_CHECK {
      nb_get_retry 3
      delay_before_retry 3
      connect_port 80
      connect_timeout 10
    }
  }
}

注意:

  • 实例状态state.只有MASTER 和BACKUP 两种状态,并且需要大写这些单词。其中MASTER 为工作状态,BACKUP 为备用状态。当MASTER 所在的服务器失效时,BACKUP 所在的系统会自动把它的状态有BACKUP 变换成MASTER;当失效的MASTER 所在的系统恢复时,BACKUP 从MASTER 恢复到BACKUP 状态。
  • 虚拟路由标识virtual_router_id.这个标识是一个数字,并且同一个vrrp 实例使用唯一的标识。即同一个vrrp_stance,MASTER 和BACKUP 的virtual_router_id 是一致的,同时在整个vrrp 内是唯一的。
  • 优先级priority.这是一个数字,数值愈大,优先级越高。在同一个vrrp_instance里,MASTER 的优先级高于BACKUP。若MASTER 的priority 值为150,那么BACKUP的priority 只能是140 或更小的数值。
  • 同步通知间隔 advert_int .MASTER 与BACKUP 负载均衡器之间同步检查的时间间隔,单位为秒。
  • delay_loop。健康检查时间间隔,单位是秒。
  • lb_algo. 负载均衡调度算法,互联网应用常使用wlc 或rr。
  • lb_kind. 负载均衡转发规则。一般包括DR,NAT,TUN3 种,在我的方案中,都使用DR 的方式。
  • persistence_timeout.会话保持时间,单位是秒。
  • 权重weight.权重值是一个数字,数值越大,权重越高。使用不同的权重值的目的在于为不同性能的机器分配不同的负载,性能较好的机器,负载分担大些;反之,性能差的机器,则分担较少的负载,这样就可以合理的利用不同性能的机器资源。

配置在备份负载均衡服务器上配置keepalived.conf

在这样只有一个vrrp_instance 的环境里,主负载均衡器(MASTER)与备份负载均衡器(BACKUP)配置文件的差异一共只有3 处: 全局定义的route_id、vrrp_instance state 已经vrrp_instance 的优先级priority。

启动keepalived 服务

  1. /etc/init.d/keepalived start 启动keepalived 服务,keepalived就能利用keepalived.conf 配置文件,实现负载均衡和高可用.

查看lvs服务是否正常

1. #ipvsadm –ln

输出如下:

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
 -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.130.41.231:80 wlc persistent 50
 -> 10.130.41.239:80             Route   1      0          0
 -> 10.130.41.253:80             Route   1      0          0

2. #tail –f /var/log/message 监听日志,查看状态。

转发功能测试

  • 在本地计算机的浏览器地址栏输入 http://10.130.41.231 ,看网站默认页是否能正常访问
  • 如果想知道当前测试机的访问请求被转发到那个服务器去了,可以在ipvsadm 命令后带一个选项,其完整形式为:ipvsadm –lcn

故障隔离(健康检查)功能测试

  • 关闭真实服务器10.130.41.239 的httpd 服务
  • tail -f /var/log/message 系统日志也会有被删除的消息打印出来
  • 执行ipvsadm -ln 输出此时没有239的机器了。

失败切换(FailOver)测试

  • 关闭主负载均衡器(MASTER)的keepalived 进程,然后从客户端访问vip 地址。方法是在本地计算机的浏览器地址栏输入 http://10.130.41.231 ,看网站默认页是否能正常访问
  • 正常情况下,当主负载均衡器(MASTER)实效时,备份负载均衡器(BACKUP)能立即接替转发任务(接替时间由keepalived.conf 文件的advert_int 指定)。在确认主负载均衡器(MASTER)的keepalived 进程关闭后,我们来看看备份负载均衡器的运行情况。这里我们观察两个地方:ipvsadm 的输出及系统日志的输出。

参考

Posted in 计算机与 Internet | Leave a comment

Java SE6技术变更明细表

Java SE6技术变更明细表
jsr 较大功能或功能集,拥有自己的JSR(Java Specification Request)
api 添加了新的API的较小功能
imp 不涉及到新API的增强实现。比如:性能提升
范围 领域/组件 摘要 参考
api client/2d ImageIO: GIF writer 4339415
imp client/2d Native Text Rendering Parity 4726365
imp client/2d Improved hardware acceleration on Windows 5104393
imp client/2d Single-threaded rendering for OpenGL pipelines 6219284
api client/awt Pop-up splash screen at beginning of Java startup(在Java启动时弹出图片) 4247839
api client/awt Java applications can access desktop applications(Java应用能够访问桌面应用。比如说浏览器,邮件收发器,编辑器等等) 6255196
api client/awt Improved modal dialogs 4080029
imp client/awt XAWT is the default Toolkit on Solaris 5049146
api client/awt Windows system-tray support(Windows系统托盘支持) 4310333
imp client/awt Better support for input in non-English locales 4360364
imp client/awt Live resizing 6199167
imp client/deploy Improved application deployment across browsers 6329487
api client/deploy Allow JAR files to be shared across installed JREs(容许JAR文件跨JRE共享) 6271065
imp client/deploy Improved user experience in JRE/JDK installer 5079209
imp client/deploy Improved security 6222485
imp client/deploy Direct execution of JAR files on Linux 6211008
imp client/deploy Improved desktop integration in Java Web Start 4625362
imp client/deploy Improved IFTW installer 6198632
imp client/deploy Improved startup & footprint for plugin/webstart 6329480
imp client/deploy Mozilla Firefox browser support 6216340
imp client/deploy Default Java on Linux 6211006
imp client/deploy Improved user experience in Java Plug-in and Java Web Start 6205064
imp client/deploy Unified download engine 4802551
imp client/deploy Support Mozilla and Firefox family browsers. 6216340
api client/dnd A way to avoid hangs on retrieval of clipboard data 4818143
imp client/i18n Support for important locales 4324505
imp client/i18n Japanese calendar 4609228
api client/i18n Resource bundle enhancements 5102289
api client/i18n Normalizer API 4221795
api client/i18n Pluggable locales: Pluggability for break iterators 4052440
api client/i18n Pluggable locales: Pluggability for locale names, formatters, and collators 4052440
imp client/l10n Chinese localization for JDK tools(JDK工具的中文本地化) 6209342
imp client/swing GTK Native L&F Fidelity 6185456
imp client/swing Through-the-stack: Reduced footprint / startup time 6329480
imp client/swing Native look & feel fidelity
imp client/swing Avalon Look-and-Feel 6329475
api client/swing JTable sorting, filtering, and highlighting 4747079
api client/swing JTabbedPane: Tabs as Components 4499556
imp client/swing Windows native L&F fidelity 5106661
api client/swing SwingWorker 4681682
api client/swing Improve Drag & Drop features for Swing Components 4468566
api client/swing Extend SpringLayout 4726194
api client/swing Text Document Printing 4791649
imp client/swing Improved Painting Performance (fix grey boxes) 4967886
jsr core/core JSR 223: Scripting for the Java Platform(Java平台的脚本支持) 6249843
api core/debug Multiple Simultaneous Agents 4772582
api core/debug Added Heap Capabilities to JPDA 4914266
api core/debug Attach-on-demand 6173612
api core/debug JVMPI and JVMDI have been removed. 4914266
api core/jndi Read-timeout specification for LDAP operations 6176036
api core/libs Array Reallocation API(数组再分配的API) 4655503
imp core/libs BigDecimal optimizations for specjbb++
api core/libs Floating point: Add IEEE 754 recommended functions to java.lang.{{,Strict}Math} 4406429
api core/libs Standard service-provider API (java.util.Service) 4640520
api core/libs Collections and Concurrency Updates(集合与同步更新) 6268386
api core/libs IO Enhancement: Password Prompting(密码提示) 4050435
api core/libs IO Enhancement: File Attributes(文件属性) 6216563
api core/libs IO Enhancement: Method for Discovering Free Disk Space(查询磁盘剩余空间) 4057701
imp core/libs IO Enhancement: Long pathnames on Windows(Windows下的长路径名) 4403166
api core/libs Low-level Java compiler API for IDEs 4813736
jsr core/libs JSR 202: Java Class File Specification Update 4639391
jsr core/libs JSR 199: Java compiler API(Java编译器API) 4164450
imp core/libs Improved perceived footprint 6280693
api core/libs Deques(双向队列) 6192552
api core/libs Navigable Maps and Sets(导向Map与Set) 4155650
imp core/libs BitSet Updates 4963875, 4979017, 4979028, 4979031, 5030267, 6222207, 6404711
imp core/libs Performance Improvements when compiling using network file systems 4770745
imp core/m&m Improved diagnosability of OutOfMemoryError 6173515
api core/m&m Generic annotations for MBean descriptor contents 6221321
api core/m&m Support for java.util.concurrent locks in the lock related facility 5086470
imp core/m&m jconsole is more user-friendly(jconsole更加用户友好) 6174397
api core/m&m Small-scale improvements to JMX Monitor API 6222961
api core/m&m descriptors added to all types of MBean 6204469
api core/m&m MXBeans added to JMX 6175517
api core/net Light-weight HTTP server(轻量级的HTTP server) 6270015
api core/net Internationalized resource identifiers 5085902
api core/net Default CookieManager implementation(缺省的CookieManager实现) 6244040
imp core/net SPNEGO HTTP authentication 6260531
api core/net International domain names 4737170
api core/net Programmatic access to network parameters(访问网络的参数的API) 4691932
imp core/sec Native platform GSS integration 6202035, 6345202
imp core/sec SPNEGO in Java GSS 6239635
imp core/sec MS CAPI Keystore provider 6318171
imp core/sec Better support for NSS keystore 6273877
imp core/sec Improved Policy performance 5037004
imp core/sec JSR 268: Java Smart Card I/O API 6239117
jsr core/sec JSR 105: XML Dsig(XML数字签名API) 4635230
api core/sec Enhance certificate APIs 4635060
jsr core/tools JSR 269: Standard pluggabilty API for annotation processors (APT) 6222574
imp core/tools javac: Support for split verification 6227862, 6227862, 5110170, 5110184, 6217263
imp core/tools javac: Implement JSR 175′s java.lang.SuppressWarnings 4986256
imp core/tools Class-path wildcards(Class-path的通配符) 6268383
jsr ee/ee JSR 250: Common annotations 6304697
imp ee/jdbc Extended JDBC-ODBC bridge to enable JDBC 4.0 EoD features 6290312
jsr ee/jdbc JSR 221: JDBC 4.0 6290312
imp ee/xml JAXP 1.4,JSR 206: Java API for XML Processing 6317994
jsr ee/xml Support for the Web Services stack 6245626
JSR 222: JAXB 2.0
JSR 224: JAX-RPC 2.0
JSR 173: STAX
JSR 181: Web Services Metadata
api ee/xml JavaBeans Activation Framework (JAF) 6254474
imp vm/compilers Improved performance of compiled code(提升编译后的代码性能) 5079711, 6206844, 6239807, 4850474,
5003419, 5004907, 5101346, 6190413, 6191063,
6196383, 6196722, 6211497, 6232485, 6233627, 6245809,
6251002, 6262235,
imp vm/c1 Linear scan register allocator for C1 6320351
imp vm/c2 Improved loop optimization 5073662, 5074608, 5091921, 6260293
imp vm/c2 Escape analysis 6339956
imp vm/c2 Lock coarsening 6245809
imp vm/gc CMS: Parallelize concurrent marking
imp vm/gc Parallel compaction
imp vm/runtime Improve uncontended synchronization performance
imp vm/runtime Improved performance of contended synchronization operations
imp vm/runtime Faster format checker/class-file parser(更快的格式检查与类文件解析)
imp vm/runtime Improved startup time(提升启动速度) 6179212
imp vm/runtime Improved runtime performance(提升运行性能)
imp vm/runtime Improved JNI performance 5086424
imp vm/runtime Class circularity detection 4699981
imp vm/runtime DTrace support in the VM
参考链接:
http://java.sun.com/javase/6/webnotes/features.html
http://java.sun.com/javase/6/webnotes/adoption/adoptionguide.html
Posted in 计算机.编程.Java | Leave a comment