注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

JAVA咖啡屋

 
 
 

日志

 
 
关于我

秋天,叶子落了。秋风卷着落叶不知吹向何方,我在秋风中寻找着属于我的落叶。当我找到的时候,又不知该怎样将它留下。

网易考拉推荐

有关WebLogic域配置策略  

2009-04-08 15:41:42|  分类: 技术讨论 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
域含有BEA WebLogic Server实例的配置信息。它包含有关服务器、集群和机器的配置信息。域还含有关于资源,例如Java数据库连接(Java DataBase Connectivity,JDBC)、连接池、JDBC数据源、连接工厂和Java消息服务(Java Message Service,JMS)队列等的配置信息。此外,域还包含有关部署在该实例上的应用程序的配置信息。域配置信息保存在config.xml文件中。在本文中,我将评价WebLogic域配置的各种策略。
m3 m9 f% |8 T
  您可以直接操纵config.xml文件(例如,手动编辑该文件)。但是本文评价的大多数工具将间接操纵config.xml。大多数工具(例如,WebLogic Console)处理Java管理扩展(JMX) Management Bean(MBean)。WebLogic Server实例在config.xml文件中保存Mbean的状态。
域配置和JMX; C! A0 n3 a* z- G' _" b* p5 a
  config.xml文件含有关于WebLogic Server实例的持久性信息。当WebLogic Server 实例启动时,WebLogic Server读取config.xml文件并部署资源和应用程序。资源和应用程序具有相应的MBean。服务器通过这些Mbean接触配置信息。有许多不同类型的Mbean。在本文中,我主要讨论config.xml文件中与条目对应的Mbean。
  如果在运行时更改了Mbean的属性值,新的值将被保存在config.xml文件中,使它成为持久的值。例如,如果在WebLogic Server Console中修改Mbean的属性值,该属性值也将保存在config.xml文件中。因而,在服务器重启期间,可以利用配置属性值,因为配置属性值持久地保存在config.xml文件中。
下节描述了域创建和配置的的各种方法,并将不同的可用选项分类
众多的选项 % q# c8 x9 t* l7 g
  幸运的是,可以使用很多不同的方法来创建和配置域。最常用的创建域的方法是使用Domain Configuration Wizard(域配置向导),而最常用的配置域的方法是使用WebLogic Console。还有许多其他可用的方法,包括:
  • 使用域配置向导
  • 使用域配置模板
  • 使用无声脚本
  • 使用WLShell脚本
  • 使用WLST脚本
  • 直接使用Java编码和JMX应用程序编程接口(API)
  • 使用记号替代法(例如,Bedrock)
  • 使用weblogic管理员命令
  • 使用wlconfig和wldeploy Ant任务
  • 手动编辑config.xml文件
  下面是根据配置域所采用的技术将上述选项分类的一种方法:7 S2 h* r  w7 T3 |* f, m
  • 手动:WebLogic Console、Complete Domain Configuration Wizard
  • 模板:自定义符号替代脚本(例如,使用Ant)、Bedrock、完全模板、扩展模板
  • 脚本:无声、WLShell、WLST、Ant
  • 使用Java编程
  将上述选项分类的另一种方法是根据它们是否随WebLogic平台一起发布:
  • 包括的(和支持的): WebLogic Console、完全Domain Configuration Wizard、完全模板、 扩展模板、无声脚本、Ant
  • 其他的:WL Shell、WLST、自定义符号替代脚本、Bedrock
  还有一种将上述选项分类的方法是:根据服务器在线或者离线时,是否需要修改选项。当服务器的实例正在运行时,进行在线修改。由服务器在线修改JMX Mbean,并保存在config.xml文件中。当服务器正在运行时,建议不要直接修改config.xml文件。
  • 在线:WebLogic Console、ANT、WLST
  • 离线:完全Domain Configuration Wizard、完全模板、扩展模板、无声脚本、WLShell、自定义符号替代脚本、Bedrock
  为了举例说明域配置的各种策略,您将创建一个域,并修改它。  y, K: u  n) e3 H% Y
