Total Pageviews

Thursday, September 30, 2010

TIBCO RV FAQ'S

RV

What is Rendezvous

It is a framework/mechanism to integrate different applications running on distributed network on heterogeneous platforms.

What Rendezvous does?

This is Proprietary to TIBCO, and all TIBCO applications like Admin, Hawk, BW and other apps will communicate using Rendezvous, which is using Network UDP protocol. When a machine is being added to TIBCO domain, it creates two RVD files, one will be used to do the services (deploy,manage) etc and another will be used to get the status.

Domain and machine are communicating to each other using RVD, most of the cases end machines in domain are being part of same subnet, what if a machine is being part of different subnets? there are two solutions.
1. Multi casting
2. RVRD

Explain Transport

It is software mechanism for sending and delivering messages.

protocol used by rv.

UDP(Universal Datagram Protocal)

What is difference between synchronous and asynchronous communication

Synchronous communication is time driven and asynchronous is event driven. Synchronous communication expects reply or acknowledgement back and in asynchronous communication doesn’t expect any results of its communication right away. In messaging perspective request/reply messaging is synchronous communication and publish/subscribe is asynchronous communication.

What is the functionality of RV daemon

It’s a background process; RV enabled programs (programs which use RV api) depend on rvd for reliable and efficient network communication.

The rvd completes the pathway between rendezvous program processes across the network. It sends information into the network receives information from the network and filters subject addressed messages.

What are the various parameters in Network component and what do each one indicate

Service, Network and Daemon

Service parameter instructs the rvd to use UDP or PGM services whenever it conveys messages on this transport. Network parameter instructs the rvd to use a particular network for communication.

Daemon parameter indicates to which rvd the program has to connect

Explain Certified messaging – registration process steps and confirmation Process

Certified messaging offers greater certainty of delivery.-even when the processes and their network connections are unstable.

REGISTRATION.DISCOVERY RESGISTRATION.REQUEST REGISTRATION.CERTIFIED Certified delivery agreement) DELIVERY.CONFIRMED DELIVERY.COMPLETE

Difference between Reliable delivery and Certified delivery?

Reliable Delivery:

Ledger: None

Time Limit: Contains outbound messages for 60 seconds

Network Traffic: Minimal

File Storage: No file storage

Certified Delivery:

Ledger: The certified delivery library records outbound messages in a ledger, either within the program process storage, or in file storage.

Time Limit: The certified delivery library retains outbound messages in the ledger until either delivery complete or the time limit (set by the program) expires.

Network Traffic: Additional network overhead to confirm delivery of each certified message.
File Storage: Optional file-based ledgers consume file storage for each message until delivery is complete

(or the time limit expires).

Explain Load balancing in Rendezvous, What are the various parameters

In a producer/subscriber scenario when producer is send messages faster than subscriber can consume, messages will be queued up with consumer and may be lost. To address this situation we can balance the load of the consumer by clones of the consumer program and balancing the load among the consumer instances. This is load balancing.Programs use distributed queues for certified delivery to a group of servers, in order to balance the load among the servers. Parameters Scheduler weight Heartbeat Interval Scheduler Activation Interval

Explain fault tolerance in Rendezvous

Fault Tolerance in a network environment is characterized by rapid recovery from failures such as process termination, hardware failure and network disconnect. Rendezvous provides a mechanism to achieve the fault tolerance among the RV processes.

What is ledger file used in RV for?

CM Transport keeps Ledger file to record information about every unresolved outbound certified message.

How can U establish point-point communication in RV?

Can be established using RPTP protocol over a UDP channel

What will happen when limit of a queue exceeds(how the event objects will be removed from a Queue)?

Sends an advisory QUEUE.LIMIT_EXCEEDED

Queue dispatch calls remove the event objects at the head of a queue, and run its callback function.

Callback function is a program code which responds to events-processing inbound messages.

What are the limit policies of a Queue in RV?

Discard none, discard first, discard last, discard new.

What is the advisory message thrown by RV when the maximum limit of a queue exceeds?

QUEUE.LIMIT_EXCEEDED

Is message loss possible in RV? When is it possible?

Yes, in slow consume and fast producer scenario message lost will be possible.

How many types of advisory messages are there in RV

System Advisory, RVCM Advisory, Fault- tolerance Advisory.

