Configuring SAF ( Store and Forward ) between two Weblogic Server Domains

Create two Domains –
SAFSource         localhost 7001
SAFDestination    localhost 7003
Source Side Configuration
1. Create a persistent Store
2. Create a JMS Server and target it to Admin Server

3. Create a JMS System Module, target it to Admin Server and add Resources to it.

4. Create a connection factory within the JMS Module targetted to the Admin Server

5. Create Remote SAF Context in the JMS Module

6. Create SAF Imported Destination in Jms Module.
7. Create a Queue in SAF Imported Destination
8. Create a Store and Forward Agent and have the agent type as Both. Target it to the Admin Server.
9. Activate the changes!
Destination side Configurations
1. Create a FileStore and target it to the Admin Server
2. Create a JMS Server and target it to the Admin Server
3. Create a JMS Module
4. Add resources to the system module
5. Create a Connection Factory and Target it to the Admin Server
6. Create a Queue with the same JNDI Name provided in the Remote JNDI Name of the SAFQueue.
In the example I have used rsafq
7. Create a sub deployment.

8. Activate the changes

Edit the QueueSend and QueueReceive receive program present in the WL_HOME\samples\server\examples\src\examples\jms\queue folder to send messgaes to the SAFQueue.

Check the JNDI of the server to the the JNDI Name of the SAF Queue, also modify the JNDI name for the connection factories and the Queue in the  QueueSend and QueueReceive Programs.

2 comments

  1. Hi Wonders team,
    I done the configuration as shown on above, but while running QueueSend and QueueReceive i am getting the below error in command promt…
    _____________________________________________________
    D:\bea\user_projects\domains\openDS\JMS>java QueueSend t3://localhost:7001
    Exception in thread “main” java.lang.NoClassDefFoundError: QueueSend (wrong name
    : examples/jms/queue/QueueSend)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
    4)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    ____________________________________________________

    Please help me ..
    Regards,
    Giri babu

    1. Hi Giri,

      You classpath is not set.
      Run the setWLSEnv.cmd in the command prompt and then add the current directory to ur classpath, this should solve!

      set classpath=%classpath%;.;

      Thanks,
      Faisal

Leave a Reply