高级目标, ~8 D4 r! Y' y9 ^
  使用不同的域创建和配置策略,您将实现下面的目标:请不要立即按照这些步骤做。稍后,我将要求您每次使用不同的策略创建和配置域:
  • 创建 WebLogic Workshop 域
  • 将服务器的调试级别变为信息级
  • 改变服务器,使能够对标准输出(stdout)调试
  • 配置一个名为semJDBCConnectionPool的JDBC连接池
  • 配置一个名为jdbc/semJDBCDataSource的JDBC数据源,其JNDI名称为jdbc/semJDBCDataSource
  • 配置一个名为semJMSConnectionFactory的JMS连接工厂
  • 配置一个名为semJMSJDBCStore的JMSJDBCStore
  • 配置一个名为semJMSServer的JMSServer
  • 配置一个名为semJMSJDBCStore的semJMSServe仓库
  • 配置一个名为PersonQueue的JMS队列,其JNDI名称为jms/PersonQueue
  • 部署示例应用程序:SEMApp Enterprise ARchive(EAR)
  • 测试应用程序,验证域配置
  对于每一种策略,某些步骤,例如域创建、数据库配置和验证配置都是通用的。下面几节介绍这些步骤。

域创建
  利用Domain Configuration Wizard,按照下面这些步骤创建一个WebLogic Workshop域。请不要立即进行这些步骤。稍后,在我详细解释不同策略的时候,我会要求您执行这些步骤:
  • 启动Domain Configuration Wizard(例如,在Windows上, 选择 Start > All Programs > BEA WebLogic Platform > Configuration Wizard)
  • 选择Create a new WebLogic Configuration,并点击Next
  • 选择Basic WebLogic Workshop Domain,并点击Next
  • 选择Express,并点击Next
  • 指定User name为system
  • 指定User password并将Confirm user password指定为password ,并点击Next
  • 选择Development Mode,并点击Next
  • 指定Configuration Name为某些有意义的名称,并点击Create
  • 点击Done
  在您能够配置域之前,您需要配置数据库。数据库配置发生在创建域之后,配置域之前。

数据库配置  I( k0 g6 e2 A
  所有示例都使用PointBase作为数据库。启动WebLogic Server的实例(Workshop域的)也启动了PointBase。在PointBase的实例中,创建用户、模式(schema)和表。请不要立即进行这些步骤。稍后,在我详细解释不同策略的时候,我会要求您执行这些步骤:
  • 验证WebLogic Server的某个实例正在运行
  • 启动PointBase 控制台(例如,在Windows 上,选择Start > All Programs > BEA WebLogic Platform > Examples > WebLogic Workshop > PointBase Console)
  • 在Connect to the database对话框中,指定下述各项
  • 验证数据库的URL是:jdbc:pointbase:server://localhost:9093/workshop
  • 验证User是WebLogic
  • 指定Password为WebLogic
  • 创建一个新用户(例如,Ctrl+u),用户名是sem、密码也是sem
  • 断开与数据库的连接(DBA菜单和Disconnect from Database)
  • 使用sem作为User、sem作为Password连接到数据库(DBA菜单和Connect to Database或者F3)
  • 创建一种模式(例如,Ctrl + h),并命名为sem
  • 复制和粘贴db/sem.sql 的内容到Enter SQL Commands窗口中
  • 选择Execute All toolbar条目
  • 验证sem模式已用表生产
  一旦创建了域,就要配置数据库,并且要用资源和示例应用程序配置该域,需要验证设置过程。

验证域配置
  要验证创建和配置的域是否正确,请运行简单的Junit测试程序。包含的源代码示例含有一个示例应用程序和一个运行Junit测试的Ant文件。复制sample-build.properties到build.properties中,编辑build.properties中的条目以适合您的环境。build.properties只需要创建一次。一旦您创建并配置了某个域之后,我会要求您调用下面的命令: $ M/ i( x  z/ }  ~
  如果测试程序成功运行,则应用程序部署正确、资源配置正确。如果有任何异常,并且测试失败,则应用程序或者资源没有配置或者部署不正确。仔细检查并分析栈跟踪情况,并进行问题调试。# p- r; P8 k) _5 h. d
  一旦测试程序成功运行,就关闭WebLogic Server实例(例如,域目录/stopWebLogic.bat或者 sh)。总是利用脚本、而不是激烈的手段(如ctrl+c)来关闭WebLogic Server。
a5 C' j, ~7 f
手动快速(Express )配置" _6 t" X- z% W% g. @# Q1 z' v
  利用域创建一节所述的步骤,用SEMDomain-Manual-Express作为配置名创建一个新域。启动WebLogic Server实例,利用数据库配置一节所述的步骤配置数据库。
  在许多不同的项目中,我已经利用WebLogic Server Console成功地完成了多次手动配置。* ]3 e* u1 z+ _% E, n6 ~

