ME feature for Webpshere liberty - websphere-liberty

Is there a separate feature which supports messaging engine on liberty profile or is it one of the jmsclient/server features which would let define ME on liberty.
Any help highly appreciated
Thanks
RD

To run JMS applications you will need the following features: for creating the messaging engine - wasJmsServer-1.0, for MDB - feature jmsMdb-3.1, for JMS Client access - feature wasJmsClient-1.1. Probably the easiest is just to download and install extended package: Liberty Extended Content which provides Web Services, JMS and MongoDB.

Related

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

Client jar file version for IBM MQ7 and MQ8

Our product will support IBM MQ7 and MQ8 based on client requirement. Now, we like to know latest client jar version that we may use for our application?
We would like to use JMS 1.1 specification. I have found following link for MQ 7.5 JAR-
http://www.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.dev.doc/q120070_.htm
Is it sufficient if we use above mentioned client jar to connect MQ 7 and MQ 8 server?
Application will use JRE 1.7 and WAS liberty 8.5.5.9.
If you are using WebSphere Liberty as your application server, then you will need to the MQ JCA Resource Adapter (MQ-RA) to make use of MQ JMS messaging. Liberty (unlike traditional WebSphere Application Server) does not ship a copy of the MQ-RA, but you can download and install one pretty easily and then link to it from within the Liberty server's server.xml configuration file. Here's a link to explain how to do this:
http://www-01.ibm.com/support/docview.wss?uid=swg21633761
Now, Liberty can use a copy of the WebSphere MQ V7.5.0.5 (or later) Resource Adapter, which only supports the JMS 1.1 API, and the Liberty feature you will want to enable with that version is "wmqJmsClient-1.1".
However, I would suggest you consider the latest version of the IBM MQ-RA (at the time of writing this is V9.0.0.0). The MQ V8.0.0.3 and V9 RAs support both the JMS 1.1 "classic" API as well as the newer 2.0 "simplified" API. Therefore you can use the newer MQ-RA levels but your JMS 1.1 application will still work perfectly fine. If using a V8 or V9 IBM MQ-RA, then the Liberty feature to enable to is "wmqJmsClient-2.0".
The V7.5, V8 and V9 MQ Resource Adapters can connect to any MQ queue manager version; the major or maintenance versions between the JMS client and the MQ server do not need to match.
For reference, here are a couple of links I recommend reading over as well:
http://www.ibm.com/support/knowledgecenter/SSFKSJ_9.0.0/com.ibm.mq.dev.doc/q031610_.htm
http://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.wlp.nd.doc/ae/twlp_dep_msg_wmq.html
http://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.wlp.nd.doc/ae/rwlp_restrict.html
I hope this helps!

JMS without any Third Party Messaging

I have few basic douts.
I have developed a JMS application for P-P and the messages are geeting stored in Jboss 7.1 JMS engine. My questions are below.
1.For any JMS application do we need to have any messaging engine like IBM MQ,HornetQ,Active MQ etc
If Yes then we need to configure the MQ to atlk to Appserver Messaging engine.
3.If No, Then we need to have to create a message consumer
JMS is a specification of a messaging interface - and a state model for how messages are handled in transactions.
jms.jar contains pretty much all interfaces - no implementations. Therefore whilst you can write an application against jms.jar you can't actually run it.
You'll need to pick some type of messaging provider. That's appropriate to your requirements.
That's not a discussion for here however keep in mind that they each have possible extensions and functional behavior outside of the specification so if you want to be portable between providers pay close attention to only use specification defined functionality.
Within a JavaEE Application Server there will be a JMS implementation that provides messaging features. Therefore an app here in JBOSS will be a MOM (messaging oridentated middleware) application. If you want the message to be accessed by an application not running in a JavaEE server then that is possible with some providers. There's often a JavaEE client container. Or the messaging engine will have a JavaSE based client that can be used. (WAS thin client client for example).
Remember that with JavaEE servers you are not restricted to a the choice of messaging provider - you can use the JCA interface to directly plug in a external messagin implementation. This might present an easier route if a lot of messaging will be outside the JavaEE server.
EDIT - added JavaEE notes

How to integrate Oracle Advanced Queue with Websphere 7.0

IBM Websphere documentation says that It's possible to use third-party jms providers: http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2Fcom.ibm.websphere.nd.doc%2Finfo%2Fae%2Fae%2Ftmj_instp.html
In oracle folder I've found resource adapter ojms.rar, but how to use it?
Maybe somebody uses WAS7 with AQ?
I haven't used OracleAQ myself, but here are links to the documentation; Since AQ is JCA compliant you may start with Managing messaging with a third-party JCA 1.5-compliant messaging provider. First step of this configuration is installing the resource adapter (ojms.rar).
Also, for sake of completeness, let me add that you may also access AQ using WebSphere Adapters. In this case, you don't configure AQ as JMS provider, but use the IBM suuplied adapter to access AQ, which acts as a client to your AQ and exposes AQ services to your applications in a JCA compliant fashion. You may find more information about this alternative at education assistant for WebSphere Adapter for Oracle E-Business Suite.
I recently tried to integrate Websphere with Oracle AQ and found one solution that works. I have explained how to do it in a Blog. http://itsolutionsarchitect.blogspot.com/
If you are still trying to get this to work, let me know if this helps.
If you're still looking for the answer, follow the steps to install the resource adapter using ojms.rar
Sadly `ojms.rar`` doesn't contain the classes required for installation.
Download mqjra.rar, extract it and take out gjra.jar from the extracted files.
Place gjra.jar inside your <WAS installation directory>\lib
Try to install the Resource adapter with ojms.rar
It'll get installed. Revert if you face issues.

when to use JMS (with websphere inbuilt messaging provider) vs a full fledged MQ product like ActiveMQ

I understand JMS spec allows me to write MDBs. Then I can deploy them on an appserver like websphere or jboss (and they have inbuilt implementation of JMS provider which is Java EE compliant). The question is when to use a full fledged product like IBM WebSphere MQ or ACtiveMQ instead of using App server's inbuilt JMS provider.
This appears to be a good reference to what you are asking, specific to IBM products but can be generalized to using an application server integrated messaging system vs a standalone messaging system - http://www.ibm.com/developerworks/websphere/library/techarticles/1109_wallis/1109_wallis.html
A built in JMS provider, such as WebSphere SI Bus, possibly others, are built for JMS messaging.
WebSphere MQ (MQSeries), ActiveMQ etc. have clients for multiple languages and are built for applications other than Application Server hosted applications to connect to it (C++, Java SE, Python, etc).
Say you want a local messaging server on the same physical server (or network?) as a non JavaEE application, you don't want to install a Java EE App Server, but want a stand alone messaging server instead (WebSphere MQ, Active MQ).
That said, ActiveMQ, for instance, is the messaging system inside Apache Geronimo. So there is overlapping here.
Then there is a whole discussion about management, clustering and security. Java EE messaging systems are pretty much optimized to follow the cluster layout of Java EE. In other deployment scenarios, the clustering might be optimal in other ways, such as cluster for different security zones. Also security models and management tools might be different in stand alone messagaing servers.

Resources