Thursday, May 12, 2016

Tibco EMS Simple learning Topics

Experience: 2-4 Years Tibco Technology

Product: TIBCO EMS

1)   What is PointToPont and Publish/Subscribe model?

PointToPoint :
Point-to-point messaging has one producer and one consumer per message. This style of messaging uses a queue to store messages until they are received. The message producer sends the message to the queue; the message consumer retrieves messages from the queue and sends acknowledgement that the message was received.

Publish/Subscribe:
In a publish and subscribe message system, producers address messages to a topic. In this model, the producer is known as a publisher and the consumer is known as a subscriber.
Many publishers can publish to the same topic, and a message from a single publisher can be received by many subscribers. Subscribers subscribe to topics, and all messages published to the topic are received by all subscribers to the topic. This type of message protocol is also known as broadcast messaging because messages are sent over the network and received by all interested subscribers, similar to how radio or television signals are broadcast and received.




2)   What is static Queue and what is dynamic Queue. Compare them.

                    Static Queue
                Dynamic Queue
1)   Queues which are created explicitly by using EMS administration CUI tool.
Create queue < queue-name >

1)    Queues which are created implicitly when ever the client application tries to put a message in a Queue which is not exists in the server but if there is corresponding matching wild card destination in queues.conf.
 Example: - If a producer is trying to put a message in a queue named “hcl.chennai” which is not exists in server and there is corresponding wild card destination like “hcl.*” or “hcl.>”  in queues.conf then queue “hcl.chennai” will be created on the fly which is a dynamic queue.
2) Queues will be still in server when  you restart the server even though queue don’t had any messages
2) Queue won’t be in server when you restart the server if the queue is empty.
3) You are able to see the static queues in queues.conf file
3) you cannot see dynamic queue in queues.conf
4) When you gave the “show queues” command in EMS admin GUI; static queues won’t have any “*” indication before them.
4) When you gave the “show queues” command in EMS admin CUI; dynamic queues will have “*” before the queue name.


3)   What are exclusive queues and what are non-exclusive queues?

You can have more than one subscriber pointing to a queue. When you have more than one subscriber, EMS server will distribute the inbound messages in Round-Robin fashion to all subscribers in case of Non-exclusive queues. You can implement message level load balancing by using Non-exclusive queues.

In case of exclusive queues which ever be subscriber created the Session first, that subscriber only will get the all messages.

By default queues are Non-exclusive. If you want to change it as exclusive queues

Addprop queue <> exclusive




4)   What are the delivery modes available in EMS?

 PERSISTENT
           NON_PERSISTENT
           RELIABLE_DELIVERY


5)   What are durable subscribers?

If durable subscribers are subscribed on a topic, even though the durable subscriber is down; EMS server will hold the messages on behalf of disconnected durable scriber. The Durable Subscriber will get the message whenever it is up.

6)   What are destination bridges?

Bridges are created between one destination and one or more other destinations of the same or of different types. That is, you can create a bridge from a topic to a queue or from a queue to a topic. You can also create a bridge between one destination and multiple destinations. For example, you can create a bridge from topic a.b to queue q.b and topic a.c.





Product: TIBCO RV



1)   What are the parameters of Rendezvous Transport

·         Daemon         
·         Service
·         Network


2)   What is Direct Communication?

It is a communication mechanism used for point-to-point communication using RVD.  Still you have to specify _INBOX subject names. Message Latency and context switching will be reduced by using this.




Product: TIBCO BW

1)   Can you tell me at least four starter activities and when they get executed?

Palette
Process starters
When they get executed
Active enterprise adapters
Adapter subscriber, adapter request response service
When ever a message comes into a destination queue or network, listens to a request from a adapter and sends a response back to that adapter
File
File polar
Polls for any changes that occur in the file and with any change grab the whole file.
General activities
Timer, receive notification
Starts a process on the time specified ex: before JDBC QUERY, starts a process on receiving of data from a notify activity.
http
http receiver
Starts a process based on a request from http server.
Jms
Jms queue receiver, jms topic subscriber
Starts a process when ever a new message comes into the specified queue, starts a process when ever there is a new message in the specified topic.
Rv
Rv subscriber
The Rendezvous Subscriber process starter creates a process when a TIBCO Rendezvous message on the given subject is received.
Soap
Soap event source
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.   At runtime, a client can retrieve the WSDL file for a process containing this process starter using an HTTP request. Once the WSDL is retrieved, the client can perform a SOAP request to invoke the web service.
Tcp
Tcp receiver
The TCP Receiver process starter starts a new process when a client requests a TCP connection.



