一、双机热备环境的搭建

两台redhat企业版服务器(以下称server-a和server-b),每台机器都部署A和B两个应用,正常情况下用户只访问server-a上A应用和server-b上B应用。如果server-a上A应用无法访问,那么server-b上的A应用需要及时给客户提供服务;如果server-b上B应用无法访问,那么server-a上B应用需要及时给客户提供服务。该案例示意图如下:

两台windows服务器下载安装zookeeper集群_企业应用

 

domain1的端口号为5888,用于发布应用A(行政审批),domain2的端口号为6888,用于发布应用B(电子监察)。

双机热备软件采用的是redhat cluster suit,要求对于domain1和domain2各提供一个shell脚本,包含三个函数: start(),stop(),还有status(),分别用于启动、停止域以及检查当前状态(该域是否启动)。

domain1和domain2的shell脚本雷同,以domain1的脚本为例:
#!/bin/bash
# apusic Startup script for the Apusic Application Server
#
# chkconfig: - 85 15
# description: Apusic 5.1 is a JavaEE5.0 standard Application Server Implemention
# processname: apusic 
# pidfile: /var/run/apusic.pid
# apusic_home: /usr/local/apusic-5.1
# Source function library.
. /etc/rc.d/init.d/functions
prog=Apusic-5.1
pidfile=${PIDFILE-/var/run/apusic.pid}
lockfile=${LOCKFILE-/var/lock/subsys/apusic}
JAVA_HOME=/usr/java/jdk1.5.0_18
APUSIC_HOME=/kingdee/apusic-5.1
startapusic="$APUSIC_HOME/domains/domain1/bin/startapusic -p"
stopapusic="$APUSIC_HOME/domains/domain1/bin/stopapusic admin admin iiop://localhost:5888"
start() {
        echo -n $"Starting $prog: "
        export JAVA_HOME
        cd $APUSIC_HOME
        $startapusic > /dev/null 2>&1 &
        #daemon $startapusic 
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch ${lockfile}
        return $RETVAL
}
stop() {
        echo -n $"Stopping $prog: "
        export JAVA_HOME
        cd $APUSIC_HOME
        $stopapusic > /dev/null 2>&1 &
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
status()
{
chk_apusic=$(ps aux|grep domain1|grep -v grep|wc -l)
if [ "$chk_apusic" = "0" ]
then
echo "Checking Apusic Server:  failed!"
exit 1
fi
echo "Checking Apusic Server:  success!"
exit 0
}
# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  status)
    status  
    ;;
  *)
    echo $"Usage: $prog {start|stop|restart|status}"
    exit 1
esac
exit $RETVAL

红色部分用于判断domain1的服务进程是否存在。 

二、集群环境的搭建

两台redhat企业版服务器server-c和server-d用来做apusic应用服务器集群。

在server-c上放置loadbalancer和domain1两个域,在server-d上放置domain2。其中的loadbalancer域用来做负载均衡。

三、几个应用的移植

server-a和server-b上各自部署了三个应用:

行政审批系统(A应用)

电子监察系统(B应用)

审批申报系统

其中的审批申报系统是后来加上去的,未做双机,如果需要做双机的话办法与前两个应用相似。

server-c和server-d上部署了一个cms网站(集群)。

四、移植中遇到的几个主要问题:

问题1:一些页面图片无法显示。

解决方法:观察页面源代码,原来图片链接都写死在根目录。该应用需要置于根目录下,修改后正常显示。

问题2在电子监察的管理界面中添加或者修改含有中文字符的数据,会报ORA-01461的错误。

解决方法:应用服务器所使用的oracle驱动版本和实际不符,更换后已经可以正常添加删除修改。

问题3少数报表页面显示报错:

 javax.servlet.jsp.JspTagException: com/runqian/report/view/CachedReportPool

解决方法:此系润乾报表的jar库未正确加载所致,间接由于apusic应用服务器独特的classloader机制。将相关jar包转移到域共享库中即可解决问题。

问题4 部分润乾报表显示乱码:

解决方法:

在报表相关的jsp页面起始加入"<%@ page contentType="text/html; charset=GBK" %> "即可。

两台windows服务器下载安装zookeeper集群_企业应用