TIBCO BW & EMS interview Questions

  1. Difference between JDBC query and SQL direct?
  2. If I want to execute DDL statements then which JDBC pallet I should use?
  3. What is the use of wait and notify activity?
  4. Give brief description on shared and job-shared variable?
  5. If a shared variable is used by 6 processes and a timer process will fetch data from that, then what will be the value it will get?
  6. What needs to be done so that shared variable can be used by one process instance in one time.
  7. How to configure route.
  8. Difference between bridge and route.
  9. What needs to be configured to get Error message from External Command pallet.
  10. What are Max JOB and Flow Limit?
  11. Use case :
    1. Max job is 5 and Flow limit is 0. I have sent 10 messages in one shot. What will be the behavior of process?
    2. And if I have abruptly stopped the engine then can I recover all the messages? If yes how.
    3. If Max job is 0 and Flow limit is 5. Then the same question.
  12. If in one JDBC transaction I have kept 2 JDBC activities. One is pointing to DEV and other to QA environment and both doing insertion activity. If in the middle there is failure in palette pointing to DEV  then what will happen?
  13. How to configure HTTP receiver and how to configure secure connection type in that?
  14. Why we are using SOAP and Service pallet. Explain with scenario.
  15. When should we use SOAP over http and SOAP over JMS?
  16. If my process is selecting more than 1 lakh records and I need to manipulate them through mapper and use them latter and I want to avoid the process from getting hanged. What is the optimized way to do it?
  17. What is the difference between Java code and Java method?
  18. How to configure class in a Java method?
  19. What is Engine pallet and why it is used?
  20. Difference between Client and EMS Explicit type of acknowledgement modes?
  21. If I want to receive message from EMS queue one at a time then what I need to do?
  22. How to configure storing of messages in EMS queue?
  23. There are 10 messages in a queue and I have a EMS Receiver process but I want only one process instance of EMS receiver process will run at one time. How to do it at process level?
  • What is the use of XSLT?
  • Tell some basic functions used in XSLT.
  • How to transfer security information in Service? Explain configuration details briefly.
  • How many types of variables present please explain briefly?

If any answers needed please let me know i will comment and answer it. 🙂

