这是我在这里的第一个帖子,所以如果我不尊重格式规则或其他一般规则,我提前道歉。
我有一个基于Spring JMS的客户机应用程序,它使用多个使用者从队列中读取。我的约束条件是:在失败的情况下保证重发和消息重复检测。
<bean id="jndiDestinationResolver" class="org.springframework.jms.support.destination.DynamicDestinationResolver" />
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<constructor-arg ref="MyConnectionFactory" />
<property name="destinationResolver" ref="jndiDestinationResolver" />
<property name="receiveTimeout" value="100" />
</bean>
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="destinationResolver" ref="jndiDestinationResolver" />
<property name="connectionFactory" ref="MyConnectionFactory" />
<property name="destinationName" value="my_Queue" />
<property name="messageListener" ref="MyListener" />
<property name="maxConcurrentConsumers" value="10"/>
<property name="sessionTransacted" value="true"/>
</bean>
protected void processTextMessage(TextMessage textMessage) { try { // process message } catch(Exception e) { try { sendTextMessage("my_Queue",correlationID, textMessage.getText()); } catch (JMSException e1) { log.error("Error writing message back to the queue!"); throw JmsUtils.convertJmsAccessException(e1); } } } protected void sendTextMessage(String queueName, final byte[] correlationID, String message) { jmsTemplate.convertAndSend(queueName, message, new MessagePostProcessor() { public Message postProcessMessage(Message message) throws JMSException { message.setJMSCorrelationIDAsBytes(correlationID); return message; } }); }
我希望这对于我将要使用的JMS提供程序是透明的(在生产环境中使用Websphere MQ)。目前,我希望通过抛出一个异常来避免回滚事务:我希望重新调度失败的消息,就像队列中的新消息一样。对于重复检测,我认为插入一个业务存在检查就足够了。
事先表示感谢并致以最良好的问候
是的,这是正确的做法。
我有一个向rabbitmq发送消息的服务,消费者对消息进行一些操作并重新排队。 我可以成功地将初始消息发送给rabbitmq,但问题是,如果消息需要修改,我无法将任何已使用的消息重新发送给rabbitmq。 我试图用new创建一个新类,但“MyService”始终为空
我已经设置了Apache camel,在其中我使用来自一个队列的消息并对其进行某种操作,然后将其传输到其他队列。 现在,如果异常来了,我希望它应该回滚,然后在6次尝试后,它发送到死信队列,目前回滚发生5-6次,但我的消息没有转移到死信队列。 这里会发生什么-->Queue1->>(消耗)-->Operation(引发异常)-->Rollback-->Queue1->>(消耗)-->Operatio
因此,我实现了自己的mpi库(简化版本),我需要在进程之间发送/接收一些数据。MPI_Send看起来像这样(void *buf,整数计数,数据类型数据等)。所以这意味着我需要发送数据类型(char,double或int)的计数元素,指向buf的地址。我需要通过消息队列(mq)发送它们。MPI_Recv采用大致相同的参数。目前,这是我在发送和Recv中所做的: 现在我只接收数组的第一个元素。我该如何
我正在尝试为Web设置Firebase云消息传递。我成功地对其进行了正确初始化并获得了令牌: manifest.json与gcm_sender_id 我可以看到我在控制台中得到令牌,所以我试图验证它,并通过邮递员发送我的第一个通知-这里是留档。 发布网址:https://fcm.googleapis.com/v1/projects/PROJECTID/messages:发送授权:无授权 标题 Bo
我在这里尽量简明扼要。我已经研究了网络上报告的许多类似问题,并根据这些问题评估了我的问题。但是,这并没有解决我的问题。所以我终于把这个放上去了。 我有一个带有默认值的spring注释的事务性服务(在实现的类方法上进行了注释)。该服务通过直接调用mybatis映射器方法(在服务中自动连线)来执行一些插入(在循环中)和无参数存储过程调用。 我在Tomcat和驱动程序管理器连接单元测试中使用JNDI连接
我在我的代码中为我的机器人配置和一般的东西建立了一个类,我很整洁,所以,客户端不协调。Client()和bot。是我的类在我的bot类中我存储了一些通道ID,然后我注意到了客户端。发送消息(channelid,message)方式不再支持。但是,我将通道id变量编辑为 客户=不和谐。Client()位于我的类之上,它已定义。 我用这个发信息 我期待着那个频道的消息,但现实是: 简而言之,我的cha