草庐IT

java - 保持 spring 上下文 Activity ,直到 JMS 消息被消费

我有一个与JMS相关的非常标准的设置-SpringBoot和ActiveMQ。它工作正常,直到我尝试进行简单的集成测试。经过一些调查后,我发现在消费了第一条JMS消息后,Spring上下文和嵌入式代理都关闭了,无论在消费期间是否触发了另一个事件。我能够通过在测试设置中添加useShutdownHook=false连接选项来解决代理问题,即spring.activemq.broker-url=vm://broker?async=false&broker.persistent=false&broker.useShutdownHook=false我正在寻找的基本上是一种强制测试“保持Acti

java - 具有多个消费者的 JMS 队列

我有一个带有HornetQ和单个队列的JBoss-6服务器:有不同的消费者(在不同的机器上)连接到此队列,但一次只有一个单个消费者处于Activity状态。如果我关闭这个消费者,消息会立即由其他消费者之一处理。由于我的消息有一些耗时的处理,我希望多个消费者同时处理他们的独特消息。我记得在JBoss的早期版本中有一个类似的设置可以正常工作。在Jboss-6中,消息系统运行良好——除了上述问题。这个问题类似于Aremultipleclientconsumerspossibleinhornetq?,但场景与我的不相似。更新1:如果我关闭(STRG+C)一个消费者,在下一个消费者收到消息之前会

java - JMS QueueSender 线程安全吗?

我想在多线程环境中使用QueueSender。QueueSender.send()线程安全吗? 最佳答案 不,MessageProducer/QueueSender不是线程安全的。或者更具体地说:Session不是线程安全的。Session的JavaDoc在第一句话中明确提到了这一点:ASessionobjectisasingle-threadedcontextforproducingandconsumingmessages.并且由于MessageProducer/QueueSender绑定(bind)到Session,您不能同时从

java - 带有 HornetQ 的 JBoss 7 中 JMS 队列的 'durable' 属性的含义是什么?

在使用HornetQ(基于standalone-full.xml配置)在JBoss7上配置JMS队列期间,我注意到一个属性“持久”。我浏览了几个来源,其中许多都表示队列始终是“持久的”,这意味着消息将始终被传送,即使潜在的接收者在发送时处于非Activity状态也是如此。JBoss7HornetQ中的这个属性是指临时队列吗?还是这个属性指的是某种非临时非持久队列? 最佳答案 我觉得“持久”这个词更适用于主题而不是队列。持久订阅是订阅者未运行时,订阅者的发布由消息提供者存储的订阅者。一旦订阅者激活,这些存储的消息将被传递给该订阅者。对

java - 如何理解JMS中的 "synchronous"和 "asynchronouns"消息?

看了一些JMS的文档,我对synchronous和asynchronous这两个词完全不解。查看此页面:http://docs.oracle.com/cd/E19798-01/821-1841/bncdq/index.html同步Youusethereceivemethodtoconsumeamessagesynchronously.Youcanusethismethodatanytimeafteryoucallthestartmethod:connection.start();Messagem=consumer.receive();connection.start();Message

php - 使用 JMS Serializer 时禁用 Doctrine 2 延迟加载?

我在我的Zend项目中使用Doctrine2ORM,并且在一些情况下需要将我的实体序列化为JSON。ATM我使用Querybuilder并加入我需要的所有表。但是我的序列化程序导致doctrine延迟加载每个关联的实体,这会导致相当大的数据量并引发递归。现在我正在寻找一种方法来完全禁用Doctrines延迟加载行为。我选择数据的方式如下:$qb=$this->_em->createQueryBuilder()->from("\Project\Entity\Personappointment",'pa')->select('pa','t','c','a','aps','apt','p')

php - jms 序列化器性能问题

我正在使用JMS序列化程序。而且我发现当我使用大数据时性能真的很差。我将以下对象结构显示为数组:$jsonData=array('message'=>'thisisanicemessage','data'=>array(0=>array('firstname'=>'achim','lastname'=>'menzel')));这是我序列化数据的方式:$serializer=$this->get('serializer');$encodedJson=$serializer->serialize($jsonData,'json');$response=newResponse($encode

php - 如何使用 JMS Serializer 在 FOS Rest Bundle 中的 JSON 中显示空值?

我读过这个:https://github.com/schmittjoh/serializer/issues/77但没有找到任何方法来使用JMS序列化程序为FOSRestbundle序列化JSON中的空值(这意味着即使它为空,也只显示Doctrine对象的键)。我在composer.json中使用以下配置"jms/serializer-bundle":"0.12.*@dev","friendsofsymfony/rest-bundle":"0.13.*@dev",JMS序列化程序配置#jms-serializerjms_serializer:visitors:json:options:0

jakarta-ee - 使用 HornetQ (JBoss) 在 docker 容器上公开的 JMS 所需的端口

我正在使用Docker将JMS服务器容器链接到另一个JMS客户端容器。但是当我在docker容器中运行服务器时,客户端无法正确连接到服务器。我在docker上暴露了443端口(还有其他JMS使用的端口吗?)我可以成功创建目的地,但不能创建JMS上下文:StringPROVIDER_URL="https-remoting://MYDOMAIN:443";.../**PASSED**/Destinationdestination=(Destination)namingContext.lookup(destinationString);/**HASERROR**/JMSContextcont

java - 避免 JMS/ActiveMQ 上的重复消息

有没有办法抑制ActiveMQ服务器上定义的队列上的重复消息?我尝试手动定义JMSMessageID,(message.setJMSMessageID("uniqueid")),但服务器忽略了此修改并使用内置生成的JMSMessageID传递消息。按照规范,我没有找到有关如何删除重复消息的引用。在HornetQ中,为了解决这个问题,我们需要在消息定义中声明HQ特定的属性org.hornetq.core.message.impl.HDR_DUPLICATE_DETECTION_ID。即:MessagejmsMessage=session.createMessage();StringmyU