4

springを使用して、 IBM MQ jars構成でJMS アプリケーションを動作させています

正しいキュー情報でうまく機能しますが、間違ったキュー情報を与えると

吊るされている

LOG.info("SENDING MESSAGE");
jmsTemplate.send(this.getDestination(), messageCreator );  //here

メッセージを送信しているというログがあります。

send timeout の jmstemplate のプロパティを見つけることができません。受信タイムアウトのみがあります...

app-context.xml (Spring) のjmstemplate confは次のとおりです。

<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate102">
        <property name="connectionFactory">
            <ref bean="jmsQueueConnectionFactory" />
        </property>
        <property name="destinationResolver">
            <ref bean="jmsDestinationResolver" />
        </property>
        <property name="pubSubDomain">
            <value>false</value>
        </property>
        <property name="receiveTimeout">
            <value>20000</value>

        </property>

およびibm mq conf -

<bean id="mqConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
        <property name="hostName">
            <value>${queue_hostname}</value>
        </property>
        <property name="port">
            <value>${queue_port}</value>
        </property>
        <property name="queueManager">
            <value>${queue_manager}</value>
        </property>
        <property name="channel">
            <value>${queue_channel}</value>
        </property>
        <property name="transportType">
            <value>1</value>
        </property>
    </bean>

自動承認に設定しました

this.jmsTemplate.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);

したがって、メッセージの送信時にタイムアウトを発生させてjmsexceptionをスローする方法を教えてください。

4

3 に答える 3

0

@anshulkatta JmsDestinationAccessor のメソッドを使用して宛先を設定する前に、宛先を検証しないのはなぜですか。検証には resolveDestinationName メソッドを使用します。したがって、アプリケーションは宛先を検証します。それ以外の場合は JMSException がスローされ、適切な検証メッセージをキャッチしてログに記録できます。http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/jms/support/destination/JmsDestinationAccessor.htmlを確認してください

于 2013-08-20T17:49:48.537 に答える