ActiveMQ 的连接和会话

要了解 connection 和 session 的概念,可以先从 ConnectionState 和 SessionState 入手:

// 省略部分代码
public class ConnectionState {ConnectionInfo info;private final ConcurrentHashMap<TransactionId, TransactionState> transactions = new ConcurrentHashMap<TransactionId, TransactionState>();private final ConcurrentHashMap<SessionId, SessionState> sessions = new ConcurrentHashMap<SessionId, SessionState>();private final List<DestinationInfo> tempDestinations = Collections.synchronizedList(new ArrayList<DestinationInfo>());private final AtomicBoolean shutdown = new AtomicBoolean(false);private boolean connectionInterruptProcessingComplete = true;private HashMap<ConsumerId, ConsumerInfo> recoveringPullConsumers;public ConnectionState(ConnectionInfo info) {this.info = info;// Add the default session id.addSession(new SessionInfo(info, -1));}
}

从代码可以看出,连接里有事务集合、会话集合、临时队列集合等,这说明:
1. 事务属于一个连接; 2. 会话属于一个连接; 3. 临时队列的生存期是连接的有效期

 

// 省略部分代码
public class SessionState {final SessionInfo info;private final Map<ProducerId, ProducerState> producers = new ConcurrentHashMap<ProducerId, ProducerState>();private final Map<ConsumerId, ConsumerState> consumers = new ConcurrentHashMap<ConsumerId, ConsumerState>();private final AtomicBoolean shutdown = new AtomicBoolean(false);public SessionState(SessionInfo info) {this.info = info;}
}

从上面能看出,producer 和 consumer 是属于某个会话的,producer 和 consumer 都有唯一的 ID 。

 

// 省略部分代码
public class ProducerState {final ProducerInfo info;private TransactionState transactionState;
}public class ConsumerState {        final ConsumerInfo info;
}

ProducerState 和 ConsumerState 只是做了简单的封装。

其中 ConnectionInfo, SessionInfo, ProducerInfo, ConsumerInfo 都是消息类型,均继承自 BaseCommand 接口。

转载于:https://www.cnblogs.com/allenwas3/p/8934336.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IOS开发之页面切换

从一个ViewController切换到另一个ViewController有下面几种方法&#xff1a; &#xff08;1&#xff09;addsubview方法切换视图self.view addSubview:(加载的新页面);相应的 [self.view removeFromSuperview];移除添加的view&#xff08;2&#xff09;self.view insertSubvie…

python模拟购物车购物过程_Python基于数列实现购物车程序过程详解

要求1、启动程序后让用户输入余额&#xff0c;并打印商品列表2、用户通过输入编号购买商品3、用户选择商品购买后&#xff0c;根据余额判断成功或者失败&#xff0c;给出对应提示4、可以随时退出&#xff0c;退出后打印账号余额以及购买的商品列表构思1、首先&#xff0c;用户余…

Time

问题 : Time时间限制: 1 Sec 内存限制: 128 MB题目描述Digital clock use 4 digits to express time, each digit is described by 3*3 characters (including”|”,”_”and” “).now given the current time, please tell us how can it be expressed by the digital clock…

正则表达式怎样匹配 不包含特定字符串的字符串

正则表达式匹配公式为&#xff1a;^((?!XXX).)*$&#xff0c; XXX为字符串。转载于:https://www.cnblogs.com/lixiaolun/p/5627254.html

ffmpeg 同宽度 画中画_FFmpeg中overlay滤镜用法-水印及画中画

1. overlay 技术简介overlay 技术又称视频叠加技术。overlay 视频技术使用非常广泛&#xff0c;常见的例子有&#xff0c;电视屏幕右上角显示的电视台台标&#xff0c;以及画中画功能。画中画是指在一个大的视频播放窗口中还存在一个小播放窗口&#xff0c;两个窗口不同的视频内…

shutil

高级的 文件、文件夹、压缩包 处理模块 1、shutil.copyfileobj(fsrc, fdst[, length])  将文件内容拷贝到另一个文件中 import shutil shutil.copyfileobj(open(old.xml,r), open(new.xml, w)) 2、shutil.copyfile(src, dst)  拷贝文件 shutil.copyfile(f1.log, f2.log) #目…

Android surfaceview详解

周末看《精通Android游戏开发》(Pro Android Games)&#xff0c;里面讲到游戏的框架&#xff0c;其中一个重要的概念surfaceview,觉得不是很理解&#xff0c;于是花了一点时间研究了下&#xff0c;写下自己的心得。surface&#xff0c;这个单词的意思是浮在表面的&#xff0c;那…

查看操作系统的UUID

UUID 是系统的唯一识别码&#xff0c;永远不会重复&#xff0c;比较有用。Windows 篇在命令提示符下输入wmic 再输入csproduct 或 csproduct list fullwmic:rootcli>csproduct list fullLinux 篇&#xff0c;&#xff08;以 CentOS为例&#xff09;yum install epel-release…

ThinkPhp学习06

一、简单学习修改用户信息模块 1、编写UserAction.class.php 1 <?php2 3 class UserAction extends Action{4 public function index(){5 $mM(User);6 $arr$m->select();7 $this->assign(data,$arr);8 …

Spring MVC @SessionAttributes注解

SessionAttributes原理 默认情况下Spring MVC将模型中的数据存储到request域中。当一个请求结束后&#xff0c;数据就失效了。如果要跨页面使用。那么需要使用到session。而SessionAttributes注解就可以使得模型中的数据存储一份到session域中。 SessionAttributes参数 1、name…

C# 关于MVC框架的简单实例(计算器)

一、需求分析 实现效果 二、实现步骤 步骤一&#xff1a;新建项目--->Web---->空模板 步骤二&#xff1a;添加控制器 步骤三&#xff1a;根据控制器名称添加视图 步骤四&#xff1a;添加Models模型 编写具体的方法 using System;using System.Collections.Generic;using…

JS函数

函数&#xff1a; 函数是由事件驱动或者当它被调用时执行的可重复色代码块。 <head> <script> function hanshu() { alert("你好&#xff01;"); } </script> </head><body> <button οnclick"hanshu()">点击</but…

the python interpreter is in_the python interpreter is in - 百度学术

152.6Khttp://www.web.mit.edu/18.417/OldFiles/doc/pydocs/ext.pdfweb.mit.edu全网免费224.9Khttp://www.logos.t.u-tokyo.ac.jp/~eddieh/Python-Docs-2.3.4/ext.pdflogos.t.u-tokyo.ac.jp全网免费224.9Khttp://www.logos.ic.i.u-tokyo.ac.jp/~eddieh/Python-Docs-2.3.4/ext.p…

windows下安装subversion

前言&#xff1a; 最近在写windows版本下svn hooks(钩子) post-commit的实现。所以会需要在windows下安装相应的subversion。经过一番查询后&#xff0c;决定使用VisualSVN Server和TortoiseSVN 来实现windows下subversion的安装。相应的安装包已放到相关的百度云盘&#xff0…

QMake Automatic Dependencies

qmake SUBDIRS Project Automatic DependenciesHere’s what I searched for, before figuring out how to get SUBDIRSdependencies working using qmake:“qmake export compiler flags”“qmake export defines”“qmake export includepath”“qmake build dependent proje…

apache安装配置

1.安装步骤&#xff1a; 解压源文件&#xff1a; 1 tar zvxf httpd-2.2.21.tar.gz 2 cd httpd-2.2.213 ./configure --prefix/usr/local/apache2 --enable-so --enable-rewrite 4 make5 make install 运行./configure 命令进行编译源代码&#xff0c; --prefix/usr/local/apach…

单片机机器周期怎么计算公式_单片机的机器周期计算

单片机的机器周期计算~2007-08-31 10:32 这么个最简单的问题&#xff0c;总是忘记&#xff0c;日了&#xff0c;现在干脆给记下来&#xff0c;以后再忘记的话就看一看好了。1、时钟周期时钟周期T又称为状态周期&#xff0c;是时序中最小的时间单位。具体计算就是1/fosc。也就是…

数据库---初识sql语句

初识sql语句 SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型&#xff1a; DDL语句 数据库定义语言&#xff1a; 数据库、表、视图、索引、存储过程&#xff0c;例如CREATE DROP ALTERDML语句 数据库操纵语言&a…

堆与二叉树(下)

接着上次的&#xff0c;这里主要介绍的是堆排序&#xff0c;二叉树的遍历&#xff0c;以及之前讲题时答应过的简单二叉树问题求解 堆排序 给一组数据&#xff0c;升序&#xff08;降序&#xff09;排列 思路 思考&#xff1a;如果排列升序&#xff0c;我们应该建什么堆&#x…

实战:ajax带参数请求slim API

restful api 支持get,post,put,delete等方法&#xff0c;那么jquery客户端怎么去实现呢?涉及到跨域又怎么办&#xff1f; 很多时候需要传递一个token(api_key) 去识别用户身份&#xff0c;获取访问接口的权限。这里的token 不放在 header中&#xff08;那个也能实现&#xff0…