WebLogic11g-經常使用運維操做

但願這篇能把weblogic運維時常常遇到的問題、經常使用的配置彙總到一塊兒。
一、配置jvm參數:
通常在domain啓動過程當中會看到如下啓動的日誌信息,以下圖所示:

圖中紅色方框部分爲啓動weblogic domain的命令。其中包括了jvm參數以及classpath信息。
【注意】
java -client是因爲以前創建的domain是開發模式的。生產模式的話,這裏執行的是java -server。至於-client與-server的區別,你們去google下吧,這裏不介紹了。

那如何修改這個配置呢?
找到setDomainEnv.cmd文件(linux下面就是setDomainEnv.sh了),
位置爲:weblogic11\user_projects\domains\example\bin\setDomainEnv.cmd
修改文件中的MEM_ARGS部分,相關參數配置以下:
call "%WL_HOME%\common\bin\commEnv.cmd"

set WLS_HOME=%WL_HOME%\server

if "%JAVA_VENDOR%"=="Sun" (
	set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m
	set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m
) else (
	set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m
	set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m
)

set MEM_ARGS_64BIT=%WLS_MEM_ARGS_64BIT%

set MEM_ARGS_32BIT=%WLS_MEM_ARGS_32BIT%

if "%JAVA_USE_64BIT%"=="true" (
	set MEM_ARGS=%MEM_ARGS_64BIT%
) else (
	set MEM_ARGS=%MEM_ARGS_32BIT%
)

set MEM_PERM_SIZE_64BIT=-XX:PermSize=128m

set MEM_PERM_SIZE_32BIT=-XX:PermSize=48m

if "%JAVA_USE_64BIT%"=="true" (
	set MEM_PERM_SIZE=%MEM_PERM_SIZE_64BIT%
) else (
	set MEM_PERM_SIZE=%MEM_PERM_SIZE_32BIT%
)

set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m

set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m

if "%JAVA_USE_64BIT%"=="true" (
	set MEM_MAX_PERM_SIZE=%MEM_MAX_PERM_SIZE_64BIT%
) else (
	set MEM_MAX_PERM_SIZE=%MEM_MAX_PERM_SIZE_32BIT%
)
if "%JAVA_VENDOR%"=="Sun" (
	if "%PRODUCTION_MODE%"=="" (
		set MEM_DEV_ARGS=-XX:CompileThreshold=8000 %MEM_PERM_SIZE% 
	)
)

@REM Had to have a separate test here BECAUSE of immediate variable expansion on windows

if "%JAVA_VENDOR%"=="Sun" (
	set MEM_ARGS=%MEM_ARGS% %MEM_DEV_ARGS% %MEM_MAX_PERM_SIZE%
)

if "%JAVA_VENDOR%"=="HP" (
	set MEM_ARGS=%MEM_ARGS% %MEM_MAX_PERM_SIZE%
)

if "%JAVA_VENDOR%"=="Apple" (
	set MEM_ARGS=%MEM_ARGS% %MEM_MAX_PERM_SIZE%
)

@REM IF USER_MEM_ARGS the environment variable is set, use it to override ALL MEM_ARGS values

if NOT "%USER_MEM_ARGS%"=="" (
	set MEM_ARGS=%USER_MEM_ARGS%
)

主要就是修改-Xms、-Xmx、-XX:PermSize、-XX:MaxPermSize的參數(視具體硬件、JVM負載狀況進行修改)。若是須要設置-Xss等其它相關參數,也可添加到最後的MEM_ARGS中。
這裏須要注意的是有個32位、64位的區別。實際上具體採用哪一種配置,可查看文件:
weblogic11\wlserver_10.3\common\bin\commEnv.cmd
找到set JAVA_USE_64BIT=false配置,即表示非64位環境。

二、配置weblogic的線程隊列:
若是你們用過weblogic8的經典版本,那麼確定知道,裏面有個線程隊列數的配置。但是在如今的版本中已經取消了,而採用自調整策略,根據當前請求數調整爲適應的線程數。最開始分配6個執行線程,具體在哪裏看呢?
首先登陸domain的console,而後依次選擇【環境-》服務器-》AdminServer-》監控-》線程】,以下圖所示:

