自BEA WebLogic Server 6.1起,BEA通过稳定的接口和强有力的移植测试为版本兼容性建立了基线。BEA WebLogic Server提供了最高级别的Web服务支持,使我们的工作变得十分容易。Weblogic8.1更具有以下新的特性:
表示层 基于struts 方案的可视页面流。
Web 应用 JSP的可视开发。
业务组件 EJB的简化开发。
集成和连通性 用于数据库、消息和企业资源集成及连通的、开放的、基于控件的服务器端框架。
Web 服务 自动发布和消费;同步和异步的、会话的、安全的Web服务。
任何Java代码 可视和基于代码的开发环境,带有自动的双向修改传播机制。
所需软件安装包:
j2sdk-1_4_2_02-linux-i586.bin
weblogic813_linux32.bin
一.weblogic的安装
1. 首先安装JDK,安装完以后,设置环境变量,方法如下:
将 j2sdk-1_4_2_02-linux-i586.bin并保存到/tmp给文件加上可执行的权限
引用:
# chmod 755 j2sdk-1_4_2_02-linux-i586.bin
执行文件安装JDK
引用:
# ./j2sdk-1_4_2_02-linux-i586.bin
......(一大堆的license的信息)
询问是否同意,当然选yes
引用:
# mv j2sdk1.4.2_02 /usr/j2sdk
现在JDK还不能算安装完成了,还要设置一下环境变量:
引用:
# vi /etc/profile
在profile里面添加:
引用:
export JAVA_HOME=/usr/local/jdk1.3.1_06/
export CLASSPATH=.:/usr/local/ jdk1.3.1_06/lib
PATH=:/bin
JAVA_HOME=/bea/jdk142_04
CLASSPATH=.;$JAVA_HOME/lib/dt.jar;$JAVA_HOME/lib/tools.jar;
PATH=$PATH:$JAVA_HOME/bin;$JAVA_HOME/jre/bin
export PATH JAVA_HOME CLASSPATH
2. 首先赋予源文件weblogic813_linux32.bin可执行权限
引用:
# chmod a+x /tmp/weblogic813_linux32.bin
3. 然后执行命令,进入安装窗口:(以窗口模式为例)
引用:
# ./tmp/weblogic813_linux32.bin
如果系统不支持显卡,可以执行命令:
引用:
# ./tmp/weblogic813_linux32.bin -mode=console
,这样,可以在命令行窗口下执行。
a.简单介绍。选择next.
b.文件extract完以后,开始安装,首先,阅读一个license agreement,
选择1,同意开始安装 2。不同意
c.选择bea产品目录,选择默认选项,next。
d.选择安装类型,选择全部安装,next。
e.选择weblogic的安装目录,选择默认项,next.
f.开始安装文件。
4。配置web服务器域以及web服务器
a. 进入welogic81/common/bin.点击quickstart.sh,或者执行
引用:
# ./root/bea/weblogic/common/bin/uickstart.sh
b.弹出画面,选择create a new domain configuration,。。继续
c.选择create a new weblogic configuration继续。
d.选择basic weblogic server domain继续。
e.选择custom安装类型,继续。
f.指定服务器名、监听端口等,把监听端口改为80。
g.是否建立weblogic服务集群,选择no继续
h.是否建立jdbc数据库接口,yes.
i.点击add,连接名可以取默认,vendor选择oracle,driver选择一个支持9.2.0的即可,添加数据库名、主机名、数据库用户名、密码等。
j.是否建立jms组件。no
k.是否添加其他web services,no
l.添加用户,一个即可,
m.选择服务器的启动模式,选择production mode,选择相关的jdk组件,任意一个。
n.选择域名。
weblogic上的web 发布
a.进入/root/bea/user_projects/domains/mydomain目录,并执行setenv.sh和starWebLogic.sh文件,第一次启动时可能提示在/root下找不到config.xml文件,重新输入密码继续即可。最后在/root下生成/myserver目录以及其配置文件。
引用:
# cd /root/bea/user_projects/domains/mydomain
# ./setenv.sh
# ./startWebLogic.sh
b.打开浏览器,输入http://localhost:7001/console输入密码进入管理界面。
c.点击mydomain/deployment/web application modules,选择deploy a new .选择文件路径,应用,即可发布,
注意每个文件夹中如果是war文件的话,子文件夹WEB-INF中一定要有web.xml文件,此文件是weblogic的描述符文件(如果是一个EJB应用的话,则一定要有weblogic.xml文件),相当于发布服务是的配置文件,必须要有,如果没有的可参照下面的例子新建一个即可。
引用:
web.xml eg:
<?xml version="1.0" encoding="UTF-8"?
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"
<web-app id="WebApp_1077955168938"
<display-nameWebApp</display-name
<servlet id="Servlet_1077955150766"
<servlet-nameksgl</servlet-name
<display-nameksgl</display-name
<jsp-file/ksgl\logout.jsp</jsp-file
</servlet
<session-config id="SessionConfig_1077955168953"
<session-timeout30</session-timeout
</session-config
</web-app
注:WEB-INF文件夹必须是大写,小写是不能发布的,如果向linux复制这些文件的时候一定要注意,有时候大小写会发生改变。
二.关于在rac中建连接池的问题
对于一个需要大量连接后台数据库的应用程序,建立连接池是一个非常有效提高服务器性能的方式,建立连接池时URL的写法一般和采取的那种协议和数据库种类有关,许多地方有介绍,我们下面仅列出了在oracle 9204 rac下,采用oracle thin(xa) 和oracle thin 协议时连接池的配置:
引用:
1.<JDBCConnectionPool
DriverName="oracle.jdbc.xa.client.OracleXADataSource"
Name="OrclJdbcConnectionPool"
Password="{3DES}kLW+GY5TDkiOu1tt45kUvA=="
Properties="user=examusr01" Targets="myserver"
TestConnectionsOnRelease="true"
TestTableName=”SQL SELECT 1 FROM DUAL”URL=”jdbc:oracle:thin@(DESCRIPTION=
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=IP1)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=IP1)(PORT=1521))) (FAILOVER=yes)(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED) (SERVICE_NAME=orcl)))"/
2.<JDBCConnectionPool
DriverName="oracle.jdbc.xa.client.OracleXADataSource"
Name="OrclJdbcConnectionPool"
Password="{3DES}kLW+GY5TDkiOu1tt45kUvA=="
Properties="user=examusr01" Targets="myserver"
TestConnectionsOnRelease="true"
TestTableName=”SQL SELECT 1 FROM DUAL”URL=”jdbc:oracle:thin@(DESCRIPTION=
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=IP2)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=IP2)(PORT=1521))) (FAILOVER=yes)(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED) (SERVICE_NAME=orcl)))"/
如果web服务连接的是两台oracle数据库RAC服务,所以在此要设置两个JDBC连接,如果是一个数据服务,则只需要设置一个JDBC连接既可
三.weblogic的优化:
weblogic服务器主要从内存方面着手考虑,weblogic起动时首先启动一个jvm虚拟机,这个jvm虚拟机占用的内存大小也是weblogic占用的内存大小,在没有其他应用程序的情况下,最多可以为jvm虚拟机分配80%的系统内存(2G以下越大越好);另外一个就是垃圾回收的问题,应用程序中所有的active和dead进程都存在于jvm中,如果当萁占用内存大于jvm的内存时,系统这时候会暂时停掉所有java应用,启动一个垃圾回收动作,当然,这段时间越短越好,因此,一般设置垃圾回收所占用的内存为jvm内存大小的1/4,这样,一次垃圾回收最长会在10-20秒的时间内结束。(jvm设的越大,每次垃圾回收(garbage collection)间隔越长,但每次持续时间越长)。
jvm内存大小在startweblogic.cmd/startweblogic.sh内设置。在其中会发现一段:
引用:
%JAVA_HOME%\bin\java%JAVA_VM%%MEM_ARGS%%JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server
这即为系统启用jvm的命令,其中%MEM_ARGS%就是设置内存的参数变量,在这一行前面加上一句:set MEM_ARGS=-Xms150m -Xmx256m ,Xms和Xmx指定的值就是jvm占用内存的界定,但是一般情况下两者应设为相等。设置垃圾回收gc的内存参数如下(但是经过验证仍有一些问题,,须进一步研究) 官方文档:-XX:NewSize=128m -XX:MaxNe