WebLogic11g-常用运维操作

摘要:
我希望本文能够总结weblogic操作和维护中遇到的常见问题和配置。Java客户端是由于先前建立的域的开发模式。事实上,您可以查看文件:weblogic1wlserver_10.3commonincoEnv。cmd查找setJAVA_USE_64BIT=错误配置,即非64位环境。
希望这篇能把weblogic运维时经常遇到的问题、常用的配置汇总到一起。 
1、配置jvm参数: 
一般在domain启动过程中会看到以下启动的日志信息,如下图所示: 
WebLogic11g-常用运维操作第1张
图中红色方框部分为启动weblogic domain的命令。其中包括了jvm参数以及classpath信息。 
【注意】 
java -client是由于之前建立的domain是开发模式的。生产模式的话,这里执行的是java -server。至于-client与-server的区别,大家去google下吧,这里不介绍了。 
那如何修改这个配置呢? 
找到setDomainEnv.cmd文件(linux下面就是setDomainEnv.sh了), 
位置为:weblogic11user_projectsdomainsexampleinsetDomainEnv.cmd 
修改文件中的MEM_ARGS部分,相关参数配置如下: 
Java代码  收藏代码
  1. call "%WL_HOME%commonincommEnv.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位的区别。实际上具体采用哪种配置,可查看文件: 
weblogic11wlserver_10.3commonincommEnv.cmd 
找到set JAVA_USE_64BIT=false配置,即表示非64位环境。 

2、配置weblogic的线程队列: 
如果大家用过weblogic8的经典版本,那么肯定知道,里面有个线程队列数的配置。可是在现在的版本中已经取消了,而采用自调整策略,根据当前请求数调整为适应的线程数。最开始分配6个执行线程,具体在哪里看呢? 
首先登录domain的console,然后依次选择【环境-》服务器-》AdminServer-》监控-》线程】,如下图所示: 
WebLogic11g-常用运维操作第3张
如果我想调整线程的最小、最大数量,怎么做呢?往下看: 
查看startWebLogic.cmd启动脚本文件,不是domain下面的,具体位置是: 
weblogic11user_projectsdomainsexampleinstartWebLogic.cmd 
找到下面的语句进行修改,修改之后为: 
Java代码  收藏代码
  1. if "%WLS_REDIRECT_LOG%"=="" (  
  2.     echo Starting WLS with line:  
  3.     echo %JAVA_HOME%injava %JAVA_VM% %MEM_ARGS% -Dweblogic.threadpool.MinPoolSize=80 -Dweblogic.threadpool.MaxPoolSize=80 -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%serverlibweblogic.policy %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%  
  4.     %JAVA_HOME%injava %JAVA_VM% %MEM_ARGS% -Dweblogic.threadpool.MinPoolSize=80 -Dweblogic.threadpool.MaxPoolSize=80 -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%serverlibweblogic.policy %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%  
  5. else (  
  6.     echo Redirecting output from WLS window to %WLS_REDIRECT_LOG%  
  7.     %JAVA_HOME%injava %JAVA_VM% %MEM_ARGS% -Dweblogic.threadpool.MinPoolSize=80 -Dweblogic.threadpool.MaxPoolSize=80 -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%serverlibweblogic.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,查看线程情况,如下图所示: 
WebLogic11g-常用运维操作第5张
已经明显看到线程总数以及活动、空闲线程数量了。 
一般在运维过程中,经常会查看这个界面,以实时掌握当前服务器的负载情况。 

3、日志配置: 
默认情况下,weblogic的相关日志的存放位置是: 
weblogic11user_projectsdomainsexampleserversAdminServerlogs 
这个日志文件夹里面主要包括两种日志 
AdminServer的日志:AdminServer.log(weblogic启动过程中打印出来的日志) 
Http的日志:access.log(http请求的日志) 

web应用的日志存放位置是: 
weblogic11user_projectsdomainsexamplelogs 
这里主要就是web应用里面输出的日志文件了 

如果想配置日志,怎么做呢? 
登录domain的console,然后依次选择【环境-》服务器-》AdminServer-》日志】,如下图所示(包括两类日志的配置): 
WebLogic11g-常用运维操作第6张
WebLogic11g-常用运维操作第7张
看这个截图,是不是觉得weblogic的console很好很强大? 

4、端口配置(第一篇挪过来的,放在这里比较合适): 
WebLogic11g-常用运维操作第8张
如图所示,依次选择【环境-》服务器-》AdminServer-》配置-》一般信息-》监听端口】,修改7001为其它的端口,并且点“保存”按钮即可完成。 
也可以在weblogic11user_projectsdomainsexampleconfigconfig.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版本有区别) 
weblogic11user_projectsdomainsexampleserversAdminServersecurity 
首先修改boot.properties,如下: 
Java代码  收藏代码
  1. username=weblogic  
  2. password=22222222  

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

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

免责声明:文章转载自《WebLogic11g-常用运维操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#的dll被其他程序调用时,获取此dll正确的物理路径K3 WISE常用数据表下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql版本

MySQL 的官网下载地址:http://www.mysql.com/downloads/ linux下下载和安装: MySQL最新版本8.0.11(截止2018年六月份)for Linux下载 wget -P --no-check-certificate /usr https://dev.mysql.com/get/Downloads/MySQL-8....

WPF 同一窗口内的多线程 UI(VisualTarget)

WPF 的 UI 逻辑只在同一个线程中,这是学习 WPF 开发中大家几乎都会学习到的经验。如果希望做不同线程的 UI,大家也会想到使用另一个窗口来实现,让每个窗口拥有自己的 UI 线程。然而,就不能让同一个窗口内部使用多个 UI 线程吗? 答案其实是——可以的!使用 VisualTarget 即可。 阅读本文将收获一份对 VisualTarget 的解读以...

pthread到Win32thread

一.什么是线程。       线程(thread)是为了提高系统内程序的并发(concurrency)执行程度而提出来的概念,它是比进程更小的能够独立运行的基本单位。在引入线程的系统中,线程是处理器调度(schedule)的基本单位,而传统的进程则只是资源分配的基本单位。同一进程中的线程共享这个进程的全部资源与地址空间,除此之外,线程基本上不拥有其他任何系...

Android:子线程到底能不能更新UI?

问题由来 我们知道,Andoird由于修改UI是线程不安全的,只能在主线程中修改。如果多个线程修改UI肯定会花屏,于是谷歌做了限制,只能在主线程中修改UI。但是有次我在子线程中修改了UI没弹异常。 先来看两段代码 //正常运行btn1.setOnClickListener(new View.OnClickListener() { @Override...

weblogic补丁下载与安装补丁的方法

转至:https://jingyan.baidu.com/article/642c9d34b3b493254a46f7e4.html weblogic应用安装后,后期可能发现版本存在漏洞,我们可以根据weblogic漏洞报告下载补丁,然后修复相应的漏洞,那么我们怎么下载和安装补丁呢? weblogic 10.3.6.0 Linux 步骤一:weblog...

004-核心技术-netty概述、传统IO、Reactor线程模型

一、概述 1.1、原生NIO存在的问题   1)NIO的类库和API复杂,使用麻烦,需要熟练掌握Selector,ServerSocketChannel、SocketChannel、ByteBuffer等。   2)需要具备其他的额外技能,需要熟悉Java多线程编程,因为NIO涉及到Reactor模式,必须熟悉多线程和网络编程,才能写出高质量的NIO程序...