03.wls depoly jdbc

111
WebLogic Server 基本部署及JDBC配置 孟和 渠道售前咨询顾问

Upload: meng-he

Post on 05-Dec-2014

391 views

Category:

Documents


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 03.wls depoly jdbc

WebLogic Server 基本部署及JDBC配置

孟和渠道售前咨询顾问

Page 2: 03.wls depoly jdbc

以下内容旨在概述产品的总体发展方向。此信息仅供参考,不可纳入任何合同。此信息不承诺提供任何资料、代码或功能,并且不应该作为制定购买决策的依据。此处所述有关 Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由Oracle 自行决定。

Page 3: 03.wls depoly jdbc

议程

• WebLogic应用部署• 部署概念概览

• Java EE应用及部署

• 管理控制台部署

• 命令行部署

• 部署计划

• 其它部署特性

• JDBC相关配置• JDBC概览

• 数据源

• 配置、监控和测试WebLogic数据源

Page 4: 03.wls depoly jdbc

议程

• WebLogic应用部署• 部署概念概览

• Java EE应用及部署

• 管理控制台部署

• 命令行部署

• 部署计划

• 其它部署特性

• JDBC相关配置• JDBC概览

• 数据源

• 配置、监控和测试WebLogic数据源

Page 5: 03.wls depoly jdbc

Web服务器

• Web服务器负责处理来自客户端的HTTP请求• 一般的, Web服务器返回如下响应:

• 静态内容( 例如HTML页面、图形、 … )

• 动态内容(例如Servlet、 JSP、 CGI、 … )

• WLS是一个全功能的Web服务器

Page 6: 03.wls depoly jdbc

典型的Web交互

Page 7: 03.wls depoly jdbc

HTTP状态码

• HTTP状态码:• 向客户端指明请求是否被成功处理

• 例如,状态码200说明请求成功

• 如果请求失败,指明可能的原因

• 例如,状态码404说明请求失败,原因是没有找到所请求的资源

• 客户端可以根据返回的HTTP状态码进行相应的处理

• 例如,如果客户端浏览器收到状态码401,会自动弹出输入用户名和口令的表单,让用户登录

Page 8: 03.wls depoly jdbc

应用部署概览

应用部署的两个视角:

• 开发者:• 开发环境

• 单个stand-alone的机器

• 在测试阶段需要进行多次部署

• 管理员:• 生产环境

• 需要多个WLS实例或者集群

• 在运维期间的部署并不频繁

Page 9: 03.wls depoly jdbc

部署的内容是什么?

Java EE应用的部署方式有:

• 展开式部署:• 目录结构是非常重要的

• 容易更新其中的内容

• 对整个应用的版本管理和跟踪比较困难

• 打包式部署:• 类似于tar或zip包,可以用tar或zip工具来维护

• 类型有.jar、.war、.ear、.rar等

• 包括代码、元代码、描述符和目录

Page 10: 03.wls depoly jdbc

静态内容

• 静态内容是只预先在服务器上定义好,并且不会动态改变的文档

• WebLogic能够对外提供如下的静态内容:• HTML

• 图片

• PDF

• WebLogic可以通过如下方式提供静态内容:• 通过标准HTTP

• 通过HTTPS(基于SSL)

Page 11: 03.wls depoly jdbc

动态内容

• 动态内容会根据不同的用户请求变化

• 动态内容的生产通常会使用到数据库

• 可以通过以下技术生产HTML文档:• Common Gateway Interface (CGI)

• Servlets

• JSPs

• JSF

• Struts

Page 12: 03.wls depoly jdbc

部署过程

广义上,部署一个应用程序有如下几个步骤:

• 准备:• 选择采用展开式部署还是打包部署方式

• 配置:• 创建部署计划来维护配置更改,避免对部署描述符的修改

• 部署:• 将应用部署到WLS域中的服务器节点上

• 包括安装或部署

• 包括更新或重新部署

• 包括删除或重新部署

Page 13: 03.wls depoly jdbc

部署方法

