Tuesday, January 19, 2016

Difference between Tibco JMS queue receiver and JMS queue requestor?




1. JMS Queue receiver is a starter activity. It starts a process on the receipt of a message for the specified JMS queue, it is listening to.ON the other hand, JMS queue requestor is not a starter activity, it is used to send a request to a JMS queue and receives a response back from the JMS client. This activity uses temporary destinations to ensure that reply messages are received only by the process that sent the request.


2. JMS queue reciever is responsible for consuming the message from the JMS in a queue. While JMS queue requestor is similar to request reply in soap. it waits fro a reply in reply/to queue.

Difference between Tibco shared variable and Job shared variable



Shared variable values is accessed and modified across different job instances. While job shared variable is different for different jobs. A Job Shared Variable is created for a particular job. If there are ten jobs currently running, then each one carries its own instance of the Job Shared Variable.It works some thing like Job shared variable behaves like instance variable and shared variable is works like static variable in your java class.

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. Example For Shared variable: You wanna have track of how many times a user hits ur website. (We have many options, this is just for understanding). When ever a call is made using Http , your porcess is triggered. When you have Shared Varible initally configured as Zero and increment it each time when the process is triggered. Note: Job shared variable cannot do this as for each instance a new copy is created.

Job Shared Variable :

A Job Shared Variable shared configuration resource allows you to store data for use by each process instance. A copy of the variable is created for each new process instance. This resource is useful for passing data to and from sub-processes without creating an input or output schema for the called process. Example for Job shared variable. You have written a common PD for validating some stuff, and this PD is called by many PDs.. Using GET\SET variables you store some data in Job shared variable. Now only parent process(which is calling this ) can access this data and not all. In this Scenario using a shared variable will be of no use. This can be easily done using mapping data into call process. But this is just an example.

Difference between Tibco ADB and JDBC palettes



ADB Adapter:

With ADB we can only pick up the data from one database and put it in another one or vice versa. Design time and run time environments, which are to be managed separately. Very scalable component to handle both inbound and outbound messages. ADB adapters might be useful in scenarios where we have large amount of data. 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.

JDBC Palett:

In JDBC we can Query using JDBCQuery and manupulate data using JDBCUpdate. We can perform CRUD operations. JDBC palette for both run-time and design-time operates in the same way. No Trigger – BW JDBC does not have a mechanism to detect database changes in a push environment. 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.

Difference :

1)The advantage of ADB is that it has exception tables that will record any insert or update errors.
2) once it exits the BW process based on the transport used it can guarantee that a modification is delivered using the RV or JMS transport framework to handle that guarantee.
3) ADB lets you do upserts while JDBC you will have to check first before doing an insert or update.
4) JDBC is often alot easier to configure and is more direct to the datbase. ADB you are abstracting the DB to an adapter.
5) ADB Adapter will generate a schema for you to match the table you are trying to write to. JDBC you will just write your own SQL statements.
6) You really don't need to know SQL using ADB (although it is recommended that you understand it and as a developer you should know it) but with JDBC you have to know SQL.


Difference Between SOAP Over HTTP And SOAP Over JMS



SOAP over HTTP:

Firewall friendly is that all services support this transport Supported on all platforms (easiest connectivity in b2b scenario) Clients can be simple and lightweight It is not always reliable. No guaranteed delivery.

SOAP over JMS:

High-volume distributed messaging Asynchronous messaging Where a transaction boundary is needed in the middleware Where the message consumers are slower than the producers Guaranteed deliver and/or only once delivery of messages Publish/subscribe provides guaranteed delivery using either persistent queues or durable topics.

Difference between Tibco Max Jobs and Flow Limit



Max Jobs :

Max Jobs specifies the number of process instances that are kept in memory. Once this limit is reached newly created process instances (subject to flow limit) are paged out to disk.0 specifies no limit and is the default.

Flow Limit :

Flow Limit specifies the maximum number of running process instances that are spawned before the process starter is suspended ie it enters a FLOW_CONTROLLED state and does not accept new events. This can be used to control the number of process instances running simultaneously and when the protocol generating the event can store the event till it is received, like email servers, JMS, RV etc. 0 specifies no limit and is the default.


Tibco Interview Questions



1. What are the TIBCO BW activities that can participate in transactions?