How to handle slow consumers when publisher is publishing rapidly?

Scenario: A producer is producing messages at 100/min and consumer able to process only at the rate of 50/min, what is going to happen to other 50 messages? (Underlying communication is RV reliable)

Use a dispatcher - increase process instances to avoid overflow. Implement load balancing

How can u implement security in RV?

Using SSL Protocol. Can be attained at 3 layers –between rvd and services, in rvd, and between rvrd.

What are the scheduler parameters in DQ?

Weight, Heart beat interval, Activation Interval.

If rvd is down and a program has to send a message, how it sends

Creating a transport object in the program invokes new rvd process.

What is the difference between JMS messaging and RV messaging?

RV messaging is a de-centralizing messaging/JMS centralized messaging

Explain rv messaging, how does it work?

RV messaging provides creating messages in a universal format assign a subject name to the message and publish the message on to the network. Messages will travel over the network and reaches all the nodes in the network. RV provides RV enables subscribers to capture the message of interest and process it.

Explain how do you set up RVCMDQ? And how does it work?

A producer is producing messages at 100/min and consumer able to process only at the rate of 50/min, what is going to happen to other 50 messages? (Underlying communication is RV reliable)
hint ans: slow response advisory is thrown, oldest messages discarded depending on the destination settings.


A process group is on RVCMDQ, can that be made both load-balanced and fault-tolerant?
Hint: no, they are mutually exclusive semantics.

What is the main problem/issue with load balancing as in RVCMDQ? What are possible Scenarios. when this occurs?
Duplication occurs/non-completion of assigned task

1. if the worker is slow, scheduler might re-assign the task to another worker resulting in duplication.

2. Scheduler fails and the new scheduler reassigns incomplete tasks, resulting in duplication.

Also non-completion of tasks can occur if a worker has complete time=0 and has accepted the task never to return.


What is RVRD for? How do we configure and use it?
RVRD is for routing messages published on a subject to machines on another subnet. There has to be one RVRD for each subnet, and an RVRD pair installed one on each subnet.

How do you do load balancing for ADB adapters?

Use RVCMDQ to run more than one instance of an adapter. Also you can specify batch processing of records (batch commit, instead of committing each record individually). Also you can increase thread count (but that going to help only if you increase it from 4-8)

Situations were we use CM?

a) producer needs compulsory ack of the message.

b) consumer cannot compromise on loosing messages.

Situations were we can not use CM?

high data rate b’cos CM occupies most of the band width.

What is rvcache?

The program rvcache stores data from recent messages, indexed by subject name, and automatically sends the cached Data to new listeners. Data stored in rvcache never expires. It remains in the cache until superseded or augmented by data from a new message on the same subject.rvcache stores the data in program memory and in a disk file.

What is rvtransaction?

When a group of messages are sent, even if one message is not delivered, all the messages are rolled back.

RVTX support is deprecated from AE 5.1.

How would you know that a publisher and a subscriber are in cm mode?

Subscriber will be pre-registered with the publisher in a cm mode.

Configuring TIBCO RVRD

RVRD Configuration
Needed only when running primary and secondary administrators across separate subnets. We need to establish 2 RVRD connections for both HAWK and Rendezvous (Infra). So these steps will need to be performed for each.
The standard is to name for router - or -
Example:
C:\tibco\tibrv\bin>rvrd -listen tcp:17474 -logfile rvrd_17474.log -store rvrd_17474.cfg
1. Obtain https and https port

Must view logfile to obtain both https and http port - search for “Http interface” to get the port.
Look in rvrd_NNN.log (where NNN is rendezvous port number - i.e. rvrd_17474.log )
For ex:
Http interface - http://dev1234:57265/
Https interface - https://dev1234:57266/

Must view logfile to obtain HAWK and REPOSITORY ports Look in rvrd_NNN.log
(where NN is HAWK port number - i.e rvrd_17474.log)
Note: look at last time rvrd started, so usually at or near bottom of logfile

2. Create Connection
Using a browser, open up “http://dev1234:57265” http port from logifle <>:

Choose Router
A. Rendezvous
Router name: -
-<18300>
B. Hawk
Router name: -
-<18374>
Click: Add Router

