2012-06-21 5 views
1

ActiveMQ에 관한 초보자로서 Grails에서 대기열에 연결하려했습니다. JMS 플러그인, ActiveMQ 플러그인 및 "Grails에 대한 확실한 안내서"책을 살펴 보았습니다.ActiveMQ 용 플러그인이 필요합니까?

이 책은 내가 그냥 항아리, 와이어 약간의 콩을 삭제해야한다는 것을 나에게 보여주고 그것 뿐이다 :

jmsFactory(org.apache.activemq.pool.PooledConnectionFactory) { bean -> 
    bean.destroyMethod = "stop" 
    connectionFactory = { org.apache.activemq.ActiveMQConnectionFactory cf -> 
     brokerURL = "tcp://localhost:61616" 
    } 
} 
jmsTemplate(org.springframework.jms.core.JmsTemplate) { 
    connectionFactory = jmsFactory 
} 
jmsMessageListener(org.springframework.jms.listener.adapter.MessageListenerAdapter, ref("messageService")) { 
    defaultListenerMethod = "onMessage" 
} 
jmsContainer(org.springframework.jms.listener.DefaultMessageListenerContainer) { 
    connectionFactory = jmsFactory 
    destinationName = "demoQueue" 
    messageListener = jmsMessageListener 
    transactionManager = ref("transactionManager") 
    autoStartup = false 
}  

내가 그것을 테스트하고 마치 마법처럼 작동하는 것 같다. 거래조차도 작동합니다.

그래서 플러그인 중 하나를 사용해야합니까? 내가 놓친 게 있니?

+0

당신은 mysql 또는 jdbc를 통해 다른 db를 사용하여 메시지를 지속하려고 시도 했습니까? 메시지를 지속하는 데 문제가 있습니다. resource.groovy 파일을 공유 할 수 있다면 지속성을 어떻게 추가했는지는 매우 좋을 것입니다. – Zohaib

+0

큐 관리자는 메시지가 전달되도록합니다. 끈질기와 관련해서는 아무 것도 할 수 없습니다. Grails 앱에서 메시지는 방금받은 다음 일반 도메인 클래스를 통해 유지할 수 있습니다. 그러나 내가 기억 하듯이, 당신은 트랜잭션적인 맥락에 있습니다. 아마 너의 문제 야. 왜 새로운 질문을 올리지 않으시겠습니까? – rdmueller

답변

3

아니요. 플러그인을 직접 사용할 의사가 없으면 플러그인을 사용할 필요가 없습니다.

jms 플러그인을 사용하고 수동으로 ActiveMQ를 구성합니다.

당신은 BuildConfig.groovy에서 JMS 플러그인과의 ActiveMQ 항아리의 포함을 자동화 할 수 있습니다 :

repositories { 
    ... 
    mavenCentral() 
    ... 
} 
plugins { 
    ... 
    runtime ":jms:1.2" 
    ... 
} 
dependencies { 
    ... 
    compile "org.apache.activemq:activemq-core:5.5.1" 
    ... 
} 

그리고 봄에 ActiveMQ를 포함 브로커를 구성/resources.groovy :

beans = { 
    ... 
    jmsConnectionFactory(SingleConnectionFactory) { 
     targetConnectionFactory = { ActiveMQConnectionFactory cf -> 
      brokerURL = "vm://localhost" 
     } 
    } 
    ... 
} 

내장 된 브로커를 사용하기 때문에 외부 브로커를 사용합니다.

외부 브로커 단순히 스프링/resources.groovy에 정의 brokerURL 변경 사용한다. JMS 프로 - 플러그인에 대한


무엇. 어떤 장점이 있습니까?

JMS 플러그인은 유용한 Grails 통합을 제공합니다. 자세한 내용은 Grails JMS Plugin 1.2 Reference을 참조하십시오.

+0

hm. 내장 된 브로커가 필요 없기 때문에 외부 브로커를 사용합니다. JMS-Plugin은 어떻습니까? 어떤 장점이 있습니까? – rdmueller

+1

@Ralf 추가 질문은 내 대답의 업데이트를 참조하십시오. – jamesallman

+0

임베디드 ActiveMQ 브로커를 어떻게 구성 할 수 있습니까? – Rafael

관련 문제