当前位置: 代码迷 >> Web前端 >> WebLogic11g-惯用运维操作
  详细解决方案

WebLogic11g-惯用运维操作

热度:971   发布时间:2013-10-27 15:21:49.0
WebLogic11g-常用运维操作

转自:http://dead-knight.iteye.com/blog/1940399

WebLogic11g-常用运维操作

博客分类:
    ?
  • weblogic
?
希望这篇能把weblogic运维时经常遇到的问题、常用的配置汇总到一起。?
1、配置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部分,相关参数配置如下:?
Java代码??收藏代码
  1. call?"%WL_HOME%\common\bin\commEnv.cmd"??
  2. ??
  3. set?WLS_HOME=%WL_HOME%\server??
  4. ??
  5. if?"%JAVA_VENDOR%"=="Sun"?(??
  6. ????set?WLS_MEM_ARGS_64BIT=-Xms256m?-Xmx512m??
  7. ????set?WLS_MEM_ARGS_32BIT=-Xms256m?-Xmx512m??
  8. )?else?(??
  9. ????set?WLS_MEM_ARGS_64BIT=-Xms512m?-Xmx512m??
  10. ????set?WLS_MEM_ARGS_32BIT=-Xms512m?-Xmx512m??
  11. )??
  12. ??
  13. set?MEM_ARGS_64BIT=%WLS_MEM_ARGS_64BIT%??
  14. ??
  15. set?MEM_ARGS_32BIT=%WLS_MEM_ARGS_32BIT%??
  16. ??
  17. if?"%JAVA_USE_64BIT%"=="true"?(??
  18. ????set?MEM_ARGS=%MEM_ARGS_64BIT%??
  19. )?else?(??
  20. ????set?MEM_ARGS=%MEM_ARGS_32BIT%??
  21. )??
  22. ??
  23. set?MEM_PERM_SIZE_64BIT=-XX:PermSize=128m??
  24. ??
  25. set?MEM_PERM_SIZE_32BIT=-XX:PermSize=48m??
  26. ??
  27. if?"%JAVA_USE_64BIT%"=="true"?(??
  28. ????set?MEM_PERM_SIZE=%MEM_PERM_SIZE_64BIT%??
  29. )?else?(??
  30. ????set?MEM_PERM_SIZE=%MEM_PERM_SIZE_32BIT%??
  31. )??
  32. ??
  33. set?MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m??
  34. ??
  35. set?MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m??
  36. ??
  37. if?"%JAVA_USE_64BIT%"=="true"?(??
  38. ????set?MEM_MAX_PERM_SIZE=%MEM_MAX_PERM_SIZE_64BIT%??
  39. )?else?(??
  40. ????set?MEM_MAX_PERM_SIZE=%MEM_MAX_PERM_SIZE_32BIT%??
  41. )??
  42. if?"%JAVA_VENDOR%"=="Sun"?(??
  43. ????if?"%PRODUCTION_MODE%"==""?(??
  44. ????????set?MEM_DEV_ARGS=-XX:CompileThreshold=8000?%MEM_PERM_SIZE%???
  45. ????)??
  46. )??
  47. ??
  48. @REM?Had?to?have?a?separate?test?here?BECAUSE?of?immediate?variable?expansion?on?windows??
  49. ??
  50. if?"%JAVA_VENDOR%"=="Sun"?(??
  51. ????set?MEM_ARGS=%MEM_ARGS%?%MEM_DEV_ARGS%?%MEM_MAX_PERM_SIZE%??
  52. )??
  53. ??
  54. if?"%JAVA_VENDOR%"=="HP"?(??
  55. ????set?MEM_ARGS=%MEM_ARGS%?%MEM_MAX_PERM_SIZE%??
  56. )??
  57. ??
  58. if?"%JAVA_VENDOR%"=="Apple"?(??
  59. ????set?MEM_ARGS=%MEM_ARGS%?%MEM_MAX_PERM_SIZE%??
  60. )??
  61. ??
  62. @REM?IF?USER_MEM_ARGS?the?environment?variable?is?set,?use?it?to?override?ALL?MEM_ARGS?values??
  63. ??
  64. if?NOT?"%USER_MEM_ARGS%"==""?(??
  65. ????set?MEM_ARGS=%USER_MEM_ARGS%??
  66. )??

