日常管理WebLogic Platform 8.1 永不过期的开发版license
下载地址为:
使用方式:
替换
c:/bea
目录下的这个文件,这样就可以使
WebLogic Platform
用不过期
原文地址:
如何远程启动WebLogic服务?
用
telnet
远程控制服务器,远程启动
WEBLOGIC
服务,启动后关闭
telnet
,
WebLogic
服务也跟着停止,这是因为使用
telnet
启动的进程会随着
telnet
进程的关闭而关闭。所以我们可以使用一些
UNIX
下的命令来做到不关闭。
使用如下命令:
nohup startWeblogic.sh&
如果想要监控标准输出可以使用:
tail -f nohup.out
原文地址:
控制台左边的树结构看不见?
这是因为浏览器没有安装合适版本的
JRE
插件来支持
Applet
。
原文地址:
WebLogic 配置出来的各种域有什么区别?
请看这个链接中的
Table 16-1 Configuration Template Summary
,说的很明白
http://e-docs.bea.com/platform/docs81/confgwiz/tempref.html
http://e-docs.bea.com/platform/docs81/confgwiz/tempref.html
Table 16-1 Configuration Template Summary
Template
|
Required WebLogic Platform Component
|
Filename
|
Description
|
WebLogic Server
|
medrec.jar
|
Creates the Avitek Medical Records domain outside the installed kit. This domain is a WebLogic Server sample application suite that concisely demonstrates all aspects of the J2EE platform.
| |
WebLogic Integration,
WebLogic Workshop,
WebLogic Server
|
wli.jar
|
Creates a domain that supports the development of WebLogic Integration solutions.
Note: To create a domain that supports the development of WebLogic Server Process Edition solutions, use the Basic WebLogic Integration Domain template. If you have an existing WebLogic Server-based domain, you can extend it to include the resources required for WebLogic Server Process Edition by using the WebLogic Integration Extension Template.
| |
WebLogic Platform (all components must be installed)
|
platform.jar
|
Creates a domain that supports the development of applications using all WebLogic Platform components.
| |
WebLogic Portal,
WebLogic Workshop,
WebLogic Server
|
wlp.jar
|
Creates a domain that supports the development of WebLogic Portal solutions.
| |
WebLogic Server
|
wls.jar
|
Creates a simple WebLogic Server domain without any sample applications.
| |
WebLogic Workshop,
WebLogic Server
|
wlw.jar
|
Creates a domain that supports the development of WebLogic Workshop solutions.
| |
WebLogic Server
|
examples.jar
|
Creates the WebLogic Server Examples domain outside the installed kit. This domain contains a collection of examples that illustrate best practices for coding individual J2EE APIs.
|
原文地址:
Too many open files错误的处理
在有些
Linux
下由于操作系统的限制,单一进程可以打开的文件数有限制,引起
WebLogic
报告错误,解决这问题需要编译内核并且调节一些限制参数。
在
Linux
内核
2.4.x
中需要修改源代码,然后重新编译内核才生效。编辑
Linux
内核源代码中的
include/linux/fs.h
文件,将
NR_FILE
由
8192
改为
65536
,将
NR_RESERVED_FILES
由
10
改为
128
。编辑
fs/inode.c
文件将
MAX_INODE
由
16384
改为
262144
。一般情况下,系统最大打开文件数比较合理的设置为每
4M
物理内存
256
,比如
256M
内存可以设为
16384
,而最大的使用的
i
节点的数目应该是最大打开文件数目的
3
倍到
4
倍。另外,对每个进程的设置:
ulimit -n 4096
将每个进程可以打开的文件数目加大到
4096
,缺省为
1024
ulimit -m 4096
限制每个进程使用的内存数。
原文地址:
Apache2和weblogic7实现虚拟主机
选择
apache2,
是因为目前
wls7
只支持
apache2
的结合
.
1.
首先,正确安装
apache2,
这里我们假设安装在
C:/apache group,
安装完毕,需要测试
apache2
是否支持动态加载模块功能,这样测试,到命令
提示符下运行
:
c:/>apache group/apache2/bin/apache -l
如果列出:
mod_so.c
则表示支持,然后将本篇文章附件中的
mod_wl_20.so
拷贝到
apache group/apache2/modules
下面,运行:
c:/>apache group/apache2/bin/apache -t
如果输出:
Syntax Ok
表示
WebLogic Server plug-in
安装成功。
2.
正确安装
weblogic7.0
。这里我们假设
wls7
的安装路径是:
c:/bea
。然后用域配置向导配置一个域,我们假设域
的名称为
amjn,
路径是
c:/bea/user_projects/amjn,
然后在
amjn
下面分别建立两个站点
web1,web2
,修改
c:/bea/user_projects/amjn/config.xml
文件,在
<Application Deployed="true" Name="DefaultWebApp"
Path="./applications" StagedTargets="" TwoPhase="false">
<WebAppComponent Name="DefaultWebApp" Targets="myserver" URI="DefaultWebApp"/>
</Application>
下面添加:
<Application Deployed="true" Name="web1" Path="./applications/web1"
StagedTargets="" TwoPhase="false">
<WebAppComponent Name="web1" URI="web1" VirtualHosts="web1_vh"/>
</Application>
<Application Deployed="true" Name="web2" Path="./applications/web2"
StagedTargets="" TwoPhase="false">
<WebAppComponent Name="web2" Targets="myserver" URI="web2" VirtualHosts="web2_vh"/>
</Application>
在文件最下面的
</Domain>
的上面添加
<VirtualHost DefaultWebApp="web1" Name="web1_vh" Targets="myserver" VirtualHostNames="www.web1.com"/>
<VirtualHost DefaultWebApp="web2" Name="web2_vh" Targets="myserver" VirtualHostNames="www.web2.com"/>
,
然后重新启动运行
/amjn/startWebLogic.cmd,
一定要运行正常。到这里,
weblogic
算是配置完成了。
3.
现在开始配置
apache
多个虚拟主机,首先我们先打开
c:/winnt/system32/drivers/etc/hosts
文件,在其中添加:
10.1.3
.30 www.web1.com
10.1.3
.30 www.web2.com
这里面的
10.1.3
.30
是你的
weblogic
服务器绑定的
ip,
然后打开
apache2/conf/httpd.conf
文件,在
174
行,注意是
174
行加入如下语句:
#WebLogic Server Proxy Settings-------
该行是
174
行
LoadModule weblogic_module modules/mod_wl_20.so
<IfModule mod_weblogic.c>
WebLogicHost www.synnex-china.com
WebLogicPort 7001
MatchExpression *.jsp
MatchExpression *.do
</IfModule>
然后修改
httpd.conf
文件中的
Listen:80
为
Listen:10.1.3.30:80,
在文件
section 3
部分添加
:
NameVirtualHost 10.1.3.30
<VirtualHost 10.1.3.30>
ServerName www.web1.com
DocumentRoot "c:/bea/user_projects/amjn/applications/web1"
ErrorLog logs/web1.com.log
</VirtualHost>
<VirtualHost 10.1.3.30>
ServerName www.web2.com
DocumentRoot "c:/bea/user_projects/amjn/applications/web2"
ErrorLog logs/web2.com.log
</VirtualHost>
启动
apache,
如果没有问题(可以通过
logs/error.log
查看),那就一切
ok
了
4.
现在你可以分别敲入
www.web1.com/index.jsp
,访问的将是
web1/index.jsp,
敲入
www.web2.com/index.jsp
访问的将是
web2/index.jsp
原文地址:
如何限制公网用户访问WebLogic的控制台呢?
我们的
weblogic
(版本
6.1
)应用部署在内部网上,通过防火墙映射到公网上,但公网用户通过键入域名:
www.xxx.com/console
,就可进入
weblogic
的登陆页面,用户可猜测管理员的密码,如何屏蔽公网用户对
weblogic
控制台的访问呢?
方法
1
:
在控制台上点击左边的你那个
domain
,将
Console Enabled
这个选项去掉,这样就完全不能使用
console
了
方法
2
:
将
“console”
改名,改
“Console Context Path”
的
“console”
为一个希奇古怪的名字就可以了
方法
3
:
不要给
WebLogic
公网
ip
,通过一个有公网
ip
的
apache
等
proxy
来访问
WebLogic
方法
4
:
启动
Administration Port
方法
5
:
应用不发布在
Admin Server
上,
Admin Serve
在外网不可见
原文地址:
开机自动启动oracle和weblogic
我的机器是
5L
,
oracle9i
,
weblogic6.1
,
HTTPServer
由于给别人装的机器,对方水平有限,为了省心,还是让系统起来自动运行各项应用比较好:)
首先自动启动 oracle9i , 9i 装在 oracle 文件系统下,在 /oracle 下建立文件 startdb ,
文件内容
echo "begin to start oracle"
lsnrctl start
sqlplus /nolog <<EOF
connect /as sysdba
startup
exit
exit
echo "oracle have started"
给 startdb 执行权限
自动关闭 oracle9i ,在 /oracle 下建立文件 stopdb
sqlplus /nolog <<EOF
connect /as sysdba
shutdown immediate
好了启动和关闭 oracle 脚本完成还要加到系统的启动和关闭文件里,另外还要在启动 oracle 后启动 weblogic
在 /etc 下建立文件 rc.startdb ,脚本如下
su - oracle "-c /oracle/startdb" #启动 oracle
cd /weblogic/wlserver6.1/config/mydomain #转到 weblogic 启动目录,必须
./startWebLogic.sh #启动 weblogic
给文件执行权限
注意由于 weblogic 在启动后如果用户退出 telnet 就自动关闭,所以要把 weblogic 放在后台执行,所以在 startWebLogic.sh 文件中启动 weblogic 的命令行改为可以在后台运行,用 nohup (启动命令行) >/home/weblogic.log &
把 weblogic 的运行信息存到 /home/weblogic.log 文件中
下面要把启动信息放到 inittab 中,加入一行
startdb:2345678:wait:/etc/rc.startdb
这样系统启动后会自动启动 oracle9i
系统关机自动关闭 oracle9i
在 /etc 下建立脚本文件 rc.stopdb
su - oracle "-c /oracle/stopdb"
给执行权限
由于 5L 中安装完成后没有 /etc/rc.shutdown 文件,需要手工创建一个
内容如下
#!/bin/ksh
rc.stopdb
给执行权限
这样当系统关机时会自动寻找 rc.shutdown 并执行,系统可以自动关闭 oracle9i
当然可以把一些命令行直接写入 inittab 或 rc.shutdown 中,看自己的喜好了:)
由于给别人装的机器,对方水平有限,为了省心,还是让系统起来自动运行各项应用比较好:)
首先自动启动 oracle9i , 9i 装在 oracle 文件系统下,在 /oracle 下建立文件 startdb ,
文件内容
echo "begin to start oracle"
lsnrctl start
sqlplus /nolog <<EOF
connect /as sysdba
startup
exit
exit
echo "oracle have started"
给 startdb 执行权限
自动关闭 oracle9i ,在 /oracle 下建立文件 stopdb
sqlplus /nolog <<EOF
connect /as sysdba
shutdown immediate
好了启动和关闭 oracle 脚本完成还要加到系统的启动和关闭文件里,另外还要在启动 oracle 后启动 weblogic
在 /etc 下建立文件 rc.startdb ,脚本如下
su - oracle "-c /oracle/startdb" #启动 oracle
cd /weblogic/wlserver6.1/config/mydomain #转到 weblogic 启动目录,必须
./startWebLogic.sh #启动 weblogic
给文件执行权限
注意由于 weblogic 在启动后如果用户退出 telnet 就自动关闭,所以要把 weblogic 放在后台执行,所以在 startWebLogic.sh 文件中启动 weblogic 的命令行改为可以在后台运行,用 nohup (启动命令行) >/home/weblogic.log &
把 weblogic 的运行信息存到 /home/weblogic.log 文件中
下面要把启动信息放到 inittab 中,加入一行
startdb:2345678:wait:/etc/rc.startdb
这样系统启动后会自动启动 oracle9i
系统关机自动关闭 oracle9i
在 /etc 下建立脚本文件 rc.stopdb
su - oracle "-c /oracle/stopdb"
给执行权限
由于 5L 中安装完成后没有 /etc/rc.shutdown 文件,需要手工创建一个
内容如下
#!/bin/ksh
rc.stopdb
给执行权限
这样当系统关机时会自动寻找 rc.shutdown 并执行,系统可以自动关闭 oracle9i
当然可以把一些命令行直接写入 inittab 或 rc.shutdown 中,看自己的喜好了:)
原文地址:
如何测试虚拟主机
在本机配置了虚拟主机,没有
DNS Server
,如何进行测试呢?
C:/WINNT/system32/drivers/etc/hosts
加入一行:
127.0.0.1 test.project.com.cn
原文地址:
WebLogic的Startup Class应该放在那个目录里
WebLogic
在启动的时候可以指定
Startup Class
,它在任何一个应用的类被加载之前调用,所以应该加到启动时的系统类路径下,可以修改
startWebLogic.cmd
或
commEnv.cmd
文件相应的
CLASSPATH
部分,加入
Startup Class
的类路径。
原文地址:
如何停止WebLogic服务?
直接杀死进程不是标准的做法,应该使用如下
Java
命令:
java -classpath weblogic.jar;%CLASSPATH% weblogic.Admin -url <host_name>:<port_number> SHUTDOWN -username <system_user_name> -password <system_user_password>
例如:
java -classpath weblogic.jar;%CLASSPATH% weblogic.Admin -url 192.168.0.1:7001
SHUTDOWN -username system -password password
其中如果
SHUTDOWN
管不掉,可以使用
FORCESHUTDOWN
代替
SHUTDOWN
来强制关掉服务器。
另外也可以直接使用
stopWebLogic.cmd
。
原文地址:
应用管理JNDI里面加和不加java:comp/env/前缀有什么区别?
java:comp/env
是标准的
J2EE
环境查找规则,使用这种方式必须做一次环境名到
JNDI
名的映射,这种隔离使得在写程序时不必关注真正的
JNDI
名字,其实说白了跟把
JNDI
名放到配置文件里是一样的,用法如下:
如把
java:comp/env/my/datasource
映射到
my.ora.dataource
web.xml
<resource-ref>
<res-ref-name>my/datasource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>CONTAINER<res-auth>
</resource-ref>
weblogic.xml
<reference-descriptor>
<resource-description>
<res-ref-name>my/datasource</res-ref-name>
<jndi-name>my.ora.dataource</jndi-name>
web.xml
<resource-ref>
<res-ref-name>my/datasource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>CONTAINER<res-auth>
</resource-ref>
weblogic.xml
<reference-descriptor>
<resource-description>
<res-ref-name>my/datasource</res-ref-name>
<jndi-name>my.ora.dataource</jndi-name>
………………….
而不使用这个前缀的,其实就是直接的
JNDI
名
原文地址:
如何更改默认打开主页?如何设置虚拟目录?
设置默认打开主页:
web.xml
增加
<welcome-file-list>
<welcome-file>yourfile</welcome-file>
</welcome-file-list>
<welcome-file-list>
<welcome-file>yourfile</welcome-file>
</welcome-file-list>
虚拟目录的配置方法:
在 weblogic.xml 中添加如下的类似配置
<virtual-directory-mapping>
<local-path>c:/usr/common_jsps.jar</local-path>
<url-pattern>*.jsp</url-pattern>
</virtual-directory-mapping>
在 weblogic.xml 中添加如下的类似配置
<virtual-directory-mapping>
<local-path>c:/usr/common_jsps.jar</local-path>
<url-pattern>*.jsp</url-pattern>
</virtual-directory-mapping>
原文地址:
WebLogic Builder使用简介
在
DEV2DEV
论坛上有网友会问类似于这样的问题
“
如何为
EJB
写那些部署描述文件如
ejb-jar.xml
以及
WebLogic-ejb- jar.xml
呢?
”
,对初学
EJB
的朋友来说,是一个比较困难的问题,如果不想手写的话,可以采用
BEA
提供的
WebLogic Builder
工具或是
JBuilder
等工具来自动生成。本文就
WebLogic Builder
的使用进行一个简单的介绍,权且当一个入门的指引,同时欢迎各位朋友就你的经验对这篇文章进行补充完善。使用步骤如下:
一、准备。
例子就用 WebLogic 安装完后的 example 中 statelessSession EJB 的例子,给个路径参考
C: /bea/weblogic700/samples/server/src/examples/ejb20/basic/statelessSession 将这个目录下的 .java 文件全部拷贝出来放到一个临时目录中比如 C:/temp/WebLogic_Builder_Test 来做这个实验,拷贝的文件有 Client.java , Trader.java , TraderBean.java , TradeResult.java , TraderHome.java 。
例子就用 WebLogic 安装完后的 example 中 statelessSession EJB 的例子,给个路径参考
C: /bea/weblogic700/samples/server/src/examples/ejb20/basic/statelessSession 将这个目录下的 .java 文件全部拷贝出来放到一个临时目录中比如 C:/temp/WebLogic_Builder_Test 来做这个实验,拷贝的文件有 Client.java , Trader.java , TraderBean.java , TradeResult.java , TraderHome.java 。
二、对
java
原文件进行编译
命令行中进入 C:/temp/WebLogic_Builder_Test ,键入 javac -d . *.java ,
命令行中进入 C:/temp/WebLogic_Builder_Test ,键入 javac -d . *.java ,
三、打
jar
包
命令行中, C:/temp/WebLogic_Builder_Test 目录下,键入 jar -cvf test.jar *.* ,生成 test.jar 包。
命令行中, C:/temp/WebLogic_Builder_Test 目录下,键入 jar -cvf test.jar *.* ,生成 test.jar 包。
四、打开
WebLogic Builder
工具,选择并打开我们在步骤三中创建的
test.jar
包,这时
WebLogic Builder
给出一个提示
“Unable to locate deployment descriptors. C:/temp/WebLogic_Builder_Test/test.jar. Would you like new descriptors created for you?”
,这意思明白了吧,
WebLogic Builder
要为你创建基本的部署描述符文件了,当然点击是咯,然后选择保存,这样你的
C:/temp/WebLogic_Builder_Test
目录下的
test.jar
文件就有那两个部署描述文件了,可以通过
WebLogic Builder
工具中的
View-->XML Source
进行查看。
恭喜你,对
WebLogic Builder
这个工具的使用入门了,至于该工具的其它的一些使用功能比如
BEAN
属性配置、
server
部署什么的,就请大家自己研究吧!
^Q^
原文地址:
WebLogic部署应用的方式简明列表
1
、
WebLogic
中应用可分三种,分别对应不同的描述文件及扩展名或目录结构:
(
1
)
*.JAR:
是
EJB
的压缩包
(
有
3
个描述文件
ejb-jar.xml
,
WEBLOGIC*.0-ejb-jar.xml
,
WEBLOGIC*.0-cmp-rdbms-jar.xml)
(
2
)
*.WAR:
是只包含
JSP
和
SERVLET
的
WEB APPLICATION
压缩包
(
有
2
个描述文件
web.xml
,
weblogic.xml)
(
3
)
*.EAR:
是包含
EJB
和
WEB APPLICATION
的
J2EE Enterprise Application
压缩包
(
有
1
个描述文件,
application.xml)
注意:它们不能混用,如
WEB APPLICATOIN
不能打包成
.EAR
文件。
2
、
WebLogic
的应用用两种发布方式
:
(
1
)以目录形式存放在
WEBLOGIC
的
APPLICATIONS
目录下,适用于开发阶段
(
2
)以一个压缩包形式存放在
WEBLOGIC
的
APPLICATIONS
目录下,适用于运行阶段,可用
JAR
打包,如
D:/test >jar cf testwar.war *
把
TEST
目录下的所有文件打包成一个
testwar.war
文件。
3
、
WebLogic
应用的布置方式有
2
种
(
1
)静态布置
:
即把应用在
CONFIG.XML
中登记,可通过
WEBLOGIC
的控制台进行添加,
WEBLOGIC
会自动把该应用对应的压缩包拷到
APPLICAITONS
目录下,如果对该应用修改,需要重新布置才行。
(
2
)动态布置
:
没有在
config.xml
中登记,可直接把压缩包或目录拷到
APPLICATIONS
目录下,
WebLogic
会自动检测到
. WebLogic
每次启动时会自动对
APPLICATIONS
目录下没有进行静态布置的应用,进行动态布置。
4
、一个例子
:
如果一个应用中有
EJB
,
JSP
,
SERVLET
,其布置步骤如下
:
(
1
)生成
EJB
的
JAR
文件,最好一个
JAR
文件对应一个
EJB
(
2
)生成
WEB APPLICATION
的
WAR
文件,在
web.xml
,
weblogic.xml
中登记,配置
SERVLET
,
JSP
等。
(
3
)创建一个
application.xml
文件,设置该应用的属性
.
把
application.xml
,
*.JAR
,
*.WAR
,打包成一个
*.EAR
(
4
)
WebLogic
的控制台中登记该应用或把该
EAR
文件拷到
application
目录下。到此处就完成了部署。
原文地址:
WebLogic如何设置session超时时间
1 web.xml
设置
WEB
应用程序描述符
web.xml
里的
<session-timeout>
元素。这个值以分钟为
单位,并覆盖 weblogic.xml 中的 TimeoutSecs 属性
<session-config>
<session-timeout>54</session-timeout>
</session-config>
此例表示 Session 将在 54 分钟后过期
当 <session-timeout> 设置为- 2 ,表示将使用在 weblogic.xml 中设置的
TimeoutSecs 这个属性值。
当 <session-timeout> 设置为- 1 ,表示 Session 将永不过期,而忽略在
weblogic.xml 中设置的 TimeoutSecs 属性值。
该属性值可以通过 console 控制台来设置
2 weblogic.xml
单位,并覆盖 weblogic.xml 中的 TimeoutSecs 属性
<session-config>
<session-timeout>54</session-timeout>
</session-config>
此例表示 Session 将在 54 分钟后过期
当 <session-timeout> 设置为- 2 ,表示将使用在 weblogic.xml 中设置的
TimeoutSecs 这个属性值。
当 <session-timeout> 设置为- 1 ,表示 Session 将永不过期,而忽略在
weblogic.xml 中设置的 TimeoutSecs 属性值。
该属性值可以通过 console 控制台来设置
2 weblogic.xml
设置
WebLogic
特有部署描述符
weblogic.xml
的
<session-descriptor>
元素的
TimeoutSecs 属性。这个值以秒为单位
<session-descriptor>
<session-param>
<param-name>TimeoutSecs</param-name>
<param-value>3600</param-value>
</session-param>
</session-descriptor>
默认值是 3600 秒
TimeoutSecs 属性。这个值以秒为单位
<session-descriptor>
<session-param>
<param-name>TimeoutSecs</param-name>
<param-value>3600</param-value>
</session-param>
</session-descriptor>
默认值是 3600 秒
原文地址:
监控调优理解JVM的垃圾收集机制
简述
GC
即垃圾收集机制是指
JVM
用于释放那些不再使用的对象所占用的内存。
java
语言并不要求
JVM
有
GC
,也没有规定
GC
如何工作。不过常用的
JVM
都有
GC
,而且大多数
GC
都使用类似的算法管理内存和执行收集操作。
在充分理解了垃圾收集算法和执行过程后,才能有效的优化它的性能。有些垃圾收集专用于特殊的应用程序。比如,实时应用程序主要是为了避免垃圾收集中断,而大多数
OLTP
应用程序则注重整体效率。理解了应用程序的工作负荷和
JVM
支持的垃圾收集算法,便可以进行优化配置垃圾收集器。
垃圾收集的目的在于清除不再使用的对象。
GC
通过确定对象是否被活动对象引用来确定是否收集该对象。
GC
首先要判断该对象时候可以收集。两种常用的方法是引用计数和对象引用遍历。引用计数存储对特定对象的所有引用数,也就是说,当应用程序创建引用以及引用超出范围时,
JVM
必须适当增减引用数。当某对象的引用数为
0
时,便可以进行垃圾收集。
早期的
JVM
使用引用计数,现在大多数
JVM
采用对象引用遍历。对象引用遍历从一组对象开始,沿着整个对象图上的每条链接,递归确定可到达(
reachable
)的对象。如果某对象不能从这些根对象的一个(至少一个)到达,则将它作为垃圾收集。在对象遍历阶段,
GC
必须记住哪些对象可以到达,以便删除不可到达的对象,这称为标记(
marking
)对象。
下一步,
GC
要删除不可到达的对象。删除时,有些
GC
只是简单的扫描堆栈,删除未标记的对象,并释放它们的内存以生成新的对象,这叫做清除(
sweeping
)。这种方法的问题在于内存会分成好多小段,而它们不足以用于新的对象,但是组合起来却很大。因此,许多
GC
可以重新组织内存中的对象,并进行压缩(
compact
),形成可利用的空间。
为此,
GC
需要停止其他的活动活动。这种方法意味着所有与应用程序相关的工作停止,只有
GC
运行。结果,在响应期间增减了许多混杂请求。另外,更复杂的
GC
不断增加或同时运行以减少或者清除应用程序的中断。有的
GC
使用单线程完成这项工作,有的则采用多线程以增加效率。
下面列举一些JVM使用的GC
标记-清除收集器:这种收集器首先遍历对象图并标记可到达的对象,然后扫描堆栈以寻找未标记对象并释放它们的内存。这种收集器一般使用单线程工作并停止其他操作。
标记-压缩收集器:有时也叫标记-清除-压缩收集器,与标记-清除收集器有相同的标记阶段。在第二阶段,则把标记对象复制到堆栈的新域中以便压缩堆栈。这种收集器也停止其他操作。
复制收集器这种收集器将堆栈分为两个域,常称为半空间。每次仅使用一半的空间,
JVM
生成的新对象则放在另一半空间中。
GC
运行时,它把可到达对象复制到另一半空间,从而压缩了堆栈。这种方法适用于短生存期的对象,持续复制长生存期的对象则导致效率降低。
增量收集器增量收集器把堆栈分为多个域,每次仅从一个域收集垃圾。这会造成较小的应用程序中断。有多种方法可以定义实际的
GC
。
分代收集器
这种收集器把堆栈分为两个或多个域,用以存放不同寿命的对象。
JVM
生成的新对象一般放在其中的某个域中。过一段时间,继续存在的对象将获得使用期并转入更长寿命的域中。分代收集器对不同的域使用不同的算法以优化性能。
并发收集器
并发收集器与应用程序同时运行。这些收集器在某点上一般都不得不停止其他操作以完成特定的任务,但是因为其他应用程序可进行其他的后台操作,所以中断其他处理的实际时间大大降低。
并行收集器
并行收集器使用某种传统的算法并使用多线程并行的执行它们的工作。在多
cpu
机器上使用多线程技术可以显著的提高
java
应用程序的可扩展性。
Sun Hotspot 1.4.1 JVM堆大小的调整
Sun Hotspot 1.4.1
使用分代收集器,它把堆分为三个主要的域:新域、旧域以及永久域。
JVM
生成的所有新对象放在新域中。一旦对象经历了一定数量的垃圾收集循环后,便获得使用期并进入旧域。在永久域中
JVM
则存储
class
和
method
对象。就配置而言,永久域是一个独立域并且不认为是堆的一部分。下面介绍如何控制这些域的大小。
可使用
-Xms
和
-Xmx
控制整个堆的原始大小或最大值。比如,下面的命令是把初始大小设置为
128M
:
java –Xms128m –Xmx256m
为控制新域的大小,可使用
-XX:NewRatio
设置新域在堆中所占的比例。比如下面的命令把整个堆设置成
128m
,新域比率设置成
3
,即新域与旧域比例为
1
:
3
,新域为堆的
1/4
或
32M
:
java –Xms128m –Xmx128m –XX:NewRatio =3
可使用
-XX:NewSize
和
-XX:MaxNewsize
设置新域的初始值和最大值。比如,下面的命令把新域的初始值和最大值设置成
64m
:
java –Xms256m –Xmx256m –Xmn64m
一般不把永久域当作堆的一部分。永久域默认大小为
4m
。运行程序时,
JVM
会调整永久域的大小以满足需要。每次调整时,
JVM
会对堆进行一次完全的垃圾收集。使用
-XX:MaxPerSize
标志来增加永久域搭大小。在
WebLogic Server
应用程序加载较多类时,经常需要增加永久域的最大值。当
JVM
加载类时,永久域中的对象急剧增加,从而使
JVM
不断调整永久域大小。为了避免调整,可使用
-XX:PerSize
标志设置初始值。比如,下面把永久域初始值设置成
32m
,最大值设置成
64m
。
java –Xms512m –Xmx512m –Xmn128m –XX:PermSize=32m –XX:MaxPermSize=64m
默认状态下,
HotSpot
在新域中使用复制收集器。该域一般分为三个部分。第一部分为
Eden
,用于生成新的对象。另两部分称为救助空间,当
Eden
充满时,收集器停止应用程序,把所有可到达对象复制到当前的
from
救助空间,一旦当前的
from
救助空间充满,收集器则把可到达对象复制到当前的
to
救助空间。
From
和
to
救助空间互换角色。维持活动的对象将在救助空间不断复制,直到它们获得使用期并转入旧域。
使用
-XX:SurvivorRatio
可控制新域子空间的大小。同
NewRation
一样,
SurvivorRation
规定某救助域与
Eden
空间的比值。比如,以下命令把新域设置成
64m
,
Eden
占
32m
,每个救助域各占
16m
:
java –Xms256m –Xmx256m –Xmn64m –XX:SurvivorRation=2
如前所述,默认状态下
HotSpot
对新域使用复制收集器,对旧域使用标记-清除-压缩收集器。在新域中使用复制收集器有很多意义,因为应用程序生成的大部分对象是短寿命的。理想状态下,所有过渡对象在移出
Eden
空间时将被收集。如果能够这样的话,并且移出
Eden
空间的对象是长寿命的,那么理论上可以立即把它们移进旧域,避免在救助空间反复复制。
但是,应用程序不能适合这种理想状态,因为它们有一小部分中长寿命的对象。最好是保持这些中长寿命的对象并放在新域中,因为复制小部分的对象总比压缩旧域廉价。
但是,应用程序不能适合这种理想状态,因为它们有一小部分中长寿命的对象。最好是保持这些中长寿命的对象并放在新域中,因为复制小部分的对象总比压缩旧域廉价。
为控制新域中对象的复制,可用
-XX:TargetSurvivorRatio
控制救助空间的比例。该值是一个百分比,默认值是
50
。当较大的堆栈使用较低的
sruvivorratio
时,应增加该值到
80
至
90
,以更好利用救助空间。
用
-XX:maxtenuring threshold
可控制上限。为放置所有的复制全部发生以及希望对象从
eden
扩展到旧域,可以把
MaxTenuring Threshold
设置成
0
。设置完成后,实际上就不再使用救助空间了,因此应把
SurvivorRatio
设成最大值以最大化
Eden
空间,设置如下:
java … -XX:MaxTenuringThreshold=0 –XX:SurvivorRatio
=
5000
从JVM中获取信息以助于调整方案
-verbose.gc
开关可显示
GC
的操作内容。打开它,可以显示最忙和最空闲收集行为发生的时间、收集前后的内存大小、收集需要的时间等。
打开
-xx:+ printgcdetails
开关,可以详细了解
GC
中的变化。
打开
-XX: + PrintGCTimeStamps
开关,可以了解这些垃圾收集发生的时间,自
JVM
启动以后以秒计量。
最后,通过
-xx: + PrintHeapAtGC
开关了解堆的更详细的信息。
为了了解新域的情况,可以通过
-XX:=PrintTenuringDistribution
开关了解获得使用期的对象权。
BEA JRockit JVM的使用
Bea WebLogic 8.1
使用的新的
JVM
用于
Intel
平台。在
Bea
安装完毕的目录下可以看到有一个类似于
jrockit81sp1_141_03
的文件夹。这就是
Bea
新
JVM
所在目录。
不同于
HotSpot
把
Java
字节码编译成本地码,它预先编译成类。
JRockit
还提供了更细致的功能用以观察
JVM
的运行状态,主要是独立的
GUI
控制台或者
WebLogic Server
控制台。
Bea JRockit JVM
支持
4
种垃圾收集器:
分代复制收集器:它与默认的分代收集器工作策略类似。对象在新域中分配,即
JRockit
文档中的
nursery
。这种收集器最适合单
CPU
机上小型堆操作。
单空间并发收集器:该收集器使用完整堆,并与背景线程共同工作。尽管这种收集器可以消除中断,但是收集器需花费较长的时间寻找死对象,而且处理应用程序时收集器经常运行。如果处理器不能应付应用程序产生的垃圾,它会中断应用程序并关闭收集。
分代并发收集器:这种收集器在护理域使用排它复制收集器,在旧域中则使用并发收集器。由于它比单空间共同发生收集器中断频繁,因此它需要较少的内存,应用程序的运行效率也较高,注意,过小的护理域可以导致大量的临时对象被扩展到旧域中。这会造成收集器超负荷运作,甚至采用排它性工作方式完成收集。
并行收集器:该收集器也停止其他进程的工作,但使用多线程以加速收集进程。尽管它比其他的收集器易于引起长时间的中断,但一般能更好的利用内存,程序效率也较高。
默认状态下,
JRockit
使用分代并发收集器。要改变收集器,可使用
-Xgc:<gc_name>
,对应四个收集器分别为
gencopy
,
singlecon
,
gencon
以及
parallel
。可使用
-Xms
和
-Xmx
设置堆的初始大小和最大值。要设置护理域,则使用
-Xns:
java –jrockit –Xms512m –Xmx512m –Xgc:gencon –Xns128m…
尽管
JRockit
支持
-verbose:gc
开关,但它输出的信息会因收集器的不同而异。
JRockit
还支持
memory
、
load
和
codegen
的输出。
原文地址:
WebLogic Server Hang产生的一般原因
系统内存不足
·
系统
CPU
忙,系统文件描述符数目不足,线程死锁,
JVM
有
GC
方面的
bug
,对于一些特定的情况可以使用
truss
命令跟踪系统调用来进行分析。可以打开
JVM
的
gc log,
在
java
命令行上加上
-verbose:gc,GC
的
log
输出在
java
进程的标准输出里
,
在
hp
的
JVM
上,可以通过在
java
命令行上加
-Xverbosegc:file=gcfilename
来将
gc log
写到指定的文件其输出类似:
[GC 15639K->13700K(65280K), 0.0068439 secs]
。解决办法是调整
JVM
的内存设置和
gc
算法
,
升级
jvm
或是
os patch
。
·
出现
OutOfMemoryError
或是观察到内存吃紧,操作系统本身的剩余内存,通过
top
或是
vmstat
观察,操作系统的
swap
区,
Swap
区太小可能导致编译
jsp
时报
“Not enough space”
的错,操作系统
kernel
参数中
maxsize
的大小,如果观测到数据库连接池里的连接泄漏,极可能是内存泄漏的先兆
·
JVM
的
heap
区大小,通过
java
命令行中的
-Xms,-Xmx
指定,建议最小值和最大值设成一样,可以通过
WebLogic console
上
server/monitor/performance
来观察其使用情况,建议生产系统最
256M
,一般情况下可以设置为系统剩余物理内存的
80
%,
Heap size
太大在一些
JVM
上会有问题,对于
sun
和
hp
的
JVM
,
permanent size
太小也会出
OutOfMemoryError
,在
java
命令行上加
-XX:MaxPermSize=128m
·
尽量减少内存消耗,
Session
中不要放大的数据,并尽量在不再需要的时候
remove
掉,如果可以调整
session timeout
到较小的值,避免在
J2EE server
端应用里边调用
AWT/swing
作图,调整
ejb
的
cache/pool
设置
·
内存泄漏,可以通过
WebLogic console
来观察
JVM
的
heap memory
使用情况来获知是否有内存泄漏情况,采用第三方辅助工具来获取更详细信息,如
Jprobe/OptimizeIt
;有可能是
weblogic
的
bug
,但绝大部分情况是由用户的应用引起的,最常见的代码问题是数据库连接没正常关闭。
系统CPU忙
·
如果用户访问量很大,
CPU
占用很高(
user
态)并不是异常
·
如果是
kernel
态很多,需要
OS
厂商调整操作系统
·
采用
top
找到占用
CPU
很多的进程,如果是非
weblogic
进程,应该考虑将其移到另外的
server
上运行,如果是运行
weblogic
的
java
进程,通过做
thread dump
(详细信息后边会介绍到)来确认是那段代码导致了这么高的
CPU
使用(也有可能是
os/jvm
本身不正常)
系统文件描述符数目不足
Log
中有
“too many open files”
的错误,表示达到了系统对一个进程能同时打开的文件数的限制:
·
ulimit –a –H
可以查看当前限制
·
ulimit –n number
可以来更改当前环境的设置,建议至少设到
4096
·
Solaris
上可以通过
/usr/proc/bin/pfiles pid
来查看指定进程的限制和当前使用的
file descriptor
数目
·
Solaris
上
root
用户可以通过
/usr/proc/bin/plimit -n soft,hard pid
来动态更改进程的文件描述符的限制
线程死锁
对于原因不明的
hang
或是响应慢,最根本的方法就是获取
thread dump
信息,对于
windows
系统,在运行
java
的窗口按
Ctrl
+
Break
,对于
UNIX
系统,首先用
ps
找到运行
weblogic
的
java
进程的
pid
,然后执行
kill –3 pid
,
JVM
将负责将所有
java
进程的状态、执行堆栈
dump
到其标准输出,为了方便获取
thread dump
信息,在
weblogic
启动的时候,最好将其标准输出重定向到一个文件,为了反映线程状态的动态变化,需要接连多次做
thread dump
,每次间隔
10-20s
。
对于
thread dump
信息,主要关注的是线程的状态和其执行堆栈,线程的状态一般为三类
·
Runnable
(
R
):当前可以运行的线程
·
Waiting on monitor
(
CW
):线程主动
wait
·
Waiting for monitor entry
(
MW
):线程等锁
一般关注的都是第一和第三种状态的线程
CPU 很忙则关注 runnable 的线程
CPU 闲则关注 waiting for monitor entry 的线程
一种典型的死锁是由于在 server 端应用(比如 servlet )中请求由同一 weblogic 实例 serve 的资源,解决办法就是将该 servlet 放到另外的执行队列里去执行。
CPU 很忙则关注 runnable 的线程
CPU 闲则关注 waiting for monitor entry 的线程
一种典型的死锁是由于在 server 端应用(比如 servlet )中请求由同一 weblogic 实例 serve 的资源,解决办法就是将该 servlet 放到另外的执行队列里去执行。
原文地址:
"指定的网络名不再可用"错误
wl6.1
和
wl7.0
部署应用后都在后台抛出
“java.net.SocketException: ReadFile failed:
指定的网络名不再可用
”,
这不是一个致命的错误,只会在中文
Window
上。如
Hilaser
和
linstone
提出了办法:
如果你是自己随便玩玩,将你的
JDK
升级到
jdk1.3.1_06
·
用
wls6.1 sp4
,到如下位置下载
http://commerce.bea.com/SoftwareProductDetailWLS?SWName=WebLogic+Server+Evaluation+Software&SWVersion=Version+6.1+SP4&SWPlatform=Microsoft+Windows+NT%2F2000
http://commerce.bea.com/SoftwareProductDetailWLS?SWName=WebLogic+Server+Evaluation+Software&SWVersion=Version+6.1+SP4&SWPlatform=Microsoft+Windows+NT%2F2000
·
运行
cmd
,打开窗口菜单(点击左上角窗口图标),选择默认值,将默认代码页改为
437
。
原文地址:
集群配置
集群简明配置过程
在
wls7
中,集群的受管服务器无需使用相同的端口,这使在一个主机上实现集群成为可能。下面的例子是在一个主机(
172.30.94.60
)上的
wls7
里创建一个集群(
mycluster
)
DEMO
,包括管理服务器(
myserver:7001
)、集群(两个受管服务器
serverA: 8001
、
serverB:8003
)、代理服务器(
ProxyServer:80
)。应用
WebApp
是部署在集群上的
web
应用,而
DefaultWebApp
是部署在代理服务器上用来代理集群应用
WebApp
的。具体步骤如下:
1
.创建集群域
clusterdomainnew
,管理服务器
myserver
(
7001:7003
);
2
.创建
Machine
:
admin
(
myserver,ProxyServer
),
cluster(serverA,serverB)
;
3
.创建受管服务器
serverA(8001)
,
serverB(8003)
;
4
.创建集群
mycluster
;
Choose Servers for this Cluster: serverA
,
serverB
config.xml:
<Cluster ClusterAddress="172.30.94.60:8001,172.30.94.60:8003"
MulticastAddress="237.0.0.1" MulticastPort="7777" Name="mycluster"/>
5
.部署
WebApp
应用,
targets mucluster
;
6
.创建代理服务器
ProxyServer
(
80
),将
DefaultWebApptargets ProxyServer
;
7
.编辑
DefaultWebApp
应用,注册
HttpClusterServlet
:
<servlet>
<servlet-name>HttpClusterServlet</servlet-name>
<servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class>
<init-param>
<param-name>WebLogicCluster</param-name>
<param-value>172.30.94.60:8001:8002|172.30.94.60:8003:8004</param-value>
</init-param>
<init-param>
<param-name>DebugConfigInfo</param-name>
<param-value>ON</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>/</url-pattern></servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.jsp</url-pattern> </servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.htm</url-pattern> </servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
8
.重启
myserver
;
9
.启动
serverA
:
startManagedWeblogicserverAhttp://172.30.94.60:7001;
启动成功后,访问
http://172.30.94.60:8001/WebApp/
验证一下!
10.
启动
serverB
:
startManagedWeblogicserverBhttp://172.30.94.60:7001;
启动成功后,访问
http://172.30.94.60:8003/WebApp/
验证一下!
11.
启动
ProxyServer
:
startManagedWeblogic ProxyServerhttp://172.30.94.60:7001
。
访问
http://172.30.94.60/WebApp
,是不是大功告成了:)
原文地址:
WebLogic应用在集群环境下的一些基本知识
基本概念
1
.硬件的
cluster
和
WebLogic
的
cluster
不是一回事,硬件做的是冷备份,对用户的
session
,用户请求的负载均衡等的处理是做不到的,而且一般硬件的双机热备也不是时时的备份,而是间隔一段时间再将主机上的数据
copy
过来,而
WebLogic Server
的
cluster
就不是这样,其
session
的数据是时时的复制的,对不经常更改的
jndi
等的复制虽然也是定期完成的,但
update
的时间间隔很短
2
.
WebLogic Server
的
cluster
配置非常方便,请参考
dev2dev
学堂
如果你要对集群做扩展,操作也非常方便,你只需要启动一个指向这个集群的
Admin Server
的
managed server
就可以了,由这个集群中的唯一的
Admin Server
往这个
managed server
上部署应用
3 . http 状态会话复制就是 session 的复制,例如你登陆了系统,如果一个服务器坏了, cluster 会将你的请求转发集群中的另外一个 server ,由其继续处理你的这个请求,而不要重新登陆。
4 . EJB 集群中有状态,无状态 EJB 的意义和区别请看 J2EE 中 EJB 的相关知识
5 .对 EJB 的集群,也是非常简单的,直接把 EJB 应用 target 到 cluster 的 server 上!
6 .对 WebLogic Server 来说,它的 cluster 做 session 的 in memory 的时时复制,这适用于 web application 及 stateful session BEA 的 session 内容的复制
7 .对非 stateful 的 EJB , WebLogic Server 的 cluster 做其负载均衡及 failover 的工作( failover 只针对 EJB 的 stateless BEAN
3 . http 状态会话复制就是 session 的复制,例如你登陆了系统,如果一个服务器坏了, cluster 会将你的请求转发集群中的另外一个 server ,由其继续处理你的这个请求,而不要重新登陆。
4 . EJB 集群中有状态,无状态 EJB 的意义和区别请看 J2EE 中 EJB 的相关知识
5 .对 EJB 的集群,也是非常简单的,直接把 EJB 应用 target 到 cluster 的 server 上!
6 .对 WebLogic Server 来说,它的 cluster 做 session 的 in memory 的时时复制,这适用于 web application 及 stateful session BEA 的 session 内容的复制
7 .对非 stateful 的 EJB , WebLogic Server 的 cluster 做其负载均衡及 failover 的工作( failover 只针对 EJB 的 stateless BEAN
集群规划
在规划集群配置时,应该牢记以下关于网络环境与集群配置的限制。
1
.首先,集群中的
WebLogic
主机必须使用永久的静态
IP
地址。动态
IP
地址分配不能用于集群环境。如果服务器位于防火墙后面,而客户机位于防火墙外面,那么服务器必须有公共的静态
IP
地址,只有这样,客户端才能访问服务器。
2
.集群中的所有
WebLogic
服务器必须位于同一个局域网,并且必须是
IP
广播可到达的。
3
.集群中的所有
WebLogic
服务器必须使用相同的版本。配置集群中的服务器,使它们支持所提供的服务。对于使用了
JDBC
连接的
EJB
,所有部署了某
EJB
的服务器必须具有相同的部署与持久化配置。也就是说所有服务器都应该有相同的
JDBC
配置。所有部署了
servlet
的主机必须维护一组具有相同
ACL
的
servlet
。
如果客户端应用直接使用
JDBC
连接池,那么你必须为每个
WebLogic
服务器创建相同的连接池(并具有相同的
ACL
)。这意味着集群所使用的连接池应该可以在所有的机器上创建。例如,一台运行
WebLogic
的
NT
服务器配置了连接
Microsoft SQL Server
数据库的连接池,那么一个包含非
Windows
机器(即不支持
Microsoft SQL Server
连接的机器)的集群不能使用这个连接池。
其它配置细节可能会因不同的集群成员而不同。例如,一台
Solaris
服务器可以比一台小的
NT
工作站处理更多的登录请求。这种差异是可以接受的。因此,正如这里所给出的例子,对于那些与性能相关的属性,你可以根据每个集群成员的特点来配置不同的值,只要所有成员的服务配置相同即可。因此,集群中的
WebLogic
服务器在所有与
WebLogic
服务、类文件以及外部资源(例如数据库)相关的方面具有相同的配置。
服务器配置任务列表
可以通过管理控制台进行以下服务器配置:
·
Server
节点配置单独的服务器可以配置的属性包括名字:监听端口与
IP
地址。
·
Server
节点克隆一个服务器:克隆的服务器保存了原来服务器的属性值,你可以使用
Server
节点中的
Configuration
配置新服务器的名字。
·
使用管理控制台的
Server
节点来删除一个服务器:点击要删除的服务器的图标,将弹出一个删除服务器的确认对话框,点击对话框中的
Yes
按钮将删除服务器。
·
使用管理控制台的
Server
节点查看一个服务器的日志:点击要查看的服务器,点击
Monitoring
标签页,点击
View Server Log
连结,便可以在管理控制台的右窗格查看服务器日志。
·
使用管理控制台的
Server
节点查看一个服务器的
JNDI
树:点击所要查看的服务器,然后点击
Monitoring
标签页,点击该页面上
View JNDI Tree
连接,该服务器
JNDI
树的信息便显示在管理控制台的右窗格中。
·
使用管理控制台的
Server
节点查看服务器的执行队列:点击所要查看的服务器,然后点击
Execute Queue
链接,然后查看管理控制台右边窗格里的表格中的内容。
·
使用管理控制台的
Server
节点查看服务器的执行线程:点击所要查看的服务器,然后点击
Execute Queue
链接,然后查看管理控制台右边窗格里的表格中的内容:
·
使用管理控制台的
Server
节点查看
server sockets
:点击所要查看的服务器
,
点击
View Sockets
连接,然后查看管理控制台右边窗格里的表格中的内容。
·
使用管理控制台的
Server
节点查看服务器连接:点击所要查看的服务器,点击
View Connections
连接,然后查看管理控制台右边窗格里的表格中的内容。
·
使用管理控制台的
Server
节点进行强制垃圾收集,点击要监控的服务器,点击
JVM
标签页,点击页面上的
Force Garbage Collection
连接,将弹出是否要进行垃圾收集的确认对话框。
·
Server
节点监视服务器的安全:点击要监控的服务器,点击
Monitoring
标签页,点击
Security
标签页,将显示安全信息。
·
Server
节点查看服务器的版本:点击要查看的服务器,点击
Version
标签页,将显示服务器的版本信息。
·
Server
节点监控服务器集群:点击要监控的服务器,点击
Cluster
标签页,将显示该服务器的集群数据。
·
Server
节点来部署
EJB
:点击需要部署
EJB
的服务器,点击需要分发的
EJB
并使用移动控件将它移到被选列中,点击
Apply
来保存你的选择。
·
Server
节点来监视部署在某一服务器上的所有
EJB
:点击需要监视的服务器,点击
Monitor All EJB Deployments
连接来显示
EJB
的部署列表。
·
Server
节点将
web
应用组件部署在某一服务器上:选择要部署
web
应用的服务器:选择需要部署的
web
应用,然后通过移动控件将它移到被选列中,点击
Apply
来保存你的选择。
·
Server
节点来监控某一服务器上的所有
web
应用组件:点击
web
应用所在的服务器,然后点击
Monitor All Web Applications
连接来显示
Web Application
的部署列表。
·
Server
节点在服务器上部署启动与终止类:点击需要部署启动类的服务器,然后点击需要部署的启动类并将它移到被选列中,点击
Apply
来保存你的选择,使用终止类控件来部署终止类的过程与此相同。
·
Server
节点为服务器分配
JDBC
连接池:点击
web server
分配表中的一个服务器,在
Available
列中点击一到多个
JDBC
连接池,并通过移动控件将所选择的
JDBC
连接池移到
Chosen
列,点击
Apply
来保存你所做的分配。
·
Server
节点为一个服务器分配
WLEC
连接池:点击需要分配
WLEC
连接池的服务器:在
Available
列中选择一个或多个要分配的
WLEC
连接池,使用移动控件将所选择的
WLEC
连接池移动到
Chosen
列。
·
通过管理控制台的
Server
节点监视某一服务器上的所有
WLEC
连接池:选择一个需要监视连接池的服务器,点
Monitor All WLEC Connection Pools on This Server
链接,所有分配给这台服务器的连接池会显示在右窗格中的
WLEC Connection Pools
列表中。
·
Server
节点为一台服务器分配
XML
注册表,选择要分配
XML
注册表的服务器,从
XML
注册表的下拉列表中选择一个注册表,点
Apply
保存设置。
·
Server
节点分配邮件会话:选择一个要分配邮件会话的服务器,从
Available
列中选择要分配给服务器的邮件会话,使用移动控件把所选择的移动会话移动到
Chosen
列中,点
Apply
按钮保存设置。
·
通过管理控制台为服务器分配文件
T3s
:选择一个要分配文件
T3
的服务器,从
Available
列中选择要分配给服务器的文件
T3s
,使用移动控件把所选择的文件
T3s
移动到
Chosen
列,点
Apply
按钮保存设置。
·
Connection
连接,然后查看管理控制台右边窗格里的表格中的内容。
·
使用管理控制台的
Server
节点进行强制垃圾收集:点击要监控的服务器,点击
JVM
标签页,点击页面上的
Force Garbage Collection
连接,将弹出是否要进行垃圾收集的确认对话框。
原文地址:
安全管理WebLogic AD ldap 配置方法
Weblogic AD ldap
配置方法
一创建并配置
windows
端
AD.
1
在
AD
中加入新的
OU,myOrg.
2
在
myOrg
中加入两个
ou ,groups
和
people
。在
groups
中加入两个组
group1,group2,
在
people
中加入两个用户
user1,user2.
3
配置
user1
用户属于组
group1
,
user2
用户属于组
group2
。
windows Active Directory
端配置完毕。
二得到配置参数
1
下载
ldap brSofterra LDAP Browser 2.5 (
可用
google
搜索
)
2
配置
ldap browser
。
打开
ldap browser
应用程序。创建新的
profile
。
填入参数:
单击
fetch DNs (only ldap v.3)
得到自动配置的
ldap
基础配置
在
DC=www
前面加入
AD
中配置的
OU=myOrg
。
完成后如下图。表示连接
AD
成功
得到
base DN
参数为
OU=myOrg,DC=www,DC=test,DC=com, (DC=www,DC=test,DC=com
视您的
windows
域而定,本例域为
www.test.com)
。
三配置
weblogic server
启动域,打开控制器
http://localhost:7001/console
。
配置新的
authentication
。
点击
authentication
。在右边选择
configure a new active directory authenticator
1 General
中的配置
2 Active Directory
栏配置
3 user
栏配置
user
栏只需要修改
User Base DN
为自己的
user base DN,
这里填入
ldap browser
中得到的数据
OU=myOrg,DC=www,DC=test,DC=com,
不过我们要得到的是用户所以在前面在加入我们创建的
OU=people
。
4 group
栏配置。
group
栏只需要修改
group Base DN
为自己的
group base DN,
这里填入
ldap browser
中得到的数据
OU=myOrg,DC=www,DC=test,DC=com,
不过我们要得到的是组所以在前面在加入我们创建的
OU=groups
。
保存后其余的都不用在修改了。
我们再次点击
user
时,
ldap
中的用户和组就加入到
weblogic server
的用户中了
原文地址:
口令的保护
保护用来访问
WebLogic
服务器资源的口令是很重要的。在过去,用户名与口令以明文的形式存储在
WebLogic
服务器的安全域中。现在
WebLogic
服务器对所有口令进行散列化。当
WebLogic
服务器获得一个客户端请求时,客户端所输入的口令也被散列化,然后把散列化结果与所保存的散列化口令进行比较,看它们是否相互匹配。
每个
filerealm.properties
文件都有一个与它关联的
SerializedSystemIni.dat
文件,这个文件被用来散列化口令。在安装时,
SerializedSystemIni.dat
文件保存在
/wlserver6.1/config/mydomain
目录下,如果该文件被破坏,那么就需要重新配置
WebLogic
服务器。
我们建议你采用以下预防措施:
备份
SerializedSystemIni.dat
文件,并将其与
filerealm.properties
文件的备份存放于同一目录下。设置
SerializedSystemIni.dat
文件的访问权限,例如只允许
WebLogic
服务器的管理员有读写这个文件的权限,其它用户没有这个文件的任何权限。
如果你使用的是
weblogic.properties
文件,并且想散列化这个文件中的口令,你可以用管理控制台主窗口的
Convert weblogic.properties
选项将
weblogic.properties
文件转换为
config.xml
文件。一旦文件被转换,则所有现存的口令就已经被保护了。
Config.xml
文件中的不在含有明文的口令,若在其中保存明文的口令,
config.xml
会对其进行加密并被散列化该口令。被加密的口令不能从一个域复制到另一个域,而是应该使用明文口令替换
config.xml
中被加密的散列化口令,然后再将文件复制到另外一个域中。管理控制台在下一次写文件时会加密并散列化口令。
要保护
WebLogic
服务器的口令,执行以下操作:
1.
打开管理控制台
2.
点击
Security
节点
3.
在管理控制台右侧窗格中选择
Passwords
标签页。
4.
定义该标签页中需要配置的属性,按照相应的提示输入值,并选中必须选择的复选框(详细信息,参见下表)。
5.
点
Apply
按钮保存所做的设置
6.
重启
WebLogic
服务器。
如下详细描述了
Security Configuration
窗口的
Password
标签页上的各个属性。
·
Minimum Password Length:
口令所需的长度,至少为
8
个字符。缺省为
8
个字符
·
Lockout Enabled:
在超过
Lockout Threshold
次尝试后,是否需要锁住某个登录无效的帐号。缺省情况下,该属性被启用。
·
Lockout Threshold
:当一个用户试图登录到一个用户帐户,因口令不对而失败,那么多少次这样的失败登录后将锁住这个帐号。以后对该帐号的访问(即使是
username/password
是正确)也将引发
Security
异常;在管理员对该帐号进行解锁前,或在锁住期限内,该帐号一直处于锁住的状态。注意非法登录必须在
Lockout Reset Duration
属性所定义范围内。默认为
5
·
Lockout Duration
:该属性定义了当某一帐户因为在
Lockout Reset Duration
期限内发生非法登录而被锁住后,多长时间范围内该用户帐号不能被使用。要解开一个被锁住的用户帐号,你必须拥有
weblogic.passwordpolicy
中的
unlockuser
权限。默认为
30
分钟。
·
Lockout Reset Duration
:该属性定义了在多长时间里,非法登录某一帐号将导致该帐号被锁住。在本属性定义的时间范围内,当非法登录的次数超过了
Lockout Threshold
属性所定义的值,那么该帐号将被锁住,例如,该属性被设置为
5
分钟,当帐号在
6
分钟内被非法登录了
3
次,那么该帐号不会被锁住,但是,如果在
5
分钟内,发生了
5
次非法登录,那么该帐号将被锁住。缺省为
5
分钟。
·
Lockout Cache Size
:指定无效的或非法的登录意图的缓存大小。缺省为
5
注:本文针对
weblogic6
,其他版本请参考
原文地址
其它资源
本文前面部分删除了许多重复的文章,也没有包括一些比较复杂的文章,大家可以到
Dev2dev WebLogic
管理板块
和本版精华
下查看。
dev2dev
学堂
这里的资料十分的丰富。
·
实战集锦非常实用,里面主要包括了一些
WebLogic
出现的问题以及解决方案,其中你不仅可以学到
WebLogic
的许多知识,也可以知道许多
Java
与操作系统的基础知识,也可以发现许多排错和调优的好工具以及使用方法。
·
WebLogic Server
里面包括了大量的基础教程,既有图文并茂的教程,也有许多动画教程。你可以学到
WebLogic
的在
Windows
和
Linux/UNIX
下的安装,可以学到如何配置
SSL
和集群,如何发布简单应用程序,如何使用
JMS
,如何调用你的第一个
JSP
文件。
·
WebLogic
常见问题包括经常遇到了简单问题以及快捷的回答。
代码库是以前
WebLogic
为大家提供的一些代码实例,
CodeShare
是最近发起的一个项目,代码库的许多代码会转移到
CodeShare
下,但是现在还没有完全做到,许多代码还只能在代码库里找到。如果想学习某些比较复杂的技术,看实例代码是最好的方式,而且这些代码通常会附有非常详细的文档来帮助使用。
在线论坛
Dev2dev
有一些文章没有收录到这里,主要是因为篇幅太长,或者内容与网站的其他地方有些重复,可是还是很精彩的文章。
·
OutOfMemoryError
错误的调节,
JVM
的一个参数
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=9779
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=9779
·
在
FreeBSD
下安装
Linux
版本的
WebLogic
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=9554
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=9554
·
axman
与
zghr
对
JDBC Connection
的讨论
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=9121
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=9121
经常有人问
WebLogic
如何起步,这里列下大体的过程,具体可以参考
dev2dev
学堂和论坛精华。
·
安装
只以 windows 为例,直接运行下载的安装程序就然后根据步骤一路默认就好。
只以 windows 为例,直接运行下载的安装程序就然后根据步骤一路默认就好。
·
配置最基本的
domain
WebLogic 安装好后应该在运行 “ 开始 - 所有程序 -Bea WebLogic Platform-Configuration Wizard” 或者是 "C:/bea/weblogic81/common/bin/config.cmd" ,就可以配置一个 Domain ,也就是一组服务器单元。
WebLogic 安装好后应该在运行 “ 开始 - 所有程序 -Bea WebLogic Platform-Configuration Wizard” 或者是 "C:/bea/weblogic81/common/bin/config.cmd" ,就可以配置一个 Domain ,也就是一组服务器单元。
·
使用
console
配置好了一个 domain ,就可以启动 Admin Server ,可以使用 “ 开始 - 所有程序 - Bea WebLogic Platform - Configuration Wizard - User Projects – mydomain – Start Server”, 或者是到了 mydomain 目录调用 startWebLogic.cmd, 就可以启动 Server ,然后在浏览器中进入 http://localhot:7001/conole 就进入了管理界面,通常的管理都在这里进行。
配置好了一个 domain ,就可以启动 Admin Server ,可以使用 “ 开始 - 所有程序 - Bea WebLogic Platform - Configuration Wizard - User Projects – mydomain – Start Server”, 或者是到了 mydomain 目录调用 startWebLogic.cmd, 就可以启动 Server ,然后在浏览器中进入 http://localhot:7001/conole 就进入了管理界面,通常的管理都在这里进行。
·
发布应用
可以到 console 的 Deployment 部分发布
可以到 console 的 Deployment 部分发布