2)   What is the purpose of JMS Queue receiver activity and Queue sender activity?

Starts a process when ever a new message comes into the specified queue.
A queue sender activity sends messages into the specified queue.


3)   What are acknowledgement modes and where do you set them and what is the applicability of each mode?
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.


4)   What are the different kinds of condition types you can have in transition? Explain Them

Success
Take this transition unconditionally. That is, always transition to the activity the transition points to, if the activity completes successfully.  This is the default condition for transitions.
Success with condition
Specify a custom condition using XPath. If the activity completes successfully, and the condition you create evaluates to true, the transition is taken to the activity it points to.
You can type in an XPath condition, and you can use the XPath formula builder to drag and drop XPath expressions and data into the condition.
Success if no matching condition
Take this transition when the activity completes successfully, but only if no other transitions are taken. This is useful when multiple transitions with conditions are drawn to other activities. This condition type can be used to handle any cases not handled by the conditions on the other transitions.
Error
Take this transition if there is an error during processing of the activity.

5)   What types of actions you can have in the group and explain them with examples?

Group is a service to put together a set of activities to perform any of the following tasks:

a) Transaction mode: it is used to commit or roll back all the related activities when the assigned task is a success or a failure. Usually when we use multiple JDBC updates we use this mode.

b) Common error transition: in this mode we create a common error transition for a set of activities so that any error in that group can be recognized and logged.
Supposing we have a subprocess and we want to Log the error regarding this we will pull a generate error from the subprocess and log it outside group.

c) Simple iterate loop: if we r getting a list of records and we want to update each record then we use this.
d) Repeated until true: supposing a situation where out of 50 records our interest is on one particular record we will specify the condition for that record and when the condition is true (i.e. that record is fetched) it stops iterating.

e) Repeat on error until true: for example we are not able to connect to a database because of error we will try to reconnect by repeating until the condition given is true.
Then we get out of the loop and then log

f) Critical section groups are used to synchronize process instances so that only one process instance executes the grouped activities at any given time. Any concurrently running process instances that contain a corresponding critical section group wait until the process instance that is currently executing the critical section group completes.
g) Pick first groups allow process execution to wait for one or more events. The first event that completes determines which transition to take to continue processing. For example, as part of an order-entry system, when an order is placed, a check is made to see if the order can be filled from stocked inventory or from returned merchandise. Whichever system returns the information first is used to fill the order. If neither system returns the information about available inventory, the order times out and cancel.


6)   What are the variables in BW?

·         Process Variable
·         Shared Variable
·         Global variable


Process variable: Process variables are data structures available to the activities in the process. Process variables are displayed in the Process Data panel of each activity’s Input tab. This allows you to use process data to supply input values for an activity. Each process variable name starts with a dollar sign ($).

Global variable: Global variables provide an easy way to set defaults for use throughout your project.

Shared Variable: A shared variable is a shared configuration resource in the General Activities palette. There are two types of shared variables:
·         Shared Variable
·         Job Shared Variable

                        Shared Variable:
A Shared Variable resource allows you to share data across process instances. All process instances can read and update the data stored in a shared variable. This type of shared variable is useful if you wish to pass data across process instances or if you wish to make a common set of information available to all process instances. For example, you may have a set of approval codes for incoming orders that change daily for security purposes. You can create a shared variable to hold the approval codes and create one process definition for setting the codes. You can then retrieve the shared variable in all processes that require the current approval codes.



                        Job Shared Variable:
A Job Shared Variable resource is similar to a Shared Variable, but its scope is limited to the current job. A copy of the variable is created for each new process instance. This type of shared variable is useful for passing data to and from sub-processes without creating an input or output schema for the called process.
You can use the Get Shared Variable and Set Shared Variable activities to access the data instead of mapping data to a called processes input or output schemas. New process instances receive a copy of the Job Shared Variable, so data cannot be shared across process instances. Therefore, if a called process has the Spawn configuration field checked, a new process instance is created and the process instance receives a new copy of the Job Shared Variable.
                                   
7)   How many types you can call a sub process from a process? Explain them

