Total Pageviews

Thursday, September 30, 2010

TIBCO Adapters FAQ'S

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.

What are the different types of adapters?
Technical Adapters (File Adapter, DB Adapter)
Functional Adapters (PeopleSoft Adapter, SAP R3 Adapter)
Custom Adapters

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

Polls on the source data table (base table).
Reads data from the source table.
Sends the data to the message bus.

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

Reads data from the message bus.
Gives the data to the destination table.

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.

Receives requests from other applications.
Parses the requests.
Returns response (Sends only the requested data to the message bus).

Request-Respons Invocation Service:
An adapter request-response invocation service is similar to the request-response service, except that the roles are reversed. The vendor application is now the requester or initiator of the service, instead of the provider of the service. The adapter service acts as a proxy, giving the vendor application the ability to invoke synchronously functionality on an external system.

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).

What are the types of message transfers in file adapters?
record transfer: to integrate file systems to TIBCO AE environment.
simple file transfer: to transfer files to other TIBCO adapters.

What is read schema and write schema in file adapter.
Read schema in the file adapter publisher config is used to define typr of expected input. Here we can use the delimited file tupe or the positional file type.

What is the difference between an ADBAdapter and JDBC palette activities?
• Using ADB we can only pick up the data from one database and put it in onother one.
• But using JDBC we can Query using JDBCQuery and manupulate data using JDBCUpdate. like we can use select statements and insert and update statements to selective query and update.
• ADB adapters might be useful in scenarios where we have large amount of data.

What is the difference between a FileAdapter and File palette activities?
In file activities the file polar cannot handle multi format data and record by record transfer .it takes care of particular format specified and does file transfer.
where as file adapter can handle multiple formats and does record by record transfer.

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.

Where do we specify HTTP Port number?
In HTTP connection in the HTTP activities.

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.
• ADB is an adapter which is used to capture the events and take action, this has pub and sub mechanisms, pub is used to capture the events and publish the messages and sub will be used to upsert the operations.
• Jdbc is a collection of activities that can be used for custom operations
• 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.

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.

What is the diff between tibco adapter and BW component?
Adapters are connectors that use a messaging channel that can be configured over source/target systems which can be used in Pub, Sub or Replyrequest mode. BW components are designer, administrator, bw engine.

What is a synchronous service that an adapter supports?
Of the 4 Adapter services, Request/Response is the only adapter service that is synchronous.

What is Event Driven and Demand Driven?
Event Driven - Push
Demand Driven - Poll.

TIBCO Adapter for ActiveDatabase:
TIBCO Adapter for ActiveDatabase software (the adapter) allows data changes in a database to be sent as they occur to other databases and applications. It extends publish-subscribe and request-response technology to databases, making multiple levels of delivery services available to applications that need access to these databases. ODBC and JDBC compliant databases such as Oracle, Sybase, and Microsoft SQL Server are supported. While the adapter does not run on z/OS and iSeries systems, it can remotely connect to a DB2 database running on these systems. TIBCO Adapter for ActiveDatabase is written using the TIBCO Adapter SDK software, which allows the adapter to interoperate with other TIBCO products. The adapter can communicate with any application that is configured for the TIBCO environment.

What is File Adapter?
TIBCO Adapter for Files software processes data from text files and publishes the contents in real-time to the TIBCO environment. The adapter also listens for messages in the TIBCO environment and writes the contents to a file.

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.

File Adapter Operations Mode?
Selecting an operation mode is the first step in configuring a service. The operation mode determines whether the service will integrate the file system with the TIBCO ActiveEnterprise environment or transfer files between instances of TIBCO Adapter for Files.
In the Record Mode of operation, where the adapter integrates the file system with TIBCO ActiveEnterprise, you will have to define and use schemas.
In the Simple File Transfer Mode of operation, where the adapter transfers files among instances of TIBCO Adapter for Files, you will have to define various options for file transfer. However, there is no need to define a schema.

