TIBCO EMS (Enterprise Messaging Service) is used for communication between processes and applications through a centralized EMS Server. EMS simplifies as well as standardizes integration of complex applications in an enterprise environment.
In this post, I am going to talk about TIBCO EMS Top Interview Questions and Answers based on my experience in this domain.
Q1: What is the difference between JMS and TIBCO EMS?
Ans: TIBCO 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.
Q2: What is the difference between TIBCO EMS PERSISTENT, NON-PERSISTENT and RELIABLE delivery modes?
Ans: In 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.
Q3: What is the difference between Static and Dynamic destination queues?
Ans: 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.
Q4: Which command is used to delete all the messages from a queue or topic?
Ans: Purge command is used to delete all the pending messages from a queue. For example, if you want to purge a queue named ‘queue.ajmal’; you can run following command in TIBCO EMS Administrator:
purge queue queue.ajmal
Q5: What is the difference between Queues and Topics?
Ans: The difference between TIBCO EMS Queues and Topics is that Queues are based on point to point communication model with only one consumer for each queue while EMS Topics are based on Publish/Subscribe model where messages are multicast to more than one consumers from a topic.
Q6: What are TIBCO EMS bridges and why bridges are used?
Ans: Bridges are used to connect multiple destinations (queues or topics) so that same message can be sent to multiple destinations. When a bridge exists between two queues, the message is delivered to both queues.
Q7: Which configuration file is used for creating and configuring bridges in EMS?
Ans: bridges between destinations are configured in a configuration file named as bridges.conf
Q8: Which configuration file has EMS Server configurations stored?
Ans: All EMS Server properties are configured in the file tibemsd.conf
Q9: What is the difference between JMS Queue Receiver and JMS Queue Requestor Activity?
Ans: JMS Queue Receiver is a process starter activity that starts a process whenever a new message is available in a queue while JMS Queue Requestor is a non-starter (normal) activity which is used to request for a message to a queue and gets back a response.
Q10: Can we use Multicast on queues?
Ans: No, multicast can be used only for topics. Queues are point to point and can’t be used for multicast.