若是我想調整線程的最小、最大數量,怎麼作呢?往下看:
查看startWebLogic.cmd啓動腳本文件,不是domain下面的,具體位置是:
weblogic11\user_projects\domains\example\bin\startWebLogic.cmd
找到下面的語句進行修改,修改以後爲:
if "%WLS_REDIRECT_LOG%"=="" (
	echo Starting WLS with line:
	echo %JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.threadpool.MinPoolSize=80 -Dweblogic.threadpool.MaxPoolSize=80 -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%
	%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.threadpool.MinPoolSize=80 -Dweblogic.threadpool.MaxPoolSize=80 -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%
) else (
	echo Redirecting output from WLS window to %WLS_REDIRECT_LOG%
	%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.threadpool.MinPoolSize=80 -Dweblogic.threadpool.MaxPoolSize=80 -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%  >"%WLS_REDIRECT_LOG%" 2>&1 
)

在java命令後面增長兩個參數,分別是:
-Dweblogic.threadpool.MinPoolSize=80
-Dweblogic.threadpool.MaxPoolSize=80
80表示執行的線程數,這裏僅僅是舉例,視具體狀況而定。若是不知道怎麼設置,就不要瞎折騰了,仍是讓weblogic本身調整吧。
修改以後,重啓domain,查看線程狀況,以下圖所示:

已經明顯看到線程總數以及活動、空閒線程數量了。
通常在運維過程當中,常常會查看這個界面,以實時掌握當前服務器的負載狀況。

三、日誌配置:
默認狀況下,weblogic的相關日誌的存放位置是:
weblogic11\user_projects\domains\example\servers\AdminServer\logs
這個日誌文件夾裏面主要包括兩種日誌
AdminServer的日誌:AdminServer.log(weblogic啓動過程當中打印出來的日誌)
Http的日誌:access.log(http請求的日誌)

web應用的日誌存放位置是:
weblogic11\user_projects\domains\example\logs
這裏主要就是web應用裏面輸出的日誌文件了

若是想配置日誌,怎麼作呢?
登陸domain的console,而後依次選擇【環境-》服務器-》AdminServer-》日誌】,以下圖所示(包括兩類日誌的配置):


看這個截圖,是否是以爲weblogic的console很好很強大?

四、端口配置(第一篇挪過來的,放在這裏比較合適):

如圖所示,依次選擇【環境-》服務器-》AdminServer-》配置-》通常信息-》監聽端口】,修改7001爲其它的端口,而且點「保存」按鈕便可完成。
也能夠在weblogic11\user_projects\domains\example\config\config.xml中進行手動修改,找到server節點,增長listen-port節點,以下:
<server>
  <name>AdminServer</name>
  <ssl>
    <enabled>false</enabled>
  </ssl>
  <listen-port>7001</listen-port>
  <listen-port-enabled>true</listen-port-enabled>
  <listen-address></listen-address>
  <java-compiler>javac</java-compiler>
  <client-cert-proxy-enabled>false</client-cert-proxy-enabled>
  <server-diagnostic-config>
    <wldf-diagnostic-volume>Low</wldf-diagnostic-volume>
  </server-diagnostic-config>
</server>


五、修改管理帳號、口令:
domain建立以後,會在如下位置建立boot.properties文件(注意:這個位置與weblogic以前的八、9版本有區別)
weblogic11\user_projects\domains\example\servers\AdminServer\security
首先修改boot.properties,以下:
username=weblogic
password=22222222
這裏是明文,可是weblogic啓動加載該文件後,會自動經過加密處理。 修改完成以後,在控制檯中依次進入: 安全領域-》myrealm-》用戶和組-》weblogic-》口令。輸入新的口令便可(須要與boot.properties中配置的一致,如22222222) (若是須要修改帳號,須要在用戶和組中創建帳號,而且賦予管理員權限便可) 以上兩步完成以後,重啓服務便可。 暫時就想到這麼些了,像一些複雜的配置,放在後面單獨講了(好比:ssl、jaas、sso等)
相關文章
相關標籤/搜索