guohongtao0214 opened a new issue #2061:
URL: https://github.com/apache/rocketmq/issues/2061


   Caused by: org.apache.rocketmq.client.exception.MQClientException: The 
producer service state not OK, maybe started once, RUNNING
   See http://rocketmq.apache.org/docs/faq/ for further details.
        at 
org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.start(DefaultMQProducerImpl.java:214)
        at 
org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.start(DefaultMQProducerImpl.java:175)
        at 
org.apache.rocketmq.client.producer.DefaultMQProducer.start(DefaultMQProducer.java:271)
        at 
org.apache.rocketmq.client.producer.TransactionMQProducer.start(TransactionMQProducer.java:57)
        at 
org.apache.rocketmq.spring.core.RocketMQTemplate.afterPropertiesSet(RocketMQTemplate.java:844)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1855)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1792)
        ... 29 common frames omitted
   
   
   自己的配置如下:
    @Bean
       public TransactionMQProducer transactionMQProducer(RocketMQProperties 
rocketMQProperties) {
           RocketMQProperties.Producer producerConfig = 
rocketMQProperties.getProducer();
           TransactionMQProducer mqProducer = new 
TransactionMQProducer(PRODUCER_GROUP);
           mqProducer.setNamesrvAddr(NAME_SERVER);
           mqProducer.setSendMsgTimeout(producerConfig.getSendMessageTimeout());
           
mqProducer.setRetryTimesWhenSendFailed(producerConfig.getRetryTimesWhenSendFailed());
           
mqProducer.setRetryTimesWhenSendAsyncFailed(producerConfig.getRetryTimesWhenSendAsyncFailed());
           mqProducer.setMaxMessageSize(producerConfig.getMaxMessageSize());
           
mqProducer.setCompressMsgBodyOverHowmuch(producerConfig.getCompressMessageBodyThreshold());
           
mqProducer.setRetryAnotherBrokerWhenNotStoreOK(producerConfig.isRetryNextServer());
           return mqProducer;
       }
   
       @Bean(destroyMethod = "destroy")
       @ConditionalOnBean(TransactionMQProducer.class)
       public RocketMQTemplate 
transactionRocketMQTemplate(TransactionMQProducer transactionMQProducer,
                                                           
RocketMQMessageConverter rocketMQMessageConverter) {
           RocketMQTemplate transactionRocketMQTemplate = new 
RocketMQTemplate();
           transactionRocketMQTemplate.setProducer(transactionMQProducer);
           
transactionRocketMQTemplate.setMessageConverter(rocketMQMessageConverter.getMessageConverter());
           return transactionRocketMQTemplate;
       }
   
   RocketMQAutoConfiguration 
自动注入的defaultMQProducer和我注入的transactionMQProducer,就产生了上面的问题,查看了源码,定位到DefaultMQProducerImpl
 start(final boolean startFactory)方法的问题,下一步怎么解决?


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to