TIBCO Rendezvous Control and Event Generator User Guide

     Previous  Next    Open TOC in new window  Open Index in new window  View as PDF - New Window  Get Adobe Reader - New Window
Content starts here

TIBCO Rendezvous Event Generator

TIBCO® Rendezvous (a product from TIBCO: www.tibco.com) enables exchange of data across applications running on distributed platforms. TIBCO Rendezvous (TIBCO RV) Event Generator is one of the WebLogic Integration event generators that you can create from the WebLogic Integration Administration Console. The TIBCO RV event generator listens for messages on a subject and raises events to the message broker on receiving the desired message.

Note: The TIBCO RV event generator (EG) is available in BEA Workshop for WebLogic Platform only for licensed users of WebLogic Integration.

Disclaimer

Use of the TIBCO RV control and event generator with BEA WebLogic Integration in no manner confers or grants the right to use TIBCO Rendezvous including "dynamic libraries". In order to use such TIBCO products, the user of the TIBCO RV control and event generator must obtain a valid license from TIBCO. See http://www.tibco.com for information on how to obtain a licensed copy of Rendezvous.

 


Topics Included in This Section

Overview: TIBCO RV Event Generator

Describes the function of the TIBCO RV event generator within WebLogic Integration.

Creating and Using the TIBCO RV Event Generator

Describes how to create an event generator and to use it for receiving messages.

 


Overview: TIBCO RV Event Generator

The TIBCO RV event generator enables WebLogic Integration generate events to message broker channels. The messages are received in most formats supported by Rendezvous, converted to binary and then published to the WebLogic Integration message broker.

Using TIBCO RV event generator, you can receive messages over the base Rendezvous and certified messaging (CM) transports. Certified messages can be received in either single or distributed queues, with support for clustering in the distributed queues processing. Receipt of each message can be acknowledged by implicit or explicit confirmation.

To learn more, see Event Generators in Using the WebLogic Integration Administration Console, which is located at the following URL:

http://download.oracle.com/docs/cd/E13214_01/wli/docs92/adminhelp/evntgen.html

Clusters

TIBCO RV event generators can be deployed on a cluster with load balancing, high availability and failover features. They use distributed queues to support these clustering features. All event generators are automatically deployed on all managed servers from the WebLogic Integration Administration Console.

TIBCO RV event generators on a cluster subscribe to a subject with a single RV daemon machine, a distributed queue option and a distinct CM name entered at the time of event generator creation. Distributed queues work with the concept of scheduler and workers. One of the queues will act as a scheduler and others as workers.A scheduler distributes the messages to workers on a round robin basis, making sure the message is received by one and only one worker. This is also referred to as the "once and only once delivery".

Load balancing

The scheduler node sends messages to the worker nodes on a round robin basis. This is done by checking for pending tasks at individual workers end. Depending on the which worker is relatively free, the scheduler will assign the task. This is termed as load balancing.

High Availability

This implies that at any given instance, a worker and a scheduler node is always available. If a worker node goes down with a managed server, another worker will be available. If a scheduler node goes down with a managed server, a worker will take over the role of the scheduler node.

Failover

This indicates that even if a worker node goes down before acknowledging receipt of message, the scheduler node will re-assign the task to the next available worker node.

Prerequisites to Using the TIBCO RV Event Generator

Before adding the TIBCO RV Event Generator to the WebLogic Platform, perform the following:

  1. Install and configure Rendezvous on your machine.
  2. Deploy the TIBCO RV event generator application file TibRVEG.ear (available in $WL_HOME/integration/lib directory) into the integration domain template.

After successful deployment, you will be able to create event generators from the WebLogic Integration console.

Note: In a cluster environment, deploy the TibRVEG.ear file on the admin server only.

 


Creating and Using the TIBCO RV Event Generator

Perform the following steps to create a TIBCO RV event generator.

  1. Enter the following URL in your html browser:
  2. http://localhost:port/wliconsole 
Replace port with the specific port id, for example 7001.
  1. In the WebLogic Integration Administration Console home page, click Event Generators to display the Event Generators home page.
  2. Click TIBCO RV option in the left frame and select Create New option that appears below it, to create an event generator.
  3. In the Generator Name field, enter a unique name for the new event generator and click Submit.
  4. In the next frame, click Define a New Channel Rule to display a form (see Figure 2-1).
  5. Figure 2-1 Creating a TIBCO RV Event Generator: Channel Rule Definition


    Creating a TIBCO RV Event Generator: Channel Rule Definition

  6. Enter the desired information in the fields; a brief description of each is displayed adjacent to the field. Refer TIBCO Rendezvous documentation for information on Rendezvous transport, event queues and certified messaging parameters.
  7. Note: Select Use Distributed Queues option for the event generator to work on a cluster. Doing this would also make it mandatory to specify a CM name.
  8. Click Submit to effect creation of the channel rule and the event generator.
