Download - 04.wls jndi jms
![Page 1: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/1.jpg)
WebLogic Server JMS 综述
孟和渠道售前咨询顾问
![Page 2: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/2.jpg)
以下内容旨在概述产品的总体发展方向。此信息仅供参考,不可纳入任何合同。此信息不承诺提供任何资料、代码或功能,并且不应该作为制定购买决策的依据。此处所述有关 Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由Oracle 自行决定。
![Page 3: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/3.jpg)
Agenda
• WebLogic JNDI Overview
• WebLogic JMS
• JMS Overview
• WebLogic JMS Overview
• Configuring WebLogic JMS Server & Resources
• Configuring WebLogic JMS Store
• Configuring and monitoring WebLogic JMS Objects &
Message
• Distributed Destination
• WebLogic JMS Store-and-Forward
• WebLogic Server Unit-of-Order
• WebLogic Server Messaging Bridge
![Page 4: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/4.jpg)
Agenda
• WebLogic JNDI Overview
• WebLogic JMS
• JMS Overview
• WebLogic JMS Overview
• Configuring WebLogic JMS Server & Resources
• Configuring WebLogic JMS Store
• Configuring and monitoring WebLogic JMS Objects &
Message
• Distributed Destination
• WebLogic JMS Store-and-Forward
• WebLogic Server Unit-of-Order
• WebLogic Server Messaging Bridge
![Page 5: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/5.jpg)
什么是JNDI?
• JNDI(Java Naming and Directory Interface)一组在Java应用中统一访问命名和目录服务的API
• JNDI解决的主要问题:• 使用通用接口来访问不同种类的服务
• 可以同时连接到多个命名或目录服务上
• 建立起逻辑关联,允许把名称同Java对象或资源关联起来,而不必知道对象或资源的物理ID
• 满足企业级APIs对命名与服务的访问,诸如EJBs、JMS、JDBC 2.0以及IIOP上的RMI通过JNDI来使用CORBA的命名服务。
![Page 6: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/6.jpg)
为什么使用JNDI
• 在Oracle WebLogic Server,JNDI起到Java EE对象仓库和查找服务的作用,包括:• EJB home stubs
• JDBC DataSources
• JMS connection factories, queues and topics
• RMI stubs
![Page 7: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/7.jpg)
JNDI结构
![Page 8: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/8.jpg)
命名服务
• 命名服务提供了一种为对象命名的机制,这样你就可以在无需知道对象位置的情况下获取和使用对象。
• 命名服务术语:
![Page 9: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/9.jpg)
JNDI树
![Page 10: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/10.jpg)
Context和Subcontext
• Subcontext通过“.”来表示
• 在放置对象之前,必须先创建Subcontext
• 通常,将对象绑定到JNDI树的同时会自动创建JNDI名指定的Subcontext
![Page 11: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/11.jpg)
管理员需要了解的JNDI
• 为了更加方便进行系统管理工作,系统管理员需要懂得JNDI
• 检查对象是否已经绑定到JNDI树
• 在JNDI树上对Context进行安全设置
![Page 12: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/12.jpg)
查看JNDI树
![Page 13: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/13.jpg)
Agenda
• WebLogic JNDI Overview
• WebLogic JMS
• JMS Overview
• WebLogic JMS Overview
• Configuring WebLogic JMS Server & Resources
• Configuring WebLogic JMS Store
• Configuring and monitoring WebLogic JMS Objects &
Message
• Distributed Destination
• WebLogic JMS Store-and-Forward
• WebLogic Server Unit-of-Order
• WebLogic Server Messaging Bridge
![Page 14: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/14.jpg)
JMS架构
• JMS – Java Message Service
![Page 15: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/15.jpg)
JMS架构:连接
![Page 16: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/16.jpg)
JMS架构:发送消息
![Page 17: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/17.jpg)
消息模式
• 点对点模式(P2P):• 消息按照线性顺序存储于队列中
• 一个消息仅传递给一个接收者
• 发布/订阅模式(Pub/Sub):• 消息存储在主题中
• 消息传递给主题所有订阅者
![Page 18: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/18.jpg)
JMS与事务
• JMS客户端可以同JTA参与到一个分布式事务中
• 相对的, JMS客户端只在JMS会话中确保事务完整性
• 参与事务是可选的
![Page 19: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/19.jpg)
点对点消息模型
![Page 20: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/20.jpg)
发布/订阅消息模型
![Page 21: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/21.jpg)
Agenda
• WebLogic JNDI Overview
• WebLogic JMS
• JMS Overview
• WebLogic JMS Overview
• Configuring WebLogic JMS Server & Resources
• Configuring WebLogic JMS Store
• Configuring and monitoring WebLogic JMS Objects &
Message
• Distributed Destination
• WebLogic JMS Store-and-Forward
• WebLogic Server Unit-of-Order
• WebLogic Server Messaging Bridge
![Page 22: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/22.jpg)
WebLogic JMS实现
• WebLogic JMS是集成在WebLogic Server中的企业级消息系统。
• 具有如下突出优势:• 极大提高的性能
• 消息存储持久化
• 分布式Destination
• Unit of Order
• 自动的透明客户端重连接
• 存储转发SAF
![Page 23: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/23.jpg)
WebLogic JMS管理
• WebLogic JMS管理主要有两种方式:• 管理控制台
• 适合于一次创建单个资源、管理少量消息资源
• WLST
• 适合通过脚本批量创建、管理多个资源;脚本可以方便地实现自动化以及在环境间转换
![Page 24: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/24.jpg)
管理控制台
![Page 25: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/25.jpg)
WLST管理
![Page 26: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/26.jpg)
WLST管理
![Page 27: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/27.jpg)
WebLogic JMS架构
![Page 28: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/28.jpg)
Agenda
• WebLogic JNDI Overview
• WebLogic JMS
• JMS Overview
• WebLogic JMS Overview
• Configuring WebLogic JMS Server & Resources
• Configuring WebLogic JMS Store
• Configuring and monitoring WebLogic JMS Objects &
Message
• Distributed Destination
• WebLogic JMS Store-and-Forward
• WebLogic Server Unit-of-Order
• WebLogic Server Messaging Bridge
![Page 29: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/29.jpg)
WLS JMS Server
• 在WLS中,消息服务由JMS Server实现
• JMS实现对消息的接收和发送
![Page 30: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/30.jpg)
创建JMS Server
![Page 31: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/31.jpg)
为JMS Server设置目标服务器
![Page 32: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/32.jpg)
配置JMS Server
![Page 33: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/33.jpg)
JMS资源
• JMS资源可以作为系统组件也可以作为应用组件
![Page 34: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/34.jpg)
JMS资源组件的配置与部署
• WebLogic Server中的JMS配置存储在JMS组件中• 配置规范需要遵从weblogicjmsmd.xsd
• 类似标准的J2EE组件
• 管理员可以创建和维护的JMS组件• 全局系统资源
• 全局standalone组件
• 企业应用组件
![Page 35: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/35.jpg)
JMS资源组件的配置与部署(续)
• 组件化的配置带来简便的迁移性,例如:• 从开发环境到集成测试环境
• 从测试环境到生产环境
• 进行应用迁移时,关于JMS配置:• 不需要打开EAR文件进行修改
• 不需要太多的手动JMS重新配置
![Page 36: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/36.jpg)
连接工厂(Connection Factories)
• JMS连接工厂主要用来设置缺省的连接参数,包括:
• Message priority
• Message time-to-live (TTL)
• Message persistence
• Transactional behavior
• Acknowledgement policy
• Flow control
• WLS提供一个缺省的客户端连接工厂:
• 使用WebLogic的缺省连接设置
• 绑定在JNDI树上:
weblogic.jms.ConnectoryFactory
![Page 37: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/37.jpg)
创建连接工厂
![Page 38: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/38.jpg)
配置连接工厂
![Page 39: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/39.jpg)
Destination
• Destination是存储在JNDI中的轻量级对
• 是JMS server上发送或接收消息的目标
• JMS destination类型有:• Queue
• Topic
![Page 40: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/40.jpg)
Queue Destinations
• JMS的点对点消息模式:• 客户端与一个queue destination通信
• 消息以串行(先进先出)方式被发送到消息接收方
• 每个消息只被发送到一个消息接收者
![Page 41: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/41.jpg)
Topic Destinations
• JMS的发布、订阅模式:• 客户端与一个topic destination通信
• 消息被广播给所以的订阅者
• 消息被保存,直到最少有一个订阅者接收到
![Page 42: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/42.jpg)
创建Destination
![Page 43: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/43.jpg)
创建Destination (续)
![Page 44: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/44.jpg)
创建Queue Destination
![Page 45: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/45.jpg)
创建Queue Destination(续)
![Page 46: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/46.jpg)
Threshold 和 Quota
• JMS Server和Destination对象可以设置threshold和quota值
• quota是针对JMS管理对象定义的限制,包括如下值:• 可存储的最大字节数
• 可存储的最大消息数
• threshold是触发message paging、flow control和logged warnings的限制值,包括:• 字节数的上限和下限
• 消息数的上限和下限
![Page 47: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/47.jpg)
配置Thresholds和Quotas
![Page 48: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/48.jpg)
Agenda
• WebLogic JNDI Overview
• WebLogic JMS
• JMS Overview
• WebLogic JMS Overview
• Configuring WebLogic JMS Server & Resources
• Configuring WebLogic JMS Store
• Configuring and monitoring WebLogic JMS Objects &
Message
• Distributed Destination
• WebLogic JMS Store-and-Forward
• WebLogic Server Unit-of-Order
• WebLogic Server Messaging Bridge
![Page 49: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/49.jpg)
持久化订阅
• 持久化订阅可以确保即使消息接收者有时处于离线状态,也能正确的接收到消息
• 消息订阅者是否在线是根据其Java对象是否存在来判断的
• 缺省的,消息订阅者不是持久化的
• 管理员可以配置:• 消息需要持久化到哪里
• 持久化连接工厂和destination
![Page 50: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/50.jpg)
需要使用持久化消息的场景
• 持久化消息确保内存中的消息被写到持久存储
• 有如下场景可以配置持久化消息:• 应用开发需要用到持久化订阅
• 需要确保服务器重启不丢失消息
![Page 51: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/51.jpg)
持久化订阅工作机制
• 如果消息订阅客户端是活动状态的,消息会正常发布
• 如果消息订阅客户端是离线的,当其再次处于活动状态时,使用其ID来重新获取和发布消息
![Page 52: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/52.jpg)
配置持久化订阅
• 在配置持久化订阅时,管理员需要:• 创建和配置JMS store
• 配置持久化的连接工厂和destinations
• 关联JMS store与JMS server
• 可以配置JMS store使用:• file store
• JDBC store (连接池)
![Page 53: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/53.jpg)
消息持久化
• WLS通过持久化Store提供有质量保障的消息机制:• 即使服务器重启,消息也会正常收发
• 即使与服务器连接断开、重连,Topic订阅者客户也可以恢复丢失的消息
• 可以用下面的JMS Persistent Stores:• File system
• JDBC (需要一个已经存在的Data Source)
![Page 54: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/54.jpg)
创建JMS Store
![Page 55: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/55.jpg)
创建JMS JDBC Store
• 配置JMS JDBC持久化存储包括:• 创建JDBC DataSource.
• 创建JMS store 并且引用JDBC DataSource.
• 在JMS server的配置中JMS store
• 所需要的资源(包括数据库表等)会自动被创建
![Page 56: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/56.jpg)
创建JMS JDBC Store
![Page 57: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/57.jpg)
将Store指定到JMS Server
![Page 58: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/58.jpg)
持久化连接工厂
![Page 59: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/59.jpg)
配置持久化Destination
![Page 60: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/60.jpg)
Agenda
• WebLogic JNDI Overview
• WebLogic JMS
• JMS Overview
• WebLogic JMS Overview
• Configuring WebLogic JMS Server & Resources
• Configuring WebLogic JMS Store
• Configuring and monitoring WebLogic JMS Objects &
Message
• Distributed Destination
• WebLogic JMS Store-and-Forward
• WebLogic Server Unit-of-Order
• WebLogic Server Messaging Bridge
![Page 61: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/61.jpg)
JMS对象的统计
• WLS提供针对如下JMS对象的统计:• JMS servers
• Connections
• Destinations
![Page 62: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/62.jpg)
监控JMS Server
![Page 63: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/63.jpg)
监控和管理Destination
![Page 64: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/64.jpg)
JMS消息管理
• 当消息在队列、主题中处理时,有时候需要手动管理消息:
• 举个例子,遇到某个队列中消息处理堵塞,你需要将消息传递到不同的队列以使其他消息消费者处理
• WebLogic提供了非常强大的消息管理工具
• 消息管理也支持管理控制台、WLST方式
![Page 65: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/65.jpg)
WebLogic JMS消息管理特征
• WebLogicJMS消息管理可以方便的:• 查看消息
• 创建消息
• 转移消息
• 从文件导入消息
• 导出消息
• 删除消息
• 清除队列中消息
• 暂停、恢复操作
![Page 66: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/66.jpg)
查看消息
![Page 67: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/67.jpg)
查看消息
![Page 68: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/68.jpg)
创建消息
![Page 69: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/69.jpg)
转发消息
• 在如下情况下,可以将消息进行转发:• 源Destination是队列或者处于消费暂停状态持久化订阅者的主题
• 目标Destination是队列、主题或者不处于生产暂停状态持久化订阅者的主题
• 消息处于可见(visible)、延迟(delayed)或者排队(ordered)状态
• 源Destination与目标Destination必须在同一个集群中
![Page 70: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/70.jpg)
转发消息
![Page 71: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/71.jpg)
导入/导出消息
• 可以将消息导出到文件,也可以从文件导入消息• XML格式文件导入
• 消息可以导出为XML和串化格式
• 可以将消息导出到文件,也可以从文件导入消息• XML格式文件导入
• 消息可以导出为XML和串化格式
• 导入消息的目标Destination可以是队列或者持久化订阅者的主题
• 目标Destination必须处于生产暂停状态
![Page 72: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/72.jpg)
导入消息
![Page 73: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/73.jpg)
导出消息
![Page 74: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/74.jpg)
导出消息格式
![Page 75: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/75.jpg)
清洗Destination
• 当Destination处于消息堵塞或者需要清理测试中的Destination,可以删除、清除Destination中的消息
• Destination需要处于消费暂停状态
• 消息必须处于可见(visible)、延迟(delayed)或者排队(ordered)状态
• 处理中,Destination将被锁定
![Page 76: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/76.jpg)
清洗Destination
![Page 77: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/77.jpg)
暂停、恢复操作
• 当进行JMS环境Debug时,可以暂停、恢复Destination
• 以下操作可以被暂停、恢复:• 生产消息
• 插入消息
• 消费消息
• 在Server启动、运行时,都可以进行暂停、恢复JMSDestination操作
![Page 78: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/78.jpg)
生产暂停、恢复设置
![Page 79: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/79.jpg)
生产暂停、恢复操作
![Page 80: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/80.jpg)
Agenda
• WebLogic JNDI Overview
• WebLogic JMS
• JMS Overview
• WebLogic JMS Overview
• Configuring WebLogic JMS Server & Resources
• Configuring WebLogic JMS Store
• Configuring and monitoring WebLogic JMS Objects &
Message
• Distributed Destination
• WebLogic JMS Store-and-Forward
• WebLogic Server Unit-of-Order
• WebLogic Server Messaging Bridge
![Page 81: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/81.jpg)
分布式Destination简介
• 分布式Destination是指对客户端透明(逻辑单一)的一组Destination(队列或主题)
• 分布式Destination:• 通过JNDI访问
• 提高持续JMS服务的高可用性
• 在多个Server的不同物理Destination之间进行负载均衡
![Page 82: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/82.jpg)
分布式Destination简介
• 使用分布式Destination的应用具备高可用性
![Page 83: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/83.jpg)
分布式Destination分类
• Uniform distributed destinations
• WebLogic Server在JMS模块目标JMS Server上统一创建JMS
成员
• 所有分布式Destination参数均具一致性
• Weighted distributed destinations
• 分布式Destination成员被用户手动配置
![Page 84: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/84.jpg)
负载均衡
• 负载均衡主要特征:• 使用round robin或者random算法
• 消费者负载均衡在创建时即生效
• 对于分布式队列,所有消息负载到成员队列上
• 对于分布式主题,所有消息复制存在于每个成员主题
• 持久化消息首先负载至配置有JMS store的成员上
• 负载首选客户端本地Server成员或者处于一个事务中的成员
![Page 85: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/85.jpg)
Agenda
• WebLogic JNDI Overview
• WebLogic JMS
• JMS Overview
• WebLogic JMS Overview
• Configuring WebLogic JMS Server & Resources
• Configuring WebLogic JMS Store
• Configuring and monitoring WebLogic JMS Objects &
Message
• Distributed Destination
• WebLogic JMS Store-and-Forward
• WebLogic Server Unit-of-Order
• WebLogic Server Messaging Bridge
![Page 86: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/86.jpg)
SAF优缺点
• 优点:• 实现WebLogic Servers应用间快速可靠的消息传递
• 支持Unit-of-Order方式以保证消息传递次序
• 对应用透明
• 缺点:• 不兼容将消息传递给WebLogic Server以前版本
• 不能与第三方JMS产品互通
![Page 87: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/87.jpg)
SAF组件
![Page 88: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/88.jpg)
SAF消息流
![Page 89: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/89.jpg)
创建SAF代理
![Page 90: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/90.jpg)
创建SAF代理
![Page 91: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/91.jpg)
设置高级参数
• 在创建完SAF代理,可以设置以下参数:• 消息重发次数、消息过期时间等
• 消息配额和阈值参数
• 参数一方面定义了SAF代理消息流控制,另一方面也定义了如何处理过期、毒药消息
![Page 92: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/92.jpg)
配额和阈值
• 配额和阈值包括:• 字节最低、最高阈值
• 消息最低、最高阈值
• 最大字节数
• 最大消息数
• 最大消息内容大小
![Page 93: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/93.jpg)
创建远程SAF上下文
![Page 94: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/94.jpg)
创建远程SAF上下文
![Page 95: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/95.jpg)
创建SAF错误处理资源
![Page 96: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/96.jpg)
创建SAF错误处理资源
![Page 97: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/97.jpg)
创建导入SAF Destination
![Page 98: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/98.jpg)
创建导入SAF Destination
![Page 99: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/99.jpg)
创建SAF队列/主题
![Page 100: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/100.jpg)
创建SAF队列/主题
![Page 101: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/101.jpg)
集群中配置SAF
![Page 102: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/102.jpg)
监控SAF代理
• 对于一个SAF代理,可以监控:• SAF代理统计信息
• SAF消息目标远端节点
![Page 103: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/103.jpg)
监控SAF代理
![Page 104: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/104.jpg)
管理SAF代理
• 管理操作包括:• 暂停、恢复
• 清除
• 处理超时消息等
![Page 105: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/105.jpg)
管理SAF代理
![Page 106: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/106.jpg)
管理SAF代理
![Page 107: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/107.jpg)
Agenda
• WebLogic JNDI Overview
• WebLogic JMS
• JMS Overview
• WebLogic JMS Overview
• Configuring WebLogic JMS Server & Resources
• Configuring WebLogic JMS Store
• Configuring and monitoring WebLogic JMS Objects &
Message
• Distributed Destination
• WebLogic JMS Store-and-Forward
• WebLogic Server Unit-of-Order
• WebLogic Server Messaging Bridge
![Page 108: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/108.jpg)
WebLogic Server Unit-of-Order
• WebLogic Server Unit-of-Order加入并扩展了JMS消息规范排序规则部分
• Unit-of-Order可以使一个或者一组独立的消息生产者将消息组成一个单元
• 这些消息将保证按照创建顺序发送给消费者
• 消息使用名称属性用于标识Unit-of-Order
![Page 109: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/109.jpg)
管理方式设置Unit-of-Order
• Unit-of-Order可以在Connection factory中进行设置;使用使用该连接工厂的消息都将包含Unit-of-Order值
• System-generated和User-generated两种类型
![Page 110: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/110.jpg)
设置Connection Factory属性
![Page 111: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/111.jpg)
编程方式设置Unit-of-Order
• WLMessageProducer接口
![Page 112: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/112.jpg)
Agenda
• WebLogic JNDI Overview
• WebLogic JMS
• JMS Overview
• WebLogic JMS Overview
• Configuring WebLogic JMS Server & Resources
• Configuring WebLogic JMS Store
• Configuring and monitoring WebLogic JMS Objects &
Message
• Distributed Destination
• WebLogic JMS Store-and-Forward
• WebLogic Server Unit-of-Order
• WebLogic Server Messaging Bridge
![Page 113: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/113.jpg)
消息桥
• 消息桥是一种连接不同消息件(JMS)进行消息转发的方式
• WebLogic消息桥可以帮你整合消息应用:• WebLogic不同版本、实现之间
• WebLogic不同域之间
• WebLogic与其他消息件之间
![Page 114: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/114.jpg)
消息桥与存储转发区别
![Page 115: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/115.jpg)
消息桥使用场景
• 以下情况下,在源目的地与目标目的地之间发送消息:• 源目的地为队列
• 源目的地如果为主题,需要保证已允许使用消息桥的持久订阅
• 复制消息队列
![Page 116: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/116.jpg)
消息桥组件图
![Page 117: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/117.jpg)
1. 创建消息桥目的地
![Page 118: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/118.jpg)
2. 创建消息桥实例
![Page 119: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/119.jpg)
3. 生效Connection Factory的XA属性
![Page 120: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/120.jpg)
4. 配置消息桥实例
![Page 121: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/121.jpg)
5. 配置资源适配器Resource Adapter
![Page 122: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/122.jpg)
5. 配置资源适配器Resource Adapter
![Page 123: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/123.jpg)
举例:与JBOSS互联
![Page 124: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/124.jpg)
举例:与MQ互联
![Page 125: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/125.jpg)
练习时间
• Lab1 配置数据源
• Lab2 配置JMS服务器和目标
• Lab3 移动与导入导出消息
• Lab4 管理过期消息
![Page 126: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/126.jpg)
![Page 127: 04.wls jndi jms](https://reader035.vdocuments.net/reader035/viewer/2022081718/548057f3b379593a2b8b5a03/html5/thumbnails/127.jpg)