[
https://issues.apache.org/jira/browse/ARTEMIS-3382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17382525#comment-17382525
]
wang commented on ARTEMIS-3382:
-------------------------------
*program A core code:*
{code:java}
//
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
import javax.jms.Destination;
import javax.jms.TextMessage;
import java.util.concurrent.TimeoutException;
@Component
public class JmsUtils {
private JmsMessagingTemplate jmsMsgTemplate;
public String sendAndReceive(String queueName, final String messageStr,Integer
timeOutSec) throws Exception {
jmsMsgTemplate.getJmsTemplate().setReceiveTimeout(timeOutSec*1000);
logger.info(queueName+"<<<<<<"+messageStr);
String message=
jmsMsgTemplate.convertSendAndReceive(queueName,messageStr,String.class);
if(message==null){
logger.error("wait timeout:tempQueue"+"|"+timeOutSec);
throw new TimeoutException();
}
logger.info("tempQueue>>>>>>"+message);
return message;
}
}{code}
*program B core code:*
{code:java}
//
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.jms.config.JmsListenerEndpointRegistry;
import org.springframework.jms.listener.MessageListenerContainer;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.jms.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@Component
public class PublicOrderQueueListener implements
MessageListener,IThreadListener {
@Resource
private JmsUtils queueSender;
@Override
@JmsListener(destination = MqConstant.ORDER_QUEUE_PUBLIC,id =
MqConstant.ORDER_QUEUE_PUBLIC)
public void onMessage(Message message) {
String replyTo = ((Queue) message.getJMSReplyTo()).getQueueName();
queueSender.send(replyTo, 'xxxx');
}
}
}{code}
{code:java}
{code}
> Cannot publish to a deleted Destination: temp-queue:
> ----------------------------------------------------
>
> Key: ARTEMIS-3382
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3382
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: JMS
> Affects Versions: 2.17.0
> Environment: OS:Alibaba Cloud Linux release 3 (Soaring Falcon)(Linux
> kernel 5.10 LTS)
> JDK version:1.8.0_251
>
> Reporter: wang
> Priority: Blocker
> Labels: JmsMsgTemplate, SendAndReceive
>
> JDK version:1.8.0_251
> spring-jms-5.2.7
> artemis2.17.0, default configuration
> has A、B two JAVA program in one machine,
> A send a synchronization mesage,B reply,
> run a few days later,
> B throw exception on reply.
> return normal after restart program.
> A:
> jmsMsgTemplate.getJmsTemplate().setReceiveTimeout(20*1000);
> String message=
> jmsMsgTemplate.convertSendAndReceive(queueName,messageStr,String.class);
> B: reply,not timeout, but throw this exception:
> Cannot publish to a deleted Destination:
> temp-queue://ID:iZwz96vtq89cjmxpw5w9boZ-40113-1624574577491-1:1:588; nested
> exception is javax.jms.InvalidDestinationException: Cannot publish to a
> deleted Destination:
> temp-queue://ID:iZwz96vtq89cjmxpw5w9boZ-40113-1624574577491-1:1:588; nested
> exception is org.springframework.jms.InvalidDestinationException: Cannot
> publish to a deleted Destination:
> temp-queue://ID:iZwz96vtq89cjmxpw5w9boZ-40113-1624574577491-1:1:588; nested
> exception is javax.jms.InvalidDestinationException: Cannot publish to a
> deleted Destination:
> temp-queue://ID:iZwz96vtq89cjmxpw5w9boZ-40113-1624574577491-1:1:588
>
> this is a bug? or default configuration is not support synchronization
> mesage?
> What should I do?
--
This message was sent by Atlassian Jira
(v8.3.4#803005)