Tibrv.open()
Method
Declaration
static voidopen
() throws TibrvException
static voidopen
(int implementation) throws TibrvExceptionstatic void
open
(String pathname) throws
TibrvException
Purpose
Start Rendezvous internal machinery.
Remarks
This call creates the internal machinery that Rendezvous software requires for its operation:
• | Internal data structures. |
• | Default event queue. |
• | Intra-process transport. |
• | Event driver. |
Until the first call to Tibrv.open() creates the internal machinery, all events, transports, queues and queue groups are unusable. Messages and their methods do not depend on the internal machinery.
Parameter |
Description |
|
Open Rendezvous using this implementation. Choose a value from among the constants Tibrv.IMPL_NATIVE, Tibrv.IMPL_JAVA, and Tibrv.IMPL_SELECT. See Implementations. |
|
Programs that use IPM can supply a filepath name, which explicitly specifies a configuration file. IPM reads parameter values from that file. For details, see Configuring IPM in .When IPM is not available, this version of the method throws an exception with error status. |
Method Forms
With no argument, open using Tibrv.IMPL_SELECT. To determine the actual implementation, use Tibrv.isNativeImpl().
With an implementation
argument, open using the specified implementation.
Implementations
These constants denote the implementation choices.
Constant |
Description |
Open TIBCO Rendezvous machinery using the implementation in the JNI library, if possible; otherwise, throw a TibrvException with one of these status codes: TibrvStatus.VERSION_MISMATCH, TibrvStatus.WRONG_JAVA_ARCHIVE, TibrvStatus.LIBRARY_NOT_FOUND, TibrvStatus.LIBRARY_NOT_LOADED. An exception could indicate an incorrect value of the |
|
Open TIBCO Rendezvous machinery using the pure Java implementation. |
|
Open TIBCO Rendezvous machinery using JNI library if possible; otherwise, use the Java implementation. |
Reference Count
A reference count protects against interactions between programs and third-party packages that call Tibrv.open() and Tibrv.close(). Each call to Tibrv.open() increments an internal counter; each call to Tibrv.close() decrements that counter. A call to Tibrv.open() actually creates internal machinery only when the reference counter is zero; subsequent calls merely increment the counter, but do not duplicate the machinery. A call to Tibrv.close() actually destroys the internal machinery only when the call decrements the counter to zero; other calls merely decrement the counter. In each program, the number of calls to Tibrv.open() and Tibrv.close() must match.