·         We can call a sub process dynamically by doing process name dynamic over ride where we can use multiple sub processes in the same calling process depending on a condition.
·         Normal calling where in the calling process a sub process path is given in the process name field.


8)   What is the check point activity and confirm activity?

A checkpoint saves the current process data and state so that it can be recovered at a later time in the event of a failure. If a process engine fails, all process instances can be recovered and resume execution at the location of their last checkpoint in the process definition.


     The Confirm activity confirms any confirmable messages received by the process instance. For example, if a process is started because of the receipt of an RVCM message, the Confirm activity can send a confirmation message to the publisher of the RVCM message


9)   What is Generate Error activity? What the applications of it (Where you can use it and what you can achieve by using it)
This activity generates an error and causes an immediate transition to any error transitions. If there are no error transitions, the process instance halts execution. This activity is useful in a group or in a called process. If you would like to catch and raise your own error conditions, you can use this activity to do so.

10)        The process flow requires that a message read from a queue is delivered to a target database only once. In the event of RDBMS operation failure, the message should be put back.

Receive a message using Client Acknowledgement; when a database operation is successful, acknowledge the message as processed; on RDBMS failure, complete the process without acknowledgement




Product: TIBCO Administrator


1)   What are the possible transports between deployed applications and Tibco Administrator?

a.    Rendezvous
b.    HTTP
c.    HTTPS
d.    JMS


2)   What are the possible transports between adapters and Business process?


1)    Rendezvous
2)     JMS


3)   What is the tool you need to add a machine to administration domain?

Domain Utility

4)   If, in a production setup, the default RV port has to be changed from 7500 to 7600, how would you achieve this in the least complicated manner?

   Essentially, the usage of global variables, and tweaking it using admin or designer
   Or modifying the TRA file is what was being asked

5)      What is flow limit, Max jobs and Activation Limit in Tibco Admin?

  • Max Jobs — specifies the maximum number of process instances that can concurrently be loaded into memory.
  • Activation Limit — specifies that once a process instance is loaded, it must remain in memory until it completes.
  • Max Jobs (Flow Limit) — specifies the maximum number of currently running process instance to start before suspending the process starter.



6)   What is the command line utility used to deploy an ear file?                                                                                                           

AppManage.exe

7)   You have an ear file in path “c:\myproject\MYEAR.ear” .how can you create configuration XML file from the given ear file?

AppManage – export – ear c:\myproject\MYEAR.ear   -out c:\myproject\MYEAR.xml

8)   If your project has 10 adapters and 10 processes how may minimum number of shared archives, process archives, and adapter archives you need to place    in an enterprise archive resource?

1-shared archve, 1-process archive, and 10-adapter archives
Note: one adapter archive resource can hold only one adapter where as one process archive can hold many number of processes.

Product: XML

1)   What is the transformation mechanism you use to transform input to out put?

X-path.



2)   What is XPATH?
XPATH is XML based path language used to navigate the XML document and manipulate the data.

3)   What is the underlying technology of XPATH?
XSLT: xml style sheet language transformation

4)   What is XSD?
XML schema definition.

5)   What is name space in XSD?
Since element names in XML are not predefined, a name conflict will occur when two different documents use the same element names. So each element is given a unique namespace.
    
6)   What are the BW activities, which deals with XML messages?
 Xml parser, xml render, xml transform

7)   What is the difference between Schema and DTD?
Schema might outphase DTD. XML shemas are in XML. XML Schema has a lot of built-in data types including xs:string,xs:decimal,xs:integer,xs:boolean,xs:date,xs:time. XML schemas can be edited with Schema files, parsed with XML parser, manipulated with XML DOM, and transformed with XSLT.
The building blocks of DTD include elements, attributes, entities, PCDATA, and CDATA.



Product: TIBCO ADB Adapter

1)      What are the Adapter services available in ABD?



2)   What are the possible transports between adapters and Business process?

·         Rendezvous
·         JMS
3)   What are the qualities of services we can have in adapter publishing services?
4)   SDFSD
RV: reliable, certified, and transactional




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

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


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


8)   What is Exception table
If a database restriction or failure occurs, an exception table can be configured to receive the message. If insertion into an exception table also fails, an error message will display and the adapter instance will terminate. You can build a TIBCO Hawk rule base that detects when the configuration is down and automatically restarts it when the database is up.

9)   What is 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.
The opaque exception table records the entire message into a column along with the error message.