Can two adapters communicate with each other?
No two adapters can communicate with each other directly. They can communicate only through a messaging layer.
Considering Tibco to be the messaging layer,
Publishing Adapter always publishes to Tibco messaging bus.
Subscribing Adapter always subscribes from a Tibco messaging bus.

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.

What are the columns available in a Adapter Publishing table?
An adapter Publishing table contains the actual data columns plus Internal Adapter columns.
Actual data colums:
Depending on the storage mode selected, the actual data colums in the publishing table varies:
For Publish by value, the actual data columns will be the exact copy of the base table data colums.(all the columns).
For Publish by reference, the actual data columns will be the exact copy of the base table's primary key data colums (only Primary key column).

Internal Adapter columns:
ADB_SUBJECT
ADB_SEQUENCE
ADB_SET_SEQUENCE
ADB_TIMESTAMP
ADB_OPCODE
ADB_UPDATE_ALL
ADB_REF_OBJECT
ADB_L_DELIVERY_STATUS
ADB_L_CMSEQUENCE

Publication and Subscription formats ( file adapter)
Two types of formats are supported by adapters while exchanging data between applications
1. MInstances
2. MBusinessDocuments
MInstances is the entity that is exchanged among TIBCO applications. It is the schema instantiations. The runtime adapter parses the input file, identifies the schema associated with the publication service, creates the MInstances and publishes it.

MBusinessDocuments is a facility provided by TIBCO ActiveEnterprise for grouping MInstances. MBusinessDocument always contain MInstances created from the same file. If high throughput is desired from publication service MBusinessDocument attributes can be used.

Modes of operation(file adapter)
There are two modes of operation
Synchronous mode
Asynchronous mode

An adapter instance/configuration can have multiple publication and subscription services. Services are activated by events. The publication service can be activated by a timer event or message event. The event that activates the publication service is called polling agent.

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.

Types of file records (file adapter)
File records can be classified into two categories:
1. delimited file record
2. positional file record
Delimited file records are used to interpret lines that have a well-defined delimiter between the fields. Delimiters can be of single or multiple characters. These can be identified by the number of fields or by using a
constant field value.

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.

what is opaque table
The subscription service uses two logical layers when processing a message. The first layer decodes data from the message and the second layer provides the database transaction. If an exception occurs in the first layer, the adapter logs the message to the opaque exception table. 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.
what is the difference between exception table and opaque exception table?
The subscription service uses two logical layers when processing a message.
The first layer decodes data from the message and the second layer provides the database transaction. If an exception occurs in the first layer, the adapter logs the message to the opaque exception table.

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.

What are the transport types supported by ADB adapters?
The transport types supported by ADB adapters are:
1) Rendezvous
2) JMS

Rendezvous
Quality of service supported by Rendezvous:
1) Reliable
2) Certified
3) Transactional

Wire Formats Supported by Rendexvous:
1) Active Enterprise Message
2) Rendezvous Message
3) XML Message

JMS
Wire Formats Supported by JMS:
1) XML Message

Connection Factory Type Supported by JMS:
1)Topic
2)Queue

Delivery Mode Supported by JMS:
1) Persistent
2) Non-Persistent

TIBCO EMS FAQ'S

EMS
What are the different modes of installation in Ems?
a. GUI mode
b. Console mode
c. Silent mode

What are the messaging models supported by JMS?
a. Point-to-point
b. Publish-subscribe
c. Multicast

What are the destinations in EMS/JMS and their differences?
Ans:
Queues: point-point communication. Any number of producers and consumers can exist. At any time and situation each message is taken by only one consumer.
Exclusive: only the first consumer who picks up the first message can take the rest of the messages (used if u wants only one consumer).
Non-exclusive: where any number of consumers can exist. Used for load balancing.
Topics: publish-subscribe.
Any number of publishers and subscribers can exist. Each message can be taken by any number of consumers (radio).

In how many ways can a destination be created?
a. Static-created by user
b. Dynamic-created by ems server on the fly.
c. Temporary destinations.

