복붙노트

[SPRING] Spring JMS와 Websphere MQ

SPRING

Spring JMS와 Websphere MQ

안녕하세요, 저는 Spring JMS와 Websphere MQ를 처음 접했습니다. 어떤 사람이 나 한테 단계적인 과정을 제공 할 수 있습니까? 아니면 websphere MQ에서 메시지를 받고 콘솔에서 그 메시지를 출력 할 수 있는지 예를 보여줄 수 있습니까? 도와 주셔서 대단히 감사합니다.

해결법

  1. ==============================

    1.다음은 websphere MQ 용 Spring MDP / Activation Spec을 사용하는 작업 샘플입니다.

    다음은 websphere MQ 용 Spring MDP / Activation Spec을 사용하는 작업 샘플입니다.

    mdp-listener.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"      
        "http://www.springframework.org/dtd/spring-beans.dtd">
    
    
         <bean id="messageListener" class="com.rohid.samples.SpringMdp" />  
    
         <bean class="org.springframework.jms.listener.endpoint.JmsMessageEndpointManager">
             <property name="activationSpec">
               <bean class="com.ibm.mq.connector.inbound.ActivationSpecImpl">
                   <property name="destinationType" value="javax.jms.Queue"/>
                   <property name="destination" value="QUEUE1"/>
                   <property name="hostName" value="A.B.C"/>
                       <property name="queueManager" value="QM_"/>
                   <property name="port" value="1414"/>
                   <property name="channel" value="SYSTEM.ADMIN.SVNNN"/>
                   <property name="transportType" value="CLIENT"/>
                   <property name="userName" value="abc"/>
                   <property name="password" value="jabc"/>
                </bean>
              </property>
              <property name="messageListener" ref="messageListener"/>
              <property name="resourceAdapter" ref="myResourceAdapterBean"/>
        </bean>
    
        <bean id="myResourceAdapterBean" class ="org.springframework.jca.support.ResourceAdapterFactoryBean">
          <property name="resourceAdapter">
            <bean class="com.ibm.mq.connector.ResourceAdapterImpl">
              <property name="maxConnections" value="50"/>
            </bean>
          </property>
          <property name="workManager">
             <bean class="org.springframework.jca.work.SimpleTaskWorkManager"/>
          </property>
         </bean>
    </beans>
    

    을 포함한다.

    <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>/WEB-INF/context/mdp-listener.xml</param-value>
     </context-param>
    
    <listener>
           <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    

    SpringMdp

       package com.rohid.samples;
    
      import javax.jms.JMSException;
      import javax.jms.Message;
      import javax.jms.MessageListener;
      import javax.jms.TextMessage;
    
      public class SpringMdp implements MessageListener {
    
         public void onMessage(Message message) {
            try {
               if(message instanceof TextMessage) {
                  System.out.println(this + " : " + ((TextMessage) message).getText());
               }
    
            } catch (JMSException ex){
               throw new RuntimeException(ex);
            }
         }
      }
    

    '

  2. ==============================

    2.나는 방금 나 자신을 통과했다. 스프링 부트 JMS 스타터로 시작하기

    나는 방금 나 자신을 통과했다. 스프링 부트 JMS 스타터로 시작하기

    MQQueueConnectionFactory를 제공하는 빈 추가하기

    @Configuration
    @EnableJms
    public class MQConfiguration {
        @Bean
        public MQQueueConnectionFactory mqFactory()
        {
            MQQueueConnectionFactory    factory = null;
            try {
                factory     = new MQQueueConnectionFactory();
                factory.setHostName("localhost");
                factory.setPort(1414);
                factory.setQueueManager("QM.LOCAL");
                factory.setChannel("SYSTEM.DEF.SVRCONN");
                factory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
            }
            catch (JMSException e) {
                System.out.println(e);
            }
            return factory;
        }
    }
    

    org.apache.activemq / activemq-broker에 대한 종속성을 제거하여 activemq가 침입하지 않도록하십시오.

    com.ibm.mqjms.jar, com.bim.mq.jmqi.jar, dhbcore.jar에 대한 종속성 추가

    운영

  3. ==============================

    3.이들은 MQ V5.3 용으로 작성되었지만 대부분 여전히 적용됩니다. 변경된 사항은 연결 및 구성보다 WMQ 관리자에 관한 것입니다.

    이들은 MQ V5.3 용으로 작성되었지만 대부분 여전히 적용됩니다. 변경된 사항은 연결 및 구성보다 WMQ 관리자에 관한 것입니다.

    developerWorks : 스프링 시리즈

    Java / JMS 구성의 세부 사항이 다르기 때문에 향후 게시물에 WMQ 서버 및 클라이언트 버전을 포함하십시오. 또한 작업중인 WMQ 클라이언트 또는 서버 버전과 일치하는 설명서 버전을 사용해야합니다.

  4. ==============================

    4.JMS 위에 스프링 통합 (Spring Integration)을 사용할 수도 있습니다. 여기에 ActiveMQ https://github.com/SpringSource/spring-integration-samples/tree/master/basic/jms를 사용하는 샘플이 있습니다. 대신 MQ를 사용하도록 JMS 구성을 변경해야합니다.

    JMS 위에 스프링 통합 (Spring Integration)을 사용할 수도 있습니다. 여기에 ActiveMQ https://github.com/SpringSource/spring-integration-samples/tree/master/basic/jms를 사용하는 샘플이 있습니다. 대신 MQ를 사용하도록 JMS 구성을 변경해야합니다.

    콘솔에서 가져온 샘플 읽기는 JMS를 통해 메시지를 보내고 메시지 구동 어댑터에서 읽은 다음 콘솔에 기록합니다.

  5. from https://stackoverflow.com/questions/14523572/spring-jms-and-websphere-mq by cc-by-sa and MIT license