Akram Ben Aissi [https://community.jboss.org/people/akrambenaissi] created the 
discussion

"Websphere MQ integration with MDB on AS7/EAP6 reloaded"

To view the discussion, visit: https://community.jboss.org/message/737377#737377

--------------------------------------------------------------
Hello all,

A similar subject has been discussed at most in 2 other threads a few months 
ago, and since I am working on a similar subject I would like to try to make 
the situation the clearer possible to incitate my customer to raise tickets on 
the relevant vendors.

So the subject is the integration of Webpshere MQ with MessageDrivenBean on 
JBoss AS7 / EAP6 (Beta2).
Here is the code:
  
@MessageDriven(name = "WebsphereMQMessageDrivenBean", mappedName = 
"mdb/WebsphereMQMessageDrivenBean", activationConfig = {
    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = 
"javax.jms.Queue"),
    @ActivationConfigProperty(propertyName = "messagingType", propertyValue = 
"javax.jms.MessageListener"),
    @ActivationConfigProperty(propertyName = "destination", propertyValue = 
"TEST_QUEUE"),
    @ActivationConfigProperty(propertyName = "queueManager", propertyValue = 
"TEST_QUEUE_MANAGER"),
    @ActivationConfigProperty(propertyName = "hostName", propertyValue = 
"localhost"),
    @ActivationConfigProperty(propertyName = "port", propertyValue = "1416"),
    @ActivationConfigProperty(propertyName = "channel", propertyValue = 
"JBOSS.SVRCONN") })
@ResourceAdapter("wmq.jmsra.rar")
@TransactionManagement(CONTAINER)
@Named
public class WebsphereMQMessageDrivenBean implements MessageListener {


Clearly, the issue is that nobody can't live with the configuration hardcoded. 
And even if setting this configuration in jboss-ejb3.xml (which also works 
perfectly), that leads to change the JAR/EAR/WAR before putting in production, 
which is quite dangerous.

It seems that, in the past several workarounds used to exist (AOP or using 
placeholders in deployment desciptors) that would not work anymore with AS7. 
Anyway, these were workarounds, and a real solution is always better.
As a conclusion of another thread, it seems that this is specific to the used 
resource adapter, which I really want to be sure.

To do so, here are two tracks that I would like to explore:
Is there a way to set the jndi name of the "destination" of an MDB ? Other 
vendors seem to use a property destination-jndi-name in customer descriptor to 
set it. Moreover, MQ also has a parameter useJNDI (default false) to change how 
the "destination" parameter must be interpreted. And this does not seem to have 
effect. According to their doc, if useJNDI is set to true, the "destination" 
parameter is treated as the JNDI name of the destination queue. How can we be 
sure that the JNDI lookup is properly performed (with the correct 
InitialContext)? This does not seem to be the case, because MQ still tries to 
use "hostName" and the other configuration parameters, which are set in the AS 
configuration.


The other track is changing the default Resource Adapter for JMS: This is 
documented in EAP6 official doc, and it works: One can change from hornetq-ra 
to wmq.jmsra.rar which turns mq to the default JMS provider for MDB. And this 
allows to get rid of the @ResoruceAdapter annotation. But, even if a resource 
adapter wmq.jmsra.rar is declared and properly default configured, the JMS 
provider arrives unconfigured to the MDB and needs ActivationConfigProperty to 
work.
Is this the expected behaviour? If yes, that would be nice if the wmq.jmsra.rar 
could be treated as reference accompagned with its configuration instead of the 
name or the rar to load.

I am not sure a solution that would make everybody (or at least me) happy 
exists, so please treat this discussion as a feature request.
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/737377#737377]

Start a new discussion in EJB3 at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2029]

_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to