03.wls depoly jdbc
DESCRIPTION
TRANSCRIPT
WebLogic Server 基本部署及JDBC配置
孟和渠道售前咨询顾问
以下内容旨在概述产品的总体发展方向。此信息仅供参考,不可纳入任何合同。此信息不承诺提供任何资料、代码或功能,并且不应该作为制定购买决策的依据。此处所述有关 Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由Oracle 自行决定。
议程
• WebLogic应用部署• 部署概念概览
• Java EE应用及部署
• 管理控制台部署
• 命令行部署
• 部署计划
• 其它部署特性
• JDBC相关配置• JDBC概览
• 数据源
• 配置、监控和测试WebLogic数据源
议程
• WebLogic应用部署• 部署概念概览
• Java EE应用及部署
• 管理控制台部署
• 命令行部署
• 部署计划
• 其它部署特性
• JDBC相关配置• JDBC概览
• 数据源
• 配置、监控和测试WebLogic数据源
Web服务器
• Web服务器负责处理来自客户端的HTTP请求• 一般的, Web服务器返回如下响应:
• 静态内容( 例如HTML页面、图形、 … )
• 动态内容(例如Servlet、 JSP、 CGI、 … )
• WLS是一个全功能的Web服务器
典型的Web交互
HTTP状态码
• HTTP状态码:• 向客户端指明请求是否被成功处理
• 例如,状态码200说明请求成功
• 如果请求失败,指明可能的原因
• 例如,状态码404说明请求失败,原因是没有找到所请求的资源
• 客户端可以根据返回的HTTP状态码进行相应的处理
• 例如,如果客户端浏览器收到状态码401,会自动弹出输入用户名和口令的表单,让用户登录
应用部署概览
应用部署的两个视角:
• 开发者:• 开发环境
• 单个stand-alone的机器
• 在测试阶段需要进行多次部署
• 管理员:• 生产环境
• 需要多个WLS实例或者集群
• 在运维期间的部署并不频繁
部署的内容是什么?
Java EE应用的部署方式有:
• 展开式部署:• 目录结构是非常重要的
• 容易更新其中的内容
• 对整个应用的版本管理和跟踪比较困难
• 打包式部署:• 类似于tar或zip包,可以用tar或zip工具来维护
• 类型有.jar、.war、.ear、.rar等
• 包括代码、元代码、描述符和目录
静态内容
• 静态内容是只预先在服务器上定义好,并且不会动态改变的文档
• WebLogic能够对外提供如下的静态内容:• HTML
• 图片
• WebLogic可以通过如下方式提供静态内容:• 通过标准HTTP
• 通过HTTPS(基于SSL)
动态内容
• 动态内容会根据不同的用户请求变化
• 动态内容的生产通常会使用到数据库
• 可以通过以下技术生产HTML文档:• Common Gateway Interface (CGI)
• Servlets
• JSPs
• JSF
• Struts
部署过程
广义上,部署一个应用程序有如下几个步骤:
• 准备:• 选择采用展开式部署还是打包部署方式
• 配置:• 创建部署计划来维护配置更改,避免对部署描述符的修改
• 部署:• 将应用部署到WLS域中的服务器节点上
• 包括安装或部署
• 包括更新或重新部署
• 包括删除或重新部署
部署方法
• WLS支持三种部署方方法:• 使用管理控制台部署
• 使用命令行工具部署
• 自动部署
• 应用和EJB可以部署为:• 打包文件(如.ear、.war、.jar等)
• 展开的开放式目录形式
部署工具
相对应的,有如下的工具和方法来把应用和共享库部署到WLS上:
• 使用管理控制台
• 使用WLST(WebLogic脚本工具)
• 使用Java类weblogic.Deployer
• 使用ant任务wldeploy
• 自动部署文件夹
议程
• WebLogic应用部署• 部署概念概览
• Java EE应用及部署
• 管理控制台部署
• 命令行部署
• 部署计划
• 其它部署特性
• JDBC相关配置• JDBC概览
• 数据源
• 配置、监控和测试WebLogic数据源
Java EE Web应用
• Web应用• 使用HTTP协议向客户端请求返回响应
• 通常是一个交互式的站点
• Web应用包括的内容有:• Java Servlets
• 生产动态内容的JavaServer Pages (JSPs)
• 静态内容 (HTML、CSS、图片等)
• Java 类和库
• 客户端类库 (JavaScript、Java Applets等)
• XML部署描述符
对Web应用进行打包
在将Web应用部署并且注册到WebLogic Server
之前,需要按照下面的步骤进行打包:1.按照Java EE规范组织资源目录
2.开发web.xml部署描述符
3.开发weblogic.xml部署描述符 (WLS特定的描述符)
4.使用jar命令将Web应用打包为.war
5.部署Web应用到 Oracle WebLogic Server.
6.通过管理控制台配置 Web应用
Web应用结构
Web应用打包
配置Web应用
• 通过部署描述符web.xml和weblogic.xml对Web应用进行配置,包括:• 定义运行时环境
• 映射URL到servlet和 JSP
• 定义应用缺省的欢迎页面和错误页面等
• 指定Java EE安全约束
• 定义应用的work managers
• 指定应用的context-root
Web.xml
• web.xml部署描述符文件可以进行如下配置:• Servlets and JSP registration
• Servlet initialization parameters
• JSP tag libraries
• MIME type mappings
• Welcome file list
• Error pages
• Security constraints and roles
• Resources
• EJB references
weblogic.xml
• 使用weblogic.xml可以进行如下配置:• The application’s root context path
• Application logging
• Security role mappings
• Advanced session settings
• Session clustering
• References to shared libraries
• References to server resources (data sources, EJBs, etc.)
• Work managers and threading
• Virtual directories
• JSP compiler options
weblogic.xml示例
Web Service应用
• 通过SOAP(Simple Object Access Protocol )对HTTP客户端请求进行响应
• 采用与Java EE Web 应用一样的结构
• 包括另外两个部署描述符:• webservices.xml
• weblogic-webservices.xml
EJB应用
• 用来开发和部署应用逻辑的标准化的、服务器端、分布式组件
• Annotated Java classes
• 也可以通过XML部署描述符来进行打包
• 支持如下功能:• 通过网络进行远程访问
• 通过WLS或JPA( Java Persistence API )进行OR映射
• 交易
• 消息集成
• 依赖注入
EJB应用的结构
weblogic-ejb-jar.xml
• 通过weblogic-ejb-jar.xml可以配置:• Security role mappings
• Advanced security settings
• EJB clustering
• EJB pooling and caching
• Work managers and threading
WLS的EJB管理任务
• EJB管理任务包括:• 配置和部署
• 解析JNDI和其他基础架构问题
• 监控EJB caches 和 pools
企业应用概念
• 企业应用是一组若干资源组成的一个可部署的单元,打包为.ear文件
• 可以包括的资源有:• Web applications (.war)
• EJB applications (.jar)
• Java applications (.jar)
• Resource adapters (.rar)
典型的Java EE系统
Java EE 企业应用
Java EE 企业应用(续)
• 包含一个或多个如下的Java EE应用模块:• Web Applications
• EJB Applications
• Other Java libraries (JARs)
• 把相关应用作为一个单元部署
• 可以包含应用特定的JDBC和JMS资源
Java EE 企业应用结构
weblogic-application.xml
• 通过 weblogic-application.xml可以配置:• References to shared libraries
• Work managers and threading
• Default EJB and Web application parameter values
配置WLS专有特性
• 可通过weblogic-application.xml部署描述符配置企业级WLS专有特性:• XML parsers
• XML entity mappings
• JDBC data sources
• JMS connection factories and destinations
• Security realms
WLS应用类加载器
EAR类库
• 对Java EE规范的扩展,Oracle增加了APP-INF/lib和APP-INF/classes来共享Java EE文件结构
• 应用程序初始化时,将该类库添加到应用类路径的最前面
• 其中所有的类被添加到应用root-classloader
支持J2EE类库
• 为简化操作,用户可以创建Java EE模块的类库,将其打包到EAR中,然后部署并注册到应用服务器
• 此后,同一个EAR中的其他应用就可以使用这些模块
• 如此实现应用之间更灵活的功能共享
WebLogic Java EE 共享类库
• Web应用或企业应用的可重用部分
• 被其他部署应用引用
• 避免Java EE项目中的源文件复制
• 在运行时,共享类库的部署描述符会与引用它的应用的部署描述符进行合并。
引用共享类库
• Web应用在weblogic.xml中列出其所需要引用的共享类库
• 企业应用在weblogic-application.xml中列出其所需要引用的共享类库
议程
• WebLogic应用部署• 部署概念概览
• Java EE应用及部署
• 管理控制台部署
• 命令行部署
• 部署计划
• 其它部署特性
• JDBC相关配置• JDBC概览
• 数据源
• 配置、监控和测试WebLogic数据源
使用控制台部署应用
通过控制台进行部署有完全的管理控制:
• 根据用户选择的路径对应用进行部署
• 手动配置应用名称
• 将应用部署到单独的服务器或(和)集群
• 也可以只配置应用而暂时不指定部署目标
• 当需要时,激活部署
使用控制台部署应用:生产模式
在生产模式下使用的最佳实践:
准备新应用
准备新应用:选择部署目标
准备新应用:设置
部署或者卸载应用
重新部署应用
启动或停止应用
编辑部署描述符
监控应用
测试应用
删除应用
议程
• WebLogic应用部署• 部署概念概览
• Java EE应用及部署
• 管理控制台部署
• 命令行部署
• 部署计划
• 其它部署特性
• JDBC相关配置• JDBC概览
• 数据源
• 配置、监控和测试WebLogic数据源
使用命令行方式部署应用
• 使用weblogic.Deployer工具可以做与控制台中一样的操作
• 也可用Ant任务wldeploy脚本调用weblogic.Deployer
使用weblogic.Deployer部署应用
• 准备和部署新应用
• 重新部署应用
• 卸载应用
• 显示所有已经部署的应用列表
使用weblogic.Deployer部署应用(续)
• 显示所有部署任务列表
• 取消部署任务
使用WLST部署应用
WLST提供一系列部署命令。用户可使用这些命令来:
• 在WLS实例中,针对应用和stand-alone模块执行生命周期管理的操作。包括:• 部署
• 卸载
• 重新部署
• 更新已经存在的部署计划
• 启动或停止已经部署的应用
使用WLST部署应用(续)使用py脚本部署应用
• 准备、部署新应用,或重新部署已经存在的应用
• 其他WLST部署命令
使用WLST部署应用(续)
议程
• WebLogic应用部署• 部署概念概览
• Java EE应用及部署
• 管理控制台部署
• 命令行部署
• 部署计划
• 其它部署特性
• JDBC相关配置• JDBC概览
• 数据源
• 配置、监控和测试WebLogic数据源
部署计划概念
• Java EE部署计划是:• 与应用相关联的可选的XML文件
• 存放在应用包之外(不需要与应用一起打包)
• 设置或复写Java EE部署描述符的某些值
• 使得把同一个应用部署在不同环境下更易于操作
部署计划示例
创建部署计划
• 创建部署计划的工具• 集成开发工具,例如JDeveloper、Eclipse
• weblogic.PlanGenerator
• 管理控制台
• 创建部署计划的目标• 把应用对外部资源的需求通过部署计划暴露为变量
• 把一些额外的配置属性(例如调优参数)通过部署计划暴露为变量
创建新部署计划
• WebLogic Server 带有快速创建部署计划的工具
• 通过管理控制台可以:• 当部署新应用时检测到计划文件夹的话,生成一个plan.xml概要
• 当通过管理控制台修改过部署描述符的设置后,更新plan.xml
• 也可以使用weblogic.PlanGenerator这个Java类为已经存在的应用生成plan.xml概要
Weblogic.PlanGenerator
• 为只有Java EE部署描述符的应用生成基本的Oracle
WebLogic Server的基本部署计划
• 包括:• 创建一个初始的计划
• 基于已经存在的计划创建一个新的计划
• 将配置属性导出到部署计划模板
使用管理控制台创建部署计划
• 通过管理控制台创建部署计划的步骤如下:1. 准备部署文件
2. 安装应用文件
3. 保存对配置的变更到部署计划
通过修改配置并且保存创建新部署计划
通过新部署计划显示配置修改
使用已存在的部署计划配置应用
1. 准备应用
2. 将已经存在的部署计划放置在应用根目录的plan子目录
3. 安装应用• 管理控制台在安装时对目标服务器和集群校验部署计划
4. 使用管理控制台或weblogic.Deployer工具指定要部署的应用和要使用的部署计划
使用已经存在的部署计划
Generic File-Loading Overrides
• 在已经存在的计划目录结构中的一个可选子目录(/AppFileOverrides)中放置需要被覆盖的应用相关文件
• 根据配置判断部署计划的“文件覆盖”特性是否生效:• Specify a plan for the deployment
• Specify config-root within the plan
• Provide a config-root/AppFileOverrides subdirectory
简单的生产系统部署目录结构
议程
• WebLogic应用部署• 部署概念概览
• Java EE应用及部署
• 管理控制台部署
• 命令行部署
• 部署计划
• 其它部署特性
• JDBC相关配置• JDBC概览
• 数据源
• 配置、监控和测试WebLogic数据源
自动部署概念
• 缺省情况下,自动部署特性只用在开发模式下才可以使用
• 当自动部署可用时:• 管理服务器会监视域中“autodeploy”文件夹中的新应用、更新应用或删除应用
• 应用的部署目标只为管理服务器
• 开发者可以利用该功能快速测试应用
• 位置:<WL_HOME>/user_projects/domains/domain/autodeploy
自动部署展开式目录
如下情况,应当考虑使用自动部署展开式目录:
• 开发阶段
• 频繁更新应用
• 应用只部署到管理服务器
FastSwap和按需部署
• WebLogic的FastSwap特性:• 可以通过WebLogic的部署描述符来启用
• 只在开发模式下生效
• 只有在应用为展开模式部署时生效
• 当开启FastSwap特性:• WebLogic自动加载应用中被修改的Java类文件
• 开发者可以快速迭代开发,不需要显式重新部署
• 按需部署:• weblogic.xml
• <fast-swap>true</fast-swap>
开发模式的管理控制台
• 管理控制台在管理员登录时自动获得编辑锁
• 注意:“生产模式”选项为空,而不是false
Staged Deployment
议程
• WebLogic应用部署• 部署概念概览
• Java EE应用及部署
• 管理控制台部署
• 命令行部署
• 部署计划
• 其它部署特性
• JDBC相关配置• JDBC概览
• 数据源
• 配置、监控和测试WebLogic数据源
JDBC 概览
• JDBC是Java数据库连接(Java Database Connectivity)的缩写
• JDBC API为Java编程语言提供通过编程访问关系型数据的接口• 通过JDBC可以做到平台独立的访问数据库
• 使数据库位置对应用透明
• 使数据库的专有实现对应用透明
• 支持两层或多层对数据库的访问
JDBC驱动
• JDBC需要使用驱动• JDBC驱动可以与数据库交互
• 其间通信是有状态的
• 驱动分为1,2,3,4四种类型• Type-4 是纯Java实现
• Type-2 使用本地客户端动态连接库与数据库通信
• 通过XA驱动,驱动可以协调其他外部交易管理器完成更粗粒度的交易
• JDBC由WLS或数据库厂商提供
JDBC数据源(Data Sources)
• 将数据库连接交由应用服务器管理
• 利用动态池技术重用数据库连接
• 应用程序通过JNDI树获取数据源
数据源范围(Data Source Scope)
• 每个数据源配置或数据源模块保存为一个独立的XML
• 通过WLST或管理控制台创建的系统模块:• 保存在域的config/jdbc目录下
• 该域中的所有应用都可用
• 应用特有的模块:• 作为Java EE企业应用的一部分部署
• 只对该应用可用
两层架构
• 在两层架构中,Java应用直接与数据库通信
• 应用与数据库的通信需要调用JDBC驱动
• 属于C/S(客户端/服务器)模式
多层架构
• 在多层架构中,命令被发送
到服务器中间层,真正的数
据库访问命令有中间层发出
• 数据将命令处理结果返回给
中间层,由中间层再发送到
客户端
JDBC架构
Type 4 驱动
Type4驱动是纯Java实现,不需要任何客户端的配置
WebLogic JDBC 驱动
• WLS在安装时包含了绝大多数流行数据库产品的Oracle和第三方驱动,包括:• Oracle 9i, 10g, 11g
• Sybase Adaptive Server
• Microsoft SQL Server
• IBM DB2
• Informix
• MySQL
• Pointbase
• 缺省的,这些驱动会被加到服务器的classpath中
议程
• WebLogic应用部署• 部署概念概览
• Java EE应用及部署
• 管理控制台部署
• 命令行部署
• 部署计划
• 其它部署特性
• JDBC相关配置• JDBC概览
• 数据源
• 配置、监控和测试WebLogic数据源
数据源(Data Source)概念
• 数据源对象为JDBC客户端提供了从连接池获取数据库连接的机制
• 数据源:• 存储在Oracle WebLogic Server JNDI树中
• 能支持交易
• 与一个数据库连接池相关联
连接池( Connection Pool )概念
• 连接池是一组与某个数据源相关联的可用数据库连接
• 连接池:• 当WebLogic Server启动时创建
• 可以通过管理控制台对连接池进行管理
• 可以动态调整连接池大小满足增长的负载
WebLogic Server JDBC 数据源架构
JDBC资源的模块化配置和部署
• WLS中的JDBC配置保存在XML中:• 所有JDBC配置需要遵从weblogic-jdbc.xsd
• 开发中可以用IDE或其他工具对JDBC模块定义进行验证
• 可以将JDBC资源创建为系统模块或应用模块
• JDBC应用模块是WLS对Java EE模块的特定扩展,可以在Java EE应用中部署,或部署为standalone模块
数据源连接池工作过程
客户端通过JNDI树查找数据源,通过数据源获取数据库连接
议程
• WebLogic应用部署• 部署概念概览
• Java EE应用及部署
• 管理控制台部署
• 命令行部署
• 部署计划
• 其它部署特性
• JDBC相关配置• JDBC概览
• 数据源
• 配置、监控和测试WebLogic数据源
通过管理控制台创建数据源
创建数据源:Non-XA配置
创建数据源:连接属性
配置连接池
为数据源设定目标(服务器)
查看服务器的JNDI树
连接池相关注意点
• 可以在创建数据源之后对连接池进行修改
• 在修改连接池之前需要理解:• 数据库的JDBC URL
• 用户安全验证的连接属性等可选驱动配置
• 与DBA确认数据库允许的最大连接数
JDBC URL
• 数据库的位置信息由JDBC URL指定
• JDBC URL的语法为:• jdbc:<subprotocol>:<subname>
• <subprotocol>指定数据库连接机制
• <subname>指定数据源,并且其值与subprotocol相关
连接属性
配置JDBC连接的key/value对,在建立连接时传递给驱动
Multi Data Sources
• Multi data source:
• 一组数据源的抽象
• 根据配置算法动态决定由哪个数据源建立连接:
• 负载均衡或Failover
• 也是绑定到服务器的JNDI树
• multi data sources对XA的支持• WLS JDBC支持在XA交易中使用 multi data sources
• 可以在multi data source的数据源定义中指定XA JDBC驱动
Multi Data Sources(续)
监控和测试数据源
连接池生命周期管理