- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试配置连接到集群MQ的集群Websphere应用程序服务器。
但是,我所掌握的信息是两个具有不同主机名,服务器通道和队列管理器的MQ实例的详细信息,这些主机名属于同一MQ集群名称。
在Websphere控制台上,我可以看到主机名,队列管理器和服务器通道的输入字段,找不到任何可以指定多个MQ详细信息的内容。
如果我选择其中一个MQ详细信息,那么MQ集群是否仍然有效?如果没有,给定我的详细信息,如何启用MQ集群?
最佳答案
WebSphere MQ集群影响队列管理器之间如何进行对话的行为。它不会改变应用程序连接或与队列管理器进行通信的方式,因此所提出的问题似乎是假设某种群集行为在WMQ中不存在。
要使用两个地址设置应用程序服务器,请参阅WAS v7知识中心中的Configuring multi-instance queue manager connections with WebSphere MQ messaging provider custom properties,以获取有关如何使用多实例CONNAME
值配置连接工厂的说明。
如果您在连接工厂中指定了有效的QMgr名称,并且应用程序连接到的QMgr没有该特定名称,则连接将被拒绝。通常,多实例CONNAME
用于连接到多实例QMgr。这是一个单一的高可用性队列管理器,可以位于两个不同的IP地址之一,因此在这种情况下使用真实的QMgr名称是可行的。但是,如果您的应用程序连接到的QMgr是两个不同且名称不同的队列管理器(即您所描述的),则应在连接工厂中指定星号(*
字符)作为队列管理器名称,如< aa>。这样,应用程序在获得连接时将不会检查QMgr的名称。
如果我选择其中一个MQ详细信息,那么MQ集群是否仍然有效?如果不,
给定我的详细信息,如何启用MQ集群?
取决于您所说的“聚类”。如果您认为该应用程序将看到一个由两个队列管理器托管的逻辑队列,则不会。这不是WMQ群集的工作方式。承载集群队列的每个队列管理器都会获取发送到该队列的消息的子集。因此,从该队列中获取的所有应用程序都只会看到本地子集。
但是,如果您打算通过“集群化”来交替连接到两个队列管理器中的一个或另一个,并且将消息传输到位于同一集群中但未托管在要连接的两个QMgr中的一个上的队列中,那么可以会很好的工作。如果您的连接工厂仅知道两个QMgr之一,则您将仅连接到该QMgr,并且向群集发送消息仍然可以进行。但是,请按照我提供的链接中的说明进行设置,您的应用程序将能够连接到两个QMgr中的一个,并且您可以通过停止其连接到的一个通道上的通道并观察它与另一个连接的通道来轻松地进行测试之一。
祝好运!
更新:
为了清楚起见,提供的详细信息类似于hostname01,qmgr01,
queueA,serverchannel01。另一个是hostname02,qmgr02,queueA,
serverchannel02。
仅在以下情况下,WMQ客户端才会使用多实例CONNAME
连接到两个不同的QMgr。
两个QMgr上使用的通道名称完全相同
发出连接请求时(即在Connection Factory中),应用程序使用星号(*
字符)或QMgr名称的空格。
通过使用客户端连接定义表(也称为CCDT),可以使WMQ连接到几个不同的队列管理器之一,其中每个通道管理器的通道名不同。 CCDT是您使用MQSC
命令创建的编译工件,以定义CLNTCONN
通道。它包含客户端有资格连接到的每个QMgr的条目。每个可以具有不同的QMgr名称,主机,端口和通道。但是,在定义CCDT
时,管理员会定义所有条目,以便将QMgr名称替换为应用程序“高级限定符”。例如,薪资应用程序想要连接到3个不同的QMgr中的任何一个。 WMQ管理员使用三个条目定义了一个CCDT,但QMgr名称使用PAY01
,PAY02
和PAY03
。请注意,这不需要匹配实际的QMgr名称。然后,应用程序将QMgr名称指定为PAY*
,这将选择CCDT中的所有三个QMgr。
有关CCDT的更多详细信息,请参见here。
MQ集群与应用程序服务器集群不同吗?
一点都不。
其中两个子节点连接到群集。然后F5 URL
用于将负载分配给每个节点。 WMQ不附带
我们只是向其发送消息的集群url / f5和
消息是透明的?
不会。WMQ群集提供了一个名称空间,应用程序和QMgr可以在该名称空间中解析非本地对象,例如队列和主题。连接到WebSphere MQ集群的唯一一件事就是队列管理器。应用程序和人工用户始终连接到特定的队列管理器。可能有一组可互换的队列管理器,例如CCDT,但每个都是独立的。
使用WAS,消息传递引擎可以在多个节点上运行,但是它提供了一个逻辑队列,应用程序可以从中获取消息。使用WMQ,承载该队列的每个节点都将获得消息的子集,而使用这些消息的任何应用程序都将仅看到该子集。
HTTP是无状态的,因此F5 URL非常有效。当它确实维护会话时,该会话的存在主要是为了优化离开连接的开销,并且往往寿命很短。 WMQ客户通道是有状态的,可以协调单阶段和两阶段的工作单元。如果应用程序在UOW期间故障转移到另一个QMgr,则它无法协调该UOW。
由于WMQ连接的性质,QMgr之间从未使用F5。它仅在客户端和QMgr之间用于连接平衡,而不用于消息流量平衡。此外,不存在或不存在MQ集群对于应用程序是完全透明的,在任何一种情况下,该应用程序都简单地连接到QMgr以获取和/或放置消息。多实例CONNAME
或CCDT文件的使用通过提供客户端可以连接到的多个等效QMgr来使连接更稳定,而QMgr与WMQ群集无关。
有帮助吗?
请参见:
Using a client channel definition table with WebSphere MQ classes for JMS
Clustering
How Clusters Work
Queue manager groups in the CCDT
关于ibm-mq - IBM WAS7队列工厂配置到MQ集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24395961/
我遇到一种情况,我需要从某个主题读取(正在进行的)消息并将它们放入另一个 Queue 中。我怀疑我是否需要 jms Queue 或者我可以对内存中的 java Queue 感到满意。我将通过同一 jv
队列的定义 队列(Queue):先进先出的线性表 队列是仅在队尾进行插入和队头进行删除操作的线性表 队头(front):线性表的表头端,即可删除端 队尾(rear):线性表的表尾端,即可插入端 由于这
Redis专题-队列 首先,想一想 Redis 适合做消息队列吗? 1、消息队列的消息存取需求是什么?redis中的解决方案是什么? 无非就是下面这几点: 0、数据可以顺序读
0. 学习目标 栈和队列是在程序设计中常见的数据类型,从数据结构的角度来讲,栈和队列也是线性表,是操作受限的线性表,它们的基本操作是线性表操作的子集,但从数据类型的角度来讲,它们与线性表又有着巨大的不
我想在 redis + Flask 和 Python 中实现一个队列。我已经用 RQ 实现了这样的查询,如果你有 Flask 应用程序和任务在同一台服务器上工作,它就可以正常工作。我想知道是否有可能创
我正在使用 Laravel 5.1,我有一个大约需要 2 分钟来处理的任务,这个任务特别是生成报告...... 现在,很明显,我不能让用户在我接受用户输入的同一页面上等待 2 分钟,而是我应该在后台处
我正在使用 Azure 队列,并且有多个不同的进程从队列中读取数据。 我的系统的构建方式假设每条消息只读取一次。 这个Microsoft article声称 Azure 队列具有至少一次传送保证,这可
我正在创建一个Thread::Queue元素数组。 我这样做是这样的: for (my $i=0; $i new; } 但是,当我在每个队列中填充这样的元素时 $queues[$index]->enq
我试图了解如何将我的 Mercurial 补丁推送到远程存储库(例如 bitbucket.org),而不必先应用它们(实际上提交它们)。我的动机是在最终完成之前首先对我的工作进行远程备份,并且能够与其
我的本地计算机上有一个 Mercurial 队列补丁,我需要与同事共享该补丁,但我不想将其提交到上游存储库。有没有一种简单的方法可以打包该补丁并与他分享? 最佳答案 mq 将补丁作为不带扩展名的文
Java 中是否有任何类提供与 Queue 相同的功能,但有返回对象的选项,并且不要删除它,只需将其设置在集合末尾? 最佳答案 Queue不直接提供这样的方法。但是,您可以使用 poll 和 add
我在Windows上使用Tortoise svn客户端,我需要能够一次提交来自不同子文件夹的更改文件-一次提交。像在提交之前将文件添加到队列中之类的?我该怎么做? Windows上是否还有另一个svn
好吧,我正在尝试对我的 DSAQueue 类进行单元测试,它显示我的 isEmpty()、isFull() 和 dequeue() 方法失败。 以下是我的 DSAQueue 代码。我认为我的 Dequ
我想尽量减少对传入请求的数据库查询。它目前需要写入 6 个不同的表。在返回响应之前不需要完成处理。因此,我考虑了 laravel 队列,但我想知道我是否也可以摆脱写入队列/作业表所需的单独查询。我可以
我正在学习队列数据结构。我想用链表创建队列。我想编程输出:10 20程序输出:队列为空-1 队列为空-1 我哪里出错了? 代码如下: class Node { int x; Node next
“当工作人员有空时,他们会根据主题的优先级列表从等待请求池中进行选择。在时间 t 到达的所有请求都可以在时间 t 进行分配。如果两名工作人员同时有空,则安排优先权分配给最近的工作最早安排的人。如果仍然
我正在开发一个巨大的应用程序,它使用一些子菜单、模式窗口、提示等。 现在,我想知道在此类应用程序中处理 Esc 和单击外部事件的正确方法。 $(document).keyup(function(e)
所以 如果我有一个队列 a --> b --> NULL; 当我使用函数时 void duplicate(QueueNodePtr pHead, QueueNodePtr *pTail) 它会给 a
我正在尝试为键盘输入实现 FIFO 队列,但似乎无法让它工作。我可以让键盘输入显示在液晶显示屏上,但这就是我能做的。我认为代码应该读取键盘输入并将其插入队列,然后弹出键盘输入并将值读取到液晶屏幕上。有
我正在学习算法和 DS。如何在 JavaScript 中使用队列? 我知道你可以做这样的事情。 var stack = []; stack.push(2); // stack is now
我是一名优秀的程序员,十分优秀!