Note: While creating an event generator, if incorrect Rendezvous related values are entered (like network, daemon and so on), the event generator is created but, a runtime exception error will be displayed.
Note: These Rendezvous properties are not verified at the form submission stage. These values are used only when the application attempts to connect to the specified Rendezvous daemon; hence, the runtime error.

On successful creation of an event generator, a WLI_TIBRV_event-gen.jar file is created in the WebLogic server domain folder. Here, event-gen is the unique name of the event generator as specified in step 4 above. This file connects to the Rendezvous daemon, as specified in the Channel Rule Definition form, and creates a listener on the subject.

Note: Always create a single rule definition for each unique event generator. Whenever an event generator is created with multiple channel rule definitions, only the first channel rule definition is recorded and used.
Explicit Confirmation

Explicit confirmation directs the listener to explicitly confirm delivery of message after publishing to the message broker. To employ the explicit confirmation feature, select the Confirm Message option while defining the rules for an event generator.

If explicit confirmation is selected in the OAM console, the TIBCO RV event generator will confirm the message only on successful completion of the subscribed JPDs.

Notes: Process.java files need to have a synchronous subscription to confirm explicitly.
Note: If any of the subscribed Process.java files throw an exception error, the TIBCO RV event generator will not confirm the message.

Retrieving Messages

Once the event generator has been created, it will start publishing messages on the subscribed subject to the WebLogic Integration message broker channel. Applications subscribed to that channel will receive the messages in raw data format. To retrieve the content of the message, insert a perform node with the following code:

TibrvMsg RecvdMsg = new TibrvMsg(receivedData.byteValue());
Where receivedData is of type com.bea.data.RawData and contains the message published by the TIBCO RV event generator.

In addition, you need to edit the following annotation in the JPD file:

/**
* @jpd:mb-static-subscription channel-name="/Soak/reply/TibcoDataChannel" message-body="{x0}"
*/
to read as follows:

/**
* @jpd:mb-static-subscription channel-name="/Soak/reply/TibcoDataChannel" message-body="{x0}" message-metadata="{x1}"
*/

Important: The parameter used in the annotation also needs to be added to the method definition. For an example, refer to Retrieving Information From a TIBCO RV Event Generator Header.

TIBCO RV Event Generator Header

This section provides the schema of a TIBCO RV event generator header and an example code to retrieve information from the header.

Schema of a TIBCO RV Event Generator Header

<?xml version="1.0"?>
<xs:schema targetNamespace="http://www.bea.com/wli/control/TibHeaders" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.bea.com/wli/control/TibHeaders" elementFormDefault="qualified">
   <xs:element name="TibHeaders">
      <xs:complexType>
         <xs:sequence>
            <xs:element name="ReplySubject" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="SendSubject" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="TibrvTransport" type="Transport" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
      <xs:complexType name="Transport">
         <xs:sequence>
         <xs:element name="Service" type="xs:string" minOccurs="0" maxOccurs="1"/>
         <xs:element name="Network" type="xs:string" minOccurs="0" maxOccurs="1"/>
         <xs:element name="Daemon" type="xs:string" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
      </xs:complexType>
</xs:schema>

Retrieving Information From a TIBCO RV Event Generator Header

Following is a code example for retrieving replySubject from the TIBCO RV event generator header.

/**
* @jpd:mb-static-subscription channel-name="/Soak/reply/TibcoDataChannel" message-body="{x0}" message-metadata="{x1}"
*/
public void subscription(com.bea.data.RawData x0, com.bea.xml.XmlObject x1)
{
   //#START: CODE GENERATED - PROTECTED SECTION - you can safely add code above this comment in this method. #//
   // input transform
   // parameter assignment
   this.recievedBytes = x0;
   this.Header = x1;
   //#END : CODE GENERATED - PROTECTED SECTION - you can safely add code below this comment in this method. #//
   TibHeaders tibHeader=TibHeadersDocument.Factory.newInstance().addNewTibHeaders();
      tibHeader.set(this.Header);
   String replySubject=tibHeader.getReplySubject();
} Tibco

  Back to Top       Previous  Next