• WLS支持三种部署方方法:• 使用管理控制台部署

• 使用命令行工具部署

• 自动部署

• 应用和EJB可以部署为:• 打包文件(如.ear、.war、.jar等)

• 展开的开放式目录形式

Page 14: 03.wls depoly jdbc

部署工具

相对应的,有如下的工具和方法来把应用和共享库部署到WLS上:

• 使用管理控制台

• 使用WLST(WebLogic脚本工具)

• 使用Java类weblogic.Deployer

• 使用ant任务wldeploy

• 自动部署文件夹

Page 15: 03.wls depoly jdbc

议程

• WebLogic应用部署• 部署概念概览

• Java EE应用及部署

• 管理控制台部署

• 命令行部署

• 部署计划

• 其它部署特性

• JDBC相关配置• JDBC概览

• 数据源

• 配置、监控和测试WebLogic数据源

Page 16: 03.wls depoly jdbc

Java EE Web应用

• Web应用• 使用HTTP协议向客户端请求返回响应

• 通常是一个交互式的站点

• Web应用包括的内容有:• Java Servlets

• 生产动态内容的JavaServer Pages (JSPs)

• 静态内容 (HTML、CSS、图片等)

• Java 类和库

• 客户端类库 (JavaScript、Java Applets等)

• XML部署描述符

Page 17: 03.wls depoly jdbc

对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应用

Page 18: 03.wls depoly jdbc

Web应用结构

Page 19: 03.wls depoly jdbc

Web应用打包

Page 20: 03.wls depoly jdbc

配置Web应用

• 通过部署描述符web.xml和weblogic.xml对Web应用进行配置,包括:• 定义运行时环境

• 映射URL到servlet和 JSP

• 定义应用缺省的欢迎页面和错误页面等

• 指定Java EE安全约束

• 定义应用的work managers

• 指定应用的context-root

Page 21: 03.wls depoly jdbc

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

Page 22: 03.wls depoly jdbc

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

Page 23: 03.wls depoly jdbc

weblogic.xml示例

Page 24: 03.wls depoly jdbc

Web Service应用

• 通过SOAP(Simple Object Access Protocol )对HTTP客户端请求进行响应

• 采用与Java EE Web 应用一样的结构

• 包括另外两个部署描述符:• webservices.xml

• weblogic-webservices.xml

Page 25: 03.wls depoly jdbc

EJB应用

• 用来开发和部署应用逻辑的标准化的、服务器端、分布式组件

• Annotated Java classes

• 也可以通过XML部署描述符来进行打包

• 支持如下功能:• 通过网络进行远程访问

• 通过WLS或JPA( Java Persistence API )进行OR映射

• 交易

• 消息集成

• 依赖注入

Page 26: 03.wls depoly jdbc

EJB应用的结构

Page 27: 03.wls depoly jdbc

weblogic-ejb-jar.xml

• 通过weblogic-ejb-jar.xml可以配置:• Security role mappings

• Advanced security settings

• EJB clustering

• EJB pooling and caching

• Work managers and threading

Page 28: 03.wls depoly jdbc

WLS的EJB管理任务

• EJB管理任务包括:• 配置和部署

• 解析JNDI和其他基础架构问题

• 监控EJB caches 和 pools

Page 29: 03.wls depoly jdbc

企业应用概念

• 企业应用是一组若干资源组成的一个可部署的单元,打包为.ear文件

• 可以包括的资源有:• Web applications (.war)

• EJB applications (.jar)

• Java applications (.jar)

• Resource adapters (.rar)

Page 30: 03.wls depoly jdbc

典型的Java EE系统

Page 31: 03.wls depoly jdbc

Java EE 企业应用

Page 32: 03.wls depoly jdbc

Java EE 企业应用(续)

• 包含一个或多个如下的Java EE应用模块:• Web Applications

• EJB Applications

• Other Java libraries (JARs)

• 把相关应用作为一个单元部署

• 可以包含应用特定的JDBC和JMS资源

Page 33: 03.wls depoly jdbc

Java EE 企业应用结构

