如何浏览 Websphere MQ 消息而不将其删除?

2023-12-29

我正在编写一个 .NET Windows 窗体应用程序,它将向 Websphere MQ 队列发布消息,然后轮询不同的队列以获取响应。如果返回响应,应用程序将实时部分处理该响应。但响应需要保留在队列中,以便每日批处理作业(也从响应队列中读取)可以完成其余的处理。

我已经读完这条消息了。我一直无法弄清楚如何在不删除它的情况下阅读它。

这是我到目前为止所得到的。我是 MQ 新手,所以任何建议将不胜感激。请随意使用 C# 进行回复。

Public Function GetMessage(ByVal msgID As String) As MQMessage
    Dim q = ConnectToResponseQueue()
    Dim msg As New MQMessage()
    Dim getOpts As New MQGetMessageOptions()
    Dim runThru = Now.AddMilliseconds(CInt(ConfigurationManager.AppSettings("responseTimeoutMS")))
    System.Threading.Thread.Sleep(1000) 'Wait for one second before checking for the first response'
    While True
        Try
            q.Get(msg, getOpts)
            Return msg
        Catch ex As MQException When ex.Reason = MQC.MQRC_NO_MSG_AVAILABLE
            If Now > runThru Then Throw ex
            System.Threading.Thread.Sleep(3000)
        Finally
            q.Close()
        End Try
    End While
    Return Nothing 'Should never reach here'
End Function

NOTE:我尚未验证我的代码是否确实删除了该消息。但这就是我对 MQ 工作方式的理解,而且这似乎就是正在发生的事情。如果这不是默认行为,请纠正我。


您需要使用 MQOO_BROWSE 选项打开队列。然后,在第一次读取时,您使用 MQGMO_BROWSE_FIRST 选项执行 GET。最后,后续的 GET 应使用 MQGMO_BROWSE_NEXT 选项。

