Hi I am new to Tibco RV. After reading the Tibco Rendezvous Concept, I am still confused about the transport parameters: service, network, daemon.
So conceptually there is only one daemon running on each machine. So when using tibrvsend:
tibrvsend -service 2323 -network "someIPAddress" -daemon "myDaemon" MESSAGE
Does it mean I am sending message using port 2323 on my localhost, through daemon myDaemon
(which could be on remote), to network comeIPAddress
?
When using tibrvlisten:
tibrvListen -service 2323 -network "someIPAddress" -daemon "myDaemon"
Does it mean I am listening using any available port, any available daemon on my localhost, to listen the messages from port 2323 of myDaemon
" that published to someIPAddress
network?
Another question is, the book "Tibco RV Concept" mentioned that the same service cannot be bind to two networks. Does it only apply to producer machines (since we don't specify port for listener machine)? So an error will occur if we do:
tibrvsend -service 2323 -network "net1" MESSAGE
and
tibrvsend -service 2323 -network "net2" MESSAGE
at the same time (it should be OK if we do it consecutively, right?)
but for listeners:
tibrvlisten -service 2323 -network "net1"
and
tibrvlisten -service 2323 -network "net2"
should be perfectly fine? (otherwise it means producers need to know each others' port number in order to avoid conflict)
If I have totally messed up with the concepts, can you please explain with examples?
So conceptually there is only one daemon running on each machine
You can have several daemons running on a single machine, but it isn't necessary. You can access several logical buses on a single daemon by varying the service and network parameters.
The daemon is the actual process running on your machine to handle Rendezvous messaging. Your clients will connect to this daemon using the daemon parameter. E.g. the default value tcp:7500
will access a daemon on the local machine on port 7500, whereas a value of tcp:server.domain.com:8000
will access a daemon on a remote machine (server.domain.com) on port 8000.
Example: If you execute tibrvlisten -daemon tcp:8000
you will note that a new process is started on the machine (rvd.exe on Windows, rvd on Unix) listening to port 8000.
The service and network parameters in turn are multicast parameters (see http://en.wikipedia.org/wiki/Multicast). To simplify you can view these as rather abstract values, with two important facets:
Another thing to keep in mind regarding Rendezvous is that multicast messages are received by all machines on the same subnet. If you need to send messages to other subnets, you should consider using Rendezvous Routing Daemons (RVRD).