Deployment 在WebSphere7中将队列绑定到EJB3.0MDB
我正在编写或试图编写WebSphere7上Baby的第一个MDB。我几乎没有头发了,我把头发都拔了出来,想让它工作起来。看起来我已经把所有的事情都安排好了,但是当我把一条消息放到相关的队列中时,我没有得到任何响应 以下是EAR文件设置:Deployment 在WebSphere7中将队列绑定到EJB3.0MDB,deployment,queue,websphere,message-driven-bean,zos,Deployment,Queue,Websphere,Message Driven Bean,Zos,我正在编写或试图编写WebSphere7上Baby的第一个MDB。我几乎没有头发了,我把头发都拔了出来,想让它工作起来。看起来我已经把所有的事情都安排好了,但是当我把一条消息放到相关的队列中时,我没有得到任何响应 以下是EAR文件设置: simplemdb.ear META-INF Manifest.mf application.xml simplemdb.jar META-INF Manifest.mf
simplemdb.ear
META-INF
Manifest.mf
application.xml
simplemdb.jar
META-INF
Manifest.mf
ejb-jar.xml
com
[ classes go here ]
我在ejb-jar.xml中找不到任何用于定义队列JNDI名称的语法,因此我:
- 定义一个WebSphere激活规范。名称SimpleDBActivationSpec、JNDI名称jms/SimpleActivationSpec、目标jms/SimpleDBQueue
- 定义一个WebSphere队列。名称SimpleMDBQueue,JNDI名称jms/SimpleMDBQueue,队列名称SIMPLE.MDB.Queue
- 定义一个MQ队列,名称为SIMPLE.MDB.queue
- 部署EAR文件。在部署期间,我被要求输入绑定信息。我选择激活规范,然后将目标资源JNDI名称和目标JNDI名称分别指向激活规范和队列
编辑:添加了“zos”标签。快速查看一下,看看这里是否有什么可以帮助您的 我已经一年没有玩过这个了,所以我不能马上发表评论,但我想PDF可能会对你有所帮助 嗯
Manglu我发现了问题。它特定于在z/OS上运行的WebSphere。要使激活规范在该环境中完全可用,必须启动控制区域附件(CRA)过程。我告诉他要启动它,回收应用服务器,瞧!我的MDB开始响应 要通过WebSphere管理控制台启动CRA,请转到
- 应用程序服务器>[服务器名称]>通信>消息传递>WebSphere MQ CRA设置
感谢大家的时间和思考空间。我不是MDB专家,但您的actspec、队列和绑定配置步骤看起来很正确,所以我不确定出了什么问题。我将注意到,在检查Google时,ibm-ejb-jar-bnd.xmi用于EJB3之前的版本,而.xml用于EJB3。无论如何,这些文件是在部署步骤中为您创建/填充的,因此您不需要它们。希望对你有帮助…谢谢。据我所知,ibm-ejb-jar-bnd.xmi/xml文件提供了要使用的默认值。我应该能够通过管理控制台动态更改绑定。这样做并不能使应用程序正常工作=(另外,我只是尝试使用侦听器端口而不是激活规范。No go。WebSphere报告说,一切都部署得很好,但MDB仍然不会以任何方式响应放入队列。一项研究发现,如果MDB正确侦听,MQ队列将显示一个(或两个)连接。这也没有发生。啊!谢谢。我试着按照PDF指定,在ibm-ejb-jar.bnd.xml中编写激活规范。这有点帮助,因为它使我不必手动将激活规范与MDB关联。但是对实际的MDB行为没有影响。您好,很高兴看到您的问题得到了解决。我建议您请正确说明是否在z/OS上运行,因为它与其他平台不同。如果您在问题中没有指定windows/Unix,人们会认为它是windows/Unix。