Local Network
A. Rendezvous
Name: (18300)
Service: (18300)
B. Hawk
Name: <> (18374)
Service: (18374)
Click: Add Local Network Interface

Add subjects:
A. Rendezvous
Click: Local Network Name
Subject: Enter Each Subject in Exact order as Primary server
Click: Import/Export

Subject Names are
1. _RVFT.>
2. _RVCM.>
3. _RVCMQ.>
4. _com.tibco.repo.>
5. _FT.>
6. com.tibco.pof.>
7. com.tibco.pof

Neighbor
Click: Neighbor

Local Endpoint
A. Rendezvous
Host:
Port:

B. Hawk
Host:
Port:


Remote Endpoint
A. Rendezvous
Host: (host you are connecting to)
Port:
Router Name: -
A. Hawk
Host: (host you are connecting to)
Port:
Router Name: -
Click: Add Neighbor Interface
All the details should be populated on this screen.

Daemon Parameters
Create user id and password

Connected Neighbors
Check all connected neighbours for appropriate servers, the following information should be corrected for neighbours.

Note: Here the subject name should be com.tibco.repo.> instead of _com.tibco.repo.>
For Hawk (which xxx74) port, please do make sure you are using subject names as "_HAWK.>"


RV transport parameters

Daemon: Daemon is a back end running program infinitely. It is like a Gateway in RV. It tells the program where the RVD is running. It uses 'TCP' protocol and uses tcp:25 (port no.) by default. This needs ip address and port no..
tcp: ip address:port no.
Service: Service tells you through which port the RVD should broadcast the message.

Network: It has 3 parameters. Multicast, Broadcast and Sender address. These should be separated by a Semi-colon.

7 comments:

Anonymous said...

Nice FAQ dude , Just to add
Tibco RVRD (Randezeous Routing Daemon) are simply process owned by middleware/network teams which listens multicast traffic locally and transmit it to another RVRD counter part (another host) using TCP. this remote host than re multicast this traffic to there own network.
So essentially it used to bridge two different regional network e.g. London and Newyork etc.

Thanks
Javin
FIX Protocol tutorial
tibco tutorial

Sudheer Bobbili said...

This is very good stuff from you on TIBCO RV....

If you wish to know on TINCO EMS, find here http://tibcompany.blogspot.com/

Anonymous said...

Hi,
I am using TIBRV to listen to messages coming from a client and reaching a processing app(app1) and i intend to capture the messages so that the time of message entry into the app1 can be noted.That app sends the message again to another app(app2) and that time is recorded from the logs which notes the information transfer between them.

I have a strange problem here in that the time at which tibco records the message entry into app1 is MORE than that of the time the app1 sends to app2,which is absurd!!

Any help is highly appreciated.

Thanks,
Shashank

Unknown said...

The answers for the various frequently asked questions and the answers by the Tibco support will surely help the normal people to understand the process clearly.

Pradeepkm24 said...

This is very good explanation.

Pradeepkm24 said...

Request you to provide some details on TIBCO AE messages as well

Unknown said...

Hi There,
Smokin hot stuff! You’ve trimmed my dim. I feel as bright and fresh as your prolific website and blogs!
I have two bar charts and a table
Fuel Economy per SC (bar chart 1) and Fuel Economy per Driver (Bar chart 2).
The relationship is when one of the bar in Fuel Economy per SC (bar chart 1) is selected, only the data having that variable (selected bar) will be displayed in the Fuel Economy per Driver (Bar chart When you select a bar from Fuel Economy per Driver (Bar chart 2), the data for that field will be displayed in the table.
The Spotfire Server start page provides access to most administrative tasks and diagnostic information on your Spotfire environment.
So, the selection will be Fuel Economy per SC (bar chart 1) ==> Fuel Economy per Driver (Bar chart 2) ==> Table
I have done this using Markers. (Limit data using Markings)
I want the Table to display the data for Fuel Economy per SC(bar chart 1) first when selected any bar, then display the data for Fuel Economy per Driver (Bar chart 2) upon selection of any bar in that graph.
I tried adding the two markers in Limit data using Markings, but it is not working. It is showing the data for Bar Chart 1 but not bar chart 2 ...
How can you add two filters (coming from two bar graphs) on my table?
THANK YOU!! This saved my butt today, I’m immensely grateful.
Thanks a heaps,
John