Queues Vs Topics in TIBCO EMS
There are two major models for messaging supported by JMS: queues and topics. Queues are based on a point-to-point messaging model. Topics make use of the new publish-and-subscribe messaging model.

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:

One-to-one messaging Queue point-to-point
One-to-many messaging Topic publish-subscribe
Many-to-many messaging Topic publish-subscribe model

what is the Relationship between Temporary queue, queue, destination.
A Destination can be a Queue or Topic, which typically says static. Which means you physically create this queue.

I hope you know the definition for Queue which can static, dynamic or temporary.
Static represents physical creation.

Dynamic Represents, which will be created by receiver/sender application at run time, life span is limited, as long as there is messages or receivers, it will stay in server, if not it deletes.

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

Difference between Exclusive and Non Exclusive Queues
you can define a queue as exclusive to make sure that all the messages are always sent to the same consumer, even if you have more than one connected to it. If you make it exclusive the rest of the consumers are "on standby" so if the primary fails another one is set as primary and starts receiving.

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.

What is the use of system queues?
system queues are undeleteable queues stored usualy undelivered messages (when you set JMS_TIBCO_PRESERVE_UNDELIVERED to true, in case the message exipres, you'll get it to $sys.undelivered) or other even driven messages if applicable.
More in use are sytem topics for monitoring and statistics, where is EMS publishing queue and server statistics and can be detailed to message content level.

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

How do we distinguish dynamic queues with static queues?
Ans: dynamic queues have * before them.

what are the message storing mechanisms of queues?
Ans: persistent and non-persistent.
Persistent: messages are stored to external storage before sending.
Non-persistent: not stored to any external storage. The information will not be available for retrieval.

what are types of subscribers we can have for topics? Explain them in detail.
Ans: durable and non-durable subscribers.
In durable subscriptions the messages are stored so that even if the subscriber fails and comes back the messages can be retrieved.

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

What is the difference between Queues and Topics?
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

What is the use of secured queues and topics?
Setting ‘secure’ property to queues/topics can restrict unauthorized users from publishing/sending and subscribing/receiving the messages.




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 structure of messages in JMS?
Ans: header(needed),
properties(optional)
body(optional).
Header parameters:
JMS destination,
JMS message.

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 is the potential problem with JMS Queue requestor?
Ans: When we specify a reply to queue there is a chance of other processes sending messages to the same queue
and the jms queue requestor interpreting that as the actual response and sending this wrong message to the client.

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

What is JMS topic requestor?
The JMS Topic Requestor activity is used to communicate with a JMS application’s request-response service. This service invokes an operation with input and output. The request is sent to a JMS topic and the JMS application returns the response to the request.

How to setup load balancing for Topics and queues?
Ans: We can achieve load balancing using bridging queues and topics.
Or Queues can be set non-exclusive so that any number of consumers can access the 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 would you do fault-tolerance in EMS? Explain the complete process.
Ans: FT in EMS can be achieved by implementing pair of servers called primary and backup while the primary does the normal job of sending and receiving messages the back up server takes the place of primary if the primary fails. The pair shares the information from the shared state. When the primary goes down the backup server reads all the primary config files and starts from there. The primary locks the shared state if its active so that the backup server doesn’t take its place. the lock is released when the primary goes down so that the backup can lock the shared state. Only persistent messages can be implemented in this situation since non-persistent messages cannot be stored in external storage like shared state.

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 if max-bytes limit exceeds?
Ans: Messages that would exceed the limit will not be accepted into storage and an error is returned to the message producer.

What is the pre-fetch value?
Ans: In order for reducing the client’s waiting time in a server client scenario
For a queue based messaging only the prefetch value allows the the server to send messages in batches so that the message will be ready for the client when ever the client is ready. For automatic fetching its >1 and for disabling its “none”.

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.

What is the main config file in JMS?
Ans: The main configuration file controls the characteristics of the TIBCO Enterprise Message Service server. This file is usually named tibemsd.conf, but you can specify another file name when starting the server.
Exp para: server, password,flowcontrol,storage,server sartup…

Can you send messages from a server to another server?
TIBCO Enterprise Message Service servers can route messages to other servers.
• Topic messages can travel one hop or multiple hops(from the first server).
• Queue messages can travel only one hop to the home queue, and one hop from the home queue.
A server forwards topic messages along routes only when the global property is defined for the topic.
When a route becomes disconnected (for example, because of network problems), the forwarding server stores topic messages. When the route reconnects, the server forwards the stored messages.

What are multi-hop zone?
Ans: Multi-hop zone is a group of servers connected by routes.

How do you configure multi-hop zones?
By using routes
To create a route using the administration tool, first connect to one of the servers, then use the create route command with the following syntax:
create route url= zone_name= zone_type=1hop|mhop

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 the purpose for stores.conf
a. This file defines the locations either store files or a database, where the EMS server will store messages or
metadata
b. Each store configured is either a file-based or a database store.

How many modes are the messages written to store file.
2 modes.. sync or async. When absent , the default is async

What is tibemsd.conf
It is the main configuration file that controls the characteristics of the EMS server.

How many delivery modes for messages?
Persistent, Non-persistent, Reliable-delivery.

What is the maximum messagesize?
Ems supports max message size of 512 mb

Name 3 destination properties and explain them.
Global, secure, maxmsgs, maxbytes, flowcontrol, sender_name, sender_name_enforced, trace, maxRedelivery

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 happens if the message expires/exceeded the value specified by maxredelivery property on queue?
If the jms_preserve_undelivered property is set to true, then it moves he message to undelivered message queue, if set to false, the message is deleted by the server.

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.

Are bridges transitive?
No

Tell me about flow control on destinations?
Some times the producer may send messages faster than the consumers can receive them. So, the message capacity on the server will be exhausted. So we use flow control. Flow control can be specified on destinations.

Tell me about flow control on bridges and routes?
Flow control has to be specified on both sides of bridges where as on routes it operates differently on sender side and receiver side.

Name 3 configuration files and tell me what it consists of?
a. Queues.conf
b. Topics.conf
c. Routes.conf
d. Factories.conf
e. Stores.conf
f. Groups.conf, users.conf, transports.conf

Name some administrative level destination properties?
a. View
b. Create
c. Delete
d. Modify
e. Purge

How can you change the configuration properties of EMS server?
You can change in the tibemsd.conf file or you can change using the ems admin console.

Tell me about multicasting in EMS?
a. Multicast is a messaging model that broadcasts messages to many consumers at once rather than sending messages individually to each consumer. EMS uses Pragmatic general multicast to broadcast messages published to multicast enabled topics.
b. Each multicast enabled topic is associated with a channel.

What are the advantages and disadvantages of multicasting..
a. Advantages: As the message broadcasts only once there by reducing the amount of bandwidth used in publish and
subscribe model. Reduces the network traffic.
b. Disadvantages: Offers only last-hop delivery. So can’t be used to send messages between servers.

On what destinations can you use multicast?
Topics

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

How do you add ems server to administrator?
Using domain utility

How do you remove individual messages from destinations?
Using purge command.

Connection and Session threading in Ems
Connection : Multi thread
Session : Single thread

Where do you use a bridge in real time?
we use in scenarios like publishing message from Topic to Queue, Store message in EMS for retrieval in case if there is any problem while moving data from one process to another.
When ever you are decided to use message selectors on BW, use bridges and use message selector on bridges, which is more powerful than using message selectors on BW.

Where is the AppManage located at?
/tra//bin

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 is the use of Bridges?
Some applications require the same message to be sent to more than one destination possibly of different types. So we use bridges

What is the syntax to create Bridges without Message Selector?
create bridge source=queue:bridgequeue target=topic:bridgetopic

What is the syntax to delete a bridge?
delete bridge source=queue:bridgequeue target=topic:bridgetopic

What is the syntax to create Bridges with Message Selector?
create bridge source=queue:bridgequeue target=topic:bridge topic selector="keyword"

What is the use of Bridges and Routes?
Both are used to channel messages from senders to receivers. Bridge act as connector between two different queue and Routes act as connector between different server for sending message and receiving acknowledgement of delivery.

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

How to create a transport between RV and EMS?
Transport can be established between RV and EMS topic or queue.
The message can be imported as well as exported from RV.Important point to remember is, with Topic for transport the messages can be imported and exported from RV But in the case of Queues the message can only be imported from RV. Follow these steps to establish transport between RV and EMS :

1)For enabling the transport :
In the configuration file tibemsd.conf set the parameter tibrv_transports to enabled. The default value is disabled.
2)To set the type of parameters for tranport:
In the transports.conf file set the parmeters in Transport definitions (in the configuration file transports.conf) specify the communication protocol between EMS and the external system.

