Tibco Spotfire Interview Questions and answers
1) What are the modes of TIBCO BW Installations?
Ans:
2) If you have installed a particular version of TIBCO software e.g. TIBCO BW X.Y.Z, What are X, Y and Z number stands for? Ans: Integration can be at different application layers: X:Patch Y:Major Z:Minor
3) What is the role of TRA? Ans: TRA stands for TIBCO Runtime Agent. The TRA has two main functions: Supplies an agent that is running in the background on each machine. The agent is responsible for starting and stopping processes that run on a machine according to the deployment information. The agent monitors the machine. That information is then visible via TIBCO Administrator. Supplies the run-time environment, that is, all shared libraries including third-party libraries.
4) What are the resources that gets included in the EAR file, created by the TIBCO Designer? Ans: EAR file can contain local project resources, LibraryBuilder resources, and files as specified in AliasLibrary resources. In addition, the TIBCO Designer classpath may include references to other files that are included in the EAR file.
5) What are the revision control system options available in TIBCO designer? Ans: File sharing VSS Perforce XML Canon ClearCase iPlanet CVS PVCS
6) What are the different modes of service invocation? Ans: Services can be invoked in several ways. A one-way operation is executed once and does not wait for a response. A request-response operation is executed once and waits for one response. In a request-response service, communication flows in both directions. The complete interaction consists of two point-to-point messages—a request and a response. The interaction is only considered complete after the response has arrived. Publication (notification) means an operation sends information on an as-needed basis, potentially multiple times. Subscription means incoming information is processed on an as-needed basis, potentially multiple times.
7) What is vcrepo.dat? Ans: TIBCO Designer creates a file named vcrepo.dat in the project root directory when you first save the project. This file is used to store properties such as display name, TIBCO Rendezvous encoding, and description. This file can be used for identification in place of the project root directory and can be used as the repository locator string (repoUrl).
8) What are the TIBCO BW activities that can participate in transactions? Ans: 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
9) What are the different types of Transactions TIBCO provides? Ans: TIBCO BusinessWorks offers a variety of types of transactions that can be used in different situations. You can use the type of transaction that suits the needs of your integration project. When you create a transaction group, you must specify the type of transaction. TIBCO BusinessWorks supports the following types of transactions: JDBC Java Transaction API (JTA) UserTransaction XA Transaction
10) What activities are supported in JTA Transaction? Ans: The Java Transaction API (JTA) UserTransaction type allows: JDBC JMS ActiveEnterprise Adapter (using JMS transports) EJB activities to participate in transactions.
11) What activities are supported in XA Transaction ? Ans: The XA Transaction type allows: JDBC activities ActiveEnterprise Adapter activities that use the JMS transport JMS activities to participate in transactions. Note:For JMS activities and ActiveEnterprise Adapter activities, request/reply operations cannot participate in an XA transaction. Also, EJB activities cannot participate in an XA Transaction group.
12) What are the possible Error output’s of Read File activity? Ans: Integration can be at different application layers:
13) What is the purpose of the inspector activity ? Ans: The Inspector activity is used to write the output of any or all activities and process variables to a file and/or stdout. This is particularly useful when debugging process definitions and you wish to see the entire schema instead of mapping specific elements to the Write File activity.
14) What are the maximum/minimum of threads available for incoming HTTP ? Ans: The maximum/minimum of threads available for incoming HTTP : 75/10
15) How can unauthorized users be prevented from triggering a process ? Ans: Unauthorized users be prevented from triggering a process by giving ‘write’ access for the process engine to only selected users. Only users with ‘write’ access can do activities like deploying applications, starting/stopping process engines etc.
16) What are the mandatory configuration parameters for FTP Connection & FTP with firewall ? Ans: The mandatory configuration parameters for FTP Connection
17) how to design a process such that depending on number of records updated in a database, 3 different sub-processes may be called ? Ans: Define 3 transitions from JDBC update with condition on the no of updates and call appropriate child processes.
18) How to use legacy .dat file format with latest designer ? Ans: Convert .dat file to multi file project using Administration tab while starting up Designer(Other one being Project tab) and then open the multifile project in the normal way.
19) What are the encodings supported by designer ? Ans. Encodings supported by designer are
20) What are the 4 main panels of the Designer window ? Ans: The 4 main panels of the Designer window are
21) How do you determine if there are broken references in the project? Ans: Project -> Validate for deployment
22) Where are the Designer preferences stored ? Ans: Designer preferences stored are stores in a file called ‘Designer .prefs’ in the user home directory.
23) Explain the process configuration parameters – Max Jobs, Flow Limit & Activation Limit ? Ans: Max Jobs : Max Jobs specifies the number of process instances that are kept in memmory. 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. Activation Limit : Activation limit flag specifies that once a process instance is loaded it must be placed in memmory till it completes execution. By default it is enabled.
24) What are the options for configuring storage for process engine’s checkpoint repository ? Ans: The options for configuring storage for process engine’s checkpoint repository are: Local File Database. Fault tolerant engines can recover from a checkpoint only when database is used.
25) Process engines in a fault tolerant group can be configured as peers or master secondary.How do these differ ? Ans: The options for configuring storage for process engine’s checkpoint repository are: Peer means all of them have the same weight. In this case when one engine fails another one takes over and continues processing till it fails. In master secondary configuration weights are unequal, the secondary starts processing when master fails. But when master recovers, secondary stops and master continues processing.
26) What are the uses of grouping activities ? Ans: Uses of grouping activities are: Create a set of activities having a common error transition. Repeat group of activities based on a condition. Iterate over a list. Repeat until condition true. Repeat on Error until condition true. Group activities into a transaction. To create a critical section area that synchronizes process instances. A ‘Pick First Group’ allows you to wait for the occurence of multiple events and proceed along a path following the first event to occur.
27) What is the purpose of a Lock shared configuration resource? Ans: 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 processs definition inside one engine, just specify the scope as ‘Single’.
28) How to control the sequence of execution of process instances created by a process starter ? Ans: Use the sequencing key field in the Misc tab of any process starter. Process instances with the same value for this field are executed in the sequence in which they are started.
29) Can there be two error transitions out of an activity ? Ans: No. There can be only one Error and one Success if no matching condition transition out of each activity.
30) When is a ‘No Action’ group used ? Ans: ‘No Action’ group used to have a set of activities having a common error transition
31) What activity can be used to set the value of a ‘User defined process variable’ ? Ans: The ‘Assign’ activity can be used to set the value of a ‘User defined process variable’.
32) Which are the two process variables available to all activities with inputs ? Ans: $_globalVariables $_processContext
33) Which mechanism can be used to pass data between a process instance and a called sub process other than mapping from/to the callee’s input/output ? Ans: This can be accomplished using job shared variables, unless in the call process activity the ‘Spawn’ flag is enabled in which case the called sub process is a new job and hence gets a fresh copy of the job shared variable initialized as per its configuration. A shared variable can overcome this limitation as it’s scope is not limited to one job.
34) What are the three scenarios where BW engine has to be configured with database persistence instead of Local File ? Ans: The three scenarios are: Shared Variables across BW engines. Locking across groups in multiple BW engines. Wait Notify across BW engines.
35) If you want a group to be executed if there is some unhandled error but subject to some max number of iterations which group do you use ? Ans: We can use Repeat on Error until true
36) When is a ‘Generate Error’ activity useful? Ans: When you handle an error inside a called subprocess or group and want to rethrow the error to the caller(happens by default if you dont handle the error in the called process)
37) Which activity is used for detecting duplicate message processing? Ans: CheckPoint activity – Specify the uniqueID for the duplicate key field and engine maintains list of these key fields. When a process come to checkpoint activity with the same value for duplicate key which already exists, it throws a DuplicateException. An error transition can then handle this case.
38) Give an example where graceful migration of service from one machine to another is not possible. Ans: HTTP Receiver. In this case the receiver on new machine starts listening on the same port, but you need to redirect requests from the old machine to the new one.
39) What are the types of adapter services ? Ans: Types of adapter services are : Subscriber Service Publisher Service Request-Response Service Request-Response Invocation Service
40) If the business process needs to invoke another web service which resource do you use ? Ans: SOAP request reply activity. If the business process needs to be exposed as SOAP service use SOAP Event Source in conjunction with SOAP Send Reply or SOAP Send Fault.
41) What is the functionality of the Retrieve Resources resource? Ans: It can be used to serve the wsdl file of a SOAP Event Source to a (http) client. Construct a process like: HTTP Receiver -> Retrieve Resources -> Send HTTP Response Now the WSDL file for a SOAP service can be retreived using the http request where ‘path’ is the folder path to the SOAP Event Source process and ‘resourceName’ is the name of the process
42) What is the scope of user defined process variables ? Ans: The scope of user defined process variables is only the process in which it is defined.(Not even inside a sub process that is invoked from this process)
43) What is difference between shared variable and job shared variable ? Ans: Both of them can be manipulated via the palette resources ‘Get shared variable’ and ‘Set shared variable’. A job shared variable is private to one instance of job or in other words each job has a fresh copy. In the case of shared variable the same copy is shared across all job instances. It can even be persisted and can survive BW engine restarts and even shared across multiple BW engines(when deployed using DB persistence).
44) How do wait-notify resources work ? Ans: Basically wait and notify should share a common notification configuration which is just a schema definition for data that will be passed from notifier to waiter. Specific instances of waiter & notifier are corrrelated via a key. For example: when one process is in wait state for key ‘Order-1’, it waits till another process issues a notification with the same key value.
45) What is the default Axis in XPath ? Ans: Child axis- What this means is that when you select “BOOK” from the current context, it selects a child node with that name, not a sibling with that name. Other axes are parent , self , sibling etc.
46) What are the output formats for XSLT? Ans:XML HTML Text
47) What does ‘ Success if no matching condition’ transition mean ? Ans: Lets say between two nodes N1 and N2, there are 3 success transitions with condition and there is no success transition without condition. If none of the conditions match then a ‘Success if no matching condition’ transition can be used. Also if there is a success transition and also success transitions with condition and if the condition matches then both the sucess transition (no condition) as well as the transition(s) with matching conditions are followed. So you can use ‘Success if no matching condition’ to prevent duplicate paths of execution.
48) What is the Purpose of $_error variable ? Ans: $_error variable is available in the node following the error transition. It captures the error message, error code etc.
49) What are the cases where business process cant proceed correctly subsequent to restart from a checkpoint ? Ans: Sending HTTP response, confirming an email/jms message etc. This is because the confirmation or sending HTTP response has to done in the same session. When engine crashes these sessions are closed at their socket level. In such cases send response/confirm before checkpoint.
50) Which group do you use to wait for multiple events and proceed with the first to occur ? Ans: A ‘Pick First Group’. If you appreciate my blogs, want to know more about Tibco Spotfire and it’s certification, do click here.
- GUI mode
- Console mode
- Silent mode
2) If you have installed a particular version of TIBCO software e.g. TIBCO BW X.Y.Z, What are X, Y and Z number stands for? Ans: Integration can be at different application layers: X:Patch Y:Major Z:Minor
3) What is the role of TRA? Ans: TRA stands for TIBCO Runtime Agent. The TRA has two main functions: Supplies an agent that is running in the background on each machine. The agent is responsible for starting and stopping processes that run on a machine according to the deployment information. The agent monitors the machine. That information is then visible via TIBCO Administrator. Supplies the run-time environment, that is, all shared libraries including third-party libraries.
4) What are the resources that gets included in the EAR file, created by the TIBCO Designer? Ans: EAR file can contain local project resources, LibraryBuilder resources, and files as specified in AliasLibrary resources. In addition, the TIBCO Designer classpath may include references to other files that are included in the EAR file.
5) What are the revision control system options available in TIBCO designer? Ans: File sharing VSS Perforce XML Canon ClearCase iPlanet CVS PVCS
6) What are the different modes of service invocation? Ans: Services can be invoked in several ways. A one-way operation is executed once and does not wait for a response. A request-response operation is executed once and waits for one response. In a request-response service, communication flows in both directions. The complete interaction consists of two point-to-point messages—a request and a response. The interaction is only considered complete after the response has arrived. Publication (notification) means an operation sends information on an as-needed basis, potentially multiple times. Subscription means incoming information is processed on an as-needed basis, potentially multiple times.
7) What is vcrepo.dat? Ans: TIBCO Designer creates a file named vcrepo.dat in the project root directory when you first save the project. This file is used to store properties such as display name, TIBCO Rendezvous encoding, and description. This file can be used for identification in place of the project root directory and can be used as the repository locator string (repoUrl).
8) What are the TIBCO BW activities that can participate in transactions? Ans: 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
9) What are the different types of Transactions TIBCO provides? Ans: TIBCO BusinessWorks offers a variety of types of transactions that can be used in different situations. You can use the type of transaction that suits the needs of your integration project. When you create a transaction group, you must specify the type of transaction. TIBCO BusinessWorks supports the following types of transactions: JDBC Java Transaction API (JTA) UserTransaction XA Transaction
10) What activities are supported in JTA Transaction? Ans: The Java Transaction API (JTA) UserTransaction type allows: JDBC JMS ActiveEnterprise Adapter (using JMS transports) EJB activities to participate in transactions.
11) What activities are supported in XA Transaction ? Ans: The XA Transaction type allows: JDBC activities ActiveEnterprise Adapter activities that use the JMS transport JMS activities to participate in transactions. Note:For JMS activities and ActiveEnterprise Adapter activities, request/reply operations cannot participate in an XA transaction. Also, EJB activities cannot participate in an XA Transaction group.
12) What are the possible Error output’s of Read File activity? Ans: 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.
13) What is the purpose of the inspector activity ? Ans: The Inspector activity is used to write the output of any or all activities and process variables to a file and/or stdout. This is particularly useful when debugging process definitions and you wish to see the entire schema instead of mapping specific elements to the Write File activity.
14) What are the maximum/minimum of threads available for incoming HTTP ? Ans: The maximum/minimum of threads available for incoming HTTP : 75/10
15) How can unauthorized users be prevented from triggering a process ? Ans: Unauthorized users be prevented from triggering a process by giving ‘write’ access for the process engine to only selected users. Only users with ‘write’ access can do activities like deploying applications, starting/stopping process engines etc.
16) What are the mandatory configuration parameters for FTP Connection & FTP with firewall ? Ans: The mandatory configuration parameters for FTP Connection
- FTP host
- Port
- Username & Password>
17) how to design a process such that depending on number of records updated in a database, 3 different sub-processes may be called ? Ans: Define 3 transitions from JDBC update with condition on the no of updates and call appropriate child processes.
18) How to use legacy .dat file format with latest designer ? Ans: Convert .dat file to multi file project using Administration tab while starting up Designer(Other one being Project tab) and then open the multifile project in the normal way.
19) What are the encodings supported by designer ? Ans. Encodings supported by designer are
- ISO8859-1(Latin-1)
- UTF-8
20) What are the 4 main panels of the Designer window ? Ans: The 4 main panels of the Designer window are
- Project panel
- Palette panel
- Design panel
- Configuration panel
21) How do you determine if there are broken references in the project? Ans: Project -> Validate for deployment
22) Where are the Designer preferences stored ? Ans: Designer preferences stored are stores in a file called ‘Designer .prefs’ in the user home directory.
23) Explain the process configuration parameters – Max Jobs, Flow Limit & Activation Limit ? Ans: Max Jobs : Max Jobs specifies the number of process instances that are kept in memmory. 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. Activation Limit : Activation limit flag specifies that once a process instance is loaded it must be placed in memmory till it completes execution. By default it is enabled.
24) What are the options for configuring storage for process engine’s checkpoint repository ? Ans: The options for configuring storage for process engine’s checkpoint repository are: Local File Database. Fault tolerant engines can recover from a checkpoint only when database is used.
25) Process engines in a fault tolerant group can be configured as peers or master secondary.How do these differ ? Ans: The options for configuring storage for process engine’s checkpoint repository are: Peer means all of them have the same weight. In this case when one engine fails another one takes over and continues processing till it fails. In master secondary configuration weights are unequal, the secondary starts processing when master fails. But when master recovers, secondary stops and master continues processing.
26) What are the uses of grouping activities ? Ans: Uses of grouping activities are: Create a set of activities having a common error transition. Repeat group of activities based on a condition. Iterate over a list. Repeat until condition true. Repeat on Error until condition true. Group activities into a transaction. To create a critical section area that synchronizes process instances. A ‘Pick First Group’ allows you to wait for the occurence of multiple events and proceed along a path following the first event to occur.
27) What is the purpose of a Lock shared configuration resource? Ans: 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 processs definition inside one engine, just specify the scope as ‘Single’.
28) How to control the sequence of execution of process instances created by a process starter ? Ans: Use the sequencing key field in the Misc tab of any process starter. Process instances with the same value for this field are executed in the sequence in which they are started.
29) Can there be two error transitions out of an activity ? Ans: No. There can be only one Error and one Success if no matching condition transition out of each activity.
30) When is a ‘No Action’ group used ? Ans: ‘No Action’ group used to have a set of activities having a common error transition
31) What activity can be used to set the value of a ‘User defined process variable’ ? Ans: The ‘Assign’ activity can be used to set the value of a ‘User defined process variable’.
32) Which are the two process variables available to all activities with inputs ? Ans: $_globalVariables $_processContext
33) Which mechanism can be used to pass data between a process instance and a called sub process other than mapping from/to the callee’s input/output ? Ans: This can be accomplished using job shared variables, unless in the call process activity the ‘Spawn’ flag is enabled in which case the called sub process is a new job and hence gets a fresh copy of the job shared variable initialized as per its configuration. A shared variable can overcome this limitation as it’s scope is not limited to one job.
34) What are the three scenarios where BW engine has to be configured with database persistence instead of Local File ? Ans: The three scenarios are: Shared Variables across BW engines. Locking across groups in multiple BW engines. Wait Notify across BW engines.
35) If you want a group to be executed if there is some unhandled error but subject to some max number of iterations which group do you use ? Ans: We can use Repeat on Error until true
36) When is a ‘Generate Error’ activity useful? Ans: When you handle an error inside a called subprocess or group and want to rethrow the error to the caller(happens by default if you dont handle the error in the called process)
37) Which activity is used for detecting duplicate message processing? Ans: CheckPoint activity – Specify the uniqueID for the duplicate key field and engine maintains list of these key fields. When a process come to checkpoint activity with the same value for duplicate key which already exists, it throws a DuplicateException. An error transition can then handle this case.
38) Give an example where graceful migration of service from one machine to another is not possible. Ans: HTTP Receiver. In this case the receiver on new machine starts listening on the same port, but you need to redirect requests from the old machine to the new one.
39) What are the types of adapter services ? Ans: Types of adapter services are : Subscriber Service Publisher Service Request-Response Service Request-Response Invocation Service
40) If the business process needs to invoke another web service which resource do you use ? Ans: SOAP request reply activity. If the business process needs to be exposed as SOAP service use SOAP Event Source in conjunction with SOAP Send Reply or SOAP Send Fault.
41) What is the functionality of the Retrieve Resources resource? Ans: It can be used to serve the wsdl file of a SOAP Event Source to a (http) client. Construct a process like: HTTP Receiver -> Retrieve Resources -> Send HTTP Response Now the WSDL file for a SOAP service can be retreived using the http request where ‘path’ is the folder path to the SOAP Event Source process and ‘resourceName’ is the name of the process
42) What is the scope of user defined process variables ? Ans: The scope of user defined process variables is only the process in which it is defined.(Not even inside a sub process that is invoked from this process)
43) What is difference between shared variable and job shared variable ? Ans: Both of them can be manipulated via the palette resources ‘Get shared variable’ and ‘Set shared variable’. A job shared variable is private to one instance of job or in other words each job has a fresh copy. In the case of shared variable the same copy is shared across all job instances. It can even be persisted and can survive BW engine restarts and even shared across multiple BW engines(when deployed using DB persistence).
44) How do wait-notify resources work ? Ans: Basically wait and notify should share a common notification configuration which is just a schema definition for data that will be passed from notifier to waiter. Specific instances of waiter & notifier are corrrelated via a key. For example: when one process is in wait state for key ‘Order-1’, it waits till another process issues a notification with the same key value.
45) What is the default Axis in XPath ? Ans: Child axis- What this means is that when you select “BOOK” from the current context, it selects a child node with that name, not a sibling with that name. Other axes are parent , self , sibling etc.
46) What are the output formats for XSLT? Ans:XML HTML Text
47) What does ‘ Success if no matching condition’ transition mean ? Ans: Lets say between two nodes N1 and N2, there are 3 success transitions with condition and there is no success transition without condition. If none of the conditions match then a ‘Success if no matching condition’ transition can be used. Also if there is a success transition and also success transitions with condition and if the condition matches then both the sucess transition (no condition) as well as the transition(s) with matching conditions are followed. So you can use ‘Success if no matching condition’ to prevent duplicate paths of execution.
48) What is the Purpose of $_error variable ? Ans: $_error variable is available in the node following the error transition. It captures the error message, error code etc.
49) What are the cases where business process cant proceed correctly subsequent to restart from a checkpoint ? Ans: Sending HTTP response, confirming an email/jms message etc. This is because the confirmation or sending HTTP response has to done in the same session. When engine crashes these sessions are closed at their socket level. In such cases send response/confirm before checkpoint.
50) Which group do you use to wait for multiple events and proceed with the first to occur ? Ans: A ‘Pick First Group’. If you appreciate my blogs, want to know more about Tibco Spotfire and it’s certification, do click here.
Nitesh
Author
Bonjour. A curious dreamer enchanted by various languages, I write towards making technology seem fun here at Asha24.