更改日志记录级别
  • 确定WebLogic Server正在运行
  • 启动WebLogic Server Console(例如:http://localhost:7001/console)
  • 登录到控制台
  • 选择Servers / cgServer
  • 选择Logging选项卡
  • 复选Debug to Stdout复选框
  • 从下拉列表中,选择Stdout Severity Threshold为Info
  • 选择Apply
配置连接池
  • 确定WebLogic Server正在运行
  • 启动WebLogic Server 控制台(例如:http://localhost:7001/console)
  • 登录到控制台
  • 选择Services/JDBC/Connection Pools
  • 选择Configure a new JDBC Connection Pool
  • 从Database Type下拉列表中选择PointBase
  • 从Database Driver中,选择PointBase's Driver (Type 4) Versions: 4.X
  • 选择Continue
  • 指定Name为semJDBCConnectionPool
  • 指定Database Name为workshop
  • 指定Host Name为localhost
  • 指定Port为9093
  • 指定Database User Name为sem
  • 指定Password为sem
  • 指定Confirm Password为sem
  • 选择Continue
  • 测试驱动程序配置
  • 创建并部署
配置数据源( n- O# j9 y& b
  • 确定WebLogic Server正在运行
  • 启动WebLogic Server 控制台(例如:http://localhost:7001/console)
  • 登录到控制台
  • 选择Services / JDBC / Data Sources
  • 选择Configure a new JDBC data Source
  • 指定Name为 jdbc/semJDBCDataSource
  • 指定JNDI Name为jdbc/semJDBCDataSource
  • 选择Emulate Two-Phase Commit for non-XA Driver
  • 选择Continue
  • 指定Pool Name为semJDBCConnectionPool
  • 选择Continue
  • 点击Create,确定数据源的目标
配置JMS连接工厂& D. T1 P" r- S+ i& U3 s2 ^- ^, ^
  • 确定WebLogic Server正在运行
  • 启动WebLogic Server 控制台(例如:http://localhost:7001/console)
  • 登录到控制台
  • 选择Services / JMS / Connection Factories
  • 选择Configure a new JMS Connection Factory
  • 指定Name为semJMSConnectionFactory
  • 指定JNDI Name为jms/semJMSConnectionFactory
  • 选择Create
  • 作为目标并在cgServer上部署
  • 选择Configuration选项卡
  • 选择Transactions子选项卡
  • 选择XA Connection Factory Enabled
  • 选择Apply
配置JMS JDBC库" E# B/ u  |1 B) r1 `
  • 确定WebLogic Server正在运行
  • 启动WebLogic Server控制台(例如:http://localhost:7001/console)
  • 登录到控制台
  • 在左边的导航窗格中选择Services / JMS / Stores
  • 选择Configure a new JMS JDBC Store
  • 指定Name为semJMSJDBCStore
  • 选择Connection Pool为semJDBCConnectionPool
  • 选择Create
配置JMS服务器. f9 w# t( \/ T. H7 S
  • 确定WebLogic Server正在运行
  • 启动WebLogic Server控制台(例如:http://localhost:7001/console)
  • 登录到控制台
  • 在左边的导航窗格中,选择Services / JMS / Stores
  • 选择Configure a new JMS Server
  • 指定Name作为semJMSServer
  • 通过在下拉列表中进行选择,指定Persistence Store为semJMSJDBCStore
  • 选择Create
  • 将semJMSServer的目标设为cgServer
配置JMS队列  @' q% D; ?& Y1 W. ]% ]/ m4 `/ c9 z
  • 确定WebLogic Server正在运行
  • 启动WebLogic Server控制台(例如:http://localhost:7001/console)
  • 登录到控制台
  • 在左边的导航窗格中,选择Services/JMS/Servers/semJMSServer /Destinations
  • 选择Configure a new JMS Queue
  • 指定Name为PersonQueue
  • 指定JNDI Name为jms/PersonQueue
  • 选择create
  • 选择Redelivery子选项卡
  • 指定Redelivery Limit为3
  • 选择Apply
  现在,您已经完成对应用程序资源的配置。但在部署应用程序之前,您仍需要配置与workshop相关的资源。8 k$ p8 x6 P( E8 |
# K' p7 b) w0 X0 h
配置与workshop相关的资源
  • 确定WebLogic Server正在运行
  • 启动WebLogic Server控制台(例如:http://localhost:7001/console)
  • 登录到控制台
  • 在左边的导航窗格中,选择Services/JMS/Servers/semJMSServer/ Destinations
  • 选择Configure a new JMS Queue
  • 指定Name为SEMAppWeb.queue.AsyncDispatcher_error
  • 指定JNDI Name为SEMAppWeb.queue.AsyncDispatcher_error
  • 选择Create
  • 选择Redelivery子选项卡
  • 指定Redelivery Limit为0
  • 选择Apply
  • 在左边的导航窗格中,选择Services/JMS/Servers/semJMSServer/ Destinations
  • 选择Configure a new JMS Queue
  • 指定Name为SEMAppWeb.queue.AsyncDispatcher
  • 指定JNDI Name为SEMAppWeb.queue.AsyncDispatcher
  • 选择Create
  • 选择Redelivery子选项卡
  • 选择Error Destination为 SEMAppWeb.queue.AsyncDispatcher_error
  • 选择Apply
  现在您已经准备好部署应用程序了。% K7 f: e: P1 }2 i) J6 ]. W
  x" ~" A% _& D9 j5 p' p3 X
部署应用程序
  • 确定WebLogic Server正在运行
  • 启动WebLogic Server控制台(例如:http://localhost:7001/console)
  • 登录到控制台
  • 在左边的导航窗格中,选择Deployments/Applications
  • 选择Deploy a new Application
  • 浏览到SEMApp.ear文件的位置
  • 选择SEMApp.ear
  • 选择Continue
  • 选择Deploy
  一旦应用程序部署成功,就重启服务器。按照验证域配置一节所述运行测试程序。
) b5 n3 c. U. y  {9 J3 @- G  也存在其他利用Domain Configuration Wizard的手动策略。一个选择是通过选择Custom选项(而不是Express)来创建和配置一个全新的域。当向导提示您创建资源,例如JDBC Connection Pools时,按照创建和部署资源的步骤执行。另一个选择是使用Domain Configuration Wizard配置一个已经创建的域。在Domain Configuration Wizard的第1步中,选择Extend an existing WebLogic configuration。创建上述域的过程留做一个练习。但是使用这些策略并不一定能够完成所有的配置,例如目的地的Redelivery属性的配置。) p( z! l1 X. e, p. k) x9 l
  为了成功地使用手动策略,项目需要保存一个配置指南。该配置指南包含如上所述的逐步指令。但是,手动配置过程冗长乏味而且耗费时间。设置另一个域还需要额外的时间和精力,更重要的是,该过程还易于出错。微小的配置错误,例如,JNDI名称拼错,都会导致大量的故障排除和调试工作。% k! h2 H9 \$ z/ v8 A
  自动化创建和配置域选项应该是首选。Java是功能强大的语言,用Java可以直接操纵Mbean。但这种方法是低层次的方法。还有其他可供选择的方法,例如模板和脚本。在手动模板中,用标记将config.xml模板化。稍后再用实际值替代标记。手动模板方法要求非常深入、彻底地了解config.xml文件。在有些项目中,我曾使用过手动模板。Bedrock是基于Ant的、支持这样的模板的工具。但是,Bedrock看起来不能有效地维护。另一种重要的模板技术是使用域模板。这种技术不要求深入地了解config.xml。模板的创建通过配置模板构建工具得到了很好地支持。下一节讨论使用配置模板构建工具通过模板自动配置域的方法。% i" O: @+ \; E1 M
7 {4 v$ k' Q/ Y7 p6 |9 a, I
域模板$ Z1 P; i! n/ ?0 A# t
  当您手动创建域时,您使用了workshop模板。但什么是模板呢?模板是含有配置信息的Java ARchive(JAR)文件,是config.xml文件的相关片断。有两种类型的模板:完全模板和扩展模板。使用完全模板,可以创建一个新的域。上面所用的workshop模板就是完全模板的一个示例。而使用扩展模板,可以扩展一个域。稍后使用的DefaultWebApp模板则是扩展模板的一个示例。' T9 f) g, g- F6 X' o6 V
  怎样创建一个模板呢?有一个称为配置模板生成器的特殊工具可以帮助完成,无论是完全模板还是扩展模板。创建模板的方法都有两种。第一种方法是:扩展某一扩展模板。第二种方法是:根据现有的域创建模板。下一节,您将根据现有的域创建一个完全模板。8 F2 ]/ o  ~% L* f% c3 a: o0 J7 v
5 D; P) n$ @) F( X2 P
完全模板$ ]/ B: C: V  Z2 L( t1 ?
  这一节,我将举例说明根据一个现有的、预先配置的并且工作的域来创建完全模板的方法。按照下述这些步骤创建一个完全模板:, H* v3 s  O' Q# ?
  • 启动配置模板生成器(在Windows上,选择Start > All Programs > BEA WebLogic Platform > Other Development Tools > Configuration Template Builder)
  • 选择Create a Configuration Template,并点击Next
  • 选择Basic WebLogic Workshop Domain,并点击Next
  • 选择一个现有的、预先配置的并且工作的SEM域(例如, SEMDomain-Manual-Express),并点击Next
  • 指定Name为SEMTemplate- Complete
  • 指定Author(例如,Bart)
  • 指定Category(例如,SEM)
  • 指定Description,并点击Next
  • 点击后续对话框中的Next,取默认值
  • 在Create Template中,为模板指定一个名称(例如,SEMTemplate- Complete)、观察并记住模板JAR文件的位置%BEA_HOME%/user_templates/,并点击Create
  • 点击Done
  现在,根据完全模板创建一个新域。按照下述这些步骤创建一个完全域:' {: D4 G/ y# J4 q1 u
基于完全模板的域创建5 W% V! Q1 b' H. O9 ^" @
  • 启动域配置向导(在 Windows上, 选择 Start > All Programs > BEA WebLogic Platform > Configuration Wizard)
  • 选择Create a new WebLogic Configuration,并点击Next
  • 浏览到完全模板(%BEA_HOME%/user_templates)的位置,而不是选择默认的模板之一
  • 选择SEMTemplate-Complete,并点击Next
  • 点击后续对话框中的Next,取默认值
  • 指定Configuration Name为某些有意义的内容(例如,SEMDomain-Complete),并点击Create
  • 点击Done
  然而,启动此域中的WebLogic Server实例失败。加密的安全凭证冲突。如下手动修改config.xml文件:  q* W& p; f' k/ R5 J: R2 z5 T% W

修改config.xml- c4 t% R9 l1 z) |2 Z" R
  • 将SecurityConfiguration元素的Credential属性的值修改为""
  • 将EmbeddedLDAP元素的Credential属性的值修改为""
  • 将cgPool Password属性的值修改为“weblogic”
  • 将semJDBCConnectionPool Password属性的值修改为“sem”
  按照验证域配置一节所述的步骤验证该域是否工作正常。
另一种重要的模板策略是创建一个扩展模板,例如一个扩展DefaultWebApp模板、并配置所有必需资源的扩展模板。创建该扩展模板、创建一个域,并用扩展模板扩展该域留做练习。

 

  评论这张
 
阅读(1436)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017