但願這篇能把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等)