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等)