Page 34: 03.wls depoly jdbc

weblogic-application.xml

• 通过 weblogic-application.xml可以配置:• References to shared libraries

• Work managers and threading

• Default EJB and Web application parameter values

Page 35: 03.wls depoly jdbc

配置WLS专有特性

• 可通过weblogic-application.xml部署描述符配置企业级WLS专有特性:• XML parsers

• XML entity mappings

• JDBC data sources

• JMS connection factories and destinations

• Security realms

Page 36: 03.wls depoly jdbc

WLS应用类加载器

Page 37: 03.wls depoly jdbc

EAR类库

• 对Java EE规范的扩展,Oracle增加了APP-INF/lib和APP-INF/classes来共享Java EE文件结构

• 应用程序初始化时,将该类库添加到应用类路径的最前面

• 其中所有的类被添加到应用root-classloader

Page 38: 03.wls depoly jdbc

支持J2EE类库

• 为简化操作,用户可以创建Java EE模块的类库,将其打包到EAR中,然后部署并注册到应用服务器

• 此后,同一个EAR中的其他应用就可以使用这些模块

• 如此实现应用之间更灵活的功能共享

Page 39: 03.wls depoly jdbc

WebLogic Java EE 共享类库

• Web应用或企业应用的可重用部分

• 被其他部署应用引用

• 避免Java EE项目中的源文件复制

• 在运行时,共享类库的部署描述符会与引用它的应用的部署描述符进行合并。

Page 40: 03.wls depoly jdbc

引用共享类库

• Web应用在weblogic.xml中列出其所需要引用的共享类库

• 企业应用在weblogic-application.xml中列出其所需要引用的共享类库

Page 41: 03.wls depoly jdbc

议程

• WebLogic应用部署• 部署概念概览

• Java EE应用及部署

• 管理控制台部署

• 命令行部署

• 部署计划

• 其它部署特性

• JDBC相关配置• JDBC概览

• 数据源

• 配置、监控和测试WebLogic数据源

Page 42: 03.wls depoly jdbc

使用控制台部署应用

通过控制台进行部署有完全的管理控制:

• 根据用户选择的路径对应用进行部署

• 手动配置应用名称

• 将应用部署到单独的服务器或(和)集群

• 也可以只配置应用而暂时不指定部署目标

• 当需要时,激活部署

Page 43: 03.wls depoly jdbc

使用控制台部署应用:生产模式

在生产模式下使用的最佳实践:

Page 44: 03.wls depoly jdbc

准备新应用

Page 45: 03.wls depoly jdbc

准备新应用:选择部署目标

Page 46: 03.wls depoly jdbc

准备新应用:设置

Page 47: 03.wls depoly jdbc

部署或者卸载应用

Page 48: 03.wls depoly jdbc

重新部署应用

Page 49: 03.wls depoly jdbc

启动或停止应用

Page 50: 03.wls depoly jdbc

编辑部署描述符

Page 51: 03.wls depoly jdbc

监控应用

Page 52: 03.wls depoly jdbc

测试应用

Page 53: 03.wls depoly jdbc

删除应用

Page 54: 03.wls depoly jdbc

议程

• WebLogic应用部署• 部署概念概览

• Java EE应用及部署

• 管理控制台部署

• 命令行部署

• 部署计划

• 其它部署特性

• JDBC相关配置• JDBC概览

• 数据源

• 配置、监控和测试WebLogic数据源

Page 55: 03.wls depoly jdbc

使用命令行方式部署应用

• 使用weblogic.Deployer工具可以做与控制台中一样的操作

• 也可用Ant任务wldeploy脚本调用weblogic.Deployer

Page 56: 03.wls depoly jdbc

使用weblogic.Deployer部署应用

• 准备和部署新应用

• 重新部署应用

• 卸载应用

• 显示所有已经部署的应用列表

Page 57: 03.wls depoly jdbc

使用weblogic.Deployer部署应用(续)

• 显示所有部署任务列表

• 取消部署任务

Page 58: 03.wls depoly jdbc

