apusic的双机热备、集群以及系统移植

一、双机热备环境的搭建

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

apusic的双机热备、集群以及系统移植

 

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

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

    domain1domain2shell脚本雷同,以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-cserver-d用来做apusic应用服务器集群。

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

三、几个应用的移植

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

行政审批系统(A应用)

电子监察系统(B应用)

审批申报系统

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

server-cserver-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" %> "即可。apusic的双机热备、集群以及系统移植

你可能感兴趣的:(oracle,应用服务器,redhat,脚本,企业应用)