The parameters can be as follows:
[RV01]
type = tibrv
topic_import_dm = TIBEMS_RELIABLE
service = 7200
network =
daemon = tcp:host:7200
topic_import_dm= TIBEMS_NONPERSISTENT

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

Similarly the paramters can be set for topic_export_dm and queue_import_dm. export_headers = The default
value is true and can be set to false if there is no requirement of exporting the JMS headers.
export_properties = The default value is true and cane be set to false if there is no requirement of exporting the JMS properties.

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.

Can set the import/export properties by either making an entry in topics.conf or queues.conf filesdirectly like
topic.sample import="RV" where topic.sample is the name of the topic.
or in the admin tool use :
addprop topic myTopics.news import="RV01,RV02" which will add property import to myTopics in topics.conf files

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

SAN-Storage Area Network
NAS-Network Area storage
But for our case we would use just operating system file system (shared by both primary and Backup server)

Fault Tolerance configuration setup
Parameters will be in Bold and Inclined for easy identification

Configuring Primary server
open the c:\tibco\ems\bin\tibemsd.conf (This file is called Ems configuration file)

Server=EMS-SERVER-RAMU(This value is upto your choice)
Listen=tcp://7222(This value is upto uour choice)
Ft_active=tcp://7444(This value is upto your choice)

