1) What all palettes you have worked in TIBCO BW 5.0?
Answer - File palette, generall activities palette, jdbc palette, http palette, jms palette, parse palette, service palette, soap palette, wsdl palette.
2) What is the critical section in TIBCO Business works and what is it used for?
Answer - Critical section is used to sync process instances so that only once 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. Particularly used for controlling access to shared variables. Critical section is one of the group actions. Others are iterate, repeat until true, repeat on error until true, while true, pick first and transaction. If we select critical section as the group then we get two options. Single group and multiple groups.
Single Group
If you wish to synchronize process instances for a single process definition in a
single process engine (only one ear(instance) is deployed ), perform the following:
1. Create a group around the activities you wish to synchronize.
2. Specify Critical Section for the Group Action field.
3. Specify Single Group for the Scope field.
Only one process instance at any given time will execute the activities contained
in the Critical Section group.
Multiple Groups
If you wish to synchronize process instances for multiple process definitions, or if
you wish to synchronize process instances across multiple process engines,
perform the following:
1. Create a Lock shared configuration resource and specify a name for the
resource.
2. To perform the synchronization across multiple process engines, check the
Multi-Engine field of the Lock resource.
When the process instances are executed by the same process engine, locking
is performed in memory. When the process instances are executed across
multiple engines, the process engines must be configured to use a database for
storage, and a database transaction is performed to ensure that only one
process instance is executing the critical section group at any given time.
3. Create a group around the activities you wish to synchronize.
4. Specify Critical Section for the Group Action Field.
5. Specify Multiple Groups for the Scope field.
6. Use the Browse button in the Lock Object field to locate the Lock shared
configuration resource you created in Step 1.
7. Perform steps 3 to 6 for any process definitions you wish to synchronize.
Make sure you specify the same Lock shared configuration object for all
Critical Section groups.
3) If there are three activities in the critical section, jdbc update then a write file and then again jdbc update. If the second jdbc update fails then what will happen to the file written by write file activity?
Answer - The contents of the file will persist.
4) What are different types of transaction groups supported in TIBCO BW?
Answer - Iterate, repeat until true, repeat on error until true, critical section, transaction, pick first, while true.
5) Can two queue receivers listen to the same queue? If yes, if the message arrives on the queue, when receiver receives it?
Answer - The queue which has made connection first. First come first serve.
6) If the message has hit the queue, and there are no receivers for it, and the receiver comes alive after 6 hours, what happens to the message?
Answer - Message stays on the queue.
7) If there are five messages and prefetch property is set to 4 then what happens?
Answer - Fetches 4 messages
8) What are the different types of variables available in TIBCO?
There are three types of variables available in TIBCO. They are -
1. Global variables -
Global variables are used for assigning constants a value which is used over a project
2. Process variables -
Process variables are again of four types. They are 1) Activity output 2) Predefined process variables 3)Error variables 4) User defined process variables. Predefined process variables include $_GlobalVarialbes and $_ProcessContext
3. shared variables -
User defined process variables could be defined at a process definition level and assigned a value by using an assign activity.
9) What is the difference between process variable and shared variable?
Answer -
10) What is the difference between job shared variable and shared variable?
Answer -
11) How do u use get shared variable and set shared variable?
Answer -
12) The first time you use a get shared variable does it throw an error?
Answer -
13) How have you done error handling?
Answer -
14) What are the different acknowledgment modes for a message?
Answer - There are 6 modes of acknowledgement. They are -
1) Auto – message is acknowledged automatically2) Client – use confirm activity for acknowledgement3) TIBCO EMS Explicit – use confirm activity for acknowledgement, only available for TIBCO EMS4) TIBCO EMS no ack5)Dups ok – message is acknowledged automatically on its receipt6) Transactional – when a transaction is included in a process definition. The message is ack when the transaction commits.
15) What is prefetch and failsafe?
Answer - Prefetch is fetching the messages from the server before receiver calls. Failsafe property enables to write persistence messages to the file with synchronous i/o calls.
16) How do you send a response from a web service?
Answer - We write to output to the queue from which we received the request.
17) What is the difference between soap event source and service palette?
Answer - Soap event source is used for single operation, single end point. Service palette is used for multiple operations, multiple end point bindings like http, jms.
18) If you want to count the number of times a particular job is called, how will you go about doing it?
Answer - Use job shared variable in a critical section.
19) If there are hundred messages lying on the queue, what will you do and which activity will you use to retrieve one message at a time?
Answer - JMS Queue receiver with confirm activity. Sequencing key in a misc tab of the configuration could also be used.
20) What is the sequencing key in the misc tab used for?
Answer - It is used to call process instances in the order they are created.
21) What happens if I put a static value say ‘nitin’ in the sequencing key?
Answer - All the processes which have this key in their sequencing key field will be executed in the order they were created.
22) What do you mean by max job and flow limit?
Answer -
23) What are durable subscribers?
Answer -
24) What is SQL direct? What is it used for?
Answer - SQL direct is used to execute command dynamically using output of other activities. This activity allows you to execute commands which other activities in the JDBC don’t allow, like DDL command create table.
25) Can you change a value of a global variable at runtime?
Answer - You can change the value of a global variable when you deploy your project in TIBCO Administrator.
See the section on modifying runtime variables in TIBCO BusinessWorks Administration for more information on using TIBCO Administrator.
You can also specify values for global variables when starting a process engine on the command line. To do this, specify the following as a command line argument when starting the process engine:
-tibco.clientVar.<variablePathAndName> <value>
where variablePathAndName is the name of the variable you wish to set, including the path to the variable if it is contained in a folder. Value is the value you wish to set the variable to. For example, if you have a global variable named item1 contained in a folder named myGroup and you wish to set its value to 500, add the following argument to the command line when starting the process engine:
-tibco.clientVar.myGroup/item1 500
Max Jobs: If the number of process instances in memory have reached the value of Max Jobs, then the process instances created are temporarily held on a disk. These process instances will be moved back into memory when sufficient memory is available.
ReplyDeleteFlowLimit: If the number of process instances in memory have reached the value of Max Jobs, then the process instances created are temporarily held on a disk. These process instances will be moved back into memory when sufficient memory is available. The number of process instances that can be created in memory is also limited by the memory available on the machine and the memory allocated to the JVM on which the process engine executes.
ReplyDeleteMax Jobs = Max number of jobs that can be loaded in memory for processing at a time
ReplyDeleteFlowLimit = Number of jobs/threads/processes that can be created at any given time. Once FlowLimit is reached, process starter suspends creating new jobs until the Flowlimit value is below the #.
Process Variables = are process scoped variables used for allowing access to data within the project. Some of the Process variables are per-defined for example process ID, project Name, Engine Name etc, user-defined process variables can also be created for containing process specific data.
ReplyDeleteShared Variables = are used to share data across process instances, these variables are mostly useful in situations where you like to make common set of data / information available to all process instances and / or pass data across process instances
Good Article.
ReplyDeletenice article but still there should be more tech questions about the palettes
ReplyDeleteGood article..(y)
ReplyDeleteThank You for sharing your article. I like it. It is great information about TIBCO BW interview questions.
ReplyDelete