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

03.wls depoly jdbc

Dec 05, 2014

Download

Documents

Meng He

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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