Configuring Backup server
Create a folder called Backup in that please copy all the *.conf files(only configuration files) from c:\tibco\ems\bin\ and place it in c:\tibco\ems\bin\Backup\

Note:From now we will work in the Backup Folder, open tibemsd.conf file in the folder

Server=EMS-SERVER-RAMU(This value must match the value of the server parameter in primary server's tibemsd.conf file)
Listen=tcp://7444(This value must match the value in Ft_active paramter in primary server's tibemsd.conf file)
Ft_active=tcp://7222(This value must match the value in Listen parameter in primary server's tibemsd.conf file)
store=c:\tibco\ems\bin\datastore(This value must match the value in store parameter in primary server's tibemsd.conf file,note that the value in primary server's tibemsd.conf file is just datastore)


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

Fault-Tolerance Setup-B(which deals with starting primary and back up server--which will be in standby mode)
This post is continuation of Fault Tolerance Setup-A

Go to All programs>Run>type cmd
You will get a command prompt window
Type command: cd c:\tibco\ems\bin
Now you will be inside bin directory
Start Primary Server
Type command: tibemsd (This is a application )

Start Backup Server
Open another command prompt
Navigate to the directory by entering the below command
cd c:\tibco\ems\bin
Give the following command
tibemsd -config Backup\tibemsd.conf (This is not done in primary but you are doing in back up server , since Primary server tibemsd.conf file is in same directory as tibemsd application)
In the backup sever command prompt you can see that it is in standby mode for primary (tcp://7222)

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.

TIBCO FAQ'S

TIBCO Fundamentals

1)

What is TIBCO?

TIBCO makes “Integration Server” software for enterprises. An “Integration Server” allows a company to mix packaged applications, custom software, and legacy software for use across internal and external networks. TIBCO's patented approach is called Information Bus (TIB)

2)

What are the modes of TIBCO BW Installations ?

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.

The TRA has two main functions:

1. The TRA agent is responsible for starting and stopping processes that run on a Machine according to the deployment information.