Not all TIBCO BusinessWorks activities can participate in a transaction. Only the following types of activities have transactional capabilities: JDBC activities JMS activities ActiveEnterprise Adapter activities that use JMS transports EJB activities TIBCO iProcess BusinessWorks Connector activities

2. What are the possible Error output's of Read File activity?

Integration can be at different application layers: FileNotFoundException :Thrown when yhe file does not exist. UnsupportedEncodingException:Thrown when the text file’s encoding is not valid and the content of the file is read into process data. FileIOException :Thrown when an I/O exception occurred when trying to read the file.

3. What are the encodings supported by designer ?

Encodings supported by designer are ISO8859-1(Latin-1) UTF-8

4. What is a TIBCO Domain?

Domain is a collection of hardware and software components that are used for business process integration. The domain defines the TIBCO BusinessWorks environment. Each domain must contain one and only one administration server. Each domain must have a unique domain name. Each domain may contain one or more machines but no single machine can belong to multiple domains. Each machine may have more than one type of software component.

5. What is TIBCO Administrator ?

TIBCO Administrator supports security administration as well as monitoring and management of processes and machines. TIBCO Administrator consists of the TIBCO Administration Server and the web browser based TIBCO Administrator GUI.

6. What is a deployment?

A deployment is a completed configured instance of an integration or project. TIBCO Designer is used to configure projects and deployments in current version. In the future, TIBCO Administrator will be used to manage deployment of projects.

7. What is the purpose of a Lock shared configuration resource?

A Lock is specified for a 'Critical Section' group when the scope is 'Multiple'. It can be used to ensure synchronization across process instances belonging to multiple processs definitions or for process instances across engines(Check multi engine flag for lock in this case and the BW engine needs to be configured with database persistence while deployment). If synchronization is for process instances belonging to the same processes definition inside one engine, just specify the scope as 'Single'.

8. What is the relationship between TIBCO Administrator and TIBCO domains?

A TIBCO Domain is a collection of hardware and software components that are used for business process integration. Domains are created using domain utility provided by TRA. Applications are deployed in a domain using TIBCO administrator. One domain can be administered by only one TIBCO administrator.

9. What are the types of adapter services ?

Types of adapter services are : Subscriber Service Publisher Service Request-Response Service Request-Response Invocation Service

10. What is the difference between JMS and TIBCO EMS?

IBCO EMS is a customization of JMS specifications by TIBCO. The difference between JMS and TIBCO EMS is that JMS provides two types of delivery modes which are Persistent and Non-Persistent while TIBCO EMS adds another type of delivery mode which is RELIABLE delivery mode. Also, for restriction of messages acknowledgement, JMS provides NO_ACKNOWLEDGE mode while TIBCO EMS extends the functionality of JMS by providing EXPLICIT_CLIENT_ACKNOWLEDGE mode and EXPLICIT_CLIENT_DUPS_OK_ACKNOWLEDGE mode.

11. What is the difference between TIBCO EMS PERSISTENT, NON-PERSISTENT and RELIABLE delivery modes?

PERSISTENT delivery mode, messages sent by the producer to the EMS Server are persisted/stored in a disk and a confirmation is sent to the producer for every message. In case of Non-Persistent delivery mode, messages sent by the producer are not stored/persisted on EMS Server. Acknowledgement is sent back only if authorization is enabled. In case of RELIABLE delivery mode, messages are not persisted and also, no acknowledgement is sent back to the producer.

12. What is the difference between Static and Dynamic destination queues?

Static EMS queues are created using EMS Administrator or by configuring directly in the configuration file (queues.conf) and are permanent and can be used at enterprise level. Static queues have a permanent TTL (Time To Live) and they exist till the time they are deleted manually. On the other hand, dynamic queues are short lived queues which are created when needed and get expired once they are not in use. Dynamic queues remain alive until at least one client is associated with them.



Difference between Publish by value and Reference in ADB Adapter



1. As stated in the AdADB manual, when using "by value" all data is already included in the publishing table and the adapter has it when looking for new entries to publish. With the "publish by reference" the values from the original table need to be fetched by a second select. Means, In publish by value, all the data will be copied from main table to P table..where as in publish by reference only the reference will be copied.

2. Publish By Referance: When the publisher table has a primary key or a user defined key we use publish by Referance Publish By Value: In or all other casess we use publish by value.

3. Its a trade off between DB Server Space and DB Processing speed. Also if there is binary data stored in the database then you have to use publish by reference.