Weblogic11g for linux使用手册


               Weblogic操作手册 For linux

1. 安装

为了管理上的方便和要求,由某一用户(组)管理weblogic及其衍生的应用。本文以weblogic用户为例,之后的安装及配置管理都在weblogic用户下进行。

1.1. JDK安装

强烈建议使用oracle jrockit最新版本,可从oracle官网下载。安装过程参见相关的安装手册。

1.2. Weblogic安装

安装过程参见相关的安装手册。

2. 域的管理

由于weblogic域相当于一个独立的应用服务器(使用独立的JAVA进程),建议应用系统的各子系统独立部署于不同的域,使其降低耦合,减少相互影响程度。已广发东莞社保金融卡系统为例,该系统包括管理系统、交换系统和社保FTP服务三个子系统,可分别创建三个weblogic域,分别部署子系统,在某个子系统出现异常时,不会造成其它子系统的停机,每个域服务的关闭和启动都互不影响,异常发生时,保证业务不会完全中断(实际经验是主要是管理系统发生异常)。

2.1. 创建域

假设weblogic安装目录是/home/weblogic/Oracle/Middleware11g

1、在<weblogic安装目录>/wlserver_10.3/common/bin下,执行./config.sh

2、选择“创建新的weblogic域”,下一步

3、选择“生成一个自动配置”,下一步

4、修改域名,域名最好使用与应用相近有明显意义的名称,如mis(管理系统)exchgsvr(交换系统)、siftp(社保ftp服务)等,如下为管理系统域:

5、输入域名后,下一步

6、输入管理员名称和口令,下一步

7、选择“生产模式”(启动时可免除输入用户名和口令,本文有介绍),根据实际选择JDK,下一步

8、此处不作任何选择,下一步

9、此处不作任何修改,点击创建

10、完成,该域默认端口号为7001

2.2. 首次启动域

创建域后,必须进行一次首次启动完成该域服务器的相关配置,此时需要输入用户名和密码。

<weblogic安装目录>/user_projects/domains/mis下(mis是上述创建的域名),执行./startWeblogic.sh,如下:

输入管理员名称和密码后,继续启动完成。mis目录下将自动创建servers目录,将来应用的部署和运行将在该目录下。

2.3. 修改侦听端口号

打开<weblogic安装目录>/user_projects/domains/mis/config/config.xml,在server节点处增加listen-port内容,如下红字部分


<server>

    <name>AdminServer</name>

    <listen-port>your port</listen-port>

    <listen-address/>

  </server>


**注意:listen-port节点必须写在listen-address之前。

重启域服务器生效。

侦听端口号也可在控制台修改。

2.4. 修改JDK内存参数

Weblogic安装时默认设置JDK堆内存最大为512M,可根据服务器物理内存适当调整,推荐值剩余内存的50%,最大值3GXmsXmx设成一样。

打开<weblogic安装目录>/user_projects/domains/mis/bin/setDomainEnv.sh,

修改JDK堆内存,如:


if [ "${JAVA_VENDOR}" = "Sun" ] ; then

    WLS_MEM_ARGS_64BIT="-Xms256m -Xmx512m" /*此处改为实际值*/

    export WLS_MEM_ARGS_64BIT

    WLS_MEM_ARGS_32BIT="-Xms256m -Xmx512m" /*此处改为实际值*/

    export WLS_MEM_ARGS_32BIT

    else

    WLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m" /*此处改为实际值*/

    export WLS_MEM_ARGS_64BIT

    WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m" /*此处改为实际值*/

    export WLS_MEM_ARGS_32BIT

    fi


域服务器重启后生效。

2.5. 启动时免输入用户及密码的设置方法

生产模式下的域服务器启动时需要输入用户名和密码,很不方便,可通过以下方法免除该麻烦。

/home/weblogic/Oracle/Middleware11g/user_projects/domains/mis/servers/AdminServer下,创建目录security,在security下,创建文件boot.properties,记录域管理员用户名和密码,内容如下:

username=weblogic

password=weblogic123

   域服务器启动时将自动从该文件中获取用户和密码,免除手工输入,在首次使用时,weblogic将会加密处理,以后该文件中的usenamepassword值都是密文。

2.6. 新的关闭脚本

Weblogic创建域后在其域目录的bin下自动生成关闭脚本(stopWeblogic.sh),但是该关闭脚本基本上不能关闭域服务,因此需要手工通过kill方式杀死java进程,但是有多个域服务器同时在线的话,很难分清哪个java进程是哪个域用的,可以通过查找指定侦听端口号的进程知道该域所使用的java进程。以下文件shutdown.sh可以实现完整关闭指定端口的weblogic的功能。shutdown.sh内容如下:


port=$1

var=$(netstat -anp|grep 127.0.0.1:$port |awk '{print $7}')

echo $var

if [ "${var}" != "" ] ; then

  ##get spid

  java_pid=${var%/*}

  echo $java_pid

  echo "SHUTDOWN WEBLOGIC SERVER AT PORT $port ."

  kill -9 $java_pid

  sleep 2

else

  echo "WEBLOGIC SERVER AT PORT $port IS NOT EXISTS."

fi

echo "----Done----"


weblogic用户把shutdown.sh上传到服务器,如/home/weblogic下;

赋予执行权限:chmod 755 shutdown.sh

使用方法,如关闭7001端口的weblogic,执行./shutdown.sh 7001

2.7. 其它配置

参见《Weblogic迁移手册》的其它配置修改,如hibernate包冲突问题。

2.8. 后台启动域服务器方式

1、setsid ./startWeblogic.sh &

2、 (./startWeblogic.sh &)

3、nohup ./startWebLogic.sh >AdminServer.log 2>&1 & (后台启动,并把控制台信息输出到指定指定文件AdminServer.log)

2.9. 登录控制台

1、登录控制台:登录地址:http://<ip>:port/console,如下图:

2、输入管理员用户名和密码,进入控制台。

2.10. 修改管理员密码

1、在控制台左边的“域结构”列表中点击“安全领域”,右边如下图:

2、点击“myrealm”,出现下图:

3、点击“用户和组”选项卡,出现下图:

4、点击用户名称为“weblogic”(该用户是在创建域是输入的管理员用户,本文示例是weblogic,具体名称根据实际而定),见下图:

5、点击“口令”选项卡,见下图:

6、输入两次新口令(口令规则至少包含字母和数字且长度不少于8,否则检验通不过),点击保存,提示设置更新成功。如下图:

7、如果已修改启动时免输入用户及密码,则还需修改boot.propertiespassword改为新密码明文,并重启该域服务,使其加密为密文。

3. 应用程序部署管理

首先登录相应的域控制台。建议多个应用程序分开部署到不同的域。

3.1. 应用程序发布

1、在控制台左边的“域结构”列表中点击“部署”,右边如下图:

2、在控制台左边的“锁定并编辑”按钮,右边窗口的“安装”按钮将显示可见。

3、点击右边窗口的“安装”按钮,右边窗口出现下图:

4、点击“上载文件”,出现下图:

5、点击部署档案的“浏览”按钮,选择要发布的应用程序war包,出现下图:

6、点击上部的“下一步”按钮,提示上载文件成功,见下图:

7、继续点击上部的“下一步”按钮,出现下图:

8、选择“将此部署安装为应用程序”(默认),点击上部的“下一步”,出现下图:

9、根据需要可修改名称,其它选项保持默认,点击“完成”,显示成功安装部署,见下图:

10、点击左边窗口的“激活更改”,此时安装成功,还需要启动服务。见下图:

11、在右边窗口的部署列表中,勾选要启动的项目(如dgsifi),出现下图:

12、点击“启动”,选择“为所有请求提供服务”,见下图:

13、点击“是”按钮,进行应用程序启动处理,成功如下图所示,失败则在消息栏中显示错误信息。应用程序访问连接如:http://<ip>:<port>/dgsifi

3.2. 应用程序删除

1、在控制台左边的“域结构”列表中点击“部署”后,右边窗口显示已部署的应用程序列表,勾选要删除的应用程序,点击“停止”按钮,选择“立即强制停止”,强行停止应用程序运行状态,见下图:。

2、点击“是”,出现下图:

3、点击左边窗口的“锁定并编辑”按钮,再勾选应用程序后,出现下图:

4、点击部署列表表头或表脚的“删除”按钮,出现下图:

5、点击“是”,进行删除处理后,出现下图:

6、点击左边窗口的“激活更改”按钮,完成删除操作。

4. 应用管理示例(XX金融系统)

在实际工作中,出于管理和维护上的方便,要求各个域的启动和关闭脚本集中存放,应用程序的日志、临时文件等也要集中存放,下面以XX金融项目为例,说明集中管理的具体实现,其它项目可参考此方法进行管理。

4.1. 假设

在用户weblogic下,已安装weblogic server,并已创建3个域,域的路径为/home/weblogic/Oracle/Middleware11g/user_projects/domains/sifimis(或exchgsvrsiftp),各域相关信息分别如下:

序号

域名

端口号

用途

部署的应用程包名

1

sifimis

8080

管理系统

XXX1.war

2

exchgsvr

8081

交换系统

XXX2.war

3

siftp

8082

社保FTP服务

XXX3.war

4.2. 创建集中管理目录user_app

weblogic下,创建目录user_app,其下再创建相应目录,目录结构及用途如下表:

主目录:/home/weblogic/user_app/

序号

目录

用途

bin

启动域和关闭域脚本

app_paths/decryptFile

存放XXX文件

app_paths/ downloadFile

存放XXX文件

app_paths/logs

存放日志文件,包括与应用系统相关的所有日志,如服务器日志、业务日志等

app_paths/fat

存放主机接口格式文件

app_paths/send

存放上送主机的文件

app_paths/sendFile

存放上送XX的文件

app_paths/tempFile

存放社保ftp的临时文件

app_paths/upload

存放上传下载的临时文件

   可用脚本dir.sh创建以上目录,在/home/weblogic下执行dir.shdir.sh内容如下:


mkdir user_app

mkdir user_app/bin

mkdir user_app/app_paths

mkdir user_app/app_paths/decryptFile

mkdir user_app/app_paths/downloadFile

mkdir user_app/app_paths/logs

mkdir user_app/app_paths/fat

mkdir user_app/app_paths/send

mkdir user_app/app_paths/sendFile

mkdir user_app/app_paths/tempFile

mkdir user_app/app_paths/upload


4.3. 脚本文件说明(bin

   特别声明:只有设置了启动免输入用户和密码的情况下,目录bin下的启动脚本才能够执行成功。

路径:/home/weblogic/user_app/bin,该目录下的脚本文件须具有执行权限,可用命令赋予:chmod 755 *

4.3.1. 启动脚本

因暂时无法找到把完整weblogic控制台信息写到指定文件,采用重定向输出方式,把控制台信息写入指定服务器日志文件/home/weblogic/user_app/app_paths/logs/appserver.log

4.3.1.1. 启动脚本样本start_svr.sh

用法:命令 域名,如启动管理系统:./start_svr.sh sifimisstart_svr.sh内容如下:


if [ "$1" = "" ] ; then

  echo "缺少参数,命令执行错误!用法:start_svr.sh sifimis(参数为域名)"

  exit 1

fi

if [ "$1" != "sifimis" -a "$1" != "exchgsvr" -a "$1" != "siftp" ] ; then

  echo "参数错!参数为域名sifimis/exchgsvr/siftp"

  exit 1

fi

SVR_HOME="/home/weblogic/Oracle/Middleware11g/user_projects/domains/$1"

SVR_LOG="/home/weblogic/user_app/app_paths/logs/appserver.log"

nohup ${SVR_HOME}/startWebLogic.sh >>${SVR_LOG} 2>&1 &

echo "启动执行完毕,请稍后检查启动情况."


4.3.1.2. 管理系统启动脚本start_sifimis.sh

  ./start_svr.sh sifimis

4.3.1.3. 交换系统启动脚本start_exchgsvr.sh

  ./start_svr.sh exchgsvr

4.3.1.4. FTP系统启动脚本start_ftp.sh

  ./start_svr.sh siftp

4.3.1.5. 总启动脚本start_all.sh(启动所有系统)

  ./start_svr.sh exchgsvr

  ./start_svr.sh siftp

  ./start_svr.sh sifimis

4.3.2. 关闭脚本

4.3.2.1. 关闭脚本样本shutdown.sh

用法:命令 端口号,如关闭管理系统:./shutdown.sh sifimisshutdown.sh内容如下:


if [ "$1" = "" ] ; then

  echo "缺少参数,命令执行错误!用法:shutdown.sh sifimis(参数为域名)"

  exit 1

fi

if [ "$1" != "sifimis" -a "$1" != "exchgsvr" -a "$1" != "siftp" ] ; then

  echo "参数错!参数为域名sifimis/exchgsvr/siftp"

  exit 1

fi

if [ "$1" = "sifimis" ]; then

  port=8080

  svrname="管理系统"

fi

if [ "$1" = "exchgsvr" ]; then

  port=8081

  svrname="交换系统"

fi

if [ "$1" = "siftp" ]; then

  port=8082

  svrname="XX服务系统"

fi

##取端口侦听的进程号及程序名,如1023/java

var=$(netstat -anp|grep 127.0.0.1:$port |awk '{print $7}')

if [ "${var}" != "" ] ; then

  ##截取进程号

  java_pid=${var%/*}

  kill -9 $java_pid

  sleep 2

  echo --$svrname已被关闭--

else

  echo $svrname没有启动!

fi


4.3.2.2. 关闭管理系统脚本shutdown_sifimis.sh

  ./shutdown.sh sifimis

4.3.2.3. 关闭交换系统脚本shutdown_exchgsvr.sh

  ./ shutdown.sh exchgsvr

4.3.2.4. 关闭FTP系统脚本shutdown_siftp.sh

  ./ shutdown.sh siftp

4.3.2.5. 总关闭脚本shutdown_all.sh(关闭所有系统)

  ./ shutdown.sh sifimis

  ./ shutdown.sh exchgsvr

  ./ shutdown.sh siftp

4.4. 日志截断处理

由于各系统启动时已把控制台信息通过重定向输出方式以追加形式写入日志文件user_app/app_paths/logs/appserver.log中,该文件将会越来越大,因此需要设置为自动截断,截断方式有两种:每日或按大小,下面介绍按日进行截断的设置方案。

linux操作系统自带的logratate工具定期整理日志,用root用户操作:

1、创建脚本

#vi /etc/logrotate.d/appserverlog (使用root用户appserverlog为配置文件名,也可取其它名称)


/home/weblogic/user_app/app_paths/logs/appserver.log {

rotate 60

daily

copytruncate

notifempty

missingok

}


其中:

rotate 60 表示保留60天的备份文件

daily 表示每天整理一次

copytruncate 表示先复制log文件的内容,然后再清空

missingok 表示如果找不到log文件也没OK

notifempty 表示如果log文件是空的,就不进行rotate

2、/usr/sbin/logrotate -f /etc/logrotate.conf执行生效(即时切断日志,生成新日志文件)

3、特别说明:

  每天系统时间换日后生成的日志备份文件名为appserver.log -yyyymmdd,yyyymmdd是生成备份文件的日期,文件内容是该日期之前的内容。


PS:  转载时,请注明转载地址 http://my.oschina.net/samtribiani/blog/145422








你可能感兴趣的:(优化,weblogic)