2. Supplies the run-time environment, that is, all shared libraries including third-party libraries.

6)

What are the tools provided by TRA Installation?

· TIBCO Rendezvous

· TIBCO HAWK

· TIBCO Runtime Agent

· TIBCO Designer

· Java Runtime Environment

· Third Party core Libraries

7)

What are the 4 main panels of the Designer window?

1. Project panel

2. Palette panel

3. Design panel

4. Configuration panel

8)

What is the bare minimum required to use TIBOC Business Works

· TRA

· BusinessWorks

9)

What are steps to design & test a process?

1. Create a new Process by selecting “Process Definition” from the Process Palette

2. Design the Process by configuring the required activities between the “Start” activity and “Stop” activity

3. To test the Process, switch to the “Tester” panel. Then click the (>) button or press ‘F9’ to load the test process

10)

What are the steps to build an .ear file using TIBCO Designer?

1. Select the “Enterprise Archive” activity from “General” Palette and configure the “Name” & “File Loacation”

2. Inside the “Enterprise Archive” activity and the “Process Archive” activity from the “Process” Palette.

3. Add the self starting process / services to the “Process Archive”

4. Click on “Build Archive” button in the “Configuration” tab in the “Enterprise Archive” activity to build the EAR file

11)

What are the steps to build an .ear file (TestAPP) and deploy it from “Command Prompt”?

1. Build the ear file using “buildear” utility

buildear -s -ear /TestAPP.archive -o c:\ ..\deployment\TestAPP.ear -p c:\ ..\projects\TestAPP

2. Create the deployment configuration file using “AppManage” utility

AppManage -export -ear c:\ ..\deployment\TestAPP.ear –out c:\ .. \deployments\TestAPP.xml

3. Edit the deployment configuration XML file using a text editor

4. Deploy the application using “AppManage” utility

AppManage -deploy -ear c:\ .. \deployment\TestAPP.ear -deployconfig c:\ .. \deployment\TestAPP_Admin.xml -app TestAPP -domain Admin -user admin -pw admin

12)

What are the steps to deploy an application using the Administrator GUI?

1. Start the TIBCO Administrator (tibcoadmin_domain-name.exe) & the TIBCO HAWK (hawkagent_domain-name.exe) agent from the command prompt or the windows services.

2. Start the Administrator GUI in a web browser (http://host-name:port) and enter the UID & PWD for the domain.

3. In the left Panel under the “Application Management” module select “All Application”.

4. In the right Panel, click on “New Application” and select the EAR File and click “OK” button.

5. Under “Services” Check the “Deploy on Save” option and then click on “Save” button to deploy the application

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?

Repeat a group of activities based on a condition.

· Iterate over a list.

· Repeat until condition true.

· Repeat on Error until condition true.

11

What is the scope of user defined process variables?

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?

“JDBC Call Procedure” is used to execute a stored procedure.

“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?

“JDBC Query” is used to execute select statement to retrieve records from a database

“JDBC Update” is used to add records to a database via insert statement

33)

What is the use of “Fetch” in the “JDBC Query” Activity?

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 Retrieve Resources activity generates a WSDL file containing a concrete service (Conrete WSDL) description of any process definition that has a SOAP Event Source process starter. This allows clients to access the WSDL for a web service. The client can then use the WSDL file to invoke the web service. The Retrieve Resources activity can also be used to retrieve any other resources, including XSDs and WSIL.

52)

What is the “SOAP Event Source” 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?

Meta.db (Connection Details)

Async.db (Fire & Forget Messages)

Sync.db (Acknowledge Back Messages)

64)

What are the configuration files used by TIBCO EMS?

Tibemsd.conf

Queue.conf

Topic.conf

65)

What is the maximum size and maximum number of message possible using TIBCO EMS?

Maximum Message Size = 512MB [ Both Topic & Queue ]

Maximum No. Of Messages = 3600 messages / second

66)

What is the Maximum Retransmission Time?

Maximum Retransmission Time = 60 seconds

67)

What are the delivery modes supported by EMS server?

· Persistent