使用WLST部署应用

WLST提供一系列部署命令。用户可使用这些命令来:

• 在WLS实例中,针对应用和stand-alone模块执行生命周期管理的操作。包括:• 部署

• 卸载

• 重新部署

• 更新已经存在的部署计划

• 启动或停止已经部署的应用

Page 59: 03.wls depoly jdbc

使用WLST部署应用(续)使用py脚本部署应用

Page 60: 03.wls depoly jdbc

• 准备、部署新应用,或重新部署已经存在的应用

• 其他WLST部署命令

使用WLST部署应用(续)

Page 61: 03.wls depoly jdbc

议程

• WebLogic应用部署• 部署概念概览

• Java EE应用及部署

• 管理控制台部署

• 命令行部署

• 部署计划

• 其它部署特性

• JDBC相关配置• JDBC概览

• 数据源

• 配置、监控和测试WebLogic数据源

Page 62: 03.wls depoly jdbc

部署计划概念

• Java EE部署计划是:• 与应用相关联的可选的XML文件

• 存放在应用包之外(不需要与应用一起打包)

• 设置或复写Java EE部署描述符的某些值

• 使得把同一个应用部署在不同环境下更易于操作

Page 63: 03.wls depoly jdbc

部署计划示例

Page 64: 03.wls depoly jdbc

创建部署计划

• 创建部署计划的工具• 集成开发工具,例如JDeveloper、Eclipse

• weblogic.PlanGenerator

• 管理控制台

• 创建部署计划的目标• 把应用对外部资源的需求通过部署计划暴露为变量

• 把一些额外的配置属性(例如调优参数)通过部署计划暴露为变量

Page 65: 03.wls depoly jdbc

创建新部署计划

• WebLogic Server 带有快速创建部署计划的工具

• 通过管理控制台可以:• 当部署新应用时检测到计划文件夹的话,生成一个plan.xml概要

• 当通过管理控制台修改过部署描述符的设置后,更新plan.xml

• 也可以使用weblogic.PlanGenerator这个Java类为已经存在的应用生成plan.xml概要

Page 66: 03.wls depoly jdbc

Weblogic.PlanGenerator

• 为只有Java EE部署描述符的应用生成基本的Oracle

WebLogic Server的基本部署计划

• 包括:• 创建一个初始的计划

• 基于已经存在的计划创建一个新的计划

• 将配置属性导出到部署计划模板

Page 67: 03.wls depoly jdbc

使用管理控制台创建部署计划

• 通过管理控制台创建部署计划的步骤如下:1. 准备部署文件

2. 安装应用文件

3. 保存对配置的变更到部署计划

Page 68: 03.wls depoly jdbc

通过修改配置并且保存创建新部署计划

Page 69: 03.wls depoly jdbc

通过新部署计划显示配置修改

Page 70: 03.wls depoly jdbc

使用已存在的部署计划配置应用

1. 准备应用

2. 将已经存在的部署计划放置在应用根目录的plan子目录

3. 安装应用• 管理控制台在安装时对目标服务器和集群校验部署计划

4. 使用管理控制台或weblogic.Deployer工具指定要部署的应用和要使用的部署计划

Page 71: 03.wls depoly jdbc

使用已经存在的部署计划

Page 72: 03.wls depoly jdbc

Generic File-Loading Overrides

• 在已经存在的计划目录结构中的一个可选子目录(/AppFileOverrides)中放置需要被覆盖的应用相关文件

• 根据配置判断部署计划的“文件覆盖”特性是否生效:• Specify a plan for the deployment

• Specify config-root within the plan

• Provide a config-root/AppFileOverrides subdirectory

Page 73: 03.wls depoly jdbc

简单的生产系统部署目录结构

Page 74: 03.wls depoly jdbc

议程

• WebLogic应用部署• 部署概念概览

• Java EE应用及部署

• 管理控制台部署

• 命令行部署

• 部署计划

• 其它部署特性

• JDBC相关配置• JDBC概览

• 数据源

• 配置、监控和测试WebLogic数据源