注意:MQOO 是 MQ 打开选项,MQGMO 是 MQ 获取消息选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何浏览 Websphere MQ 消息而不将其删除? 的相关文章

  • DbContext 和连接池

    在我继承的应用程序中 基本控制器中有这个 应用程序中的所有其他控制器都继承自该控制器 public BaseController db new MyDbContext db Database Log s gt Debug Write s p
  • 记录 NHibernate SQL 查询

    有没有办法在我的代码中访问完整的 SQL 查询 包括值 我可以使用 log4net 记录 SQL 查询
  • 图标到图像 - 透明度问题

    我正在尝试在 Richtextbox 中构建类似文件列表的树视图 它应该看起来像一个资源管理器树视图 我的代码能够调整图标大小 但缺少透明度 浅灰色背景而不是透明度 我需要在这里改变什么 是不是图片格式不对 有没有更好的方法将图像添加到 R
  • DateTimeOffset 如何处理夏令时?

    我将日程表以星期几 小时和分钟的形式存储在数据库中 当数据被读取时 我们创建一个DateTime对象下一次出现的那一天 一小时和一分钟 但我需要修改它以使其能够感知 DST 如有必要 我可以修改数据库 我知道DateTimeOffset存储
  • CngKey.Create 不支持请求的操作

    我正在尝试在 C 程序集中 以编程方式 动态生成自签名证书 目标 NET 4 0 作为根CA来生成其他证书 该证书不需要保留在 Windows 证书存储中 我会将其导出为文件 通读这个问题 https stackoverflow com q
  • 多步算法的设计模式

    我正在编写一个控制台应用程序 该应用程序执行包含 N 个步骤的算法 这一步很重要N在步骤之前正确完成N 1被执行 否则程序应该停止工作并显示错误消息 我可以用嵌套来做到这一点if当然和用途的陈述try catch finally 在fina
  • WPF 绑定无法与 int 类型的属性正常工作

    我拥有以下财产int输入我的视图模型 该模型绑定到TextBox 一切正常 TwoWay绑定工作正常 除了一种情况 如果我清除的值TextBox 属性设置器不会被调用 尽管值已被清除TextBox 属性仍保持先前的值 有人遇到过类似的问题吗
  • JIT编译后的代码是如何注入内存并执行的?

    考虑一个典型的 Windows x86 或 AMD64架构 内存为 分为可执行部分 无法写入 和 数据部分 可以写入但不能写入 被处决 想想 DEP JIT 在内存中编译方法 通常 不存储任何东西 磁盘 而是将其移动到哪里 下一条指令指针可
  • SQL LIKE 的 C# 版本

    有没有办法在 C 中搜索字符串中的模式 像 Sql LIKE 这样的东西会非常有用 正则表达式允许一切LIKE允许以及更多 但具有完全不同的语法 然而 由于规则LIKE是如此简单 其中 表示零个或多个字符 并且 表示一个字符 并且两者LIK
  • 如何防止在 .NET 中的表单初始化时触发值更改事件?

    考虑一个带有几个单选按钮和一个复选框的简单 NET 表单 每个单选按钮都有一个 CheckedChanged 处理程序设置 该处理程序根据复选框的状态执行某些操作 我的问题是 当我初始化要检查的默认单选按钮 从设计器属性窗口 时 会为该单选
  • 变量声明后的一个问号是什么意思? [复制]

    这个问题在这里已经有答案了 在玩开源项目时 我尝试ToStringDateTime 对象被编译器阻止 当我跳到定义时 我看到了这个 public DateTime timestamp 有人可以告诉我这叫什么以及为什么它可能有用吗 这是一个可
  • 调试调用 .Net(C#) dll 的 VB6 项目

    我已经被这个问题困扰了几个小时了 我希望有人遇到过类似的问题 我们使用 VS2010 开发了一个原型 Net C dll 并希望能够在 C 应用程序和 VB6 应用程序中调用该 dll 我的问题是 是否可以调试调用 Net dll 的 VB
  • 为什么 BLToolkit 没有更流行? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 当 DataContext 更改时立即更新 Binding

    我试图在更改 DataContext 后立即测量对象 但对象的绑定没有得到足够快的更新 这是我的代码 In MeasureOverride Size m inputWidth 0 0 Size elemSize new Size doubl
  • .NET 服务是否表现出线程敏捷性?

    与以下问题相关this https stackoverflow com questions 657735 how is asp net multithreaded and this https stackoverflow com quest
  • Web API 请求上的滑动会话

    UPDATE 看起来它正在尝试写入新的 cookie 标头ApplyResponseGrantAsync但不能因为它是抛出标头已发送的异常 UPDATE 更清楚 我如何获得Set Cookie在 Web API 请求期间添加到 XHR 响应
  • Azure 服务总线:什么是“请求”和“消息”?

    在 Microsoft Azure 中 在服务总线下 您可以看到不同队列 主题等的活动图 该图显示了各种不同的线 例如收到的消息 传出消息 成功请求 etc 什么是Request 什么是Message 请求似乎不断发生 并且通常远远大于消息
  • 如何处理作为参数传递到方法中的 Lambda 表达式 - C# .NET 3.5

    我对 Lambda 表达式的了解有点不稳定 虽然我可以编写使用 Lambda 表达式 又名 LINQ 的代码 但我正在尝试编写自己的方法 该方法采用一些 Lambda 表达式类型的参数 背景 我正在尝试编写一个方法 该方法从任何其他对象类型
  • 使用私有构造函数的 C# 单元测试类?

    好吧 我刚刚收到一个作业 我必须对具有私有构造函数的类执行单元测试 现在 当所有方法也都是非静态时 我该如何在不初始化类的情况下进行单元测试 有什么方法可以对具有私有构造函数的类进行单元测试 无需反射 如果您无法将类公开 您仍然可以通过以下
  • 如何从另一个线程阻止 UI 线程或强制表单在 UI 线程内运行

    我的应用程序的一个要求是 如果它失去数据库连接 那么它必须弹出一个大模式 无连接 稍后重试 对话框 阻止所有用户交互 直到重新获得连接为止 我通过在应用程序启动时启动 DeviceMonitor 类的实例来实现此目的 该类创建一个 Syst

随机推荐

  • String#split方法混乱

    我尝试了这段代码 String str String str2 System out println str split length System out println str2 split length 输出是 0 6 唯一的区别是s
  • Google 地点自动完成强制选择

    我正在使用 JavaScript Google Places 自动完成 API v3 它工作正常 但我想知道是否有一种方法可以强制从自动完成中进行选择 即不接受任何自由格式文本的输入 我查看了文档 没有看到这样的选项 但为了安全起见 我想我
  • CouchDB 支持引用完整性吗?

    我是 CouchDB 的新手 正在学习它 我没有遇到 CouchDB 对引用完整性的支持 我们可以为 CouchDB 文档中的字段创建外键吗 例如是否可以确保订单文档中使用的供应商名称在供应商数据库中可用 CouchDB 支持引用完整性吗
  • BreezeJSEntityManagerFactory未知提供者ASP.NET

    我将entityManagerFactory 注入到Angular 中 但出现错误 就像 John Papa 的示例一样 这是在 datacontext 模块中完成的 该错误是未知的提供商 我将entityManagerFactory js
  • 无需访问互联网即可查找国家/地区的 GPS 坐标

    我需要在无法访问互联网的设备上找出给定的 GPS 坐标位于哪个国家 地区 例如this https stackoverflow com questions 3633504 country name for gps coordinates 但
  • 签署 AppX 文件时 SignTool 出错:“错误:SignerSign() 失败。” (-2147024693/0x800700cb)

    我正在使用创建 Appx 包makeappx exe然后尝试使用签名SignTool exe 我从 SignTool 得到的错误是 错误 SignerSign 失败 2147024693 0x800700cb 我正在使用的证书是我按照以下说
  • IOPS 与吞吐量

    大数据存储中 IOPS 和吞吐量之间的主要区别是什么 文件大小对 IOPS 有影响吗 为什么 IOPS 衡量每秒读写操作的数量 而吞吐量衡量每秒读取或写入的位数 尽管它们测量的内容不同 但它们通常相互遵循 因为 IO 操作的大小大致相同 如
  • 构建期间在 ember-cli 应用程序中使用 ENV 值

    我想根据构建环境设置我的 RESTAdapter 主机 我假设该值可以存储在config environment js像这样 if environment development ENV API ENDPOINT http localhos
  • 重复:在课堂上找不到设置器/字段

    当我尝试使用 Firebase 获取数据时 我遇到了这个问题 在 com school models EmBeacon 类上找不到 0C F3 EE 12 E0 4C 的设置器 字段 在 com school models EmBeacon
  • 我应该使用 notists 或 join 语句来过滤 NULL 吗?

    SELECT FROM employees e WHERE NOT EXISTS SELECT name FROM eotm dyn d WHERE d employeeID e id And SELECT FROM employees a
  • 如何从活动类中获取上下文?

    当我尝试初始化时context using getActivity Android Studio 显示错误 无法解析符号 如何从活动类中获取上下文 不要使用getActivity Use this 例如 Context context th
  • 将 PCM 音频采样从 44100 降低到 8000

    我从事音频识别演示已经有一段时间了 API 需要我传递一个采样率为 的 wav 文件8000 or 16000 所以我必须对其进行下采样 我尝试了以下两种算法 虽然他们都没有像我希望的那样解决问题 但结果存在一些差异 我希望这会让事情变得更
  • 当数字以 0 开头时,输出很奇怪

    1 脚本 num 00445790 echo num returns 00445790 2 脚本 num 00445790 echo num returns 2351 有人可以解释一下为什么我得到2351在第二个脚本上 Integers h
  • HtmlGenericControl("td") colspan

    我是 ASP NET C 新手 所以请任何人都可以帮助我使用以下代码 var td1 new HtmlGenericControl td 我怎样才能使这个 td colspan 为任何值 甚至如何添加 id 或 class 值 您需要将其添
  • 获取 Google Maps JavaScript API v3 中的当前位置,并让点跟随我,无需用户交互

    我认为由于网络的性质 这是不可能或不建议的 但无论如何我都会问 我知道我可以使用 Google Maps JavaScript API v3 获取用户的当前位置和地图中心 我什至可以让它显示一个点来表示用户当前所在的位置 我真正想知道的是
  • 没有子元素的 JSX 元素必须是自闭合的

    我可以正确运行这段代码 但是当我将代码提交到 git 时 它显示 错误 src layouts index tsx 25 9 没有子项的 JSX 元素必须是自关闭的 我尝试添加 React Fragment 标签 但这不起作用 我也删除了第
  • 未终止的字符串常量-mshta:javascript

    最近我试图使用 mshta 从 javascript 获得一个快速警报框 但我注意到一些奇怪的事情 我不知道问题是什么 在某种程度上 这就是我试图实现的目标 mshta javascript alert The file was store
  • jQuery 选择此后具有特定类的第一个元素

    这是我的小提琴 http jsfiddle net jamesbrighton wxWgG 4 http jsfiddle net jamesbrighton wxWgG 4 HTML div p class click Click 1 p
  • 在MVVM设计模式中,模型是否应该包含其他模型?

    我认为我没有见过这样的例子 但我也没有读过任何明确指出不应该这样做的地方 例如 假设我有一些用户模型 其中包含诸如名字 姓氏等常见内容 public class UserModel private int userID public int
  • 如何浏览 Websphere MQ 消息而不将其删除?

    我正在编写一个 NET Windows 窗体应用程序 它将向 Websphere MQ 队列发布消息 然后轮询不同的队列以获取响应 如果返回响应 应用程序将实时部分处理该响应 但响应需要保留在队列中 以便每日批处理作业 也从响应队列中读取