· Non-persistent

· Reliable

68)

What are the message types supported by EMS?

· Text

· XML

· Bytes

· Stream

· Simple

· Object

· ObjectRef

· Map

69)

What are the different types of Queues?

· Static Queue

· Dynamic Queue

· Temp Queue

· System Queue

70)

What are the permissions that you can grant to users to access queues?

· Receive

· Send

· Browse

71)

What are the permissions that you can grant to users to access topics?

· Subscribe

· Publish

· Durable

· Use_durable

72)

How do you remove individual messages from destinations?

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?

The JMS Topic Requestor activity is used to communicate with a JMS application’s request-response service. This service invokes an operation with input and output. The request is sent to a JMS topic and the JMS application returns the response to the request.

76)

What is the difference between Queues and Topics?

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?

Setting ‘secure’ property to queues/topics can restrict unauthorized users from publishing/sending and subscribing/receiving the messages.

78)

What is Load Balancing?

Load Balancing is a technique to distribute workload evenly across two or more machines or resources, in order to get optimal resource utilization, maximize throughput, minimize response time, and avoid overload. Using multiple Receivers with load balancing, instead of a single Receiver, may increase reliability through redundancy.

79)

How is Load Balancing implemented on both Queue & Topic?

Topic : Load Balancing is only possible on Queues

Queue : Load Balancing is implemented on the receivers end. Since Load Balancing not possible on the sender side.

80)

What is “Certified Messaging”?

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

'Certified Messaging(CM)'. RVCM uses Ledger to save the messages. The sender stores all outbound messages of the registered receivers which have an agreement in the ledger unless the sender receives an acknowledgement from the receiver.

81)

What is the difference between RVD and RVRD?
RVD is Used for local subnet communication.
RVRD is Used for Remote communication.

82)

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 “C:\ .. \cfgmgmt\ems\data\tibemsd.conf”)

5. In TIBCO Designer, modify the JMS Connection “Provide URL” to contain both the servers ( ex: tcp://localhost:7222 | tcp://localhost:7223)

83)

What is Fault Tolerance?

Fault Tolerance is the ability of a system to respond gracefully to an unexpected hardware or software failure. Fault Tolerant systems mirror all operations, i.e. every operation is performed on two or more duplicate systems, so if one fails the other can take over.

84)

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”)

85)

What is the use of Bridges?

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?

create bridge source=queue:bridgequeue target=topic:bridgetopic

87)

What is the syntax to delete a bridge?

delete bridge source=queue:bridgequeue target=topic:bridgetopic

88)

What is the syntax to create Bridges with Message Selector?

create bridge source=queue:bridgequeue target=topic:bridge topic selector="keyword"

89)

What is the use of Bridges and Routes?
Both are used to channel messages from senders to receivers. Bridge act as connector between two different queue and Routes act as connector between different server for sending message and receiving acknowledgement of delivery.

90)

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

5. open factories.conf under “cfgmgmt2” and change the settings for GeneralConnectionFactory, QueueConnectionFactory and TopicConnectionFactory URL to (tcp://xxxx)

6. Create Route on Server 1 (route “Server2-Name” url=tcp://localhost:xxxx)

7. Create global queue / topics on both servers as required

8. Start both copies of the servers from the command prompt (ex: C:\ .. \ems\5.1\bin\tibemsd –config “C:\ .. \cfgmgmt\ems\data\tibemsd.conf”)

9. Test the route by using queue / topic in a BW Process

Adapters

91)

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

92)

What are the different types of adapters?

· Technical Adapters (File Adapter, DB Adapter)

· Functional Adapters (PeopleSoft Adapter, SAP R3 Adapter)

· Custom Adapters

93)

What are the types of adapter services?

· Subscriber Service

· Publisher Service

· Request-Response Service

94)

What are the 3 main configuration elements common for all Adapters?

· Design Time ( For BW Testing )

· Run Time ( For Admin Deployment )

· Service ( Pub / Sub, Request-Reply )

95)

What is Publish by value and Publish by reference?

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

 
B