Page 75: 03.wls depoly jdbc

自动部署概念

• 缺省情况下,自动部署特性只用在开发模式下才可以使用

• 当自动部署可用时:• 管理服务器会监视域中“autodeploy”文件夹中的新应用、更新应用或删除应用

• 应用的部署目标只为管理服务器

• 开发者可以利用该功能快速测试应用

• 位置:<WL_HOME>/user_projects/domains/domain/autodeploy

Page 76: 03.wls depoly jdbc

自动部署展开式目录

如下情况,应当考虑使用自动部署展开式目录:

• 开发阶段

• 频繁更新应用

• 应用只部署到管理服务器

Page 77: 03.wls depoly jdbc

FastSwap和按需部署

• WebLogic的FastSwap特性:• 可以通过WebLogic的部署描述符来启用

• 只在开发模式下生效

• 只有在应用为展开模式部署时生效

• 当开启FastSwap特性:• WebLogic自动加载应用中被修改的Java类文件

• 开发者可以快速迭代开发,不需要显式重新部署

• 按需部署:• weblogic.xml

• <fast-swap>true</fast-swap>

Page 78: 03.wls depoly jdbc

开发模式的管理控制台

• 管理控制台在管理员登录时自动获得编辑锁

• 注意:“生产模式”选项为空,而不是false

Page 79: 03.wls depoly jdbc

Staged Deployment

Page 80: 03.wls depoly jdbc

议程

• WebLogic应用部署• 部署概念概览

• Java EE应用及部署

• 管理控制台部署

• 命令行部署

• 部署计划

• 其它部署特性

• JDBC相关配置• JDBC概览

• 数据源

• 配置、监控和测试WebLogic数据源

Page 81: 03.wls depoly jdbc

JDBC 概览

• JDBC是Java数据库连接(Java Database Connectivity)的缩写

• JDBC API为Java编程语言提供通过编程访问关系型数据的接口• 通过JDBC可以做到平台独立的访问数据库

• 使数据库位置对应用透明

• 使数据库的专有实现对应用透明

• 支持两层或多层对数据库的访问

Page 82: 03.wls depoly jdbc

JDBC驱动

• JDBC需要使用驱动• JDBC驱动可以与数据库交互

• 其间通信是有状态的

• 驱动分为1,2,3,4四种类型• Type-4 是纯Java实现

• Type-2 使用本地客户端动态连接库与数据库通信

• 通过XA驱动,驱动可以协调其他外部交易管理器完成更粗粒度的交易

• JDBC由WLS或数据库厂商提供

Page 83: 03.wls depoly jdbc

JDBC数据源(Data Sources)

• 将数据库连接交由应用服务器管理

• 利用动态池技术重用数据库连接

• 应用程序通过JNDI树获取数据源

Page 84: 03.wls depoly jdbc

数据源范围(Data Source Scope)

• 每个数据源配置或数据源模块保存为一个独立的XML

• 通过WLST或管理控制台创建的系统模块:• 保存在域的config/jdbc目录下

• 该域中的所有应用都可用

• 应用特有的模块:• 作为Java EE企业应用的一部分部署

• 只对该应用可用

Page 85: 03.wls depoly jdbc

两层架构

• 在两层架构中,Java应用直接与数据库通信

• 应用与数据库的通信需要调用JDBC驱动

• 属于C/S(客户端/服务器)模式

Page 86: 03.wls depoly jdbc

多层架构

• 在多层架构中,命令被发送

到服务器中间层,真正的数

据库访问命令有中间层发出

• 数据将命令处理结果返回给

中间层,由中间层再发送到

客户端

Page 87: 03.wls depoly jdbc

JDBC架构

Page 88: 03.wls depoly jdbc

Type 4 驱动

Type4驱动是纯Java实现,不需要任何客户端的配置

Page 89: 03.wls depoly jdbc

WebLogic JDBC 驱动

• WLS在安装时包含了绝大多数流行数据库产品的Oracle和第三方驱动,包括:• Oracle 9i, 10g, 11g

