Weblogic11g for linux使用手冊


               Weblogic操做手冊 For linux

1. 安裝

爲了管理上的方便和要求,由某一用戶(組)管理weblogic及其衍生的應用。本文以weblogic用戶爲例,以後的安裝及配置管理都在weblogic用戶下進行。 java

1.1. JDK安裝

強烈建議使用oracle jrockit最新版本,可從oracle官網下載。安裝過程參見相關的安裝手冊。 linux

1.2. Weblogic安裝

安裝過程參見相關的安裝手冊。 web

2. 域的管理

因爲weblogic域至關於一個獨立的應用服務器(使用獨立的JAVA進程),建議應用系統的各子系統獨立部署於不一樣的域,使其下降耦合,減小相互影響程度。已廣發東莞社保金融卡系統爲例,該系統包括管理系統、交換系統和社保FTP服務三個子系統,可分別建立三個weblogic域,分別部署子系統,在某個子系統出現異常時,不會形成其它子系統的停機,每一個域服務的關閉和啓動都互不影響,異常發生時,保證業務不會徹底中斷(實際經驗是主要是管理系統發生異常)。 shell

2.1. 建立域

假設weblogic安裝目錄是/home/weblogic/Oracle/Middleware11g 安全

一、在<weblogic安裝目錄>/wlserver_10.3/common/bin下,執行./config.sh 服務器

二、選擇「建立新的weblogic域」,下一步 oracle

三、選擇「生成一個自動配置」,下一步 app

四、修改域名,域名最好使用與應用相近有明顯意義的名稱,如mis(管理系統)exchgsvr(交換系統)、siftp(社保ftp服務)等,以下爲管理系統域: dom

五、輸入域名後,下一步 工具

六、輸入管理員名稱和口令,下一步

七、選擇「生產模式」(啓動時可免除輸入用戶名和口令,本文有介紹),根據實際選擇JDK,下一步

八、此處不做任何選擇,下一步

九、此處不做任何修改,點擊建立

十、完成,該域默認端口號爲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. 後臺啓動域服務器方式

一、setsid ./startWeblogic.sh &

二、 (./startWeblogic.sh &)

三、nohup ./startWebLogic.sh >AdminServer.log 2>&1 & (後臺啓動,並把控制檯信息輸出到指定指定文件AdminServer.log)

2.9. 登陸控制檯

一、登陸控制檯:登陸地址:http://<ip>:port/console,以下圖:

二、輸入管理員用戶名和密碼,進入控制檯。

2.10. 修改管理員密碼

一、在控制檯左邊的「域結構」列表中點擊「安全領域」,右邊以下圖:

二、點擊「myrealm」,出現下圖:

三、點擊「用戶和組」選項卡,出現下圖:

四、點擊用戶名稱爲「weblogic」(該用戶是在建立域是輸入的管理員用戶,本文示例是weblogic,具體名稱根據實際而定),見下圖:

五、點擊「口令」選項卡,見下圖:

六、輸入兩次新口令(口令規則至少包含字母和數字且長度很多於8,不然檢驗通不過),點擊保存,提示設置更新成功。以下圖:

七、若是已修改啓動時免輸入用戶及密碼,則還需修改boot.propertiespassword改成新密碼明文,並重啓該域服務,使其加密爲密文。

3. 應用程序部署管理

首先登陸相應的域控制檯。建議多個應用程序分開部署到不一樣的域。

3.1. 應用程序發佈

一、在控制檯左邊的「域結構」列表中點擊「部署」,右邊以下圖:

二、在控制檯左邊的「鎖定並編輯」按鈕,右邊窗口的「安裝」按鈕將顯示可見。

三、點擊右邊窗口的「安裝」按鈕,右邊窗口出現下圖:

四、點擊「上載文件」,出現下圖:

五、點擊部署檔案的「瀏覽」按鈕,選擇要發佈的應用程序war包,出現下圖:

六、點擊上部的「下一步」按鈕,提示上載文件成功,見下圖:

七、繼續點擊上部的「下一步」按鈕,出現下圖:

八、選擇「將此部署安裝爲應用程序」(默認),點擊上部的「下一步」,出現下圖:

九、根據須要可修更名稱,其它選項保持默認,點擊「完成」,顯示成功安裝部署,見下圖:

十、點擊左邊窗口的「激活更改」,此時安裝成功,還須要啓動服務。見下圖:

十一、在右邊窗口的部署列表中,勾選要啓動的項目(如dgsifi),出現下圖:

十二、點擊「啓動」,選擇「爲全部請求提供服務」,見下圖:

1三、點擊「是」按鈕,進行應用程序啓動處理,成功以下圖所示,失敗則在消息欄中顯示錯誤信息。應用程序訪問鏈接如:http://<ip>:<port>/dgsifi

3.2. 應用程序刪除

一、在控制檯左邊的「域結構」列表中點擊「部署」後,右邊窗口顯示已部署的應用程序列表,勾選要刪除的應用程序,點擊「中止」按鈕,選擇「當即強制中止」,強行中止應用程序運行狀態,見下圖:。

二、點擊「是」,出現下圖:

三、點擊左邊窗口的「鎖定並編輯」按鈕,再勾選應用程序後,出現下圖:

四、點擊部署列表表頭或表腳的「刪除」按鈕,出現下圖:

五、點擊「是」,進行刪除處理後,出現下圖:

六、點擊左邊窗口的「激活更改」按鈕,完成刪除操做。

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用戶操做:

一、建立腳本

#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

二、/usr/sbin/logrotate -f /etc/logrotate.conf執行生效(即時切斷日誌,生成新日誌文件)

三、特別說明:

  天天系統時間換往後生成的日誌備份文件名爲appserver.log -yyyymmdd,yyyymmdd是生成備份文件的日期,文件內容是該日期以前的內容。


PS:  轉載時,請註明轉載地址 http://my.oschina.net/samtribiani/blog/145422

相關文章
相關標籤/搜索