问题标签 [messagebroker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1391 浏览

c# - 什么开源消息队列软件提供了严格排序的持久性?

我们需要的是 RabbitMQ,它实际上是一个队列,而不是这样做的。消息应该保留在队列的头部,直到客户端明确地将它们出列。

这似乎是一个非常简单的场景,但由于某种原因,我找不到任何支持它的代理。代理应该在 Windows 操作系统上运行。

0 投票
4 回答
12515 浏览

java - 通过消息代理进行 Java/Python 通信

什么是通过支持 (C)Python 和 Java/JMS 应用程序的消息代理进行通信的良好解决方案?我的特殊要求是:

  • 开源解决方案
  • 在基于 Linux 的系统上可用
  • 不需要发送方和接收方之间的会合(即使用消息代理)
  • 单个事件队列支持多个生产者和消费者(每条消息只有一个消费者接收)
  • 具有两阶段提交的工作单元支持(很高兴拥有 XA 支持)
  • 支持持久消息(即在代理重新启动后仍然存在)
  • 支持 Java 客户端的 JMS
  • 没有一个组件是“边缘”的,这意味着由于缺乏社区支持/兴趣而有退出维护的风险
  • 如果有一个 Python 客户端设法“说 JMS”,那就太棒了,但是包括编写我自己的 Python JMS 层的任务的答案是可以接受的

我很难找到解决方案。Apache 的 ActiveMQ 没有开箱即用的 Python 支持。ZeroMQ 需要一个集合点。RabbitMQ 似乎不支持 JMS。我发现的最佳候选者是 ActiveMQ 和 pyactivemq 库的组合。但是 pyactivemq 的第一个和最后一个版本是在 2008 年,所以这似乎不符合我的“无边缘”要求。

理想的答案将是一个或多个支持良好且文档齐全的开源包的名称,您个人使用这些包在 Java/JMS 和 Python 应用程序之间进行通信,并且不需要大量集成工作即可获得开始了。包括“简单”(最多几天的工作)实施附加胶水代码以满足上述所有要求的答案是可以接受的。在没有好的开源候选者的情况下,商业解决方案也是可以接受的。

此外,Jython 也出局了。(如果我能……)相同的 Python 应用程序将需要使用仅在 CPython 中可用的模块。

0 投票
2 回答
1717 浏览

java - 使用 WebSphere Message Broker (WMB) 将 CSV 文件转换为 Java 对象

我希望使用 IBM WebSphere Message Broker(可能是 V6)来使用一些 CSV 文件,执行一些验证,然后填充一些 Java 对象以供 Java 应用程序使用。我相信通过使用 FileInputNode 来消费 csv 文件和使用 JavaCompute 节点来处理与 java 相关的东西,大部分都可以实现。但是,我想知道如何将两者联系起来?我认为可能的一种方法是使用 csv 文件,然后创建将由 Java 节点使用的消息。

任何意见,将不胜感激。我对 Message Broker 的了解很少,所以请原谅我的无知。顺便说一句,使用 WebSphere Message Broker 的决定不是我的(公司标准),所以尽管可能有其他(更简单的)方法可以实现这一点,但我还是坚持使用 MQ Broker。

任何建议表示赞赏。

提前致谢。

巴兹

0 投票
1 回答
544 浏览

amqp - AMQP 全连接代理联合,无需循环消息

我正在计划一个消息传递框架,我想使用 AMQP 产品(RabbitMQ、OpenMQ、Apache Qpid 等),但在搜索时我发现很难决定。网络条件如下:

  1. 拓扑:全连接(或全连接)
  2. 服务器数量:4
  3. 消息类型:主题消息 - 发布/订阅

在阅读 AMQP 产品时,并不清楚它们如何处理联合中的无限循环消息。

  • Qpid:明确指出 ad-hoc 连接会导致问题。
  • RabbitMQ:不太清楚如何使用联邦。
  • openAMQ:我觉得这会解决我的问题,但仍然不确定,我的问题来了!

openAMQ 在这里陈述了一个全连接拓扑示例(如链接中的最后一张图所示): http ://www.openamq.org/tutorial:broker-federation

在 openAMQ 的另一个文档中,出现了以下语句:

http://www.openamq.org/doc:user-3-advanced#toc61

“当发布者和订阅者都在子服务器上时,联合发布-订阅会创建额外的跃点。在这种情况下,消息首先发送到父服务器、根服务器,然后从那里返回到所有需要它们的子服务器。这就是如何“我们避免多次传递相同的消息。但是它会产生额外的延迟。我们通常会将重要的发布者放在根父服务器上。”

第一个示例导致消息重复,但第二个文档将此视为树拓扑中的限制(正如我所理解的那样)!

现在.. openAMQ 是否支持完全连接的网络而不会导致消息循环?你能不能给我推荐一个没有的产品?

0 投票
2 回答
2728 浏览

sql - sql插入子表和父表

我有两个具有多对一关系的表。(甲骨文)

插入子表和父表的记录是同时插入的。

我想知道的是最有效的方法是什么。

当前,调用应用程序为整个插入步骤调用了一个存储过程。存储过程当前具有以下签名:

该过程从输入循环遍历 C 并将每个值存储在一个数组中。然后使用该数组以及输入中的 A 和 B 插入到表 PARENT 中。

然后使用输入中的 A 并循环输入中的 D 和 E 并为分隔字符串中的每个项目插入表 CHILD 。

每天将调用多达 300 万次。它需要尽可能高效。

进行多次 SP 调用而不是一次调用时会损失多少效率?

处理受限字符串的所有循环似乎需要做很多工作!

我在想调用应用程序可以对 CHILD 的每个条目进行单独的 SP 调用。但是,我怎样才能确保以某种方式插入 CHILD 不会在插入 PARENT 之前发生......那将是更多的存储过程调用。(很多时候没有要插入的子记录,有的时候一般少于10条,但也有可能多达50条)

我也愿意用另一种方法来获取 Dilimted 字符串 C 中的信息。

有没有比while循环更有效的方法来从有限的字符串中获取信息?

我没有写 SP 我被要求做一个小的修改,如果可能的话让它更有效。

有任何想法吗?

笔记:

我简化了表格,实际上在 dilitied 字符串 C 中有 10 个项目而不是 5,还有两个像 C 一样的 dilited 字符串被插入到表 PARENT 中。这些表还具有比显示更多的字段

记录将在 30 天后删除。

0 投票
2 回答
18182 浏览

sql - 在 oracle 包中定义默认值的位置

当您在 oracle 中定义一个包时,会有一个类似的标题,然后是一个正文。

必须在两个位置定义所有参数。我想让调用程序(IBM 消息代理)的参数之一成为可选参数。我是否必须在标题和正文定义中添加默认值?

此外,任何人都可以确认 messagebroker 能够在不为参数指定任何默认值的情况下调用 proc 吗?

谢谢!

更新:我注意到我可以将默认值添加到标题而不是正文中,或者我可以将其添加到两者中。我不能将它添加到正文中。

将它添加到两者与仅标题之间有什么区别?

更新:

我可以做到这一点,我只在规范中指定默认值而不是正文。或者我也可以在这两个地方指定默认值。有什么区别?

0 投票
1 回答
3372 浏览

.net - IBM Cast Iron 和 ESB

我正在尝试为我的公司定义集成架构路线图,并且正在寻找有关我的方法的一些指导。

我们的大多数 (90-95%) 应用程序都基于带有 Microsoft SQL Server 2008 的 .NET。我们在 Salesforce 中拥有销售云,并计划在未来几年迁移更多应用程序(到 Force.com 平台)Salesforce。我们购买 IBM Cast Iron 是为了将我们的本地应用程序与 Salesforce 以及可能在我们的本地应用程序中集成。现在,在分析了现有应用程序和现有集成(即席 - SQL 作业、Windows 服务......)之后,我觉得我们需要一个 ESB,因为我意识到我们有多种方式可以用来与应用程序通信( FTP、Web 服务、CSV/Excel、SQL)。虽然 Cast Iron 可以采用任何类型的格式,并且可以使用 Web 服务、FTP 等...,但我

通过引入 ESB,我想我至少会获得以下好处:

  • 可扩展性
  • 可靠性
  • 高性能

所附图表反映了此方案的简化版本。将来还可以通过在 ESB 上提供 SOA 来扩展此架构。

在此处输入图像描述

现在我的担忧/问题是:

  • 由于 Cast Iron 是一种编排工具,我应该使用哪个进行编排?是铸铁还是 ESB?
  • Cast Iron 只能与 JMS/IBM MQ 对话,而不能与 Microsoft 消息队列对话。那么,我们应该使用基于 Java 的 ESB,比如 Mule(使用 Active MQ)还是 Service Mix?
  • 对于可靠且使用最广泛的基于 .NET 的 ESB(Microsoft Biztalk 和 NServiceBus 除外),我有哪些选择?
  • 批量数据移动的最佳实践是什么?通常,这可以通过 SSIS 完成。在我们的案例中,我们可能必须定期将批量数据移动到云中。
  • 将消息从 .NET 应用程序发布到基于 JMS 的消息存储的最佳方式是什么?

我知道我在这里问了很多问题,可能有也可能没有直接答案。我很高兴听到大师们的意见。

0 投票
2 回答
2023 浏览

java - 使用 java api 从消息代理栏文件中检索属性值

我正在尝试从消息代理创建的条形文件中读取属性值。

我想通过java做到这一点。api在这里:http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/index.jsp?topic=%2Fcom.ibm.etools.mft.doc%2Fbe43410_.htm

但是,我只能弄清楚如何通过使用部署描述符来获取属性的名称而不是它们的值。我可以看到如何覆盖属性具有的值,但再一次,不是如何检索值。换句话说,我只能看到如何写入属性而不是从中读取。我两个都想做!叫我贪婪;)

如果我使用基于命令行的实用程序:http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/index.jsp?topic=%2Fcom.ibm.etools.mft.doc%2Faf03900_.htm 我可以毫无问题地获取属性值。

但如果可能的话,我想通过 java 获得它们。

提前感谢您对此的任何帮助!

0 投票
1 回答
1434 浏览

messagebroker - mqsicreatebar “无法添加到 BAR 文件,因为它不包含任何输入节点”

我正在使用 Websphere Message Broker Toolkit 7 并尝试创建一个自动条形构建。

在运行以下命令时,我收到以下错误:

我在其他地方看到过这个,但是我还没有找到解决方案。我可以看到这个流包含一个输入终端节点。

问候,

萨帕托斯

0 投票
1 回答
1072 浏览

websphere - WebSphere Message Broker:简单流错误

我正在创建一个简单的 MessageBroker 流。它进入 MQInput Node -> Compute -> MQOutput Node,其中所有 Compute 所做的是:

调用 CopyEntireMessage(); SET OutputRoot.Properties.MessageFormat='XML1';

它应该只将消息格式从 Binary1 更改为 XML1。但是,MQOutput 节点失败并沿其失败连接发送消息。我不清楚 MQOutput 节点可能失败的原因?