Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

03.wls depoly jdbc

441 views

Published on

  • Be the first to comment

  • Be the first to like this

03.wls depoly jdbc

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

×