Showing posts with label JMS. Show all posts
Showing posts with label JMS. Show all posts

13 February 2018

SAF agent in Weblogic

Store and Forward mechanism of JMS between Weblogic domains only

Key components include:
SAF agent with:
JMS Module with resources:
SAF Error Handling
SAF Remote Context (when setting this resource we don't need to give remote domain credentials if we have already established trust between the two)
SAF Imported Destinations

In case of any issue, troubleshooting will include:
trust issue between domains: "serverIdentity failed Validation. Downgrading to Anonymous"
Firewalls: make sure necessary ports are open to communicate, checking by telnet
Patch Level: SAF will not support sending messages to downgraded level of WLS
JMS resources not targeted properly

Debug Logs for SAF:

Sending side:
DebugSAFSendingAgent
DebugJMSSAF
DebugSAFMessagePath
DebugSAFManager
Receieving side:
DebugJMSSAF
DebugSAFReceivingAgent
DebugSAFVerbose
if no receving SAF then:
DebugJMSBackEnd
DebugJMSFrontEnd
DebugJMSMessagePath

"change log serverity to debug on both sides & disable all existing debugs"

SAF or Bridge
Advantages over Bridge
– SAF is faster and more scalable b/w WLS-WLS connectivity.
– clusterable.
– Bridges still supported and useful for non-WLS connectivity or pre-WLS10.0 destinations.
Disadvantage (When not to use the SAF service)
– SAF can’t be used with other products like Jboss, Glassfish, IBM MQ server, etc., for sending the messages.
– Forwarding messages to prior releases of WebLogic Server. (no backward compatibility)
– When using temporary destinations with the JMSReplyTo field to return a response to a request.

Thus I do not encourage to use SAF over Bridges, rather I discourage using SAF over Bridge due to its buggy behaviour and its restricted behaviour since you cannot integrate it with other messaging technologies but bridges will allow you to do so.

For more reason’s to avoid SAF agent within FMW please look onto Oracle Blog

--
Punit





14 December 2017

Study JMS Bridge with its quick setup in webLogic domain..

It is a forwarding mechanism between any two messaging products. ie between two JMS's of weblogic or between Weblogic JMS and other messaging product.
Basically this messaging bridge consist of two destinations( Source & target) that are being bridged.

Here we use “jms-notran-adp” which is the default adapter created for JMS Messaging Bridge with default QOS selected as “Exactly-Once”.

Configure WebLogic domain with the following configuration:
  • One Admin Server
  • One Managed server
  • One JMS server targeted to Admin
  • another targeted to Managed server
Create a JMS Module targeted to the Admin Server.
              Inside this JMS module create below resources.
  • JMS Connection Factory (default targeting)
  • JMS Sub Deployment targeted to JMS server which is targeted to Admin Server
  • JMS Queue targeted to Sub Deployment created in the above step.
Create a JMS Module targeted to the Managed Server.
              Inside this JMS module create the following resources:
  • JMS Connection Factory (default targeting)
  • JMS Sub Deployment targeted to JMS Server which is targeted to Managed Server
  • JMS Queue targeted to JMS Sub Deployment created in above step
Create a JMS Bridge Destination for the Admin Server Queue with the following details.

              For creating a JMS Bridge Destination, 
              click on the left Panel in the console and go to:

                                 Services -> Messaging -> Bridges.
  1. Leave Adapter JNDI default name as is to “eis.jms.WLSConnectionFactoryJNDINoTX”
  2. Intial Context Factory as default to “weblogic.jndi.WLInitialContextFactory”
  3. For Connection URL specify the t3 listen address of the Admin server, e.g., t3://localhost:7001.
  4. For Connection Factory JNDI Name specify the Connection Factory JNDI Name which is part of JMS Module targeted to Admin Server.
  5. For Destination JNDI Name select JMS Queue JNDI name which is part of JMS Module targeted to Admin Server.
  6. Select Destination Type as “Queue”.
Create the JMS Bridge Destination for the Managed Server Queue same as above steps.

                 Below are details.
  1. Leave Adapter JNDI name as is as default to “eis.jms.WLSConnectionFactoryJNDINoTX” 
  2. Initial Context Factory as default to “weblogic.jndi.WLInitialContextFactory”
  3. For Connection URL specify the t3 listen address of the Managed server, e.g. t3://localhost:7002
  4. For Connection Factory JNDI Name specify the Connection Factory JNDI Name which is part of JMS Module targeted to Managed Server
  5. For Destination JNDI Name select JMS Queue JNDI name which is part of JMS Module targeted to Managed Server
  6. Select Destination Type as “Queue”
Now we will configure JMS Messaging Bridge which will pick up the messages from JMS Queue on Managed Server and will forward them to JMS Queue on Admin Server.

 For this we have to select: 
  •  source destination of JMS Bridge as Managed server Queue
  •  & target destination as Admin Server queue.
Now create JMS Messaging Bridge with below details:

            Select “Started” checkbox when creating JMS Bridge

                      For “Existing Source Destination”
  • select the JMS Bridge Destination created for Managed server in above step
  • Leave Messaging Provider as is to default as “WebLogic Server 7.0 or higher”
                      For “Existing Target Destination”
  • select the JMS Bridge Destination created for Admin server in above step
  • Target the Messaging Bridge to Managed server.
  • Once Messaging Bridge is created click on it and select checkbox for “QOS Degradation Allowed” 
  • and save the changes.
After above configuration you will see a “jms-notran-adp” resource adapter deployed on the Managed Server which is used by JMS Messaging Bridge. Restart your Domain Admin and Managed Server after above configuration.

Validating JMS Bridge Configuration:

Once the JMS Bridge Configuration is complete using the above steps and the servers are restarted, login to console to check the JMS Messaging Bridge Status.

From the Administration console, click on JMS Messaging Bridge and go to Monitoring tab.
The state of Bridge should be reported as “Active” and Description as “Forwarding messages.”
This means that the JMS Bridge configuration is successful, up and active in forwarding messages.

In this sample use case, JMS Bridge targeted to Managed server is picking messages from Managed Server JMS Queue and forwarding them to Admin Server JMS Queue.

Br,
Punit