Spring jms监听器配置 - Websphere MQ资源适配器7.5 - JBoss EAP 6.2

时间:2014-07-22 14:13:41

标签: jboss7.x ibm-mq spring-jms

我正在寻求帮助。

背景:

  • 应用程序配置,
  • JBoss EAP 6.2,
  • WebSphere MQ 7.5资源适配器,
  • 弹簧

当前状态:

应用程序设法发送消息就好了,但除非我们"提升"与消息消耗相关的连接数,我们在日志中弹出一条警告消息:

WARN [org.springframework.jms.listener.DefaultMessageListenerContainer] (org.springframework.jms.listener.DefaultMessageListenerContainer#0-28) Setup of JMS message listener invoker failed for destination 'jms/workflowInputQueue' - trying to recover. Cause: MQJCA1018: Only one session per connection is allowed.

研究结果:

经过一番研究,我从以下2个链接中找出了根本原因, 并在此处引用Removal of internal Connection Pooling for WebSphere MQ Classes 在这里IBM MQ - Configuring the resource adapter for inbound communication

问题的根本原因可以归结为quote

  

对于入站通信,JMS连接池和JMS会话池由WebSphere MQ JCA资源适配器实现。

我在寻找什么: 我之前没有Spring知识,我的任务通常集中在Linux / Unix管理,Application Server设置和配置上。

我想:

  • jms侦听器(MDP)的示例配置,其中包含可以在JBoss中配置的内容的一些指示,以及在spring或其他xml配置中不能和应该配置的内容(激活规范是一个示例
  • 我可以阅读的其他资料来更好地了解弹簧配置
  • 有关如何在Spring配置中引用资源适配器的一些说明,而wmq.jmsra.rar资源适配器已上载到JBoss Content Repository中,并分配给与应用程序相同的服务器组。

解决方案的理想形式:

  • 示例Spring配置(基于xml),带有资源适配器,ActivationSpec,MessageEndpointListener或(jca - ?)侦听器容器,可以很好地概述必要的配置
  • 可能解释如何在JBos中定义所有这些配置,并在春季通过jndi查找引用它。

我已经通过JBoss社区论坛提出了这个问题,但没有得到很多反馈

当前有问题的配置:

/profile=myapp/subsystem=resource-adapters/resource-adapter=wmq.jmsra.rar/connection-definitions=myappListenerQCF:read-resource(include-defaults=true,recursive=true)
{
    "outcome" => "success",
    "result" => {
        "allocation-retry" => undefined,
        "allocation-retry-wait-millis" => undefined,
        "background-validation" => false,
        "background-validation-millis" => undefined,
        "blocking-timeout-wait-millis" => undefined,
        "class-name" => "com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl",
        "enabled" => true,
        "flush-strategy" => "FailingConnectionOnly",
        "idle-timeout-minutes" => undefined,
        "interleaving" => false,
        "jndi-name" => "java:/jms/myappListenerQCF",
        "max-pool-size" => "100",
        "min-pool-size" => "100",
        "no-recovery" => false,
        "no-tx-separate-pool" => false,
        "pad-xid" => false,
        "pool-prefill" => "true",
        "pool-use-strict-min" => "true",
        "recovery-password" => undefined,
        "recovery-plugin-class-name" => undefined,
        "recovery-plugin-properties" => undefined,
        "recovery-security-domain" => "wsmq_security",
        "recovery-username" => undefined,
        "same-rm-override" => undefined,
        "security-application" => false,
        "security-domain" => "wsmq_security",
        "security-domain-and-application" => undefined,
        "use-ccm" => true,
        "use-fast-fail" => false,
        "use-java-context" => true,
        "use-try-lock" => undefined,
        "wrap-xa-resource" => true,
        "xa-resource-timeout" => undefined,
        "config-properties" => {
            "hostName" => {"value" => "mqserverhostname"},
            "port" => {"value" => "1520"},
            "channel" => {"value" => "channelname"},
            "transportType" => {"value" => "CLIENT"},
            "queueManager" => {"value" => "qmname"}
        }
    }
}
/profile=myapp/subsystem=resource-adapters/resource-adapter=wmq.jmsra.rar/admin-objects=workflowInputQueue:read-resource(include-defaults=true,recursive=true)
{
    "outcome" => "success",
    "result" => {
        "class-name" => "com.ibm.mq.connector.outbound.MQQueueProxy",
        "enabled" => true,
        "jndi-name" => "java:/jms/workflowInputQueue",
        "use-java-context" => true,
        "config-properties" => {"baseQueueName" => {"value" => "QUEUE.IN"}}
    }
}

另外值得注意的是,Stack Overflow上还有另一篇文章名为" Spring JMS和WebSphere MQ",它至少部分涵盖了主题,但并未涵盖jboss方面。 我倾向于能够在jboss级别推送大部分配置,如果可能的话,只需在Spring中查找。

提前感谢社区提供的所有输入

0 个答案:

没有答案