Jboss7.x Spring jms侦听器配置-Websphere MQ资源适配器7.5-JBoss EAP 6.2
我在找人帮忙 上下文:Jboss7.x Spring jms侦听器配置-Websphere MQ资源适配器7.5-JBoss EAP 6.2,jboss7.x,ibm-mq,spring-jms,Jboss7.x,Ibm Mq,Spring Jms,我在找人帮忙 上下文: 应用程序配置 JBoss EAP 6.2 WebSphere MQ 7.5资源适配器 弹簧 当前状态: /profile=myapp/subsystem=resource-adapters/resource-adapter=wmq.jmsra.rar/connection-definitions=myappListenerQCF:read-resource(include-defaults=true,recursive=true) { "outcome" =&
- 应用程序配置
- JBoss EAP 6.2
- WebSphere MQ 7.5资源适配器
- 弹簧
/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"}}
}
}
应用程序可以正常发送消息,但除非我们“增加”与消息消耗相关的连接数,否则日志中将弹出一条警告消息:
WARN[org.springframework.jms.listener.DefaultMessageListenerContainer](org.springframework.jms.listener.DefaultMessageListenerContainer#0-28)目标“jms/workflowInputQueue”的jms消息侦听器调用程序安装失败-尝试恢复。原因:MQJCA1018:每个连接只允许一个会话。
研究结果:
经过一些研究,我从以下两个环节确定了根本原因,
并在这里引用
这里呢
问题的根本原因可以概括如下:
对于入站通信,JMS连接池和JMS会话池由WebSphere MQ JCA资源适配器实现
我在找什么:
我以前没有Spring方面的知识,我的任务通常集中在Linux/Unix管理、应用服务器设置和配置上
我想:
- jms监听器(MDP)的示例配置,其中有些指示可以在JBoss中配置什么,哪些不能在spring或其他xml配置中配置,哪些应该配置(激活规范就是一个示例)
- 我可以阅读更多的资料来更好地理解spring配置
- 关于如何在Spring配置中引用资源适配器的一些说明,同时wmq.jmsra.rar资源适配器已上载到JBoss内容存储库中,并分配给与应用程序相同的服务器组
- 一个示例Spring配置(基于xml),带有资源适配器、ActivationSpec、MessageEndpointListener或(jca-?)侦听器容器,可以很好地概述所需的配置
- 可能会解释如何在JBos中定义所有这些配置,并通过jndi查找在spring中引用这些配置
/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"}}
}
}
还值得注意的是,还有另一篇关于堆栈溢出的文章,题为“SpringJMS和WebSphereMQ”,它至少部分地涵盖了这个主题,但完全没有涵盖jboss方面。
我希望能够在jboss级别推送大部分配置,如果可能的话,只需在Spring中查找即可
提前感谢社区能够提供的所有输入刚刚做了一个测试,建议的配置似乎有效(目前只检查了日志,没有做一些负载测试)不过,我不认为它是理想的,因为管理所有的参数都需要在作为Spring的模块加载的属性文件中的许多条目来执行替换,或者JBASS的系统属性也要这样做。我同意