WTC在weblogic8
WTC配置及常见问题
Machine # SXBOSS SXBOSS 0 0
尤其要注意是否存在 GWTDOMAIN 确认远程的domain的service是否在上述列表中,如果没有,则调用失败
WTC 连通性的简单检查方法 续
# 启动/停止整个group tmshutdown -g WTCGRP_SXBOSS;tmboot -g WTCGRP_SXBOSS # 虽然DMADM 与 GWADM/GWTDOMAIN 放在一起,但是在整个tuxedo server中 DMADM是唯一的; GWADM/GWTDOMAIN 可以有多对,多个group. 也可以启停其中GWADM/GWTDOMAIN任意一个: 指定server id的形式 tmshutdown -i 2;tmboot -i 3;
Weblogic 所做的配置
通过 WebLogic Server 控制台配置 WTC 1. 创建WTC 服务: 在 Administration Console 屏中 , 部署 Services 节 点并单击 WTC 。将显示 WTC Services 屏。单击 Configure a New WTC Service 超链接。新显示的屏包括两个文本域: WTC 服务的名 字和它的部署优先权顺序。单击 Create 按钮来新建一个 WTC 服务。
WTC FAQ
1、TPENOENT(6):0:0:TPED_MIN or remote domain 、 available xxx服务 服务 服务没有调到。 服务没有调到。 请检查tuxedo domain 与 weblogic domain连通 (参见WTC 连通性的简单检查方法) 请检查xxx服务是否在weblogic里配置正确。是否配置了xxx服务。如果没有配置 也会报这个错误。 请检查xxx服务在tuxedo中时候存在 如果是刚注册的xxx服务,请重现发布所在的WTC服务。如果没有重新发布,也会 报这个错误。 如果tuxedo 日志显示duplicate server,表示有另外一个weblogic domain 配置相 同的wtc配置。也就是说 一个Tuxedo domain 对应两个相同的Weblogic domain, 这种情况,也会出现这个错误, 请修改另外weblogic domain的wtc配置。(配置相同是指 远程tuxedo访问点与本地 tuxedo相同)。 如果跨防火墙,请修改连接策略 都改为ON_STARTUP 2、TPESYSTEM(12):0:0:TPED_MINVAL(0):QMNONE(0):0 、 tuxedo服务有问题或输入参数不正确。 3、TPESYSTEM(13):0:0:TPED_MINVAL(0):QMNONE(0):0 、 tuxedo服务返回超过了设置的时间。优化tuxedo服务或修改时间门限。 4、TPESYSTEM(10):0:0:TPED_MINVAL(0):QMNONE(0):0 、 tuxedo系统问题。
通过wtc使tuxedo与weblogic通信开发
标题:通过wtc、jolt进行tuxedo与weblogic通信开发[评论]作者:李振嘉(dev2dev ID:lizhenjia)(一)摘要bea tuxedo与weblogic作为业界优秀的交易与应用服务器中间件产品,在电信,银行,金融等领域广泛应用,通常由tuxedo处理系统的核心业务,weblogic将业务应用扩展到internet平台,实现电子商务,由weblogic调用tuxedo的服务或者由tuxedo的服务调用通过weblogic部署的ejb,所以tuxedo与weblogic 之间的互连通信会经常遇到,本文通过2个例子介绍tuxedo与weblogic通信的配置与开发,两个例子分别通过wtc(weblogic tuxedo connector)、jolt实现weblogic与tuxedo通信的配置与开发.本文所有例子程序与配置均在Sun Solaris,weblogic8.1,tuxedo8.0平台上进行,如在windows等其他平台开发配置方法大同小异;另外为了减少篇幅文中涉及的例子代码没有全部罗列,只选择粘贴了关键部分的代码.(二)通过wtc进行tuxedo与weblogic通信的配置与开发1)域间通信以及wtc介绍Tuxedo的域间通信进程介绍Wtc是tuxedo通过域间通信实现的,所以需要tuxedo启动用于域间通信的进程,介绍wtc之前先介绍以下几个域间通信的进程.*DMADM(DOMAIN ADMINISTRATOR SERVER)管理域的server,在运行时管理BDMCONFIG,对已登记的gateway group提供支持,在tuxedo系统中,只能有一个DMADM进程,且不能对它采用MSSQ,不能有REPLYQ.*GWADM(GATEWAY ADMINISTRATOR SERVER)管理域的域网关进程,在运行时可以对某一组域网关进行管理,主要从DMADM那里取得域的配置信息,并对域网管进程及跨越域的全局事务的LOG文件进行管理.*GWTDOMIN(GATEWAY PROCESS)处理域之前的互操作,使本地域和调用远程域可以互相调用彼此的service,其中GMADM和GWTDOMAIN 必须在一个组中,一个tuxedo应用可以有多个GWADM,GWTDOMAIN对,一个组只能有一个GMADM,GWTDOMAIN对,但一个tuxedo应用只能有一个DMADM,DMADM可以在如何一个组中,一个本地域可以和多个远程域实现互操作.Wtc介绍Wtc(weblogic tuxedo connector)是weblogic server的一个组成部分,可以实现tuxedo和weblogic之间的应用集成,为weblogic和tuxedo提供了双向的互操作性,即tuxedo service可以调用在weblogic上部署的ejb,在weblogic上部署的ejb可以调用tuxedo的service.2)Tuxedo方面需要进行的工作修改并编译ubb文件1)在ubb文件*GROUPS节点中增加如下3个tuxedo Group:DMGroupLMID=simple GRPNO=2 OPENINFO=NONEDMGroupLMID=simple GRPNO=3 OPENINFO=NONEWSGroupLMID=simple GRPNO=4 OPENINFO=NONE2)在ubb文件*SERVERS节点中增加如下3个tuxedo server:DMADMSRVGRP=DMGroup SRVID=22230GWADMSRVGRP=GWGroup SRVID=22340GWTDOMAINSRVGRP=GWGroup SRVID=22350其中GWADM和GWTDOMAIN应该在同一个组中,保存ubb文件并按如下完成编译:tmloadcf ubb_filename之后tmboot-y启动tuxedo server,如果启动以上3个server时报类似Application initialization failure的启动失败的提示信息,那么注意查看tuxedo的ULOG日志文件,通过日志的提示排除错误,这里常见的一个错误是没有在系统环境变量中定义BDMCONFIG或者指定该文件路径错误.(关于环境变量的修改见下文).增加并编译dm文件dm文件是tuxedo进行域间通信时的配置文件,tuxedo与weblogic通过wtc通信是通过域间通信实现的,所以dm文件需要创建,dm文件通常可以存放在ubb文件所在的路径下.Dm需要做的配置如下:*DM_LOCAL_DOMAINStuxedo_domain GWGRP=GWGroupTYPE=TDOMAINDOMAINID=billingDMTLOGDEV="/../../log/DLOG"*DM_REMOTE_DOMAINSweblogic_domain TYPE=TDOMAINDOMAINID=weblogic*DM_TDOMAINtuxedo_domain NWADDR="//tuxedoserver_domain_ip:portNWDEVICE="../../bin"weblogic_domain NWADDR="//weblogicserver_domain_ip:port*DM_REMOTE_SERVICES*DM_LOCAL_SERVICESfml32_test RNAME="fml32_test"*DM_LOCAL_DOMAINS定义本地tuxedo域的信息,分别定义该域所在的组,域类型,域的唯一标识,域间通信时日志的全路径,其中GWGRP, DOMAINID的值要与ubb文件中的定义匹配.*DM_REMOTE_DOMAINS定义远程weblogic域的信息,分别定义域类型,域的唯一性标识,该id标识需要与在weblogic server中的配置名称吻合,否则通信将会失败,关于在weblogic中的相应配置下文将作详细描述. *DM_TDOMAIN定义在DM_LOCAL_DOMAIN中已经说明的本地域和在DM_REMOTE_DOMAINS中已经说明的远程域的具体的通信ip地址以及通信端口,其中NWDEVICE指定tuxedo发布的server通信进程文件所在的路径. *DM_REMOTE_SERVICES定义当前域需要调用远程域的服务名称,本例中的服务作为被调用服务,所以此处可以为空.*DM_LOCAL_SERVICES定义当前域对外发布的tuxedo service名称,可以通过RNAME重新命名service.在以上NWADDR中指定的端口一定不能是已经被占用的端口,否则通信将失败,之前应该用netstat命令查询得到空闲的端口.保存dm文件并按如下完成编译:dmloadcf dm_filename修改系统环境变量在系统环境变量中增加:export BDMCONFIG=$HOME/your_path/bdmconfig其中bdmconfig文件为dmloadcf dm_filename编译之后生成的2进制配置文件.编写基于tuxedo的程序以及makefile.说明Tuxedo支持string,carry,view,view32,fml,fml32等数据缓冲区,其中fml32类型相对复杂且比较常用,本例子采用fml32数据缓冲区开发,首先需要编写fml32数据缓冲区的定义文件,包括fml32数据缓冲区各个字段的名称已经长度等等,并将该文件生成相应的c语言.h头文件,在应用程序中需要包含该头文件,这样应用程序中即可以使用fml32数据缓冲区, fml32类型通常在开发数据库应用程序的时候比较常用,以下的例子完成的功能是:根据输入的学生学号从数据库中查询得到该学生的姓名和年龄,其实输入和输出参数采用fml32类型.编写并编译fml32数据缓冲区定义文件定义fml32数据缓冲区文件student_fld文件如下:*base 10000# name number type flags commentsstudent_id 1 long - 学生学号student_name 2 string - 学生姓名student_age 3 long - 学生年龄student_id等3项就是自定义fml32类型的域字段,其中每一个字段都对应一个number,这些number有一个公共的起始值,通过*base 10000定义.定义之后通过mkfldhdr32 student_fld编译该文件,之后生成student_fld.h头文件,在应用程序中将引用该文件.编写源程序以及定义表定义t_student表,其中id表示学号,name表示学生姓名,age定义表示姓名.进入oracle sqlplus,键入:create table t_student (id number(10), name varchar2(20), age number(3));源程序文件wtc_jolt.pc(该程序通过pro*c文件访问数据库oracle数据库):#include <atmi.h>#include <userlog.h>#include <sqlca.h>#include <fml32.h>#include "student_fld.h"EXEC ORACLE OPTION (RELEASE_CURSOR = YES);#if defined(__STDC__) || defined(__cplusplus)tpsvrinit(int argc, char *argv[])#elsetpsvrinit(argc, argv)int argc;char **argv;#endif{EXEC SQL BEGIN DECLARE SECTION;char sConnStr [100];EXEC SQL END DECLARE SECTION;argc = argc;argv = argv;memset(sConnStr, 0x00, sizeof(sConnStr));strcpy(sConnStr, “数据库连接串”);EXEC SQL Connect :sConnStr;if (sqlca.sqlcode){userlog("连接数据库失败,错误号码:%d,详细原因:%s ", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);return -1;}}#ifdef __cplusplusextern "C"#endifvoid#if defined(__STDC__) || defined(__cplusplus) fml32_test(TPSVCINFO *rqst)#elsefml32_test(rqst)TPSVCINFO *rqst;#endif{FBFR32 *recebuf = NULL;FBFR32 *sendbuf = NULL;FLDLEN32 recebuflen = 0;EXEC SQL BEGIN DECLARE SECTION;long lStudentId = 0;char sName[15] = "";long lAge = 0;EXEC SQL END DECLARE SECTION;recebuf = (FBFR32 *)rqst->data;if ((sendbuf = (FBFR32 *)tpalloc("FML32", NULL, 1024)) == NULL){tpterm();exit(-1);}recebuflen=0;Fget32(recebuf, student_id, 0, (char *)&lStudentId, &recebuflen);EXEC SQL Select age, name Into :lAge, :sNameFrom t_studentWhere student_id = :lStudentId;if (sqlca.sqlcode){userlog("查询失败,code=%d,detail=%s ", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);exit(-2);}Fchg32(sendbuf, student_age, 0, (char *)&lAge, 0);Fchg32(sendbuf, student_name, 0, sName, 0);tpreturn(TPSUCCESS , 0, (char *)sendbuf, 0, 0);}编写makefile文件.SUFFIXES:.pc .cCC=ccTUXINCLUDE=$(TUXDIR)/includeORAINCLUDE=$(ORACLE_HOME)/precomp/public WORKPATH=$(HOME)/../../...APPPATH=$(HOME)/binTARGET=wtc_joltall: $(TARGET)-@echo "build successfully!"wtc_jolt:wtc_jolt.cbuildserver -f wtc_jolt.o -o wtc_jolt -s "fml32_test" -r Oracle_XA -v.pc.c:proc iname=$<$(PROCPLSFLAGS) oname=$*.c parse=full hold_cursor=no release_cursor=yesinclude=$(TUXINCLUDE) include=$(ORAINCLUDE)$(CC) -I$(ORAINCLUDE) -I$(TUXINCLUDE) -c $(ORACFLAGS) $*.c将例子文件发布成tuxedo server和service.通过makefile将wtc_jolt.pc编译成可执行文件wtc_jolt之后.(一)修改tuxedo ubb配置文件.1)在 *server节点中添加:wtc_jolt SRVGRP=GROUP SRVID=1100其中GROUP是tuxedo应用所在的组, SRVID是该server的标识id,注意不要与其他SRVID重复,wtc_jolt 是刚刚编译生成的可执行文件名字,这样该文件就被发布为tuxedo server.2)在*service节点中添加:fml32_test其中fml32_test是wtc_jolt.pc文件中的函数名字,这样该函数就被发布为属于server:wtc_jolt中的一个tuxedo service.3)编译修改之后的ubb文件:tmloadcf ubb_filename(二)修改tuxedo dm配置文件.1)在*DM_LOCAL_SERVICES节点中添加:fml32_test RNAME="fml32_test"发布fml32_test service,使该service可以被其他域中的服务调用.2)编译修改之后的dm文件:dmloadcf dm_filename以上配置和开发工作完成之后tuxedo方面的工作完成,tmboot ?y启动tuxedo,如有以下提示信息,tuxedo 方面的工作宣告成功.1) exec DMADM -A :process id=28863 ... Started.exec GWADM -A :process id=28864 ... Started.exec GWTDOMAIN -A :process id=28865 ... Started.以上信息说明域间通信进程启动成功!2) exec wtc_jolt -A :process id=28950 ... Started.以上信息说明发布的server进程启动成功!此时键入命令tmadmin, 键入子命令psc, 如有以下提示信,说明发布service成功.Service Name Routine Name Prog Name Grp Name ID Machine # Done Status---------------------------------------------------------------------fml32_test fml32_test wtc_jolt GROUP 1100 simple 0 AVAIL进行到这里tuxedo方面所有的工作已经完成,下面进入weblogic方面的工作.3)Weblogic方面需要进行的工作.创建tuxedo fml(32) 数据缓冲区定义文件对应的java类文件本文例子用到tuxedo fml32数据缓冲区,所以首先要创建该fml32数据缓冲区定义文件对应的java描述文件的类文件,将前面定义的文件student_fld.1)执行weblogic环境变量setWLSEnv.sh,使weblogic环境变量生效.2)运行: java weblogic.wtc.jatmi.mkfldclass32 student_fld生成student_fld.java描述文件.3)运行: javac ?d student_fld.java生成student_fld.class文件.4)该类文件的存放路径一定可以被weblogic识别,即保存在weblogic启动后CLASSPATH的路径中,否则在后面配置wtc resource时会失败.配置weblogic wtc service进入weblgoic console,mydomain->services->wtc->Co nfigure a new WTC service…Name属性键入: WTC_Service,create保存设置,此时WTC_Service将生成local tuxedo access等若干子项,在下面将一步一步配置这些项目.配置local tuxedo accessmydomain->services->wtc-> WTC_Service-> Configure a new local tuxedo access point…依次填写Access Point: Local_Wls_DomainAccess Point ID: weblogicNetwork Address: //weblogicserver_ip:port注意:1)Access Point ID的值应该与在tuxedo dm文件中*DM_REMOTE_DOMAINS节中指定的domainid 相同.2)Network Address中指定的通信端口一定是weblogic server上未被占用的端口.以上信息填写完成后点击create保存.配置remote tuxedo domainmydomain->services->wtc-> WTC_Service-> Configure a new remote tuxedo access point…依次填写Access Point: Remote_Tuxedo_DomainAccess Point ID: billingLocal Access Point: Local_Wls_DomainNetwork Address: //tuxedoserver_ip:port注意:1)Access Point ID的值是远程tuxedo domain 的domain_id.2)Local Access Point的值是上面配置的local tuxedo access point的名字.以上信息填写完成后点击create保存.导入tuxedo servicesmydomain->services->wtc-> WTC_Service->Imported services->Configure a new imported service…Resource Name: fml32_testLocal Access Point: Local_Wls_DomainRemote Access Point List: Remote_Tuxedo_DomainRemote Name: fml32_test注意:1)Local Access Point是上面配置的local tuxedo access point的名字.2)Remote Access Point List是上面配置的remote tuxedo access point的名字.3)Remote Name是可供weblogic调用的远程tuxedo发布的service名字,即在Tuxedo dm文件的*DM_LOCAL_SERVICES节点中发布的service名字.配置wtc resourcemydomain->services->wtc-> WTC_Service->resources->Configure a new Resource….FldTbl32 classes: student_fld注意:1)resource定义fml(32),view(32)等数据缓冲区的类文件定义,其中student_fld就是上面编译得到的类,如果源文件包含在包中那么要标明包名称在内的全路径,如:com.bea.wtc.test.classname2)其中fml和fml32类型的java类在这里要分别指定,不能通用,view(32)也是一样.以上信息填写完成后点击create保存,至此wtc service全部配置完成,单击wtc_service的Target and deploy标签,选择server,apply以上应用.编写通过wls访问tuxedo service的程序为了减少篇幅例子代码没有全部罗列,只选择粘贴了代码中的关键部分.编写访问tuxedo service的ejb关键函数介绍创建本地接口文件,远程接口文件以及bean文件,公布以下远程方法:1)public CallDescriptor Tpacall(String service, TypedFML32 in_params)throws TPException, TPReplyException, RemoteException;2)public TypedFML32 Tpgetrply(CallDescriptor cd)throws TPException, TPReplyException, RemoteException;3)public TypedFML32 Tpcall(String service_name, TypedFML32 in_params)throws TPException, TPReplyException, RemoteException;Tpcall : 同步调用tuxedo service.Tpacall : 异步调用tuxedo service.Tpgetrply: 等待异步调用service的返回结果.关键函数代码import weblogic.wtc.jatmi.Reply;import weblogic.wtc.jatmi.TypedFML32;import weblogic.wtc.jatmi.TPException;import weblogic.wtc.jatmi.TPReplyException;import weblogic.wtc.gwt.TuxedoConnection;import weblogic.wtc.gwt.TuxedoConnectionFactory;import weblogic.wtc.jatmi.Ferror;import weblogic.wtc.jatmi.CallDescriptor;import weblogic.wtc.jatmi.ApplicationToMonitorInterface;private TuxedoConnection tuxConn = null;函数setUpConnectionpublic TuxedoConnection setUpConnection() throws TPException{Context ctx = null;TuxedoConnectionFactory tcf = null;try{ctx = new InitialContext();tcf= (TuxedoConnectionFactory)ctx.lookup(TUXEDOCONN_JNDI_NAME);}catch (NamingException ne){throw new TPException(TPException.TPENOENT, "Could not get TuxedoConnectionFactory : " + ne);}try{tuxConn = tcf.getTuxedoConnection();}catch (TPException e){throw new TPException(TPException.TPENOENT, "getTuxedoConnection threw exception: " + e);}return tuxConn;}函数Tpcallpublic TypedFML32 Tpcall(String service_name, TypedFML32 in_params) throws TPException, TPReplyException{Reply tuxReply = null;TypedFML32 tuxRtn = null;try{if (tuxConn == null) tuxConn = this.setUpConnection();}catch (TPException e){System.out.println("setUpConnection throw exception:" + e); throw e;}try{tuxReply = tuxConn.tpcall(service_name, in_params, 0);}catch (TPReplyException tre){System.out.println("tpcall threw TPReplyExcption " + tre); throw tre;}catch (TPException te){System.out.println("tpcall threw TPException " + te);throw te;}catch (Exception ee){System.out.println("tpcall threw exception: " + ee);throw new TPException(TPException.TPESYSTEM, "Exception: " + ee);}tuxRtn = (TypedFML32)tuxReply.getReplyBuffer();return tuxRtn;}函数Tpacallpublic CallDescriptor Tpacall(String service_name, TypedFML32 in_params) throws TPException, TPReplyException{CallDescriptor tuxRtn = null;try{tuxConn = this.setUpConnection();}catch (TPException e){System.out.println("setUpConnection throw exception:" + e);throw e;}try{tuxRtn=tuxConn.tpacall(service_name,in_params, ApplicationToMonitorInterface.TPNOTIME);}catch (TPReplyException tre){System.out.println("tpacall threw TPReplyExcption " + tre);throw tre;}catch (TPException te){System.out.println("tpacall threw TPException " + te);throw te;}catch (Exception ee){System.out.println("tpacall threw exception: " + ee);throw new TPException(TPException.TPESYSTEM, "Exception: " + ee);}return tuxRtn;}函数Tpgetrplypublic TypedFML32 Tpgetrply(CallDescriptor cd) throws TPException, TPReplyException {Reply tuxRtn = null;TypedFML32 result = null;tryif (tuxConn == null) tuxConn = this.setUpConnection();}catch (TPException e){System.out.println("setUpConnection throw exception:" + e);throw e;}try{tuxRtn = tuxConn.tpgetrply(cd, ApplicationToMonitorInterface.TPNOTIME); }catch (TPReplyException tre){System.out.println("tpgetrply threw TPReplyExcption " + tre);throw tre;}tryresult = (TypedFML32)tuxRtn.getReplyBuffer();}catch (Exception e){System.out.println("getReplyBuffer threw exception: " + e);result = null;}tuxConn.tpterm();return result;}关于避免调用超时有时Tuxedo service需要做时间较长的处理,超过了tuxedo默认的调用超时时间,为了避免超时需要使客户端一直阻塞知道服务器端service返回结果;在传统tuxedo的c语言程序客户端可以指定tp(a)call函数的第6个参数flag为TPNOTIME,此时客户端如果有阻塞条件存在,客户端会一直阻塞即使超时也不返回;但通过weblogic的java客户端如果想要达到这个目的,如果采用异步tpacall 调用,不仅仅要在tpacall中指定flag值为ApplicationToMonitorInterface.TPNOTIME,在tpgetrply等待结果时也同样需要指定第2个参数为ApplicationToMonitorInterface.TPNOTIME,否则仅在tpacall中指定不能达到避免超时的目的.编写ejb客户端关键函数介绍:Public int selectService ();连接weblogic server,调用具体的函数调用tuxedo service.Public int callTestService(String service_name);根据输入参数学号,调用tuxedo service,获得返回结果学生姓名和年龄. 关键函数代码函数selectServiceimport weblogic.wtc.jatmi.Ferror;import weblogic.wtc.jatmi.TypedFML32;import weblogic.wtc.jatmi.CallDescriptor;Public int selectService (){try{…连接weblogic server…………obj = ctx.lookup(ejb的jndiname);}catch (Exception e)…………………}wtcHome=(WtcInstanceHome)javax.rmi.PortableRemoteObject.narrow(obj, WtcInstanceHome.class); try{wtcRemote = wtcHome.create();}catch (Exception e){………….}callTestService(service_name);try{wtcRemote.remove();}catch (Exception e)………………}}函数callTestServicepublic String callTestService (String service_name){CallDescriptor tuxRtn = null;TypedFML32 inParams = null, tuxResult = null;try{//创建fml32缓冲区java描述类的实例inParams = new TypedFML32(new student_fld());//填写输入参数:学号inParams.Fchg(student_fld.student_id , 0, getStudentId());}catch (Ferror e){……}try{ //异步调用tuxedo service.tuxRtn = wtcRemote.Tpacall(service_name, inParams); }catch (Exception e){………}try{ //等待异步调用的service返回结果.tuxResult = wtcRemote.Tpgetrply(tuxRtn);}catch (Exception e){………}try{//得到学生的姓名和年龄…stuName = (String)tuxResult.Fget(student_fld.student_name, 0); stuAge = (Integer) tuxResult.Fget(student_fld.student_age, 0);}catch (Ferror e){………}………}。
1 Weblogic8 安装配置手册(win)【宁夏理工学院培训】
第22部分 Weblogic8安装配置第 1 章概述Weblogic的安装配置总共包括五个部分:1. 数据库产品的安装(详见相应数据库安装文档)2. 初始化数据库(详见相应数据库文档)3. Weblogic8.1中间件产品的安装4. 创建Weblogic实例5. 配置实例第 2 章安装数据库详见相关数据库安装文档。
第 3 章初始化数据库详见相关数据库文档。
第 4 章安装Weblogic8.11. 找到weblogic8.1的安装文件,双击,开始解压,如下图所示:- 1 -图 4-1解压2. 解压缩完以后,进入到Weblogic安装向导界面,如图所示:图 4-2安装向导3. 点击下一步,进入到许可协议界面,选择“是”,然后点击“下一步”读万卷书行万里路图 4-3许可协议4. 出现如下界面,点击“浏览”可以选择BEA的主目录的路径,也可采用默认的安装路径;(这个路径需要记住,在配置实例的时候需要用到)图 4-4选择BEA主目录5. 点击“下一步”,进入到下面的窗口;图 4-5选择安装类型6. 选择“自定义”,进入到下面的窗口:- 3 -图 4-6选择组件7. 只需要选择Weblogic Server-Server即可,参见上图示例,然后点击“下一步”,进入到下面的界面;图 4-7选择产品目录8. 在上面的窗口中选择产品安装的目录,也采用默认的即可,然后点击下一步,选择“立即安装”,开始程序的安装。
9. 程序安装完成后,会出现如下窗口;读万卷书行万里路图 4-8安装完成10. 把上面窗口中两个选项前面的勾去掉,点击完成即完成了Weblogic的安装。
第 5 章创建Weblogic实例1. 找到系统任务栏上按钮,依次找到“开始>程序>BEA WebLogic Platform8.1>Configuration Wizard”,弹出下面的窗口:图 5-1创建或扩展配置2. 在上面的窗口中选择第一项(新建WebLogic配置),然后点击“下一步”,进入到下面的窗口;- 5 -。
WTC配置
1、进入Weblogic控制台,选择Interoperability->WTC Servers,点击右侧的按钮
2、输入要新建WTC Server的名字,点击按钮:
3、在WTC Server列表中,点击新建的Server名称可以打开设置界面:
4、设置界面如下,这里需要设置Local APs、Remote APs和imported三个选项卡
5、Local APs选项卡设置:点击按钮新增本地接入点
本地接入点配置信息如下:
6、Remote APs选项卡设置:点击按钮新增远程接入点
远程接入点配置信息如下:
7、imported选项卡设置:点击按钮新增服务配置
服务配置信息如下:
说明:
1、本地接入点DEVWTC和远程接入点CRMTUX均需在tuxedo的配置文件中配置,且名字
必须和配置文件中的名字保持一致,如tuxedo配置文件片段如下:
2、服务配置信息中的Resource Name和Remote Name默认一样即可,Remote Name来自td_m_naming表的service_name字段:
SELECT service_name
FROM ulcu.td_m_naming
WHERE logical_name ='LCU名称'。
weblogic+wtc+配置说明
一、添加一个jolt服务(需要jolt liccense)二、WTC配置步骤:1. Tuxedo的配置2.1.1. 设置环境变量:2.1.3. 配置ubbconfigDOMAINID simpappMASTER simpleMAXACCESSERS 50MAXSERVERS 50MAXSERVICES 50MODEL SHMLDBAL N*MACHINESDEFAULT:APPDIR="c:\tuxedo_test\simpapp"TUXCONFIG="c:\tuxedo_test\simpapp\tuxconfig"TUXDIR="c:\bea\tuxedo8.1"#Example:# APPDIR="/home/me/simpapp"# TUXCONFIG="/home/me/simpapp/tuxconfig"# TUXDIR="/usr/tuxedo"VM44 LMID=simpleMAXWSCLIENTS=5 #指定的最大客户端连接数#Example:#beatux LMID=simple*GROUPSGROUP1 LMID=simple GRPNO=1 OPENINFO=NONEJSLGRP LMID=simple GRPNO = 2JREPGRP LMID=simple GRPNO = 3GROUP4 LMID=simple GRPNO=4 OPENINFO=NONE*SERVERSDEFAULT:CLOPT="-A"simpserv SRVGRP=GROUP1 SRVID=1WSL SRVGRP=GROUP1 SRVID=5 CLOPT="-A -t -- -n //192.168.57.41:8888 -m 2 -M 5 -x 10" #WSL发布地址红色为jolt服务需要的配置,jolt需要单独的license。
Tuxedo和WebLogic互调技术手册
Tuxedo和WebLogic互调解决方案前言BEA公司的Tuxedo和WebLogic作为最优秀的中间件产品,在保险,金融,银行,电信等行业广泛使用。
如今随着需求的不断变化,企业信息集成已经逐渐成为主流,为此出现了SOA技术实现Service和Service之间的通信。
但是我们这里不介绍SOA,我们这里主要介绍的是BEA公司的连接器产品WTC (WebLogic Tuxedo Connector),通过它来实现Tuxedo和WebLogic的互调。
WTC概述WTC(WebLogic Tuxedo Connector)是一个兼容JCA(J2EE连接器架构)的软件产品,它提供了Tuxedo服务和WebLogic Server部署的应用程序之间的互操作性。
WebLogic Server组件能够使用WTC与Tuxedo服务进行通信,Tuxedo 服务也能够调用基于WebLogic Server的EJB组件。
WebLogic服务调用Tuxedo服务Tuxedo实现系统的核心业务,然后用WebLogic作为系统扩展到I NTERNET平台,由WebLogic调用Tuxedo上的服务。
那么具体怎么做呢?环境配置需要在调用Tuxedo服务端安装WebLogic Server(具体安装不介绍了),然后点击开始-→程序→WebLogic Plateform 8.1→Configuration Wizard配置服务器的Domain。
然后启动服务。
打开浏览器,在地址栏中输入http://localhost:7001/console 进行WTC的配置。
1.创建WTC服务点击控制台中的WebLogic Tuxedo Connector,进入WTC服务页面,点击配置新的WTC 服务,输入名称如mywtcapp然后点击创建。
2.创建本地访问点选中刚刚第一步创建的WTC服务,单击该服务页的内容选项卡,然后单击本地AP选项卡,然后点击配置新的本地Tuxedo访问点,在新的页面中输入访问点,如:localaccessapp;访问点ID,如:A000000;网络地址,如://10.222.19.101:9000其中访问点是用户自己定义的合法的名称,访问点ID和网络地址必须和bdmconfig 配置文件中的DM_TDOMAIN相同。
WEBLOGIC应用及常用配置说明
• • • • • •
3. 选择创建模式: • <----------------------- BEA WebLogic Configuration Wizard -------------------------------> • • • • • Choose Configuration Option: ---------------------------*Do you want to run the wizard in express mode? ->1|Yes 2|No
• • •
• • • •
->1|Other Java SDK Enter index number to select OR [Exit][Previous][Next]> 根据提示选择1,单击Enter进入下一步,如下。
<------------------------------- BEA WebLod -------------------------------> Java SDK Selection: ------------------"JVM Directory" = []
•
•
6. 选择JDK安装目录
•
• •
<------------------------------- BEA WebLogic Configuration Wizard ------------------------------->
Java SDK Selection: -------------------
5. 选择weblogic运行模式
• • • • • • • •
<------------------ BEA WebLogic Configuration Wizard -------------------------> Domain Mode Configuration: -------------------------Enable Development or Production Mode for this domain. ->1|Development Mode 2|Production Mode Enter index number to select OR [Exit][Previous][Next]> 根据上面提示,选择数字1,Development Mode 开发模式,点击Enter进入下一 步。 注:此选项可以在创建域结束后进行修改。修改位置在startWebLogic.sh脚本中, PRODUCTION_MODE=“ ” 为开发模式,即 Development Mode。 PRODUCTION_MODE=“TRUE”为产品模式。
Tuxedo通过WTC调用weblogic配置.
TUXEDO与WEBLOGIC通过WTC方式连接WTC调用方式:WebLogic Tuxedo Connector 提供WebLogic Server 应用程序和Tuxedo 服务之间的互操作性。
该连接器允许WebLogic Server 客户端调用Tuxedo 服务,并允许Tuxedo 客户端调用WebLogic Server Enterprise Java Bean (EJB) 来响应服务请求。
1.EJB程序开发(此处需开发人员完成)1.1编写WeblogicEJB.javapackage com.ceb.bankapp.ejb.bean;import java.io.PrintStream;import ng.reflect.Method;import java.util.HashMap;import java.util.Map;import java.util.Properties;import javax.ejb.CreateException;import javax.ejb.EJBException;import javax.ejb.SessionBean;import javax.ejb.SessionContext;import javax.naming.InitialContext;import weblogic.wtc.jatmi.Reply;import weblogic.wtc.jatmi.TPServiceInformation;import weblogic.wtc.jatmi.TypedCArray;public class ListenerServiceimplements SessionBean{private static final long serialVersionUID = -800418557103444899L;private static InitialContext ctx;private static Object o;private SessionContext context;public Reply service(TPServiceInformation tpdata){try{if (ctx == null){Properties props = new Properties();props.put("java.naming.factory.initial","weblogic.jndi.WLInitialContextFactory");props.put("java.naming.provider.url", "t3://localhost:7020");ctx = new InitialContext(props);}if (o == null){o = ctx.lookup("afe");}byte[] yubo = ((TypedCArray)tpdata.getServiceData()).carray;Class[] clazz = { String.class, String.class,String.class, Map.class };Method m = o.getClass().getMethod("invoke", clazz);Map hm = new HashMap();hm.put("yubo", yubo);Object[] objs = { "wangdongTest", "wangdongTest", "input", hm };m.invoke(o, objs);byte[] t = (byte[])hm.get("send");TypedCArray typ = new TypedCArray();typ.setSendSize(t.length);typ.carray = t;tpdata.setReplyBuffer(typ);tpdata.settpurcode(0);}catch (Exception e){e.printStackTrace();}System.out.println("return tpdata====" + tpdata);return tpdata;}public void ejbCreate() throws CreateException{}public void ejbActivate() throws EJBException{}public void ejbPassivate() throws EJBException{}public void ejbRemove() throws EJBException {}public void setSessionContext(SessionContext newContext) throws EJBException {this.context = newContext;}protected void onEjbCreate()throws CreateException{}}1.2配置ejb-jar.xml<?xml version="1.0" encoding="UTF-8"?><ejb-jar xmlns="/xml/ns/j2ee" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee /xml/ns/j2ee/ejb-jar_2_1.xsd" version="2.1"><enterprise-beans><session id="Session_20081110002"><description>Online business interface for exchange with other system</description><display-name>BbspListenerService</display-name><ejb-name>BbspListenerService</ejb-name><home>weblogic.wtc.jatmi.TuxedoServiceHome</home><remote>weblogic.wtc.jatmi.TuxedoService</remote><ejb-class>com.ceb.bankapp.ejb.bean.ListenerService</ejb-class><session-type>Stateless</session-type><transaction-type>Container</transaction-type></session></enterprise-beans><assembly-descriptor><container-transaction><description>Listener business_tran</description><method><ejb-name>BbspListenerService</ejb-name><method-name>*</method-name></method><trans-attribute>NotSupported</trans-attribute></container-transaction></assembly-descriptor></ejb-jar>重要:配置中<home/>和<remote/>被配置为weblogic.wtc.jatmi.TuxedoServiceHome和weblogic.wtc.jatmi.TuxedoService,这是WTC配置的要求,是他们tuxedo ejb服务的统一入口,所以开发中不用写home和romote接口。
WebLogic8部署
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.weblogic8部署企业应用1、安装weblogic首先,必需安装weblogic8.1(SP2)2、创建weblogic的测试domain3、启动weblogic的domain由于是生产模式,启动时需输入用户名、密码4、进入管理控制台5、部署企业应用程序文件a、在控制台树上Deployments: Web Application Module,在页面上点击“Deploy a new WebApplication Module”链接,出现下图,可以选择文件或目录进行发布:b、选择“upload your file(s)”链接,进入如下页面,选择打包好的web应用文件,点击“upload”上传c、点击进入“\kdcerpserver \ upload”目录,如下图所示,选择kdcerp.war文件,点击“TargetModule”按钮发布6、配置数据源a、配置数据库链接池在控制台树上Services:JDBC:Connection Pools,点击“Configure a new JDBC Connection Pool”链接,进入如下页面,选择合适的驱动程序:b、配置weblogic JDBC Tx Data Source在控制台树上Services:JDBC:Data Sources,点击“Configure a new JDBC Data Source”链接,进入如下页面,输入合适的jndi名称(必需和程序中保持一致):7、重启weblogic,部署完成8、其它应用设置a、安装weblogic为系统服务installService.cmd文件可以注册当前web应用到系统服务中具体的用法为installService.cmd [用户名] [密码]b、优化weblogic编辑\bea\weblogic81\common\bin\目录下的commEnv.cmd文件的部分设置可以优化weblogic例如:修改:beaif "%PRODUCTION_MODE%" == "true" goto bea_prod_modeset JAVA_VM=-jrockitset MEM_ARGS=-Xms128m -Xmx256m为:beaif "%PRODUCTION_MODE%" == "true" goto bea_prod_modeset JAVA_VM=-jrockitset MEM_ARGS=-Xms512m –Xmx512m可以获得更好的内存利用率c、解决数据库服务器重启后weblogic不能自动重新连接数据库的问题设置connection的Test Table Name,建议为哑元“DUAL”,并且适当选择“Test Reserved Connections”、“Test Created Connections”和“Test Released Connections”等选项的应用1。
WebLogic Tuxedo连接器(WTC)快速入门
WebLogic Tuxedo连接器快速入门更多相关内容,详见/wls/docs81/wtc_qstart/quickstart.html本文档描述了如何使用WebLogic Tuxedo连接器将weblogic server8.1和tuxedo8.1互连。
使用的例子为weblogic的simpapp和simpserv,以及tuxedo的simpapp。
对unix用户可将本文中"\" 换成"/",并将".cmd" 换成".sh"。
本例提供以下服务:TOUPPER:一个tuxedo方服务,用于将字符串转换为大写。
Weblogic端客户通过调用TOUPPER EJB来获取这个服务。
TOLOWER:一个weblogic server端的EJB实现的服务。
可被tuxedo端客户调用。
本例包含以下两个域:TDOM2:weblogic使用的域TDOM1:tuxedo使用的域1.WebLogic Tuxedo连接器设置:1.在weblogic的控制台端先设置环境变量:打开ASCII文件%WL_HOME%\samples\domains\examples\startExamplesServer.cmd。
找到这个文件ENDLOCAL之前的一个命令行(大约是这个文件的倒数第二个命令行)。
在%JA V A_OPTIONS%的后面加上-Dweblogic.wtc.TraceLevel=100000。
注意,和前后字符串保持一个空格的距离。
此参数用于设置weblogic tuxedo连接器的最大级别。
保存并关闭次文件。
2.启动weblogic server:开始→程序→BEA WebLogic Platform 8.1→Examples→WebLogic Server Examples3.编译并部署weblogic端程序:开始→运行。
输入cmd,打开一个命令提示符窗口。
weblogic7安装手册和weblogic8 snmp配置
Weblogic部署安装手册1、点击下载好的weblogic安装包(exe的安装包),这里以weblogic7为例。
整个安装过程没有难度,安装向导操作就行。
参考链接(/view/a0ba32687e21af45b307a8f8.html)2、启动weblogic服务。
点击“开始”—“程序”如下图2.1;等服务自动启动后,会弹出2.2的图。
(2.1)(2.2)3、点击2.2图中的“Administrator Console”会出现下面的3.1画面(3.1)4、这时我们可以在控制台界面进行需要的配置。
默认情况下weblogic 是不开启snmp 并且默认端口为161如果要开启weblogic的snmp ,请勾选enabled并建议将端口设为1611,重启weblogic服务,通过netstat –na查看所设置的1611端口是否启动。
附件1:weblogic8的snmp配置界面保存后重启webloic 服务附件2:Weblogic9的snmp配置界面要对其进行编辑需要解开编辑锁左边如下图所示:编辑保存后出现点击activate changes 使改变生效需要重启weblogic 服务器附件3:weblogic 10的snmp配置界面Administrator consle登陆后将会出现选择snmp点击wl_server进入默认snmp 没有启动勾选enbabled保存后点击activate Changes注意weblogic 7,8,9 启动snmp 或改变端口是必须需要重启weblogic severWeblogic 10 是不需要的重新启动。
在linux上部署weblogic8服务
三、在linux上部署weblogic8服务(一)安装weblogic1.将weblogic的安装文件platform815_linux32.bin上传到linux系统上,如放在/gxs目录中,执行。
(注意:如果提示权限不够,用chmod赋于该文件执行权限,如下所示。
)2.弹出安装界面,选择“next”默认安装即可。
安装过程如下所示。
安装完成。
(二)创建domain 域1.安装结束后会弹出如下页面,选择“Create a new domain configuration …”进行weblogic域的创建,也可以在安装目录中/opt/bea/weblogic/common/bin 下执行quickstart 命令弹出此界面。
默认创建即可。
需要记住所创建的域名,及weblogic的密码。
注意要选择sun jdk.可以在此处修改域名。
2.创建完域后,在:安装目录/user_projects/domains中会显示所创建的域的文件夹,进入此文件夹,用vi修改startWeblogic.sh命令,在classpath中加入informix的jdbc包的路径。
3.进入/weblogic/bea81/user_projects/domains/域名,执行“nohup ./startWebLogic.sh>myserver.out &”或“./startWeblogic.sh”命令,即可启动Weblogic.4.其它命令:可以利用“jar xvf fanxq.war”命令来进行war的解压缩,jar命令存在于/bea/jdk1.4.2目录中。
可以利用“tail –f ”命令进行启动的域的日志的自动翻屏查看。
日志一般在所创建的域的/(三)在weblogic上部署应用程序1连接weblogic控制台将应用中的数据库对应的jdbc连接包(如ifxjdbc.jar)拷贝至weblogic安装路径的weblogic81/common/lib子目录下,并修改对应域的startWebLogic.sh文件,在其中的CLASSPATH定义中增加一条jar引用:${WL_HOME}/common/lib/ifxjdbc.jar。
WebLogic8.1服务器证书安装配置指南
\\\\\\\\\\\\编 号:AS-2006-H-020 版 本:866B6B7F 广东省电子商务认证中心Guangdong Electronic Certification AuthorityWebLogic8.1 服务器证书安装配置指南本文档所有内容版权均属广东省电子商务认证有限公司所有,受中华人民共和国法律保护。
任何个人或者单位未经广东省电子商务认证有限公司协议授权不得以任何方式复制、传播、转载、转贴或以其他方式非法使用,违者将依法追究责任。
目录1概述 (1)2应用环境 (2)3申请服务器证书 (2)3.1简要 (2)3.2产生keyStore文件weblogic.jks (2)3.3产生证书请求certreq.pem文件 (3)3.4向CA提交证书请求 (3)3.4.1在的网站上申请服务器证书,提交证书请求 (3)4下载服务器证书server.cer (6)5下载服务器证书的证书链 (6)6服务器证书安装 (8)6.1把4和5产生的证书统一放在与3.2同一目录 (8)6.2导入服务器证书的证书链证书到weblogic.jks (8)6.3导入server.cer入weblogic.jks 命令 (9)6.4显示确认已导入weblogic.jks文件的证书 (9)6.5产生weblogic的cacerts文件 (10)6.6导入服务器证书链的证书入cacerts文件 (11)6.7把weblogic.jks文件另存为weblogictrust.jks (13)6.8把以下三个文件复制到指定目录 (13)7weblogic的SSL配置 (13)7.1启动myserver的weblogic (13)7.2再选择下图中的SSL Listen Port Enabled (14)7.3选择Keystores & SSL项 (14)7.4点击上图中的"change",选择custom Truest (15)7.5配置keystores&SSL (15)8应用启用使用SSL (19)9配置服务器实现客户端提交数字证书 (19)9.1申请客户端数字证书 (19)9.2安装数字证书 (21)9.3安装数字证书证书链 (22)9.4查看数字证书 (23)9.5导出数字证书的根证书 (24)9.6把9.5导出的根证书都复制到weblogic服务器 (28)9.7添加客户端的证书的证书链到weblogictrust.jks文件 (28)9.8把产生的新weblogictrust.jks文件复制到指定目录 (29)9.9在weblogic里配置客户端数字证书相关 (29)9.10重新启动服务 (31)9.11有效的证书登录 (32)图表目录图表1产生keystore命令行里DName的域含义 (3)图表2申请服务器证书 (6)图表3下载服务器证书 (6)图表4打开证书链p7b文件 (7)图表5导出服务器证书(1) (7)图表6导出服务器证书(2) (7)图表7启动myserer的weblogic服务 (13)图表8选择SSL Listen Port Enabled (14)图表9选择keystores&SSL (15)图表10 CHANGE keystores (15)图表 11填写keystores&SSL的配置 (17)图表12private key alias配置 (17)图表 13SSL标志 (19)图表 14申请个人证书 (21)图表 15安装个人数字证书(1) (21)图表 16安装个人数字证书(2) (22)图表 17安装个人数字证书(3) (22)图表 18安装证书证书链 (23)图表 19查看证书 (23)图表 20证书路径(可查看知道该证书的证书链路径) (24)图表 21导出NETCA Test Individual CA(1)双击 (25)图表 22导出NETCA Test Individual CA(2) (26)图表 23NETCA Test Individual CA(3)详细信息 (27)图表 24选择Base64 (28)图表 25weblogic客户端配置(1) (29)图表 26weblogic客户端配置(2)选择advanced Option的Show (30)图表 27 weblogic客户端配置(3) (30)图表 28 weblogic客户端配置(4)点击Change 保存修改 (31)图表 29 weblogic客户端配置(5)成功保存配置 (31)图表 30重新启动服务 (32)图表 31弹出客户身份验证的证书(点击确定就可以登录你的系统了) (33)图表 32查看客户身份验证证书内容 (33)1概述数字证书又称为数字标识(Digital Certificate,Digital ID)。
WebLogic 8-11g升级介绍
•多节点结果第一 •搭配 RAC 结果第一 •双节点结果第一 •单节点结果第一 •单 CPU 结果第一
•See: /jAppServer2004/results/
WebLogic 套件
• 完善的集成能力
• 效率:
• 有史以来最易于升级
• GridLink for RAC
•GridLink for Oracle RAC
Weblogic server11g:Oracle应用服务器的完美整合
•定制应用 •其他 Oracle 融合中间件
•WebLogic Server 11g
•打包的应用
•Forms •Reports •Portal •Discoverer
•集群 •消息处理 •运行时
• 合理的处理过量的服务 – 过载保护
• 根据内存与队列容量的极限值的设定拒绝请求 • 通过降低非关键业务系统的使用资源,来保证关键业务系统的正常 • 过载的时候拒绝新的请求而不是降低整个服务器的服务质量
• 优雅的意外处理
• 可以选择当发生死锁、内存溢出等关键错误时,关闭或暂停服务器
•系统维护
全新的管理控制台
• • • • • • • • J2EE 1.4兼容性 本地的Web Services Portal界面框架 Apache Struts Apache Beehive Eclipse AspectJ Spring集成 Open JPA – 数据存储
J2EE
Web services Portal
Struts
减少风险;保证安全
动态的配置变化
• 事务式的配置变化 – all or nothing!
• 大部分的变化不需要重启服务器 • 对于所有需要重启Server才能生效的变化都有图形化提示 大大降低了因为配置变化所带来的宕机时间
WebLogic 8-9-10升级交流
<Insert Picture Here>Oracle WebLogic Server升级技术交流 升级技术交流牛秀元(Gary Niu)高级技术顾问议程WebLogic 8到9升级介绍 WebLogic 10.3 新特性 Q&AWebLogic Server - 技术领先的应用服务器• 整体性能提升 • 全新的可扩展管理控制台 • 支持最新的企业级Web services的标准,并进行了 相应加强和扩展 • 大大增强了消息传递性能 • 更优异的可靠性、可用性 和广域集群支持 WLS 9.0 通过 通过J2EE1.4认证 认证•性能提升 性能提升性能提升SPECjAppServer Improvements700 600 500 400 300 200 100 0 6.1SP1 7.0 7.0SP1 8.1SP3 9.2 10.0 10.3•SPECjAppServer is an industry standard benchmark for application servers. Results normalized to WLS 6.1 SP1.© 2007 Oracle Corporation – Proprietary and Confidential自调优的企业级内核• 静态的线程池参数可以不进行设置 • 系统自动维护线程池的大小 • 自动记录系统历史的吞吐量和性能统计 • 为了达到资源的最优分配,自动优化服务器 • 没有本地代码过载保护• 合理的处理过量的服务 – 过载保护• 根据内存与队列容量的极限值的设定拒绝请求 • 通过降低非关键业务系统的使用资源,来保证关键业务系统的正常 • 过载的时候拒绝新的请求而不是降低整个服务器的服务质量• 优雅的意外处理• 可以选择当发生死锁、内存溢出等关键错误时,关闭或暂停服务器•系统维护 系统维护全新的管理控制台减少风险;保证安全动态的配置变化• 事务式的配置变化 – all or nothing! • 大部分的变化不需要重启服务器 • 对于所有需要重启Server才能生效的变化都有图形化提示 Server ⇒大大降低了因为配置变化所带来的宕机时间WebLogic Diagnostic Framework (WLDF)•在WLS 9中推出的一个统一、可扩展的诊断框架•丰富的客户端用户接口(JFC/Swing)•新型‘驾驶舱’风格视图并行的应用部署–零宕机•应用的多个版本可以并存•可在新版本生效前将其在生产环境进行测试,而不影响老的版本回退到老的版本Single Cluster / ServerApp AApp A’••应用的自动退休–graceful, timeout, immediate •减少了所需的硬件, 软件, 维护, 支持成本并行应用的例子BEA WebLogic Server 9.0Application V1SUCCESSClient #1DeployApplication V2WLS AdminClient #2Application V2•应用开发混合的开发模式将开源软件& 商业代码融合在一起•J2EE 1.4兼容性•本地的Web Services •Portal 界面框架•Apache Struts Enterprise Class J2EEPortalSpringStrutsWeb servicesEnterprise Grade •Apache Beehive •Eclipse AspectJ •Spring 集成•Open JPA –数据存储Kernel AspectJBeehiveOpen JPAKernel应用模块化•共享类库(Shared Library)•将Java classes/WARs/EJB-JARs/EARs发布成共享类库•其它应用可以引用这些共享类库•支持版本管理•没有classloader问题Java Messaging Service (JMS)•Unit of Order –提供严格的顺序消息处理•Store and Forward –保证可靠的消息传递•JMS管理–message管理APIs和工具•“C” API•Lots more …降低了Web Services开发的复杂度•支持JWS开发模式•JSR 181•避免开发人员直接编写复杂的配置文件•适应不同的开发需求•从Java生成配置文件•从WSDL生成代码•可靠的传输•支持WS-Reliable Messaging和WS-Addressing•系统迁移平滑的升级•大部分现存的基于WebLogic Server的应用可以不需要任何修改运行在WebLogic Server 9的环境中•Domain Upgrade Wizard•指导你分步骤的将WebLogic Server 6.1, 7.0, or 8.1的Domain升级到WLS9.0兼容的Domain•交互的升级过程,可以使用GUI界面, 或者是“silently,” 通过创建升级脚本•注意: 你需要自己手工升级自己开发的Security Provider和在使用中的Node Managers•MedRec交互升级的示例:•/common/docs90/upgrade/intro.html#1053492•重要: 以上所说的不包含升级Workshop开发的JWS, JCX, PageFlows,etc…议程WebLogic 8到9升级介绍 WebLogic 10.3 新特性 Q&AOracle WebLogic Server 10.3 发布背景• WLS 9.2 – 主要提升管理和运行态管理的功能 • WLS 10.0 – J2EE5 支持 • WLS 10.3 – J2EE6 支持,WLS 10版本的成熟系列• 开发者相关• Lightweight, Workshop, Spring, Web 2.0, FastSwap• 运行态和管理控制台的效率• SPECjAppServer 测试, • 支持轻量级部署 • 从WLS 9.2/10.0 技术方面的升级 • Web Services, JMS, Security - compliance/standards • Oracle 公司内政策的遵循 • License key, certification, branding, security …WebLogic Server 10.3“主题” 主题” 主题®• • • • • •轻量级 性能提升 SOA Web 2.0 开源支持 标准升级、技术融合•Clients •Browser •Java •WS •.NET•WebLogic Server•JEE/WS •Spring •Web 2.0•RASP Infrastructure轻量级 WebLogic Server ---下载,安装,启动,管理和部署 下载,安装,启动,• 轻量级的安装• “核心” WLS部件安装, 附加选件(JDK等) • 减少下载和安装时间,降低产品占用空间• 快速切换(FastSwap)• 修改class代码,而不需重新部署 • 加速开发/部署/调试的周期• 可选择的服务启动• 可以独立启动 WebApp容器,而无需 EJB, JMS, JCA 服务 • 开发者可以灵活使用• 应用部署/启动的性能改善• EJB编译性能改善轻量级Weblogic的使用 --- 模块化安装 的使用 轻量级快速交换( 快速交换(FastSwap) )• 传统的J2EE开发周期: Edit > Build >Deploy > Test •Accelerate • 对每一次修改,开发人员必须经历整个周期 Development • 一些IDE工具自动完成编译、打包过程: Cycle Edit > Deploy > Test • FastSwap 目标是消除Deploy阶段 •Debug Edit > Test • 例如:一个Web 开发人员修改代码,刷新浏览器就可以立即看到结果 • WebLogic 的实现• 使用 JSE 6.0 Dynamic Class Redefinition并应用于Server Context•Develop •Deploy• 目标加速开发, 加速开发,缩短实施的时间改善管理控制台性能• 按需部署 • 加快页面加载 • 流化的Page Flow • 自动的变化管理 • 应用部署优化 • 相比于WLS9.2/10.0而 言,有2~3倍速度提升•© 2007 Oracle Corporation – Proprietary and Confidential管理控制台功能扩展性示例 - WLDFSpring 的支持• 构建在已有的支持之上 • Spring 2.5 认证 • 改善基于Spring应用的管 理• 分布式能力 • 查看Spring的部署 • 查看Spring的配置• Admin and Monitoring•WebLogic Server•RASP Infrastructure• Spring 安全与/WLS安全的 集成Spring 管理控制台 --- 示例•paper-cert ‘double-dot’ Spring versionsWeb Services•JAX-RPC Web Services 中对WS-* 规范增强•标准化基础的企业级支持•SAML Token Profile 1.1 (支持SAML 1.1 & 2.0)•WS-Reliable Messaging 1.1•改善与MS/Indigo 互操作性•提升JAX-WS Web Services功能•升级支持到JAXB 2.1 & JAX-WS 2.1•WS-Security, WS-SecurityPolicy的支持•Common Handler Framework (CHF)•支持Message-Based Security•支持OASIS XML Catalog v1.1•在JAX-WS 和JAX-RPC下,驱动支持通用WS-*•SAML Token Profile 1.1•WS-Policy 1.5, WS-SecurityPolicy 1.2.•Workshop IDE支持JMS 提升•扩展企业级消息处理能力•JMS .Net 客户端•使.NET 应用可以使用WLS JMS 主干•JMS前端/客户端,融合在.Net体系中(DLL文件,而非Java)•基于JMS 1.1 API, 并支持WLS 的扩展•直接访问JMS,而无需中介•JMS 服务自动迁移•减少消息仍滞留在失效的节点上•利用ASM –将服务迁徙到其他服务器上•缩短JMS失效时间和整个服务器的迁移Web 2.0•Ajax/Dojo 客户端的支持•支持客户端应用采用Rich UI•Http pub/sub 引擎,以用于协作式应用•Java •Browser •Browser •Browser •Clients •在应用内,通过持久化连接使能数据交换•Dojo 客户端和可扩展的服务端处理引擎•pub/sub server infrastructure •Bayeux with Cometd •APIHTTP Pub/Sub Server•为基于web的客户端应用提供消息路由•Client to server•Server to client•Client to client (via the server)•基于‘Bayeux’ 协议•采用发布-订阅模式•采用HTTP ‘push’ 技术发送消息•支持JMS集成WebLogic Workshop•WLS 10.3 捆绑WebLogic Workshop•基于Eclipse 3.3 & WTP 2.0•支持JDK 6 和Windows Vista•相关Web Services 技术的支持•JAX-WS, JAX-B 工具•更新JAX-RPC支持•从JAX-RPC & JAX-WS Web Services创建Web Service客户端应用••支持J2EE5 规范•创建EE5 EAR 和EJB3 项目•基于新标准来创建Web 应用•Weblogic Server 的附加值•支持FastSwap•远程部署•新的编辑和向导,主要针对Weblogic Server 的部署文件•从旧版本升级的工具延续应用服务器的性能领导者•运行状态的性能提升•针对应用服务器上所有模块-例如SPECjAppServer 测试结果•控制台和启动性能提升•相比于WLS9.2/WLS10 有2倍到3倍的改善•异步的HTTP Session复制•减少HTTP客户端响应的延迟WebLogic 10.3 升级支持•Domain 升级和兼容性•支持WLS 9.X, 10.0升级,提供升级工具和向导•统一的升级工具•WLS 10.0 domains 与WLS 10.3兼容•应用升级和兼容性•一些APIs 在从8.1 到9.2中删除,而从9.2 到10.0只有很小的变化•10.0 到10.3 API 理论上没有变化(bugs, OpenJPA支持例外) •跨版本互操作•8.1, 9.2, 10.0 到10.3支持跨版本的操作•7.0 到10.3 的互操作需要补丁(需要确认版本和JMX等)•WLS Essex StatusQ&A感谢诸位的时间。
webLogic和tomcat连接池的使用
webLog ic和to mcat连接池的使用WebLog ic连接池配置(WebLog ic默认是7001端口)建立用户服务器1 选择Conf igura tionWizard,选择新建We bLogi c配置,下一步2 选择Basi c WebLog ic Server Domain模板下一步3 快速下一步4 输入WebL ogic用户名和密码(不少于8位)下一步5 选择启动模式,和JDK 下一步6 输入文件名和路径创建配置服务器连接池1 把sql的j ar包复制到webl ogic81/server/lib目录下2 mydoma in/startW ebLog ic.cmd文件的class path变量中加入三个jar包的绝对路径(startW ebLog ic.cmd为用户WebLo gic的启动程序)3 启动WebL ogic(也就是启动s tartW ebLog ic.cmd文件)4 输入网址http://WebLog ic服务器地址:7001/consol e 进入控制后台5 选择JDBC项目中的c onnec tionpools6 选择Conf igure a new JDBC Connec tionPool... 选项7 在Datab aseTy pe 中选择要连接的数据库类型,如MS SQL Server就是micr osoft SQLSer ver; 在Datab aseDr iver中选择使用的驱动程序,选Conti nue进入下一项8 name为连接名Databa seNam e为要连接的数据库名,Host Name 为要连接的数据库地址,Port数据库端口号,设置数据库用户名和密码9 测试连接如果测试成功自动进入下一页10 创建连接11 选择创建的连接名,进入连接配置页面,选择Conn ectio ns,在高级选项(Advanc ed Option s)中选show,把TestReserv ed Connec tions,Test Create d Connec tions,Test Releas ed Connec tions选中,在TestT ableName:输入查寻语句,选择Appl y12 选择T arg et and Deploy选项,选中服务器,点击Appl y13 选择Test ing选项,单击Test Pool进行测试是否连接成功14 如果出现Co nnect ion succes sfulon: myserv er ,为绿色显示代表连接成功设置连接池数据源1 选中Data Source s 进入数据源配置2 选中Conf igure a new JDBC Data Source建立一个新的数据源3 给数据源起一个JNDI名称4 在poolname 中选择要使用的连接池,contin ue5 create创建在MyEcl ipse中部属Web Logic1 在部属页面中选中你要部属的Web Logic的版本,我这是Web Logic82 选中Enab le,在BEA home direct ory 中输入Web Logic的bea目录C:\bea3 在WebLo gic intall ation direct ory中输入WebL ogic的根目录(也就是web logic81目录)C:\bea\weblog ic814 在Admin userna me 中输入你创建的WebL ogic的用户的名Adminpasswo rd 中输入密码5 在Execu tiondomain root 中输入你创建的WebL ogic服务的目录C:\bea\user_p rojec ts\domain s\mydoma in6 在Secur ity policy file中输入poli cy配置文件所在目录C:\bea\weblog ic81\server\lib\weblog ic.policy7 JDK密码创建的服务所用的JDK相同,在JRE home direct ory 中输入你用的jdk的目录C:\bea\jdk141_058 在Paths选项加入选Add Jar/zip加入启动服务必须的webl ogic.jar,webser vices.jar包和连接池所用的数据库驱动包9 完成WebLog ic中使用连接池/*********<body><%javax.naming.Contex t cont = new javax.naming.Initia lCont ext();javax.sql.DataSo urcedata = (DataSo urce)cont.lookup("jdbc/pubs");Connec tionconn = data.getCon necti on();Statem ent st = conn.create State ment();Result Set rs = st.execut eQuer y("select * from jobs");while(rs.next()){out.print(rs.getStr ing(1));}%></body>********/Tomcat中使用连接池在looku p()的格式必须是object.loopup("java:comp/env/JNDI名称")Tomcat连接池配置1 把jdbc驱动和too ls.jar包复制到tomc at 的commo n/lib目录中(tools.jar用于编译java 程序)2 启动tomc at3 选择Reso urces中的Dat a Source在Data Source Action s 下拉列表中选择crea te new dataso urce4 在JNDIName 中输入JND I名称,在DataSoruce URL中输入连接字符中jdbc:micros oft:sqlser ver://127.0.0.1:1433;Databa senam e=pubs在JDBCDriver Class中输入驱动c om.micros oft.jdbc.sqlser ver.SQLSer verDr iver,User Name 为数据库用户名Pass word密码,Max. Active Connec tions: 代表最多开几个连接,Max. Idle Connec tions最少几个连接Max. Wait for Connec tion:等待连接数5 单击Save,如果没有出错单击Com mit change s 提交6 将J2EE项目部属到服务器中7 在Servi ce/Host中找到所部属的项目,选择项目中的Resou rce Links选项8 在Resou rce Link Action s列表中选择Crea te new Resour ce Link9 在Name中输入引用名,在Globa l中输入已定义的JN DI名,在Type中输入类型为javax.sql.DataSo urce10 选择Save如果没有错误,选择Comm it Change s两种使用we blogi c连接池的方法:web 应用鉴于连接池的优越性,WEB的任何一个应用,只要和数据库关联,我想连接池肯定是首选,连接池为解决这种“多次、短时间”的交互提供了最佳的解决方法。
WebLogic和Tomcat数据源配置和访问
Tomcat 5和WebLogic 8数据源的配置和使用Tomcat 5和WebLogic 8数据源的配置和使用 (1)Weblogic数据源配置 (1)Tomcat 数据源的配置 (7)Weblogic数据源配置启动服务器和数据库.进入控制台,选择左侧组件树的Services > JDBC > Connection Pools选择数据库类型定义连接属性(URL等)测试数据库连接连接池配置结束. 连接池在JNDI上没有显示信息. 配置数据源绑定到JNDI上.JNDI 路径区分大小写发布成功后可以在JSP/Servlet/Web模块中的Java类中访问数据源:<%@ page language="java" import="java.sql.*" pageEncoding="GBK"%>JNDI 数据源测试:<%javax.naming.InitialContext ctx = new javax.naming.InitialContext ();// 打开 JNDI 树javax.sql.DataSource ds =(javax.sql.DataSource)ctx.lookup("jdbc/oracle");// 找文件, JNDI 路径区分大小写Connection conn = ds.getConnection();out.println(conn.getMetaData().getDatabaseProductName());// 数据库版本Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("select * from student");while(rs != null && rs.next()) {out.println(rs.getString(2) + "<br>");}rs.close();stmt.close();conn.close();%>连接SQL Server无法JDBC连接的问题: 安装Sqlserver SP3, 或者启用TCP/IP.如果Weblogic没带驱动, 需要修改启动脚本:C:\bea\user_projects\domains\mydomain\startWebLogic.cmdetCLASSPATH=%WEBLOGIC_CLASSPA TH%;%POINTBASE_CLASSPATH%;%JA V A_HOME %\jre\lib\rt.jar;%WL_HOME%\server\lib\webservices.jar;%CLASSPA TH%加入自己的JDBC驱动jar即可到最后即可而在MyEclipse里启动需要配置Server的属性中的类路径:Tomcat 数据源的配置1.将JDBC驱动jar放入TOMCAT安装目录/common/lib 下面,例如ojdbc14.jar;2.在项目的WebRoot/META-INF/创建文件context.xml, 里面写入Datasource 配置信息:context.xml文件写法<Context><!-- 配置名为 dstest 的数据库连接池 --><Resource name="jdbc/oracle" auth="Container"type="javax.sql.DataSource"maxActive="10" maxIdle="30" maxWait="10000"username="scott" password="tiger"driverClassName="oracle.jdbc.OracleDriver"url="jdbc:oracle:thin:@127.0.0.1:1521:ZKTB"/> </Context>访问代码:<%@ page language="java" import="java.sql.*" pageEncoding="GBK"%>JNDI 数据源测试:<%javax.naming.InitialContext ctx = new javax.naming.InitialContext ();// 打开 JNDI 树//javax.sql.DataSource ds =(javax.sql.DataSource)ctx.lookup("jdbc/oracle");// 找文件javax.sql.DataSource ds =(javax.sql.DataSource)ctx.lookup("java:comp/env/jdbc/oracle");// Tomcat 访问 JNDI java:comp/env/Connection conn = ds.getConnection();out.println(conn.getMetaData().getDatabaseProductName());// 数据库版本Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("select * from student");while(rs != null && rs.next()) {out.println(rs.getString(2) + "<br>");}rs.close();stmt.close();conn.close();%>。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WTC在weblogic8.0上的配置
把例子以佛山的wtcEJB配置为例:
1.在weblogic控制台页面的左页面选择services=>>WTC
选择configure a new WTC Services
如图:
2.填写WTC的名称,并且按create按钮
3.在foshanIbss节点下产生7个子节点
4.选择Local Tuxedo Access Points节点:
点击Configure a new Local Tuxedo Access Point...超链连
产生一个配置本地端访问点的页面。
输入本地的访问节点名为(FOSHANWTC)。
图中显示的foshanIbssLocal有错。
在Network Address项中填入weblogic的IP地址以及一个唯一的端口号
如图:
5.配置远程tuxedo的访问节点。
选择Remote Tuxedo Access Points节点,点击Configure a new Remote Tuxedo Access Point...超链连
产生配置远程访问点的页面。
输入远程的访问节点名,本地的访问节点名。
在Network Address项中填入远程tuxedo端的IP地址以及唯一的端口号。
如图:
6.配置远程tuxedo对本地端访问的服务名(一个ejb)
点击Exported Service节点,点击Configure a new Exported Service (佛山目前没有设置tuxedo对本机的访问)
7.配置本地端对远程tuxedo访问的服务名增加一个用户名(由一个EJB调用远程服务)
点击Imported Service节点,点击Configure a new Imported Service
输入Resource Name: IMCHANNEL
Local Access Point : FOSHANWTC
Remote Access Point List: intfdom
点击create按钮
8.配置远程对本地的访问密码(如果有配置Exported Service时需要,其它时候不需
要)
Secuity=>realm节点
点击Configure a new User
Name:FOSHANWTC Password:1234
Confim password:1234。