In this
chapter I will be giving a basic idea about JMS bridge creation and
configuration.
What is a JMS
bridge and why JMS bridge?
JMS bridge
enables you to connect between to Messaging server.
The main
advantage of bridge over SAF(Store and Forward which is a WebLogic implemented
Messaging Implementation) is that its server independent.
That is you
can have the JMS bridge configured to connect between, WebLogic and MQ or
Weblogic and JBoss etc. Although SAF can used to connect between two WebLogic
servers.
HOW JMS
BRIDGE CONFIGURED AND HOW IT IS ABLE TO CONNECT TO OTHER MESSAGING SERVER.
Configuring a
JMS bridge is very easy, provided you have proper destination.
In a JMS
bridge mainly two connections are made,
1) To the
Source
2) To the
Destination.
We can make
the connection XA or non-XA, depending on the requirement and respective
resource adaptor with respect to weblogic will be installed.
There are two
types of adaptor
jms-xa-adp.rar :--or which the jndi name will be
"eis.jms.WLSConnectionFactoryJNDIXA"
jms-notran-adp.rar
:--- for which the jndi name will be
"eis.jms.WLSConnectionFactoryJNDINoTX"
Below are the
steps for creating the JMS bridge
When you
click Bridge from the Admin console you willget below menu
As the above
picture shows a Bridge needs a Name, Source Bridge Destination and Target
Bridge Destination.
Source bridge
destination is from where the messages are picked up and target bridge
destination is where the messages are posted to.
**One main feature of bridge is that
the communication is uni-directional, i.e. On a single bridge you can’t have
source bridge to receive messages from a target bridge.
If you want bi-directional
communication you need to configure 2 bridges.(One for sending and other for
receiving).
This is the main difference between
SAF and Bridge as in SAF you can send and receive messages with one SAF agent.
Now let’s
start the configuration.
When you try
the create a JMS bridge below screen will appear.
Where you
need to give a bridge name and Quality of Service(QOS).
QOS will
determine service quality of messaging bridge.
When you are
using XA transaction’s, it is always recommended to use Exactly once, which
will envelops a received message and sends it within a user transaction (XA/JTA).
When you use
Exactly_once mode then it ensures that the message is send only once and will
rollback if there is any issue occurs during the message flow. This ensures
that message will reach if the client is up and will roll back if there is any
issue. Either way the message is secure are can’t be lost.
The other two
QOS state are Atmost-once and Duplicate-okay. These are mainly recommended for
non-XA messages.
Atmost-once
:- the resource adapter uses the AUTO_ACKNOWLEDGE mode(It
will be send only once and doesn’t wait for the receiver to send a acknowledgement,
which can cause message lost)
Duplicate-okay
:- uses CLIENT_ACKNOWLEDGE(where
there is a chance of having duplicate messages).
When you
click next you see below page where you need to configure/select(if its already
there) the Source Destination.
When I click “New
Destination” I will get below page.
In the above
page you need to add “connection url” ,”connection factory JNDI Name” and “Destination
JNDI Name”
Example
values
Connection_url
:- t3://localhost:7001
Connection factory
jndi :- cf
Destination
jndi :- “jndi configured for Queue or Topic”
The first
column is the name of the Source bridge(which you give user specific if needed )
and second is the JNDI adaptor name.
As I
mentioned in the beginning you can choose two adaptors, XA or non-XA
Similar for
Destination
That's it with the Bridge Creation.
Now if you click bridge --> Monitoring
you will be able to see the state of both Source and Destination Bridge.
Ideally if all lookup and configuration
is correct the you will be seeing "Forwarding Messages".
If you start the bridge from the admin
console, can will be seeing "Started by Administrator"
As we all know this will not work at when
you are trying first time. So below are the main issue you could encounter.
1) Failed to connect to Source
2) Failed to connect to Destination.
If you see any above error in the
"Monitoring tab" of Bridge, then the message flow will not work.
The main reason for the above issue will
be the parameter that you have given in anyone of the below
“connection url” ,”connection factory
JNDI Name” or “Destination JNDI Name”
Make sure you have given the connection
url in the below format
“t3://localhost:7001”.
If you want to connect to multiple IP’s
then you can give the url like below
“t3://<First IP Address>:<Port>,<Second
IP Address>,<Port>
Also make sure the jndi names of
connection factory and Queue or Topic, which you provided in the source and
destination are correct.
It’s always recommended to restart the
servers if you have changed any above parameters, so that binding will be
refreshed.
In the logs if you see any exception with
is mentioning “eis.jms.WLSConnectionFactoryJNDIXA"
or "eis.jms.WLSConnectionFactoryJNDINoTX" then it will be a
problem with the adaptor.
Whenever you configure a XA
or non-XA bridge to a server or a cluster of servers a file called jms-xa-adp.rar (for XA) or jms-notran-adp.rar(for non-XA)
will be deployed automatically.
Make sure the files are in
Active state in the “Deployment tab” at the Admin Console and its targeted to correct servers where
the bridge resides.
No comments:
Post a Comment