Академический Документы
Профессиональный Документы
Культура Документы
ADAPTERS
What are Adapters?
Adapters are connectors to data sources to catch event changes. Once an Adapter catches
a event change, it publishes the message to a message box using either EMS or RVD
Adapter is a gateway between different applications using messaging channels.
Adapter Components
Each adapter has two main components, an adapter palette and a run-time adapter. In
addition, some adapters include a design-time adapter. The adapter palette and design-
time adapter are used during configuration, and the run-time adapter is used at production
time.
Adapter Palette:
Each adapter includes a palette that is used for configuration. The palette is automatically
loaded into TIBCO Designer during adapter installation and available the next time
Designer is started. The palette enables you to configure adapter specific options, such as
its connection to the vendor application, logging options, and adapter services. During the
design phase, the palette connects to the vendor application and fetches information about
connection options and data schemas. You can then graphically select the appropriate
items. For example, during configuration of a TIBCO Adapter for ActiveDatabase
adapter instance, the palette fetches all pertinent tables in the database. You then choose
the tables that the particular service is to send or receive.
Run-time Adapter :
Once the adapter has been configured using TIBCO Designer, it can be deployed. A
deployed adapter instance is referred to as a run-time adapter. A run-time adapter
operates in a production environment, handling communication between a vendor
application and other applications that are configured for the TIBCO environment.
Design-time Adapter :
Some adapters use a design-time adapter (DTA) to access a vendor application and return
design-time configuration information. The palette is a client of the DTA process. The
DTA connects to the vendor application, fetches data schemas and sends them to the
palette.
Adapter Lifecycle:
The following is an overview of the adapter lifecycle:
1. Install the vendor application to which the adapter connects before installing the
adapter. For many adapters, the adapter and vendor application need not be installed on
the same machine.
2. Adapters depend on other software from TIBCO. Before installing an adapter, the
TIBCO Runtime Agent™ software must be installed on each computer on which the
adapter runs.
3. Create an adapter instance and save it in a project using TIBCO Designer™. A project
contains configuration information required for a run-time adapter to interact with the
vendor application and other applications.
4. Deploy the adapter. An adapter instance is deployed using TIBCO Administrator.
a) Using TIBCO Designer, create an Enterprise Archive (EAR) file, which contains
information about the adapter instances and processes you wish to deploy.
b) Using TIBCO Administrator, upload the EAR, then deploy the adapter on the
machine(s) of your choice. You can set runtime options before deployment.
c) Using TIBCO Administrator, start and stop the adapter.
d) Monitor the adapter using the built-in monitoring tools provided by TIBCO
Administrator.
Adapter Services :
Adapters are responsible for making information from different applications available to
other applications across an enterprise. To do so, an adapter is configured to provide one
or more of the following services:
Publication Service
Subscription Service
Request-Response Service
Request-Response Invocation Service
Publication Service :
An adapter publication service recognizes when business events happen in a vendor
application, and asynchronously sends out the event data in realtime to interested systems
in the TIBCO environment. For example, an adapter can publish an event each time a
new customer account is added to an application. Other applications that receive the
event can then update their records just as the original application did. When an
application receives a request to create a customer record, the application notifies the
adapter about the request and the adapter publishes the event.
User Interface-----------------Application X--------------Adapter -------------- TIBCO
Messaging
Create record Send to adapter Publishing
Subscription Service:
An adapter subscription service asynchronously performs an action such as updating
business objects or invoking native APIs on a vendor application. The adapter service
listens to external business events, which trigger the appropriate action. Referring to the
previous example, an adapter subscription service can listen for customer record creation
events (happening in an application and published to the TIBCO infrastructure) and
update another application.
TIBCO Messaging------------Adapter-----------Application Y Subscribing Update record
Request-Response Service:
In addition to asynchronously publishing and subscribing to events, an adapter can be
used for synchronously retrieving data from or executing transactions within a vendor
application. After the action is performed in the vendor application, the adapter service
sends a response back to the requester with either the results of the action or a
confirmation that the action occurred. This entire process is called request-response, and
it is useful for actions such as adding or deleting business objects.
How can u fine-tune an ADBAdapter? What are the different parameters that can be
used?
a) we can use publish by value or publish by reference for high speed and data type
support like oracle long respectively.
b) Can use polar or alerter for frequent and infrequent data changes respectively.
c) Adb.PollingInterval, _ADB.DUPDECT.adapter_instance_name parameters can be
used to do flow control and avoid duplication respectively.
What are the quality of services we can have in adapter publishing services?
RV: reliable, certified, transactional
What are the wire formats we can have in adapter publishing services?
wire formats:
a) RV: active enterprise message, RV message, XML message.
b)JMS: XML message
What are the objects, which will be created if you configure and save ADB adapter?
Publishing table for source table, Trigger acts as a bridge between source and publishing
table
Explain the internal functioning of ADB publication service?
When we configure ADB publishing service it creates Publishing table for source table,
Trigger acts as a bridge between source and publishing table. Whenever data is being
inserted/updated/deleted from source table, it will be inserted into publishing table by
means of trigger. ADB has another component called polling agent. Polling agent will be
keep looking for new inserts into publishing table and if it finds any then converts the
record in p table into the specified wire format and publishes on specified quality of
service
Can we filter the records from publishing when they get updated in source table? (Data
from all regions are coming into table but I want to publish only New York data)
Yes – By modifying the trigger we can only insert the New York data into publishing
table
Can we limit the number of columns to be published from the source table?
Yes, using the use? field in adapter publishing table tab. just uncheck the columns u dont
want to use.
Can we publish parent and child table information by using single adapter configuration
and how?
Yes, in the adapter publisher table tab create a parent table first by look up and then add
the child table using the add child tab then click on the child table column to specify the
foreign key than to establish a relationship between the primary key of the parent and the
foreign key of the child go to the column in the child table and specify the primary key of
the parent table.
In the subscription service the destination table is created and the child table mapping tab
will have the child table on the left mapped with the parent table on the right.
What is publish by value and publish by reference. Explain the pros and cons.
publish by value: in this type the changes in the source table are reflected in the p_ table
and the data is taken from there. its used when high speed is required. it dose not support
data types like oracle long.
publish by reference: in this type the data is directly taken from the source table where
only the primary key will come from p_ table. it allows data types like oracle long.
loss of changes in the source table can be lost bcos of the waiting time.(this can be
avoided using alerter).
If the reference to Schema changes in "Activity Input" does it through error, how do you
correct it?
Yes, and we have to correct the schema in the way the input expect it.
The adapter supports only text files when it is integrating a file system into the TIBCO
ActiveEnterprise environment. It supports both text and binary files when it is
transferring files between two or more TIBCO Adapter for Files installations.
What are users and user-key columns in Adapter Publisher's Table tab?
While configuring an ADB Publisher:
"Users" column specifies what columns have to be published to the publishing table.
"User-key" is selected means it acts as a primary key. Child tables can be joined to the
Parent tables only using the primary keys. Publish by reference storage mode copies only
the primary key from the source table. If a source table does not have a primary key
column, we can use the user-key to do the same.
In Synchronous mode upon receiving an event, the publication service will allow other
services in the instance only after it completes the processing and publishing of all the
files that match the specified criteria.
In Asynchronous mode the publication service allows other services of the instance to
receive events while it is processing and publishing a file. By default Subscription service
always operates in Asynchronous mode.
If the configuration has more than one service or if the publication service is expected to
process large file sizes or large set of files, setting the publication service in
asynchronous mode is recommended.
Positional file records are used to interpret lines that have well defined field lengths.
These can be identified using line or record length or by using a constant field value ie;
constant line length.
In the second layer, if any DML command fails at any level, the adapter rolls back this
transaction and starts another transaction, inserting into exception tables. If the insert into
exception table transaction fails, the adapter then logs the message to the opaque
exception table.
Rendezvous
Quality of service supported by Rendezvous:
1) Reliable
2) Certified
3) Transactional
JMS
Wire Formats Supported by JMS:
1) XML Message
EMS
What are the different modes of installation in Ems?
a. GUI mode
b. Console mode
c. Silent mode
Regardless whether queues or topics are used, the messages are not sent directly peer-to-
peer. Messages are forwarded to a JMS infrastructure that is composed of one or more
JMS servers. The servers are responsible for providing the quality-of-services to JMS and
responsible for implementing all the components not addressed by JMS Specification.
When determining when to use queues versus topics consider the two fundamental
messaging mechanisms. The first is point-to-point messaging, in which a message is sent
by one publisher (sender) and received by one subscriber (receiver). The second is
publish-subscribe messaging, in which a message is sent by one or more publishers and
received by one or more subscribers. The messaging model as listed below will dictate
when to use a queue or a topic:
I hope you know the definition for Queue which can static, dynamic or temporary.
Static represents physical creation.
Temporary Queue means, created by receiver to submit the response to EMS server or
Sender to get the messages. this life span is immediate, but there is a hidden danger with
these queues, as these might turn into orphan queues (please read other articles). there is a
fix, which will go by 4.4.2 ems version
If you set them to non-exclusive (the default value) and you have more than one
consumer connected to the queue the messages are delivered in a round robin fashion to
balance the load.
dead Queue
In case of any failures in the messages to server, will be added to dead queue, which is
kind of internal system queue, I strongly feel.
For ex: No memory trying to add message to dead queue.
Failure queuing message to add to dead queue
What are the permissions that you can grant to users to access queues?
a. Receive
b. Send
c. Browse
What are the permissions that you can grant to users to access topics?
a. Subscribe
b. Publish
c. Durable
d. Use_durable
Topic
• Reliable Service
• Everyone active gets the message (One message may Consumers)
• Uses Pub / Sub mode to deliver messages
• Non-Blocking
• Load Balancing is not Possible
What are acknowledgement modes and where do you set them and what is the
applicability of each mode?
Ans:The acknowledge mode for incoming messages. Can be one of the following:
• Auto — the message is automatically acknowledged when it is received.
• Client —the message will be acknowledged at a later point by using the Confirm
activity. If the message is not
confirmed before the process instance ends, the message is redelivered and a new process
instance is
created to handle the new incoming message. Ensure that your process definition
confirms the message
when using this acknowledge mode .
• TIBCO EMS Explicit Client Acknowledge — this mode behaves exactly the same as
the Client mode, except the
session is not blocked and one session can handle all incoming messages
• Dups OK — the message is acknowledged automatically when it is received. JMS
provides this mode for lazy
acknowledgement, but TIBCO BusinessWorks acknowledges messages upon receipt.
• Transactional — this mode is used when a transaction that can process JMS messages is
included in the process
definition. The message is acknowledged when the transaction commits.
What is the purpose of JMS Queue receiver activity and Queue sender activity?
Ans: Starts a process when ever a new message comes into the specified queue.
A queue sender activity sends messages into the specified queue.
What are the different levels of load balancing in EMS and how would you do it?
Ans: server level and consumer level
Server: by having multiple servers.
Consumer: by creating consumer instances.
What are the differences between server load balancing & producer/consumer load
balancing?
Point-to-Point : Non-exclusive queues are useful for balancing the load of incoming
messages across multiple receivers.
Programs can use distributed queues for one-of-n certified delivery to a group of servers,
in order to balance the load among the servers.
Rendezvous distributed queue software assigns each task to exactly one of the servers,
while the group of servers and the distribution of tasks remains completely transparent to
the client processes.
EMS Load balancing can be done in only one way on the consumer side, by using
multiple subscribers/receivers to a same topic/queue, and which will be executed in round
robin fashion. If we are connecting two different severs by using "|" symbol is not be load
balancing, Consumers can not switch connections between two servers. By default, we
will implement multiple consumers but we have to consider above mentioned issues in
consumer load balancing.
How a consumer can connect to the new primary EMS server when the running primary
server goes down?
Ans: we can specify multiple URL’S for the client so that if the primary is down the next
URL belonging to back up will be used.
In case of a primary having multiple address we can use multiple URL’S for the same
server so that even the primary in one location is down it can connect to the primary of
another location.
The URL’S are usually comma separated in client config.
How the clients of the primary server access the messages stored by primary server when
it goes down and secondary server becomes primary server?
Ans: clients can be config to be intimated of the failover.
The backup reads the current state of the client from the shared storage
And then connects to the client if there are any undelivered persistent messages.
Scenario: Topic T1, Queue Q1 and Queue Q3 are bridged. A publisher published a
message to Topic T1. But the publisher has no access rights to Q1. How the message will
be traversed?
Ans: Message producers must have access to a destination in order to send messages to
that destination. Messages can only be sent to bridged destinations to which the message
producer has access.
Scenario: A publisher is publishing messages quickly than the consumers are consuming
the messages. How to control this situation.
Ans: we can use flow control to address this situation. The target maximum size for
pending messages is specified so that only that amount of message is stored and any
messages above that will be blocked.
The server blocks the send call and releases only when the storage limit is below the set
value.
The flow control is enabled only if the topic or queue has receivers.
This way the producers are slowed down. And the balance is achieved.
Can we set a limit for the total number of pending messages on Queue or Topic? What is
the parameter for that
Ans: yes, max-bytes for pending messages.
What is fail-safe?
Ans: The Tibco ems provides 2 modes for persistent topic/queue message storing to
external device.
Normal: in this mode the messages stay in a buffer before writing to a storage(disk). So
in case of any failure the messages may be lost.This mode is very efficient in situations
were little loss of data is allowed.
Failsafe: in the fail safe mode the messages are first written to an external storage before
sending so that no messages are lost ever. This is used when no loss of data can be
encouraged.
How many ways we can determine the life span of the message in a queue. What are
they?
Ans: Expiration parameter in queue configuration file.
JMS expiration time in queue sender.
The JMS expiration time in queue sender overrides any value given in config.
What are the basic configuration you would setup if you want to enable your EMS server
for SSl communication
Ans: listen parameter and ssl_server_identity. Optionally private key.
Tell me about bridges. Why do we use them, Syntax to create bridges, use of message
selector
Some applications require the same message to be sent to more than one destination
possibly of different types.
So we use bridges.
What is tibemsd.conf
It is the main configuration file that controls the characteristics of the EMS server.
log_trace
"Log_Trace" writes information to the specified log file based on the trace options
logtrace will be written to log file.
Console_trace
Console Trace will be useful when you start your server in common window, and all logs
will be displayed there, and ofcourse it written to log files also when you configure it.
What are the wild cards that we use in ems?how do they work for queues and topics?
*,>
We can subscribe to wildcard topics, but cant publish to them. Where as in case of queues
we can’t either send /receive.
Suppose, you got an error while accessing a queue, that you don’t have necessary
permissions to access the queue. What might be the solution/reason?
The user that is assigned to the queue and the user used while creating.
How does the secondary server know that the primary server is failed?
Based on heartbeat intervals
3 files (batch) are ready for deployment. out of which only 2 files must be deployed
together
and not deploy the other one. How can we do this using AppManage?
Batch means is it a single ear with multiple process archives, if so, dont pass the thrid
process archive in the config file.
What are the steps to perform Server Side Load Balancing on the local machine?
1. Make a duplicate copy of the “cfgmgmt” Folder and rename it to “cfgmgmt2”
2. Make sure that the Server Name is same in the “tibemsd.conf” file in both the folders.
3. Change the port number in the second folder’s “tibemsd.conf” file (listen = tcp://xxxx)
4. Start both copies of the servers from the command prompt (ex: C:\ ..
\ems\5.1\bin\tibemsd –config
5. “C:\ .. \cfgmgmt\ems\data\tibemsd.conf”)
6. In TIBCO Designer, modify the JMS Connection “Provide URL” to contain both the
servers
( ex: tcp://localhost:7222 | tcp://localhost:7223)
What are the steps to setup Fault Tolerance servers on the local machine?
1. Make a duplicate copy of the “cfgmgmt” Folder and rename it to “cfgmgmt2”
2. Make sure that the “Server” Names and “Listen” ports are not the same in the
“tibemsd.conf” file in both the folders.
3. Change the port number in the “tibemsd.conf” file (i.e ft_active = “listen port of the
other server”) in both the
“cfgmgmt” folders.
4. Start both copies of the servers from the command prompt
(ex: C:\ .. \ems\5.1\bin\tibemsd –config “C:\ .. \cfgmgmt\ems\data\tibemsd.conf”)
What are the steps required to create a Route between two Servers?
1. Make a duplicate copy of the “cfgmgmt” Folder and rename it to “cfgmgmt2”
2. Make sure that the Server Name is NOT the same in the “tibemsd.conf” file in both the
folders.
3. Change the port number in the second folder’s “tibemsd.conf” file (listen = tcp://xxxx)
4. Set the routing property to enabled in the “tibemsd.conf” files in both the folders open
factories.conf under
“cfgmgmt2” and change the settings for GeneralConnectionFactory,
QueueConnectionFactory and
TopicConnectionFactory URL to (tcp://xxxx)
5. Create Route on Server 1 (route “Server2-Name” url=tcp://localhost:xxxx)
6. Create global queue / topics on both servers as required
7. Start both copies of the servers from the command prompt (ex: C:\ ..
\ems\5.1\bin\tibemsd –config
“C:\ .. \cfgmgmt\ems\data\tibemsd.conf”)
8. Test the route by using queue / topic in a BW Process
Here
RV01 is the name of the transport.
type = required parameter which can be set to tibrv or rvcm(for certified messages)
service = UDP port.if absnt the default is 7200
network = IP address.
Daemon = TCP Port.
topic_import_dm = delivery mode for importing the messages and the values can be
TIBEMS_RELIABLE,
TIBEMS_PERSISTENT OR TIBEMS_NONPERSISTENT
3)Destination definitions (in the configuration files topics.conf and queues.conf) can set
the import and export
properties to specify one or more transports.
Key Points:
The transport takes place when the topic name and the RV subject name are same.
For topics:
When a topic specifies import on a connected transport, tibemsd imports messages only
when the topic has registered subscribers.
For queues:
When a queue specifies import on a connected transport, tibemsd immediately begins
importing messages to the queue, even when no receivers exist for the queue.
When a topic and a queue share the same name, at most one of them may set the import
property.
For example, if a topic example.transport and a queue example.transport are both defined,
only one may specify the import property.
TIBCO EMS Multicast - Features
TIBCO EMS is a distributed and reliable architecture, with support for load-balancing,
routing, and fault tolerant configurations that together remove single points of failure.
Features
By using TIBCO's messaging solution, companies have been able to reliably support over
50,000 messages per second and achieve 99.999% uptime.
A distributed message bus with multi-protocol support for Java Message Service (JMS),
TIBCO Rendezvous®, and TIBCO SmartSockets. TIBCO supports many of the leading
open standards, including web services, and provides adapters for third-party applications
and infrastructure including IBM MQSeries. This makes it possible for companies to
reuse their existing investments and focus on delivering new functionality Built-in
monitoring and management capabilities that provide detailed administrative functions
and statistics and support automation through an administrative API or command-line
shell. Companies can also leverage TIBCO's common monitoring and management
framework for top-down, end-to-end distributed monitoring and management of TIBCO
and non-TIBCO products
Multicast – Features
Multicast is a messaging model that allows the EMS server to send messages to multiple
consumers simultaneously by broadcasting them over an existing network.
Features
Multicast is highly scalable
Multicast reduces the amount of bandwidth consumed
Multicast reduces the number of operations performed by the server
Multicast broadcasts the message only once where as in case of publish and subscriber
for each of theconsumer a copy of the message is getting published
Facts
Multicast does not guarantee message delivery
Messages requiring a high degree of reliability should not use multicast
Multicast offers last-hop delivery only; it cannot be used to send messages between
servers.
Multicast should not be used in applications where security is a priority
Fault-Tolerance setup-A(Which deals with configuration of the files for fault tolerance)
Note:The Ems data store should be in SAN or NAS,in actual Production Environment..so
that the datastore is accessible by both primary and back up server
Note:From now we will work in the Backup Folder, open tibemsd.conf file in the folder
Prepend this path to c:\tibco\ems\bin\Backup\ below list in the backup sever tibemsd.conf
users=c:\tibco\ems\bin\Backup\users.conf
groups=c:\tibco\ems\bin\Backup\groups.conf
topics=c:\tibco\ems\bin\Backup\topics.conf
queues=c:\tibco\ems\bin\Backup\queues.conf
acl_list=c:\tibco\ems\bin\Backup\acl.conf
factories=c:\tibco\ems\bin\Backup\factories.conf
routes=c:\tibco\ems\bin\Backup\routes.conf
bridges=c:\tibco\ems\bin\Backup\bridges.conf
transports=c:\tibco\ems\bin\Backup\transports.conf
tibrvcm=c:\tibco\ems\bin\Backup\queues.conf
durables=c:\tibco\ems\bin\Backup\durables.conf
If you observe the tibemsd.conf file in primary server and compare the tibemsd.conf file
in Backup server
The values for some parameters in primary tibemsd.conf file is jfor example
"users=users.conf" where as in backup server tibemsd.conf file we give
"users=c:\tibco\ems\bin\Backup\users.conf".The reason why because while installing the
Ems server ,it sets these values and it knows where to look for the path , so thats the
reason why the full path is not mentioned for various parameters in tibemsd.conf for
primary server
TIBCO RV FAQ'S
RV
What is Rendezvous
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’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 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.
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
Reliable Delivery:
Ledger: None
Certified Delivery:
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.
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
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 will happen when limit of a queue exceeds(how the event objects will be removed
from a Queue)?
Queue dispatch calls remove the event objects at the head of a queue, and run its callback
function.
What is the advisory message thrown by RV when the maximum limit of a queue exceeds?
QUEUE.LIMIT_EXCEEDED
Yes, in slow consume and fast producer scenario message lost will be possible.
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
Using SSL Protocol. Can be attained at 3 layers –between rvd and services, in rvd, and between
rvrd.
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.
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.
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?
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.
How would you know that a publisher and a subscriber are in cm mode?
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
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
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.
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.
TIBCO FAQ'S
TIBCO Fundamentals
1) What is TIBCO?
GUI mode
Console mode
Silent mode
3) What are the Major TIBCO Products?
• TIBCO ActiveMatrix BusinessWorks (UI Design, SOA, BI)
• TIBCO iProcess (BPM)
• TIBCO PortalBuilder (BO)
• TIBCO BusinessConnect (BI)
• TIBCO BusinessEvents (BB)
• TIBCO HAWK (BB)
• TIBCO EMS (BB)
• TIBCO Rendezvous (BB)
4) What are the TIBCO tools required to design, test, deploy and messaging?
• TRA (Platform)
• TIBCO BusinessWorks & TIBCO Designer (Design & Test)
• TIBCO Administrator (Deploy)
• TIBCO EMS & RVD (Messaging)
• TIBCO HAWK (Monitoring)
5) What is the role of TRA?
TRA stands for TIBCO Runtime Agent and it runs in the background on each
machine.
13) What are the steps to create a Master Domain using Domain Utility on the
host machine?
1. Select “Domain Configuration” under “Category” List
2. Select “Create a New Administration Domain” under “Task” list and click on
“Next”
3. Under “Domain Details”, input the “Administration Domain” & “HAWK
Cluster”
4. Uncheck “Domain information is stored in a Database” and “Local
Application data” options
5. Check the “Show Advanced” option
6. Set the “RV Daemon” and “RV Service” and make sure they are the same
ports
7. Similarly set the “HAWK Daemon” and “HAWK Service” and click on next
8. Set the “HTTP Port” and click and next
9. Set the UID & PWD for the Domain and click on “Finish”
14) What are the functions of an Administrator?
• User Management
• Machine Management
• Application Management
• Repository Management
15) What are the uses of grouping activities?
The scope of user defined process variables is only within the process in which it
is defined. It does not even extend to a sub process that is invoked from the
current process.
16) What are the reusable components in a project?
• Sub process
• WSDL Resource
• HTTP Connection
• JDBC Connection
• Schema Definition
17) What are the various types of variables available within activities?
• Process Variable
• Local Variable
• Global Variable
• Error Variable
• Shared Variable
18) What are the monitoring tools available in TIBCO?
• TIBCO HAWK
• TIBCO Business Events
19) What are the messaging tools available in TIBCO?
• TIBCO EMS
• TIBCO Rendezvous
File, JDBC, XML Palette
20) What activities are required to Create, Copy & Delete a File?
“Create File” Activity - The Create File activity creates a new file or directory with
the specified name. When creating a file, you can also provide the file contents.
“Copy File” Activity - The Copy File activity allows you to copy files and directories
to a new location.
“Remove File” Activity - The Remove File activity removes the specified file. This
activity can also remove empty directories. If a directory that is not empty is
specified, an exception is thrown.
21) What activities are required to Read, Write & Rename Files?
“Read File” Activity - The Read File activity is used to read a file and place its
contents into the activity’s output.
“Write File” Activity - The Write File activity writes content to the specified file.
“Rename File” activity - The Rename File activity is used to rename or move files.
This activity can also rename directories, but you cannot use this activity to move a
directory to a new location.
22) What is the use of “Data Format” Activity?
The Data Format resource contains the specification for parsing or rendering a text
string using the Parse Data and Render Data activities. This shared configuration
resource specifies the type of formatting for the text (delimited columns or fixed-
width columns), the column separator for delimited columns, the line separator,
and the fill character and field offsets for fixed-width columns. You must also
specify the data schema to use for parsing or rendering the text.
23) What are the two types of Data Format supported by TIBCO?
• Delimiter separated
• Fixed format
24) What is the use of “Field Offsets” in the Data Format Activity?
When processing “Fixed Format” text, you must specify the line length and the
column offsets. This allows a Parse Data or Render Data activity to determine
where columns and lines begin and end. The Field Offsets tab allows you to
specify the format of fixed-width text.
25) What is the “Parse File” & “Render File” Activity?
“Parse File” Activity – The Parse Data activity takes a text string or input from a file
and processes it, turning it into a schema tree based on the specified Data Format
shared configuration.
“Render File” Activity – The Render Data activity takes an instance of a data
schema and renders it as a text string. The schema processed is based on a
specified Data Format shared configuration.
26) What is the “File Poller” Activity?
The File Poller process starter polls for files or directories with the given name and
starts a process when the specified change (creation, modification, deletion) is
detected.
27) What is the “Wait For Change” Activity used for?
The Wait for File Change activity waits for a file creation, modification, or deletion
event to occur during process execution. When this activity is executed, the
process instance suspends and waits for the specified change to occur before
resuming.
28) Which Activity is used to create a Database table?
SQL Direct
29) Which Activities are used to execute a stored procedure or a statement?
“SQL Direct” is used to execute a database statement ( Create, Alter, Delete etc.)
30) Which activity is used to establish a connection to a database ?
JDBC Connection
31) What are the steps need to establish a database connection?
1. Add “JDBC Connection” from the JDBC Palette to the project
2. Set the “Connection Type” to JDBC
3. Select the “JDBC Driver” form the Drop Down List Box (ex: Oracle)
4. In the “Database URL”, set the “host-name”, “port-number” and “database-
name”
5. Set the Username & Password for the database
6. Test the connection
32) How do you add or retrieve a record form a database?
The Fetch button on the “JDBC Query” activity allows you to synchronize the
activity with the contents of the database. If you do not click the Fetch button
before applying your changes, TIBCO ActiveMatrix BusinessWorks displays an
error dialog prompting you to first fetch the output schema.
34) Can we use JNDI to connect to a database instead of JDBC?
We can used the “JDBC Connection” Activity to use the JNDI Context (in the
“Connection Type” Dropdown box) instead of a JDBC Connect to establish a
database connection
35) Which activity is used to create a XML Schema?
“Schema” form the “XML Tools” palette is used to define the XML Schema
36) What is XML Element & Attribute?
XML Elements XML Elements contain the opening and closing tags, child
elements, and data.
(Ex:
Robert
A+
XML Attribute
An attribute appears within the opening tag of an element. XML requires that all
XML attributes have a value. This means all attributes have to be equal to
something! In the following example active="true" is the attribute.
(Ex:
Robert
A+
)
37) What is the use of “Transform XML” Activity?
The Transform XML activity allows you to transform an input XML document into
the output specified by the given XSLT File shared configuration resource.
Normally, transformation of data occurs by mapping process variables to an
activity’s input and applying XPath expressions to perform any transformation. If
you have an XSLT file that you are using for transformations, or if an outside
source supplies an XSLT file, this activity allows you to use the XSLT file instead
of manually creating the mappings.
38) What is Parse XML activity?
The Parse XML activity takes a binary XML file or an XML string and processes it,
turning it into an XML schema tree based on the XSD or DTD specified. The
preferred way to parse XML files is to use a Read File activity set to binary mode
to read the XML file. Then pass the binary file contents to the Parse XML activity.
39) What is Render XML Activity?
The Render XML activity takes an instance of an XML schema element and
renders it as a stream of bytes containing XML or an XML string. The schema is
processed based on the XSD file specified.
WSDL, SOAP, Service, HTTP Palette
40) What is WSDL?
WSDL stands for Web Services Description Language. A WSDL file is an XML
instance of the XML Schema. A WSDL resource is composed of a series of
definitions that describe the format and roles of messages used in web services.
41) What is the use of WSDL Palette?
The WSDL palette is used for creating, editing, validating, importing, and viewing
WSDL files. These files are shared resources that describe web services. The
WSDL palette’s resources are used to create and reuse abstract definitions,
namely:
• Messages, which describe the data being exchanged
• PortTypes, which define a set of operations
• Operations, which describe the activities supported by the web service
42) What are the two types of WSDL required to create a Web Service?
• Abstract WSDL (Describes Structure & Elements)
• Concrete WSDL (Abstract WSDL with Transport)
43) What are the basic components of a WSDL?
• Message (Contains the request and response of a web service)
• PortType (Logical Folder to organize the web service resources)
• Operation (Services offered by the web service)
44) What are the steps to create an Abstract WSDL?
1. Select WSDL activity from the WSDL palatte
2. Describe the required Messages for the WSDL and the schema mapping for
the Messages
3. Create the Logical Port by adding the “PortType” Activity to the WSDL
4. Add the required “Operations” to the “PortType” Activity.
5. Design the Operation offered by the web service.
45) What are the steps to create a Concrete WSDL?
1. Create the Abstract WSDL
2. Get the XML WSDL from either “SOAP Event Source” or the “Service
WSDL” and save it in a *.wsdl file
3. Import the saved concrete WSDL file into the project
46) What are the two ways to create a web service?
SOAP Event Source
Service Palette
47) What is the advantage of using the Service Palette over the SOAP Event
Source?
Using the SOAP Event Source, you can run only one operation at a time. While
using the Service Palette you can run multiple operations simultaneously
48) What are the steps to create a web service using “SOAP EventSource”?
1. Define XSD
2. Define the HTTP / JMS Connection
3. Create Abstract WSDL from the XSD
4. Define the Process for the web service and replace “Start” Activity with the
“SOAP Event Source” Activity from the SOAP Palette
5. Set the “Port Type” to Abstract WSDL and the Transport to HTTP / JMS
Connection for the “SOAP Event Source”
6. Copy the XML WSDL form the “SOAP Event Source” to create the Concrete
WSDL
7. Complete the design for the web service process
8. Create a Client Process and invoke the web service using the “SOAP
Request Reply” Activty.
9. Set the “Service” Of the “SOAP Request Reply” to point to the Concrete
WSDL.
49) What are the steps to create a web service using Service Palette?
1. Define XSD
2. Define the HTTP / JMS Connection
3. Create Abstract WSDL from the XSD
4. Right Click the Abstract WSDL and select “Tools or Multi-User” > “Generate
Web Service” > “From WSDL”
5. Select the Transport
6. Generate the Concrete WSDL from the “WSDL Source” of the Service
WSDL
7. Define the Logical Operation
8. Create a Client Process and invoke the web service using the “SOAP
Request Reply” Activty.
9. Set the “Service” Of the “SOAP Request Reply” to point to the Concrete
WSDL
50) What is the “Operation” activity in the WSDL Palette used for?
The Operation component describes the message formats for the incoming and
outgoing messages required by the activities supported by the portType. One or
more Operation components can be added to a PortType component selected in
your project.
51) What is the “Retrieve Resource” Activity used for?
The “SOAP Event Source” process starter creates a process instance for incoming
SOAP requests. SOAP is a standard protocol for invoking web services. This
allows you to create a web service using process definitions. Upon retrieval of the
WSDL, the client can perform a SOAP request to invoke the web service.
53) What is the “SOAP Send Reply” activity used for?
The SOAP Send Reply activity sends a reply to an application that sent a SOAP
request. This activity is primarily used in process definitions that implement web
services. When a SOAP Event Source is used as the process starter, the SOAP
Send Reply activity is used to send the reply to the request that starts the process
instance.
54) What is SOAP Fault?
The SOAP Fault element is used to carry error and/or status information within a
SOAP message.
55) What is the difference between "SOAP over JMS" and "SOAP over HTTP"?
The advantage of using “SOAP over JMS” over “SOAP over HTTP” is reliability as
you may use the persistence and acknowledgment features built in the standard.
The same applies if you need to establish asynchronous communication or need
to use the load balancing features provided by JMS servers. You can achieve this
using http but the implementation would be much more complicated.
56) What is the “Context Resource” used for?
The “Context Resource” allows you to specify a schema to hold context data from
an incoming request or outgoing replies to a service. This allows you to pass on
data, such as the username and password sent by the requesting application.
Also, you can pass data from the process that implements an operation back to
the Service for any outgoing reply message. The Context Resource can also be
used to store SOAP headers or message attachments.
57) What is the “Get Context” activity used for?
The Get Context activity retrieves the value of the specified “Context Resource”.
This is useful if your process definition requires some context information from an
incoming request (Like Username & Password etc.).
Messaging
58) What are the Messaging Tools Provided by TIBCO?
• EMS
• Rendezvous
59) What is the difference between EMS & RVD?
EMS
• Uses TCP
• Functions within the IP Layer
• Can be used within the Intranet and the Internet
• Slower than RVD
RVD
• Uses UDP
• Functions within the Network Layer
• Considerably Faster than EMS
• Can be used only within the Intranet (LAN)
60) What are the Messaging Modes?
• P2P (Queue)
• Pub / Sub (Topic)
61) What are the two types of Delivery Modes in Messaging?
• Synchronized
• Asynchronized
62) What are the Services provided by Messaging?
• Reliable (At Least Once)
• Guaranteed (At Most Once)
• Transactional (Only Once)
63) What are files used by TIBCO to maintain the Connection details?
Tibemsd.conf
Queue.conf
Topic.conf
65) What is the maximum size and maximum number of message possible using
TIBCO EMS?
Using purge command, you can delete messages from queues and topics.
73) What is the use of “Durable” option?
Durable option enables persistence for EMS messages by creating Local Inboxes
at the receiver end. The Message will exist as a reference till it is consumed by the
corresponding receivers.
74) What is JMS queue requestor?
The JMS Queue Requestor activity is used to send a request to a JMS queue
name and receive a response back from the JMS client
75) What is JMS topic requestor?
Queue
• Guaranteed Service
• Only the Target gets the message (One message per Consumer)
• Uses Peer-to-Peer Mode to deliver messages
• Blocking
• Load Balancing is possible
Topic
• Reliable Service
• Everyone active gets the message (One message may Consumers)
• Uses Pub / Sub mode to deliver messages
• Non-Blocking
• Load Balancing is not Possible
77) What is the use of secured queues and topics?
Rendezvous (RV) uses 'UDP'. Therefore each message is sent as a packet with a
sequence number and a subject attached. So, RV is also called as "Subject
Based Messaging". Rendezvous Daemon (RVD) converts the message into
packets and publish to the network. At the receiver end, RVD again converts the
packets to the message and sends it to the receiver. This message is stored only
for 60 seconds in the RVD before the message is lost. To avoid this, RV
introduced a concept called
Some applications require the same message to be sent to more than one
destination possibly of different types. So we use bridges.
86) What is the syntax to create Bridges without Message Selector?
In Publish by Value, all the specified columns in the source table are copied into
the Publishing table.
In Publish by reference, only the specified key column values are copied to the
publishing table.
96) What is the difference between JDBC activities and ADB Adapter?
• ADB uses ODBC to connect, JDBC uses JDBC
• ADB is more suitable for instances where you have a lot of processing
• ADB is more suitable for instances where you want that a particular action on
a DB Table triggers a BW process.
• ADB adapter is best for publishing from database.
• For simple inserts and updates then ADB subscriber is best.
• In case of insert or update to database then check if you have complex JDBC
inserts, transaction management and other dynamic queries then JDBC
activities are best.
• JDBC is more suitable for running dynamic code where in runtime you can
execute statements with different values depending on process execution.
97) What are modes of operation for File Adapter in Record Mode?
• Synchronous mode upon receiving an event, the publication service will allow
other services in the instance only after it completes the processing and
publishing of all the files that match the specified criteria.
• In Asynchronous mode the publication service allows other services of the
instance to receive events while it is processing and publishing a file. By
default Subscription service always operates in Asynchronous mode.
98) What are supported SQL Operations in database adapters?
The database adapter supports the following SQL operations for publishing and
subscribing:
• INSERT
• UPDATE
• DELETE
• UPDATE/INSERT (update if row exists, otherwise insert)
99) What are the transport types supported by ADB adapters?
• Rendezvous
• JMS