• Sybase Adaptive Server

• Microsoft SQL Server

• IBM DB2

• Informix

• MySQL

• Pointbase

• 缺省的,这些驱动会被加到服务器的classpath中

Page 90: 03.wls depoly jdbc

议程

• WebLogic应用部署• 部署概念概览

• Java EE应用及部署

• 管理控制台部署

• 命令行部署

• 部署计划

• 其它部署特性

• JDBC相关配置• JDBC概览

• 数据源

• 配置、监控和测试WebLogic数据源

Page 91: 03.wls depoly jdbc

数据源(Data Source)概念

• 数据源对象为JDBC客户端提供了从连接池获取数据库连接的机制

• 数据源:• 存储在Oracle WebLogic Server JNDI树中

• 能支持交易

• 与一个数据库连接池相关联

Page 92: 03.wls depoly jdbc

连接池( Connection Pool )概念

• 连接池是一组与某个数据源相关联的可用数据库连接

• 连接池:• 当WebLogic Server启动时创建

• 可以通过管理控制台对连接池进行管理

• 可以动态调整连接池大小满足增长的负载

Page 93: 03.wls depoly jdbc

WebLogic Server JDBC 数据源架构

Page 94: 03.wls depoly jdbc

JDBC资源的模块化配置和部署

• WLS中的JDBC配置保存在XML中:• 所有JDBC配置需要遵从weblogic-jdbc.xsd

• 开发中可以用IDE或其他工具对JDBC模块定义进行验证

• 可以将JDBC资源创建为系统模块或应用模块

• JDBC应用模块是WLS对Java EE模块的特定扩展,可以在Java EE应用中部署,或部署为standalone模块

Page 95: 03.wls depoly jdbc

数据源连接池工作过程

客户端通过JNDI树查找数据源,通过数据源获取数据库连接

Page 96: 03.wls depoly jdbc

议程

• WebLogic应用部署• 部署概念概览

• Java EE应用及部署

• 管理控制台部署

• 命令行部署

• 部署计划

• 其它部署特性

• JDBC相关配置• JDBC概览

• 数据源

• 配置、监控和测试WebLogic数据源

Page 97: 03.wls depoly jdbc

通过管理控制台创建数据源

Page 98: 03.wls depoly jdbc

创建数据源:Non-XA配置

Page 99: 03.wls depoly jdbc

创建数据源:连接属性

Page 100: 03.wls depoly jdbc

配置连接池

Page 101: 03.wls depoly jdbc

为数据源设定目标(服务器)

Page 102: 03.wls depoly jdbc

查看服务器的JNDI树

Page 103: 03.wls depoly jdbc

连接池相关注意点

• 可以在创建数据源之后对连接池进行修改

• 在修改连接池之前需要理解:• 数据库的JDBC URL

• 用户安全验证的连接属性等可选驱动配置

• 与DBA确认数据库允许的最大连接数

Page 104: 03.wls depoly jdbc

JDBC URL

• 数据库的位置信息由JDBC URL指定

• JDBC URL的语法为:• jdbc:<subprotocol>:<subname>

• <subprotocol>指定数据库连接机制

• <subname>指定数据源,并且其值与subprotocol相关

Page 105: 03.wls depoly jdbc

连接属性

配置JDBC连接的key/value对,在建立连接时传递给驱动

Page 106: 03.wls depoly jdbc

Multi Data Sources

• Multi data source:

• 一组数据源的抽象

• 根据配置算法动态决定由哪个数据源建立连接:

• 负载均衡或Failover

• 也是绑定到服务器的JNDI树

• multi data sources对XA的支持• WLS JDBC支持在XA交易中使用 multi data sources

• 可以在multi data source的数据源定义中指定XA JDBC驱动

Page 107: 03.wls depoly jdbc

Multi Data Sources(续)

Page 108: 03.wls depoly jdbc

监控和测试数据源

Page 109: 03.wls depoly jdbc

连接池生命周期管理

Page 110: 03.wls depoly jdbc
Page 111: 03.wls depoly jdbc