27 Comments

  1. hi what is answer for below question There are 10 messages in a queue and I have a EMS Receiver process but I want only one process instance of EMS receiver process will run at one time. How to do it at process level?
    • This scenario can be possible in case of Client type Acknowledgement mode and we can set the Max Session to 1 so that maximum one message can be received in a single instance. Let me know if you need any clarifications.. sorry for the delay :)
  2. Answer 1 : In JDBC Query we can use only select statements and we can use static queries. But using SQL Direct we can execute DDL statements which is not supported by any other JDBC palletes and can build the query at run time (dynamically) also.
  3. Answer 3: Wait and Notify activities are used for inter process instance communication. The Notify Configuration resource specified on the Configuration tab and the key specified on the Input tab create the relationship between the Notify activity and the corresponding Wait activity. The data specified in the Notify’s input is sent to the Wait that specifies the same Notify Configuration resource and has the same value for the key.
  4. Answer 4: Shared variables are used to share values across process instances. That means when we will use "Get Shared Variable" pallet then we will get the latest value of the shared variable which was updated by another process instance. That means the Engine will use the same shared variable across multiple instances and it won't provide fresh copy of the shared variable. ******************************************************************************** Job Shared variables are specific to a particular process instance(Job). The value that will be set in Job shared variable will be available for that process instance only and if we will try to get the value of Job shared variable in another process instance we will get the fresh set or copy of the original shared variable with no values. Engine will provide the fresh copy of the Job shared Variable for each process instance.
  5. Answer 7 : 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 name url=URL zone_name=zone_name zone_type=1hop|mhop properties • name is the name of the server at the other end of the route; it also becomes thename of the route. • URL specifies the other server by its URL—including protocol and port. If your environment is configured for fault tolerance, the URL can be a comma-separated list of URLs denoting fault-tolerant servers. • zone_name specifies that the route belongs to the routing zone with this name. When absent, the default value is default_mhop_zone (this default yields backward compatibility with configurations from releases earlier than 4.0). • The zone type is either 1hop or mhop. When omitted, the default value is mhop. • properties is a space-separated list of properties for the route. Each property has the syntax: prop_name=value For example, these commands on server A would create routes to servers B and C. The route to B belongs to the one-hop zone Z1. The route to C belongs to the multi-hop zone ZM. create route B url=tcp://B:7454 zone_name=Z1 zone_type=1hop create route C url=tcp://C:7455 zone_name=ZM zone_type=mhop
  6. Answer 8 : 1. Bridges can be configured between one or more destinations within the same JMS server. 2. Bridges can be between topic to queue, topic to topic etc. 3. Bridges are non-transitive. For example, topic A has bridge to queue B .Queue B has a bridge to topic C. Messages delivered to topic A are also delivered to queue B, but not to topic C. 4. Bridges are configured in the bridges.conf configuration file. 5. When a message producer sends a message within a transaction, all messages sent across a bridge are part of the transaction. Therefore, if the transaction succeeds, all messages are delivered to all bridged destinations. If the transaction fails, no consumers for bridged destinations receive the messages. Create bridge source=type:dest_name target=type:dest_name [selector= msg selector] But  Routing happens between destinations across different JMS servers.  The destination names should be the same in both the servers. This facilitates two way messaging. You would just need to publish on one and it will be replicated on the second one. Communication on the route is bidirectional.  Routes can be transitive in case of topics but non-transitive in case of queues.  When a bridge configuration is changed the entire server needs to be restarted whereas in routing it is not needed.  Configuration file is routes.conf Login to server A and type create route ServerB url=tcp://serverB:7454
  7. Answer 9 : For this we have to select the option "Make output available as Activity output" in External Command pallete so that we will get error and output as External Command's O/P. By default only return code is there in the Output tab.
  8. Answer 10 : Max Jobs — Specifies the maximum number of process instances that can concurrently be loaded into memory. The Max Jobs field in the Process Configurations dialog allows you to specify the maximum number of concurrent process instances that can be stored in memory. For example, if you set Max Jobs to 5, the process engine can only keep five process instances in memory. Any process instances created once the maximum is reached must be paged out to disk. Flow Limit: Specifies the maximum number of currently running process instance to start before suspending the process starter. Flow Limit = Max Job + Paged out Jobs.
  9. Answer 12: As all the palettes are in one JDBC transaction group they will fall into single transaction irrespective of the shared connection they are using. So if any error occurs then everything will be rolled back. And in case of palettes having "Override Transaction Behavior" selected will not part of that transaction group.
  10. Answer 13: For HTTP receiver configuration we need to set HTTP connection and link it. # Define output style # Parse Post Method data if required # If any parameters needed in the output then we need to define it in Parameters tab. # If we need to authenticate username/pwd after we receive the message we can get it by checking 'Expose Security Context'. For enabling Secure connection we need to select the SSL option in HTTP Connection Palette and configure as per the requirement in Configure SSL button.
  11. Answer 14 : # SOAP palette can configure only one WSDL but we can configure multiple WSDLs in Service palette. # SOAP palette can only call one operation at one time but we can configure multiple operations in Service palette.
  12. Answer 15: # SOAP over HTTP should be used when service is being invoked from UI or we can say when UI involvement is there. # SOAP over JMS we should use when we have to do only backend operations. Like invoking the service to load files in to database. In that case we can use SOAP over JMS.
  13. Answer 16 : If in a select statement we are getting more than 0.1 million records then process might get hanged if we don't have that much memory. To avoid it we can select 'Process in Subsets' in JDBC Query Palette and get records in batches as per the configuration and process them in a more efficient manner.
  14. hi Suchish i could not help noticing that you have missed or diverted all the scenario based questions . Could you please answer them.for eg Q5,Q11. regards
    • Answer 5: In this case the timer process will get the latest value of shared variable if any updates done by any process in that time frame. As the shared variable always used across processes so it will get the latest value always.
    • This can be achieved both in server side and Client (Consumer) side. - Server side it can be done if we set prefetch value to 1. It means when consumer is ready it will fetch 1 message at a particular instance when it's ready. - Client side it can be done by setting the EMS Receiver ( Acknowledgement mode: Client and Max Session: 1) Please subscribe if you feel the post useful.. Thanks

Leave a Reply

Your email address will not be published. Required fields are marked *

Main Menu