主要就是修改-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位环境。?

2、配置weblogic的线程队列:?
如果大家用过weblogic8的经典版本,那么肯定知道,里面有个线程队列数的配置。可是在现在的版本中已经取消了,而采用自调整策略,根据当前请求数调整为适应的线程数。最开始分配6个执行线程,具体在哪里看呢??
首先登录domain的console,然后依次选择【环境-》服务器-》AdminServer-》监控-》线程】,如下图所示:?

如果我想调整线程的最小、最大数量,怎么做呢?往下看:?
查看startWebLogic.cmd启动脚本文件,不是domain下面的,具体位置是:?
weblogic11\user_projects\domains\example\bin\startWebLogic.cmd?
找到下面的语句进行修改,修改之后为:?
Java代码??收藏代码
  1. if?"%WLS_REDIRECT_LOG%"==""?(??
  2. ????echo?Starting?WLS?with?line:??
  3. ????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%??
  4. ????%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%??
  5. )?else?(??
  6. ????echo?Redirecting?output?from?WLS?window?to?%WLS_REDIRECT_LOG%??
  7. ????%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???
  8. )??

在java命令后面增加两个参数,分别是:?
-Dweblogic.threadpool.MinPoolSize=80?
-Dweblogic.threadpool.MaxPoolSize=80?
80表示执行的线程数,这里仅仅是举例,视具体情况而定。如果不知道怎么设置,就不要瞎折腾了,还是让weblogic自己调整吧。?
修改之后,重启domain,查看线程情况,如下图所示:?

已经明显看到线程总数以及活动、空闲线程数量了。?
一般在运维过程中,经常会查看这个界面,以实时掌握当前服务器的负载情况。?

3、日志配置:?
默认情况下,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很好很强大??

4、端口配置(第一篇挪过来的,放在这里比较合适):?

如图所示,依次选择【环境-》服务器-》AdminServer-》配置-》一般信息-》监听端口】,修改7001为其它的端口,并且点“保存”按钮即可完成。?
也可以在weblogic11\user_projects\domains\example\config\config.xml中进行手动修改,找到server节点,增加listen-port节点,如下:?
Java代码??收藏代码
  1. <server>??
  2. ??<name>AdminServer</name>??
  3. ??<ssl>??
  4. ????<enabled>false</enabled>??
  5. ??</ssl>??
  6. ??<listen-port>7001</listen-port>??
  7. ??<listen-port-enabled>true</listen-port-enabled>??
  8. ??<listen-address></listen-address>??
  9. ??<java-compiler>javac</java-compiler>??
  10. ??<client-cert-proxy-enabled>false</client-cert-proxy-enabled>??
  11. ??<server-diagnostic-config>??
  12. ????<wldf-diagnostic-volume>Low</wldf-diagnostic-volume>??
  13. ??</server-diagnostic-config>??
  14. </server>??


5、修改管理账号、口令:?
domain创建之后,会在以下位置创建boot.properties文件(注意:这个位置与weblogic之前的8、9版本有区别)?
weblogic11\user_projects\domains\example\servers\AdminServer\security?
首先修改boot.properties,如下:?
Java代码??收藏代码
  1. username=weblogic??
  2. password=22222222??

这里是明文,但是weblogic启动加载该文件后,会自动通过加密处理。?
修改完成之后,在控制台中依次进入:?
安全领域-》myrealm-》用户和组-》weblogic-》口令。输入新的口令即可(需要与boot.properties中配置的一致,如22222222)?
(如果需要修改账号,需要在用户和组中建立账号,并且赋予管理员权限即可)?
以上两步完成之后,重启服务即可。?

暂时就想到这么些了,像一些复杂的配置,放在后面单独讲了(比如:ssl、jaas、sso等)