Qpid JMS Options for CloudBees? - jms

I know that CloudBees don't provide a Message Queue service. In my Java EE app, I have use RabbitMQ as a Broker, Qpid JMS as client. It doesn't work due to:
[#|2013-11-09T20:21:45.203+0000|INFO|glassfish 4.0|org.jboss.weld.ClassLoading|_ThreadID=39;_ThreadName=AutoDeployer;_TimeMillis=1384028505203;_LevelValue=800;|
WELD-000119 Not generating any bean definitions from javaeetutorial.websimplemessage.SenderBean because of underlying class loading error: Type javax.jms.Message not found. If this is unexpected, enable DEBUG logging to see the full error.|#]
Do you have any solution make it work in CloudBees. Does CloudBees support Qpid?
Thank you in advance.
Leon

as container is a javaEE Web profile one, you have to provide JMS api jar in your war.

If I am not wrong a technology partner of Cloudbees provides MQ(Rabbit) -> CloudAMQP (http://www.cloudbees.com/platform-service-cloudamqp.cb)

Related

Spring integration : control ActiveMQ connection

I am looking for controlling ActiveMQ connections after starting of application in cluster environment if I want to disconnect some slave machine through code.
Any help around this will be really appreciable.
I don't believe Spring has any direct integration with ActiveMQ. Spring offers JMS integration which, of course, uses the generic JMS API which every JMS provider implements.
To manage ActiveMQ from a remote application will you need to use something like JMX.

How to write test cases for IBM MQ using Embedded MQ?

I am new to IBM MQ and don't have any background. I have followed the below link for code development.
https://developer.ibm.com/components/ibm-mq/tutorials/mq-jms-application-development-with-spring-boot/
I am trying to figure out how to write/test IBM MQ using an embedded MQ server (For eg: Embedded Kafka), but unable to identify the solution. Can anyone help me with the following queries,
Do we have any Embedded MQ server support which can be used to test IBM MQ with Spring Boot application?
If yes, Can you please share some examples of how to test it.
Try the documentation at this git hub repo - https://github.com/ibm-messaging/mq-jms-spring
Extract from the readme:
IBM MQ JMS Spring Components
This repository contains code to help to provide Spring developers
with easy configuration of the IBM MQ JMS package.
The library contains:
mq-jms-spring-boot-starter for Spring Boot 2 applications

How to bridge between IBM MQSeries and ActiveMQ Artemis 7.x?

Has anyone succeeded in creating a bridge between IBM MQSeries (MQS) and ActiveMQ Artemis 7.x (AMQ 7) so that the later can send messages to and receive from the first? Currently I have no problem bridging between MQS 7.5 and AMQ 6.3 by deploying a camel route and MQS libraries on the broker itself. However, the same way doesn't work anymore as each route deployment requires a broker reconfiguration and restart.
Thanks in advance for any feedback.
A few examples ship with ActiveMQ Artemis which might be helpful:
The "inter-broker-bridge" example in the examples/features/sub-modules/ directory. This example demonstrates how to deploy an instance of org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl to the broker using Spring in a web application.
The "camel" example in the examples/features/standard/ directory. This example demonstrates how to deploy a Camel route to the broker using Spring in a web application.
I can't speak to whether or not either of these can be updated at runtime as I've not actually attempted that. Both of these options should be able to move messages in either direction (i.e. from Artemis to MQS or from MQS to Artemis).
Another option would simply be to run Camel standalone and deploy your routes there. This would give you more flexibility as it would allow you to specifically choose the hardware where the routes run as well as how many resources the Camel JVM consumes. Running Camel routes directly on the broker, while convenient, isn't a great fit because the broker is a broker and not an application server.
To be clear, ActiveMQ Artemis and IBM MQSeries are not directly compatible with each other and are not expected to be. This true for most (if not all) JMS broker implementations. The role of components like the ActiveMQ Artemis JMS bridge and integration platforms like Camel are to solve the compatibility problem by using a common API to speak to both brokers - JMS in this case. Any broker which implements JMS can be integrated using these methods.

Mule application configured with ActiveMQ to be deployed in cloudhub

I have integrated JMS using ActiveMQ in one of my Mule application. I want to deploy it in cloudhub.
Could you please help me for the following queries:
For deploying the application with ActiveMQ configured JMS does it required anything groundwork to be done before deployment? (such as ActiveMQ is to be installed and configured for my CH account?)
For time being I have configured the ActiveMQ which is already installed in OnPremise server and is being used from cloudHub deployed application. Is it a proper or standard way to use externally installed ActiveMQ?
Appreciate the quick and best answer for the above queries.
Thank you,
Best Regards,
Krishna.
you have already installed MQ service on your server side, you can use those credentials to configure your mule MQ adapter through mule properties file same as like you are using with local runtime
e.g.
mq.host=
mq.port=
mq.vhost=
mq.username=
mq.password=
CloudHub will connect to your on premise MQ service. Your approach is correct and no any MQ specific groundwork required.

WSO2 ESB MessageStore & MessageProcessor support for RabbitMQ?

I have tested AMQP Transport implementation for RabbitMQ (v3.3.5) from WSO2 ESB (v4.8.1) Proxies with a few minor issues, now everything works fine. For this, I followed this blog post (from 2013/03/26).
Now, I would like to try with WSO2 MessageStore & MessageProcessor with RabbitMQ, because I think this is the best approach to follow, but seems that is not any implementation for RabbitMQ and WSO2's Documentation Portal says nothing of how to implement it.
I know that RabbitMQ (v3.3.5) do not implement JMS1.1 and AMQP1.0 by default, It does need extra plugins. Then, What do I need to follow to implement MS/MP correctly?.
I have started reviewing the source code of the current implementation of org.apache.synapse.message.store.impl.jms.JmsStore and org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor, but I need more guidance.
Someone has implement custom MessageStore/MessageProcessor?, Could you share your experience?.
Regards.
After digging in existing WSO2 JMS MessageStore implementation, I have created a new JMS-AMQP MessageStore for RabbitMQ. Using WSO2 MessageStore I can manage DeadLetter Channel and GuaranteedDelivery Patterns from WSO2 ESB.
The steps followed were:
1) To solve incompatibility issues between AMQP 0.9.1 implementation of RabbitMQ and JMS 1.1.
Right now does not exist any lib to connect to AMQP Broker using JMS, except the Apache Qpid client (0.30). It was a great help.
2) Improve existing code of WSO2 JMS MessageStore.
I added a new second JMS Destination, the first one was to consume and the another one was to produce messages. In this manner I got to connect to RabbitMQ using pre-configured Exchanges, Routing Keys and Queues.
I hope that is useful.
Regards.

Resources