You are on page 1of 66

Tibco Interview Questions

First part TIBCO BW

1. What are the modes of TIBCO BW Installations ?


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?

Integration can be at different application layers:

X:Patch
Y:Major
Z:Minor

3.What is the role of TRA?


TRA stands for TIBCO Runtime Agent.
The TRA has two main functions:

Supplies an agent that is running in the background on each machine.


o The agent is responsible for starting and stopping processes that run on a machine
according to the deployment information.
o 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?
An 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?
File sharing
VSS
Perforce
XML Canon
ClearCase
iPlanet
CVS
PVCS

6.What are the different modes of service invocation?


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 messagesa 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?
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?


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?


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?

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 ?

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?

Integration can be at different application layers:

FileNotFoundException :Thrown when yhe file does not exist.


UnsupportedEncodingException:Thrown when the text files 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 ?

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 ?


The maximum/minimum of threads available for incoming HTTP : 75/10

15.How can unauthorized users be prevented from triggering a process ?


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 ?
The mandatory configuration parameters for FTP Connection

FTP host
Port
Username & Password>

If Firewall is enabled in addition the proxy host and port are required.

17.how to design a process such that depending on number of records updated


in a database, 3 different sub-processes may be called ?

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 ?


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 ?


Encodings supported by designer are

ISO8859-1(Latin-1)
UTF-8

20.What are the 4 main panels of the Designer window ?


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?


Project -> Validate for deployment

22.Where are the Designer preferences stored ?

Designer preferences stored are stores in a file called 'Designer <ver>.prefs' in the user home directory.

23.Explain the process configuration parameters - Max Jobs, Flow Limit & Activation Limit ?
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 ?

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 gro up can be configured as peers or master


secondary.How do these differ ?

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 ?

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?

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 ?

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 ?

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 ?

'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' ?

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 ?

$_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 ?

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 ?

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 ?

We can use Repeat on Error until true

36.When is a 'Generate Error' activity useful?

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?

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.

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 ?


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 ?
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?

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

http://<host>:<port>/<path>/<resourceName>?wsdl

where 'path' is the folder path to the SOAP Event Source process and 'resourceName' is the name of the
process

Example : http://purch:8877/Purchasing/GetPurchaseOrder?wsdl

42.What is the scope of user defined process variables ?


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 ?


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 ?

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 ?


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?

XML
HTML
Text

47.What does ' Success if no matching condition' transition mean ?

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 ?

$_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 ?
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 ?

A 'Pick First Group'.


Second part TIBCO BW

Which two input parameters are mandatory for the BuiIdEAR Utility?

Answer:

1. the location of the Tibco Designer project ,

2. the project path of the Enterprise Archive Resource

Which two actions can be performed using coercions?

Answer:

1. change the type of an element ,

2. set the type of a undefined element

Which three Event Types are available when specifying a custom alert for a Tibco
ActiveMatrix BusinessWorks application?

Answer:

1. Log Event,

2. First Component Failure ,

3. Subsequent Component Failure

You have created an XSD schema and a process definition in your Tibco
ActiveMatrix BusinessWorks project. You need to share this schema and the
process definition with other developers working on the same project for reuse.
What should you use to accomplish this?

Answer: LibraryBuilder

Which two operations can be performed with the Tibco Domain Utility?

Answer:

1. add a machine to the domain,

2. secure the domain using HTTPS


You have created a Web service to expose to several customers. In the
implementation process, you need to access the username of each client invoking
the Web service for authorization purposes. The username information is passed
as a SOAP header in the SOAP requests. Which resource allows you to hold the
header data from the incoming requests?

Answer:Context Resource
Third part General

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 automatically
2) Client use confirm activity for acknowledgement
3) TIBCO EMS Explicit use confirm activity for acknowledgement, only available for TIBCO EMS
4) TIBCO EMS no ack
5)Dups ok message is acknowledged automatically on its receipt
6) 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 dont 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
Fourth part

Tibco general interview questions answers

How to create global variables and if we create where do we


have to use in the project ?
ans :
Global variables provide an easy way to set defaults for use throughout your project. There are several
ways in which they can be used.
Those can be created in the project pannel we will have a tab name by Global variables there we can
specify these...

what is global variables?


Global Variables are the variables that are used anywhere in the project. These can be called or used
across the process or sub process that is within the project.
Global variables can be overridden at runtime.
There are 3 types of variables
1) Global Variables-----through out the project ( used for constants)
2) Process variables-----Activities in the project where the variables are defined.
3) Shared Variables ------ Across multiple process instances (used to share data) these variables allows to
specify constants that can be used throughout the project. The constants can be specified and changed
while designing and testing your project.
Global Variables are define for the value which remain fix during whole process.These variable's can't be
modified during process execution.
Global variables allows you to specify constants that can be used throughout the project. The constants
can be changed while designing and testing your project. we can also set different values for each
deployment of your project. we can add/edit the Global variables using Global Variable Editor.

How to create adapters? how to connect adapters? and how to build


TIBCO have different adapters for different application with different adapters those are ActiveDatabase
adapter to oracle file adapter to file formats like different text file, doc, etc.
MQ series adapter to mainframe with using webshpere
R/3 adapter for SAP
we cannot create adapters, we must install adapters which we required. we have so many adapters such
as sap, mqseries, adb, siebel, peoplesoft, etc..........we must install required adapters for our project.

How can we connect means, after installing the req adapter


we can use the activities provided by tht adapter.
What Activities are Supported in JTA Transaction?
The Java Transaction API (JTA) User Transaction type allows
JDBC
JMS
Active Enterprise Adapter (using JMS transports)
EJB activities
to participate in transactions.

What are the Different Types of Transactions TIBCO Provides?


TIBCO Business Works 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 Business Works supports the
following types of transactions
JDBC
Java Transaction API (JTA) User Transaction
XA Transaction

What is Vcrepo.Dat?
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).

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

What are the Different Modes of Service Invocation?


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
messagesa 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.

What are the Revision Control System options available in TIBCO designer?
File sharing
VSS
Perforce
XML Canon
ClearCase
IPlanet
CVS
PVCS

What are the Resources that gets Included in the EAR File created by the TIBCO
Designer?
An 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.
TIBCO EAR file

What is The Role of TRA?


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.

If you have Installed a Particular Version of TIBCO Software ? What a re X Y and Z


Number Stands For?
Integration can be at different application layers
X Patch
Y Major
Z Minor

What is File adapter, ADB Adapter in tibco?


DIff BW Them
*ADB Adapter for Database......The File adapter transfers files into and out of Microsoft BizTalk Server.
The File adapter consists of two adaptersa receive adapter and a send adapter.
*ActiveDatabase adapter to oracle file adapter to file formats like different textfile,doc etc
ADB adapter is used to transfer bulk of data from the application or Database to other Database.
while configuring the ADB the PublicationService has P_table in which the source table modified data is
triggered and this is polled into the messaging layer. From the messaging layer the Subscriptionservice
pulls the data and stores into the target table. And now the data stored can be accessed by different
applications. When bulk transformation of data is required we go
for ADB.

how to create adapters?how to connect adapters? and how to build?


you can create adaptor by using core java.then after you have to pass the parameter thru XML file.
adapters can be created by using adapterSDK activity.this is used to develop custom adapters.adapters
can be connected through messaging layers(jms or rv)

You don't create an Adapter in TIBCO. One configures an Adapter using a an Adapter service Palette and
the Business process definition that you create in Designer. Adapters are APIs like Plug-ins. TiBco SDK
has already got Adapters like JDBC connection or ODBC connection for connecting to a database service.
There are also Adapter Palettes available for CRM or ERP Applications like Seibel, SAP, JD Edwarts etc. If
one wants to create a custom Adapter service for one has to develop a Application in Some higher level
language like C++, Java, C# or VB.NET as a dll or exe and import into TIBCO shared services as a custom
Palette and give its configuration parameters to define it in TIBCO Designer.

what is soap? how to use soap?


Simple Object Access Protocol used to send XML messages along the network.
server oriented application protocal
it is one of web services using interner and technology
it is act as server and client
first design bw for one application, then it passed to soap server which recieves the incoming requests
via http or soap or jms then ser proxy decodes request into call the to application sevice proxy is
encodeswith reply
SOAP(simple object access protocol) is a protocol used to communcate the web service provider and
web service client.
to use SOAP you require a WSDL(web service description language),which is a XML file. WSDL file
contains inf.about web service provider and its functionality.
Tibco Business works questions (Tibco BW)

1. Explain the processes flow of your latest project by including activities.


ans: for various service implementation I designed processes using various BW activities like JMS
Queue Receiver, XML Parser

2. What are the differences between the versions 2.x and 5.2?
ans:
type 2.x 5.2
deployment In 2.x deployment is done in the designer Here deployment is done using
administrator tool
Name spaces Name spaces are prefixed with tib No tib in name spaces
pallets Extra pallets added
Iterate-reset At the end of each iterate the output is not reset Here the output is reset after
each iteration
installation Here all the components like BW,ADB,FILE etc come as a package Here we will have
to install each component separately
File type All files are .dat. we have to convert these manually Multi format file are available so
that we do not have to convert the dat files

3. What are the activities you worked on?


2. Ans: JMS queue receiver,confirm,checkpoint,XML parser,call process,JDBC update,SOAP,HTTP.
write to log - widely used.
Assign.

4. What is the inspector activity does?


Ans: the inspector activity is used to obtain the output of any activity or all the activities and
process variables.
Scenario: You can use the inspector activity to write the output of any activity or process
variable in the current process. Activities and process variables in a subprocess are not available
to the Inspector activity (but the output of a Call Process activity can be written using the
Inspector activity). If you wish to obtain the output from one or more activities or process
variables in a subprocess, place the Inspector activity in the process definition of the subprocess.

5.Can you tell me at least four starter activities and when they get executed?
3. Ans:
1) Adapter subscriber, adap request response server :-When ever a message comes into a
destination queue or network, listerns to a request from a adapter and sends a respose back to
that adapter
2) File poller :- polls for any changes that occur in the file and with any change grabs the whole
file.
3) Timer:- receive notification Starts a process on the time specified ex: before JDBC QUERY,
starts a process on receiving of data from a notify activity.
4) http receiver :-Starts a process based on a request from http server.
5) Jms queue receiver, jms topic subscriber :- Starts a process when ever a new message comes
into the specified queue, starts a process when ever there is a new message in the specified
topic.
6) Receive mail :- The Receive Mail process starter polls a POP3 mail server for new mail. When
new mail is detected and retrieved, the Receive Mail process starter starts a new process for the
process definition it resides in and passes the mail data to the next activity in the process flow.
7) Rv subscriber:- The Rendezvous Subscriber process starter creates a process when a TIBCO
Rendezvous message on the given subject is received.
Rmi server :- The RMI Server process starter registers the specified remote object name with the
specified registry server and then creates process instances to handle incoming requests for the
object. The process definition acts as the implementation of the specified object.
9) Soap event source :- The SOAP Event Source process starter creates a process instance for
incoming SOAP requests. SOAP is a standard protocol for invoking web services. This allows you
to create a web service using process definitions.
At runtime, a client can retrieve the WSDL file for a process containing this process starter using
an HTTP request. Once the WSDL is retrieved, the client can perform a SOAP request to invoke
the web service.
10)Tcp receiver The TCP Receiver process starter starts a new process when a client requests a
TCP connection.

6. What is the purpose of JMS Queue receiver activity and Queue sender
activity?
Ans: Starts a process when ever a new message comes into the specified queue.
A queue sender activity sends messages into the specified queue.

7. What are acknowledgement modes and where do you set them and what
is the applicability of each mode?
4. Ans:
The acknowledge mode for incoming messages. Can be one of the following:
Auto the message is automatically acknowledged when it is received.
Client the message will be acknowledged at a later point by using the Confirm activity. If the
message is not confirmed before the process instance ends, the message is redelivered and a
new process instance is created to handle the new incoming message. Ensure that your process
definition confirms the message when using this acknowledge mode.
TIBCO EMS Explicit Client Acknowledge this mode behaves exactly the same as the Client
mode, except the session is not blocked and one session can handle all incoming messages.
Dups OK the message is acknowledged automatically when it is received. JMS provides this
mode for lazy acknowledgement, but TIBCO BusinessWorks acknowledges messages upon
receipt.
Transactional this mode is used when a transaction that can process JMS messages is
included in the process definition. The message is acknowledged when the transaction commits.
See TIBCO BusinessWorks Process Design Guide for more information about creating
transactions that JMS activities can participate in.

8. What is a check point activity and confirm activity?


Ans: A checkpoint saves the current process data and state so that it can be recovered at a later time in
the event of a failure. If a process engine fails, all process instances can be recovered and resume
execution at the location of their last checkpoint in the process definition.

The Confirm activity confirms any confirmable messages received by the process instance. For example,
if a process is started because of the receipt of an RVCM message, the Confirm activity can send a
confirmation message to the publisher of the RVCM message

9. What happens if you use check point activity first and confirm next?
ans:
In the case of confirmable messages , you must consider the consequences of performing a checkpoint
before or after a Confirm activity.
If the checkpoint is taken before the Confirm activity, then a crash occurs after a checkpoint but before a
confirm, the original message is resent. In this case, the restarted process can no longer send the
confirmation. However, a new process is started to handle the resent message, and you can implement
your process to handle the restarted and new processes appropriately.
If the checkpoint is taken after a Confirm activity, there is potential for a crash to occur after the Confirm
but before the checkpoint. In this case, the message is confirmed and therefore not redelivered. The
process instance is not restarted, because the crash occurred before the checkpoint.
You must consider the type of processing your process definition performs to determine when a
checkpoint is appropriate if your process definition receives confirmable messages.

10. What is the potential problem with JMS Queue requestor?


Ans:
When we specify a reply to queue there is a chance of other processes sending messages to the same
queue and the jms queue requestor interpreting that as the actual response and sending this wrong
message to the client.

11. What is the other JMS activity you would use to address the problem?
Ans:
Get jms queue message. This incorporates a message ID to identify the true message.

12. What are the activities you used to publish the messages from BW process to
network on RV?
Ans: publish rv message activity (along with the shared resource rv transport).

13. What is the transition in BW?


Ans: to move the data from one activity to another or when conditions exist on the data.

14. What are the different kinds of condition typ es you can have in transition?
Explain Them
Ans:
a)Success :- Take this transition unconditionally. That is, always transition to the activity the transition
points to, if the activity completes successfully.
This is the default condition for transitions.
b)Success with condition :- Specify a custom condition using XPath. If the activity completes successfully,
and the condition you create evaluates to true, the transition is taken to the activity it points to.
You can type in an XPath condition, and you can use the XPath formula builder to drag and drop XPath
expressions and data into the condition. See Chapter 9, XPath for more information about specifying
XPath conditions and using the XPath formula builder.
c)Success if no matching condition :- Take this transition when the activity completes successfully, but
only if no other transitions are taken. This is useful when multiple transitions with conditions are drawn
to other activities. This condition type can be used to handle any cases not handled by the conditions on
the other transitions.
d)Error :- Take this transition if there is an error during processing of the activity.

15. What is Generate Error activity? What the applications of it ?


Ans:This activity generates an error and causes an immediate transition to any error transitions. If there
are no error transitions, the process instance halts execution. This activity is useful in a group or in a
called process. If you would like to catch and raise your own error conditions, you can use this activity to
do so.

16. What are the shared variables and process variables?


Ans:
Process variables: Process variables are data structures available to the activities in the process. You can
define your own process variables and assign values to them in your process definition. Process
variables are defined on the Process Variables tab of the Process Definition resource. And assigning
values to these kind of variables is done using the assign activity.
Shared variables: 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. This type of shared variable
is useful if you wish to pass data across process instances or if you wish to make a common set of
information available to all process instances.

17. What is XPATH?


Ans: isa XML based path language used to navigate the XML document and manipulate the data

18. What is XSD?


Ans: XML schema definition.

19. What is namespace in XSD?


Ans: A name conflict will occur when two different documents use the same element names. So each
element is given a unique namespace.

20)what is a WEB-service?
Ans: application or a network responding to some remote web-request.

21)what isw a wsdl?what are different types of wsdl?

Ans:Web-services run on wsdl,it defines structure of schema.There are two types of wsdl
Abstract wsdl:-Used on server side,contains request,response and type of operation performed.
concrete wsdl:-used on client side,contains abstract wsdl and transport used.
Tibco administrator questions

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.

What are TIBCO Administrator Modules ?


User Management
Resource Management
Application Management

What is a TIBCO Domain?


A: 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.

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.

What is the main responsibilities of the Admin server?


It manages data storage for the Admin
It manages transport options for applications
It enforces security for the domian

What is TIBCO HAWK agent?


It is the independent process that monitors applications and systems utility.

What are the Scripting utilities?


There are two types of scripting utilities.
They are
1. Buildear
2.Appmanage
What are the components of the TIBCO Admin? What is its use?
Admin server: It manages resource in Admi domian
Admin GUI: It [provides web browser interface. It allows to configure users and applications, deploys
applications, monitor process and machines in admin domain.

Can we run multiple administrators in the same domain?


No. Only one administration server is installed and configured for use per domain.

What is the default port where admin runs?


Port: 8080
Host: Localhost

What is UDDI module?


Universal, description, discovery and integration. It creates connections between uddi servers and web
services contained in the server. If you grant permissions then you can publish web services information
through uddi servers.

What is Resouce management?


It creates application domian.
It can customize machine display.
It displays information about machines and process on machine.

What is application domain?


This applicatio stores the data separetely or independently in a repository from the admin domian
repository.

What is an Application Archieve?


It provides information about the enterprise archieve file including package name, version, description
and creation date.

Can we change the adapter from one domain to another?


Yes, but you will need to uninstall the existing adapter that has joined the current domain and then
reinstall the adapter and join it to the new domain. You will also be able to change the domain info
directly using Domain Utility .

How to view tracing results for a process engine?


Got to Application Management
click on All service instances,
click on the process engine name
tracing tab, go to details
What is deployment choice?
When configuring adminstration domian , you can set how the admin server creates and stores
application data.
1. Local application data
2. Server based application data

What are the versions of TIBCO Admin?


There are two types of two versions.
1) Repository Edition
2) Enterprise Edition.

Can we change the domain for one machine to another later?


Yes, you can add/remove machine from domain using Damain Utility.

What are the restrictions of using TIBCO Admin GUI via secondary server?
We cannot perform user management, deploy applications or perform any other activity for which read
write access is required.

What do you have in the User management module?


Users
Roles
Security

1. Explain the processes flow of your latest project by including activities.


ans: for various service implementation I designed processes using various BW activities like JMS Queue
Receiver, XML Parser

2. What are the differences between the versions 2.x and 5.2?
ans:
type 2.x 5.2
deployment In 2.x deployment is done in the designer Here deployment is done using administrator tool
Name spaces Name spaces are prefixed with tib No tib in name spaces
pallets Extra pallets added
Iterate-reset At the end of each iterate the output is not reset Here the output is reset after each
iteration
installation Here all the components like BW,ADB,FILE etc come as a package Here we will have to install
each component separately
File type All files are .dat. we have to convert these manually Multi format file are available so that we
do not have to convert the dat files
3. What are the activities you worked on?
Ans: JMS queue receiver,confirm,checkpoint,XML parser,call process,JDBC update,SOAP,HTTP.
write to log - widely used.
Assign.

4. What is the inspector activity does?


Ans: the inspector activity is used to obtain the output of any activity or all the activities and process
variables.
Scenario: You can use the inspector activity to write the output of any activity or process variable in the
current process. Activities and process variables in a subprocess are not available to the Inspector
activity (but the output of a Call Process activity can be written using the Inspector activity). If you wish
to obtain the output from one or more activities or process variables in a subprocess, place the
Inspector activity in the process definition of the subprocess.

5.Can you tell me at least four starter activities and when they get executed?
Ans:
1) Adapter subscriber, adap request response server :-When ever a message comes into a destination
queue or network, listerns to a request from a adapter and sends a respose back to that adapter
2) File poller :- polls for any changes that occur in the file and with any change grabs the whole file.
3) Timer:- receive notification Starts a process on the time specified ex: before JDBC QUERY, starts a
process on receiving of data from a notify activity.
4) http receiver :-Starts a process based on a request from http server.
5) Jms queue receiver, jms topic subscriber :- Starts a process when ever a new message comes into the
specified queue, starts a process when ever there is a new message in the specified topic.
6) Receive mail :- The Receive Mail process starter polls a POP3 mail server for new mail. When new mail
is detected and retrieved, the Receive Mail process starter starts a new process for the process
definition it resides in and passes the mail data to the next activity in the process flow.
7) Rv subscriber:- The Rendezvous Subscriber process starter creates a process when a TIBCO
Rendezvous message on the given subject is received.
Rmi server :- The RMI Server process starter registers the specified remote object name with the
specified registry server and then creates process instances to handle incoming requests for the object.
The process definition acts as the implementation of the specified object.
9) Soap event source :- The SOAP Event Source process starter creates a process instance for incoming
SOAP requests. SOAP is a standard protocol for invoking web services. This allows you to create a web
service using process definitions.
At runtime, a client can retrieve the WSDL file for a process containing this process starter using an HTTP
request. Once the WSDL is retrieved, the client can perform a SOAP request to invoke the web service.
10)Tcp receiver The TCP Receiver process starter starts a new process when a client requests a TCP
connection.
6. What is the purpose of JMS Queue receiver activity and Queue sender activity?
Ans: Starts a process when ever a new message comes into the specified queue.
A queue sender activity sends messages into the specified queue.

7. What are acknowledgement modes and where do you set them and what is the
applicability of each mode?
Ans:
The acknowledge mode for incoming messages. Can be one of the following:
Auto the message is automatically acknowledged when it is received.
Client the message will be acknowledged at a later point by using the Confirm activity. If the
message is not confirmed before the process instance ends, the message is redelivered and a new
process instance is created to handle the new incoming message. Ensure that your process definition
confirms the message when using this acknowledge mode.
TIBCO EMS Explicit Client Acknowledge this mode behaves exactly the same as the Client mode,
except the session is not blocked and one session can handle all incoming messages.
Dups OK the message is acknowledged automatically when it is received. JMS provides this mode
for lazy acknowledgement, but TIBCO BusinessWorks acknowledges messages upon receipt.
Transactional this mode is used when a transaction that can process JMS messages is included in
the process definition. The message is acknowledged when the transaction commits. See TIBCO
BusinessWorks Process Design Guide for more information about creating transactions that JMS
activities can participate in.
Fifth part TIBCO general

What is the difference between broadcast and multicast?

Broadcast: Data packets are sent to all nodes on the network. Filtering of broadcast packets is done at
the OS level.
Multicast: Data packets are sent to all nodes on the network. However, filtering of multicast packets
occurs at the hardware (NIC) level

Explain the difference between Load Balancing (LB) and Fault Tolerance (FT) in Rendezvous?

LB is done by Distributed Queue mechanism in RV where a group of transport objects acts a group with
a common correspondent name. One acts as scheduler and others as workers, msg will be processed by
one worker only once. FT is done by RV FT software. FT members all process the message but only one
or number equal to Active Goal responses will be sent back to the client. FT software blocks the other
responses.

Will there be a message loss in Fault Tolerance or in Load Balancing?

Message loss happens in LB

What is TRDP? Why is it called reliable?

Tibco Reliable Data Protocol. It is a wrapper over UDP. It is called reliable because message is retained
on sender side for 60 secs. On the request of receiver, sender will resend the message. UDP doesn't
gurantee the delivery of the message, where as TRDP provides reliability upto 60 secs and which will be
sufficient in case of brief, intermittent network breakdowns.

What is difference between synchronous and asynchronous communication

Synchronous communication is time driven and asynchronous is event driven. Synchronous


communication expects reply or acknowledgement back and in asynchronous communication doesnt
expect any results of its communication right away. In messaging perspective request/reply messaging is
synchronous communication and publish/subscribe is asynchronous communication.

What is TCP and UDP

TCP - Transmission Control Protocol,


UDP - User Datagram Protocol
Differences
1. TCP can establish a Connection, UDP cannot;
2. TCP provides a stream of unlimited length, UDP sends small packets;
3. TCP guarantees that as long as you have a connection data sent will arrive at the destination, UDP
provides no guaranteed delivery;
4. UDP is faster for sending small amounts of data since no connection
Setup is required, the data can be sent in less time than it takes for TCP to establish a connection.

What is difference between multicasting and broadcasting

Multicasting is messaging with many potential recipients.


Broadcasting is messaging into the network with all interested recipients

What is Rendezvous

It is a framework/mechanism to integrate different applications running on distributed network on


heterogeneous platforms.

What is the functionality of RV daemon

Its a background process; RV enabled programs (programs which use RV api) depend on rvd for reliable
and efficient network communication.
The rvd completes the pathway between rendezvous program processes across the network.
It sends information into the network receives information from the network and filters subject
addressed messages.

What is ledger file used in RV for

CM Transport keeps Ledger file to record information about every unresolved outbound certified
message.

What are different quality of services available in RV

RV reliable, RVCM, RVTx(Transaction)

How to handle slow consumers when publisher is publishing rapidly

Use a dispatcher - increase process instances to avoid overflow. Implement load balancing

What is rvtransaction

When a group of messages are sent, even if one message is not delivered, all the messages are rolled
back

How is the ledger file size controlled

The actual size of the ledger file is not directly related to the number of unconfirmed messages that may
or may not be in the ledger file. The size of the ledger file and how it is managed is dependent on the
operating system call "ftruncate()".
How are ledger files managed in TIBCO Rendezvous

The actual size of the ledger file is not directly related to the number of unconfirmed messages that may
or may not be in the ledger file. The size of the ledger file and how it is managed is dependent on the
operating system call "ftruncate ()".
In general, "ftruncate" needs to be provided with a "length" parameter. If a picture of the ledger file is:

abcdef_____klmn_op______z

(where "_" denotes available storage units.) Then, our use of "ftruncate" will not yield any result
because "z" is at the end of the file and the "length" parameter we use is equal to the actual size of the
file. Therefore, the file will not shrink in size.

If a picture of the ledger file is:

abcdef_____klmn_op______

then, we pass the length of "abcdef_____klmn_op" to "ftruncate" and there is a chance that the OS will
actually cause the ledger file to shrink.
Therefore, if there is always a record "z" at the end of a ledger file, such a ledger file will never shrink,
even though many storage units that have been allocated to the ledger file may actually be free of data.
If you require further information on ftruncate (), please consult the UNIX man pages.

What information is stored in the publisher's ledger

The publisher's ledger contains the following:

1. Details of each subscriber registered for certified message delivery.

2. Subject information.

3. Details on every message that has not yet been confirmed by the subscriber.

What information is stored in the subscriber's ledger

The subscriber's ledger contains the following:

1. The correspondent names of each publisher that is sending messages.

2. Subject information.

3. The sequence number of the last confirmed message for a publisher for a particular subject.

What are the potential causes of corrupted ledger files


The following 5 items are potential causes of corrupted ledgers:

1. A hardware problem on the disk: Media error.

2. The ledger file is located on a NFS/RFS (networked) file system: Media error

3. Two or more CM transports are trying to access the same ledger file.

4. If the CM name is changed and the application is restarted without changing the ledger file
name, a ledger file corruption warning occurs.

5. The machine running the application was terminated abruptly. (A running system or a hard disk
in operation has been unplugged; a fire or an explosion occurred).

Is there any way to restore a corrupted ledger file

No. Once a ledger file is corrupted there is nothing you can do about it. If you are concerned about
your ledger files getting corrupted, you can make back-ups of your ledger files by periodically copying
the files.

What is the purpose of the function "tibrvcmTransport_ReviewLedger()" and "tibrvcmReviewCallback

The tibrvcmTransport_ReviewLedger() function is used to query the ledger for stored items related to a
particular subject. It calls the callback function to process ledger review summary messages. These
summary messages contain information on the subject, sequence number of the most recent message
sent, total number of messages stored, total storage size (in bytes), listener's name and listener's last
confirmed sequence number.

On reviewing my ledger file I received the following results:

total_msg = 0
total_size = 0
seqno_last_sent = 126
listener.last_confirmed = 10

This does not appear to be correct, as my listener received and confirmed all 126 messages. Why is
my ledger review showing incorrect results?

The ReviewLedger calls were intended to be used from within the context of the running CM
application; they were not intended to be used by an external application outside of the original runtime
context.

However, if the original application was allowed to shutdown gracefully, the values in the total_msg,
total_size, seqno_last_sent and listener.last_confirmed fields should be consistent. In the graceful
shutdown case we would have expected to see the following values:
total_msg = 0
total_size = 0
seqno_last_sent = 126
listener.last_confirmed = 126

instead of listener.last_confirmed = 10, as was the case.

Therefore, the reason why your review produced the results you received is most likely because this
ledger file was either copied from a CM system during runtime or was copied from a CM system, which
had not been shut down gracefully.

This does not mean that your ledger file has been corrupted, it merely implies that its reflection of the
CM runtime state is not precisely accurate. The protocol would self-correct this upon restart.

What is the maximum size that a ledger file can grow.

Usually 2GB is the maximum size your ledger file can have. However, this size depends on the operating
system and as a result may change in the future.

Should file-based ledgers be used for temporary data storage

No, we do not recommend that you use ledger files for temporary data storage media. File-based
ledgers should be used for programs that require certification that transcends process termination and
program restart.

What is the difference between a file-based ledger and a process-based ledger

Programs that require certification only for the duration of the program process can choose a process-
based ledger. Once the process terminates the ledger file is no longer available.

Programs that require certification that transcends process termination and program restart can choose
a file-based ledger.

Therefore, a file-based ledger preserves certified delivery information beyond transport invalidation, or
process termination and restart. A memory/process-based ledger does not possess these
characteristics.

Can a ledger-file be stored in auxiliary devices such as tape drives

It is possible to store the ledger in auxiliary devices; however, this approach is not recommended as it
decreases the efficiency of certified message delivery.

Can a ledger file created on a UNIX platform be migrated to a Windows platform (with the same
cmname and ledger file name)
It is possible to move the ledger file to another machine (remembering to use the same cmname and
ledger file name). However, it is not 100% safe to migrate ledgers between platforms as the file format
differs from one platform to another.

Is it possible to read the contents of a ledger file

No, ledger files are in non-human readable format and their contents are not intended to be viewed by
a text editor such as Notepad.

Are ledger files compatible between different versions of TIBCO Rendezvous

TIBCO Rendezvous 5 and TIBCO Rendezvous 6 ledger files are not compatible. However, all TIBCO
Rendezvous 6 ledger files are compatible.

A CM publisher "P" sends sequence 55, 56 and 57 to a CM subscriber "S". The CM subscriber then
confirms receipt of 55, 56, and 57. However, confirmation of 55 and 56 gets lost due to a "bad
network" and only confirmation of 57 reaches "P". Will receipt of 57's confirmation by the "P", trigger
the deletion of 55, 56, and 57 from it's ledger file

Yes, as confirmation of message 57 (from "S") implicitly confirms receipt of messages 55 and
56. Although the network is "bad" no data is actually lost because "S" will have sent the confirmations
only after having received messages 55 and 56.

A CM publisher "P" sends sequence 55, 56 and 57 to a CM subscriber "S". The CM subscriber then
confirms receipt of 55, 56, and 57. However, confirmation of 56 and 57 gets lost due to a "bad
network" and only confirmation of 55 reaches "P". What happens

"P" will receive confirmation of message 55 from "S" and implicitly confirms receipt of all previous
messages. If "P" then receive a confirmation for message 58 from "S", message 56 and 57 will be
implicitly confirmed.

A CM publisher "P" sends sequence 55, 56 and 57 to a CM subscriber "S". A certified delivery
agreement exists between them. Due to some network problems, 57 reaches "S", but 55 and 56 get
lost. The network remains non-operational for a long time. Will CM, at some point, consider 55 and
56 as irremediably lost and present sequence 57 to S

No, "S" will request retransmission of 55 and 56 from "P". 57 will not be presented until 55 and 56 have
been received by "S".
A CM publisher "P" sends sequence 55, 56 and 57 to a CM subscriber "S". 57 reaches "S", but 55 and
56 get lost. In the meantime, "P" crashes and its ledger is deleted (accidentally or otherwise). What
will happen when "P" will restart

"S" will discard sequence 57.

A CM publisher "P" sends sequence 55, 56 and 57 to a CM subscriber "S". A certified delivery
agreement exists between them. Due to some network problems, 57 reaches "S", but 55 and 56 get
lost. CM software requests retransmission of messages 55 and 56. However, these messages are no
longer available in the publisher's ledger i.e. they have timed out. The subscriber presents the
advisory "_RV.ERROR.RVCM.DELIVERY.UNAVAILABLE.<subject>". Will message 57 be processed

57 will be processed, along with all subsequent messages.

A CM publisher "P" sends sequence 1 through 100. CM subscriber "S" starts just in time to receive
sequence 100. As "S" is pre-registered with "P", "P" prepares to transmit sequence 1 through 99 to
"S", upon request from "S". Unfortunately, "P" crashes just before to publish sequence 1.

(a) Will S hold onto sequence 100 until the publisher restarts?
(b) Upon restarting, will the publisher attempt to retransmit sequence 1 through 99

(a) Yes.
(b) Yes.

A CM publisher "P" sends sequence 55, 56 and 57 to a CM subscriber "S". 57 reaches "S", but 55 and
56 get lost. In the meantime, "P" crashes and its ledger is deleted (accidentally or otherwise). What
will happen when "P" will restart

"S" will discard sequence 57.

A CM publisher "P" sends sequence 55, 56 and 57 to a CM subscriber. The CM subscriber then
confirms receipt of 55, 56, and 57. However, confirmation of 55, 56 and 57 gets lost due to a "bad
network". In the meantime, "S" crashes and its ledger is deleted (accidentally or otherwise). What
will happen when "S" will restart

After restart "S" will have a new ledger file and therefore no record of having confirmed 57. It will go
through the handshake process with "P", and "P" will retransmit all unconfirmed messages (in this case
55, 56, and 57). This results in duplicate messaging i.e. "S" received 55, 56, and 57 twice.
A CM publisher "P" sends sequence 55, 56 and 57 to a CM subscriber. The CM subscriber then
confirms receipt of 55, 56, and 57. However, confirmation of 55, 56 and 57 gets lost due to a "bad
network". In the meantime, "S" crashes and its ledger is deleted (accidentally or otherwise). What
will happen when "S" will restart

After restart "S" will have a new ledger file and therefore no record of having confirmed 57. It will go
through the handshake process with "P", and "P" will retransmit all unconfirmed messages (in this case
55, 56, and 57). This results in duplicate messaging i.e. "S" received 55, 56, and 57 twice.

What is vcrepo.dat

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).

What are the TIBCO BW activities that can participate in transactions

Not all TIBCO Business Works 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

What are the different types of Transactions TIBCO provides

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

What activities are supported in JTA Transaction

The Java Transaction API (JTA) UserTransaction type allows:


JDBC
JMS
ActiveEnterprise Adapter (using JMS transports)
EJB activities to participate in transactions.

What activities are supported in XA Transaction

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.

What are the encodings supported by designer

Encodings supported by designer are


ISO8859-1(Latin-1)

UTF-8

What is the purpose of the inspector activity

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.

What are the options for configuring storage for process engine's checkpoint repository

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.

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 processs definition inside one engine, just specify the scope as 'Single'.

What activity can be used to set the value of a 'User defined process variable'

The 'Assign' activity can be used to set the value of a 'User defined process variable'.

Which are the two process variables available to all activities with inputs
$_globalVariables
$_processContext

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

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.

When is a 'Generate Error' activity useful

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)

Which activity is used for detecting duplicate message processing

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.

If the business process needs to invoke another web service which resource do you use

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.

What is the scope of user defined process variables

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)

How do wait-notify resources work

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.

What is the Purpose of $_error variable

$_error variable is available in the node following the error transition. It captures the error message,
error code etc.

What are the three benefits of BW process engines for HTTP(S) for runtime initialization
a. HTTP(S) may be used in conjunction with firewall security
b. HTTP(S) allows direct point to point access to the administration server
c. HTTPS(S) doesnt require additional network bridging software, making it simpler to setup

Which three activities and shared resources can render XML data

a. an XSLT file resource and Translate XML activity


b. a DTD schema resource and Render XML activity
c. an XSD schema resource and Render XML activity

What is the significance of using the spawn option with a BW call process activity

There will be no data bound back to the caller when the sub-process ends, and the sub-process has its
own thread.

Which three options are available for setting the transports between a deployed service and Tibco
Administrator

a. RV
b. HTTP
c. HTTPS

Your organization has created a standard for organizing TIBCO BusinessWorks projects. Which is most
suited to this task

TIBCO Adapters
TIBCO PortalBuilder
TIBCO Domain Utility
TIBCO Designer templates

Which TIBCO BusinessWorks activity do you use to manage and restart recoverable process instances
programmatically

onStartup
Checkpoint
Engine Command
External Command

You are migrating your test environment to production and want to change the TIBCO Rendezvous
service port used in this project from 7200 to 7400. What is the recommended method to accomplish
this task before deployment

modify the server DAT file using a text editor


modify the TRA file to add the service parameter
open the project in TIBCO Administrator, change the service variable, and deploy
use a Global Variable to set the service variable and change it before completing deployment

What is a File Poller

Process Starter ,The File Poller process starter polls for files or directories with the given Name and
starts a process when the specified change (creation, Modification, deletion) is detected

Difference between HTTP and JMS

There is message loss in HTTP due to software or hardware failure but there is no loss in JMS because
there is persistence, durable delivery modes in queues and topics.

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.

What is a project

A project is a collection of all the objects in your integration. It includes adapters, activities, machines,
processes, etc. You create and save projects using TIBCO Designer.

What is a condition

A condition is used to control the flow of activities in a process diagram. Conditions are specified on
transitions to determine whether to take the transition to the next activity or not. XPATH is used to
specify a transition type of success with condition.

What is a transition

A transition is an arrow on a process definition between activities. Transitions describe the flow of
processing. An activity in a process definition must have a transition to it, or the activity is not executed
when the process executes.

What is a palette

A palette is a collection of resource templates or activities that can be used to populate a project in the
TIBCO Designer, e.g. you can use SOAP palette to create process definitions that implement web
services. Other palettes include: AE Adapter, FTP, File, HTTP, JDBC, JMS, Java, Mail, RV, XML and
General.

What is an activity

An activity is an individual unit of work within a process definition in the TIBCO Designer. Activities are
operations that interface with external systems or perform internal processing. Activities are available
on the various palettes in the TIBCO Designer, e.g. an AE adapter palette contains AE publish activity, AE
subscription process starter activity, and AE respond activity.

What is XPATH

Xpath is a scripting language developed by the World Wide Web Consortium (W3C) for addressing parts
of XML documents. It provides basic manipulation functions for strings, numbers and Booleans. TIBCO
Designer, a BusinessWorks component, uses Xpath as the language for defining conditions and
transformations.

What is TIBCO Designer

TIBCO Designer is a GUI tool for designing your business process integration. It is used for adapter
configuration, process design, test, and deployment. TIBCO Designer is a component of TIBCO
BusinessWorks.

What is the difference between a FileAdapter and File palette activities

In file activities the file poller cannot handle multi format data and record by record transfer .it takes
care of particular format specified and does file transfer.
whereas file adapter can handle multiple formats and does record by record transfer.

What are the differences between the versions of 2.x and 5.x

2.x 5.2
type

deployment In 2.x deployment is done in the Here deployment is done using


designer administrator tool

Name spaces Name spaces are prefixed with No tib in name spaces
tib

pallets Extra pallets added

Iterate-reset At the end of each iterate the Here the output is reset after
output is not reset each iteration

installation Here all the components like Here we will have to install each
BW,ADB,FILE etc come as a component seperately
package
File type All files are .dat. we have to Multi format file are available so
convert these manually that we do not have to convert
the dat files

What is the check point activity and confirm activity

A checkpoint saves the current process data and state so that it can be recovered at a later time in the
event of a failure. If a process engine fails, all process instances can be recovered and resume execution
at the location of their last checkpoint in the process definition.

The Confirm activity confirms any confirmable messages received by the process instance. For example,
if a process is started because of the receipt of an RVCM message, the Confirm activity can send a
confirmation message to the publisher of the RVCM message

What happens if you use check point activity first and confirm next

In the case of confirmable messages (for example, a confirmable TIBCO Rendezvous or Adapter message
is received), you must consider the consequences of performing a checkpoint before or after a Confirm
activity.
If the checkpoint is taken before the Confirm activity, then a crash occurs after a checkpoint but before a
confirm, the original message is resent. In this case, the restarted process can no longer send the
confirmation. However, a new process is started to handle the resent message, and you can implement
your process to handle the restarted and new processes appropriately.
If the checkpoint is taken after a Confirm activity, there is potential for a crash to occur after the Confirm
but before the checkpoint. In this case, the message is confirmed and therefore not redelivered. The
process instance is not restarted, because the crash occurred before the checkpoint.
You must consider the type of processing your process definition performs to determine when a
checkpoint is appropriate if your process definition receives confirmable messages.

What is group in BW

Group is a resource which will contain a set of related activities. Group will provide the functionality of
iteration of the activities.

What is name space in XSD

Since element names in XML are not predefined, a name conflict will occur when two different
documents use the same element names. So each element is given a unique namespace.

How to implement web services with BW

Simple Object Access Protocol (SOAP) is a lightweight protocol for the exchange of information between
web services. The SOAP palette allows you do the following:

create web services by using process definitions


generate WSDL files for web service clients

invoke one-way, request/reply web services

use either HTTP or JMS as the transport for web services

send or receive SOAP requests with attachments

How many types you can call a sub process from a process? Explain them.

we can call a subprocess dynamically by doing process name dynamic over ride where we can
use multiple subprocesses in the same calling process depending on a condition.

Normal calling where in the calling process a subprocess path is given in the process name field.

What are the resources that gets included in the EAR file, created by the TIBCO Designer

An 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.

What are the revision control system options available in TIBCO designer

File sharing

VSS

Perforce

XML Canon

ClearCase

iPlanet

CVS

PVCS

How to control the sequence of execution of process instances created by a process starter

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.

What activity can be used to set the value of a 'User defined process variable'
The 'Assign' activity can be used to set the value of a 'User defined process variable'.

What is the Purpose of $_error variable

$_error variable is available in the node following the error transition. It captures the error message,
error code etc.

What are the cases where business process cant proceed correctly subsequent to restart from a
checkpoint

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.
Sixth part TIBCO EMS

What is the Difference between JMS queue reciever and JMS queue requestor?

JMS Queue receiver is a starter activity. It starts a process on the recipt 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.

1. What are the different types of acknowledgement modes in EMS message delivery

Auto
Client
Dups_ok
No_ack
Explciit
Explicit_client_dups_ok
Transitional
Local transitional.

2. What are the different types of messages that can be used in EMS
Text
Simple
Bytes
Map
XML test
Object
Object ref
Stream

3. Tell me about bridges. Why do we use them, Syntax to create bridges, use of message selector

Some applications require the same message to be sent to more than one destination possibly of
different types. So we use bridges.
4. What is the purpose for stores.conf

a. This file defines the locations either store files or a database, where the EMS server will store
messages or metadata.
b. Each store configured is either a file-based or a database store.

5. How many modes are the messages written to store file.


2 modes.. sync or async. When absent , the default is async

6. What is tibemsd.conf

It is the main configuration file that controls the characteristics of the EMS server

7. How many delivery modes for messages?

Persistent, Non-persistent, Reliable-delivery.

8. What is the maximum messagesize?

Ems supports max message size of 512 mb

9. Name 3 destination properties and explain them.

Global, secure, maxmsgs, maxbytes, flowcontrol, sender_name, sender_name_enforced,


trace,maxRedelivery

10. What are the different modes of installation in Ems?

a. GUI mode
b. Console mode
c. Silent mode

11. What are the messaging models supported by JMS


a. Point-to-point
b. Publish-subscribe
c. Multicast

12. Tell me about routes

What is the purpose of routes, what kind of destinations can be used in routes? Topics and queues m-
hops

13. What happens if the message expires/exceeded the value specified by maxredelivery property on
queue?

If the jms_preserve_undelivered property is set to true, then it moves he message to undelivered


message queue, if set to false, the message is deleted by the server.
14. In how many ways can a destination be created?

a. Static-created by user
b. Dynamic-created by ems server on the fly.
c. Temporary destinations.

15. What are the wild cards that we use in ems?how do they work for queues and topics
*,>
U can subscribe to wildcard topics but cant publish to them. Where as in case of queues we cant
either send /receive.

16. Are bridges transitive?


NO

17. Tell me about flow control on destinations

Some times the producer may send messages faster than the consumers can receive them. So, the
message capacity on the server will be exhausted. So we use flow control. Flow control can be specified
on destinations.

18. Tell me about flow control on bridges and routes

Flow control has to be specified on both sides of bridges where as on routes it operates differently on
sender side and receiver side.

19. Name 3 configuration files and tell me what it consists of

a. Queues.conf
b. Topics.conf
c. Routes.conf
d. Factories.conf
e. Stores.conf
f. Groups.conf,users.conf,transports.conf

20. Name some administrative level destination properties

a. View
b. Create
c. Delete
d. Modify
e. Purge

21. How can you change the configuration properties of EMS server

You can change in the tibemsd.conf file or you can change using the ems admin console.
22. What are the permissions that you can grant to users to access queues

a. Receive
b. Send
c. Browse

23. What are the permissions that you can grant to users to access topics

a. Subscribe
b. Publish
c. Durable
d. Use_durable

24. Tell me about multicasting in EMS

a. Multicast is a messaging model that broadcasts messages to many consumers at once rather than
sending messages individually to each consumer. EMS uses Pragmatic general multicast to broadcast
messages published to multicast enabled topics.
b. Each multicast enabled topic is associated with a channel.

25. What are the advantages and disadvantages of multicasting..

a. Advantages: as the message broadcasts only once thereby reducing the amount of bandwidth used
in publish and subscribe model. Reduces the network traffic.
b. Disadvantages: Offers only last-hop delivery. So cant be used to send messages between servers.

26. On what destinations can you use multicast?

a. Topics

27. Suppose, you got an error while accessing a queue, that you dont have necessary permissions to
access the queue. What might be the solution/reason?

a. The user that is assigned to the queue and the user used while creating

28. How does the secondary server know that the primary server is failed?

a. Based on heartbeat intervals

29. What is JMS queue requestor?

a. The JMS Queue Requestor activity is used to send a request to a JMS queue name and receive a
response back from the JMS client
30. What is JMS topic requestor?

a. The JMS Topic Requestor activity is used to communicate with a JMS applications request-response
service. This service invokes an operation with input and output. The request is sent to a JMS topic and
the JMS application returns the response to the request.

31. How do you add ems server to administrator?

a. Using domain utility

32. How do you remove individual messages from destinations?

a. Using purge command.


TIBCO Business Works

TIBCO Business Works Integration Platform

TIBCO Business Works Key Components

TIBCO Business Works key components work together as follows:

TIBCO Designer: graphical user interface (GUI) supports adapter configuration, process design,
and testing of the integration project in one easy to use interface. You can use TIBCO Designer in
test mode to incrementally verify your design during development.
TIBCO Business Works engine runs the business processes in test mode and at run-time.
TIBCO Administrator supports deployment, security administration, and monitoring and
management of processes and machines. TIBCO Administrator consists of the TIBCO
Administration Server and the web browser based TIBCO Administrator GUI.
TIBCO Runtime Agent (TRA) runs on each machine and executes scripts, sends alerts, and
performs recovery as specified.

Architecture

Support for Standards


TIBCO Business Works supports the most widely used standards for the different aspects of an
integration project:
1. J2EE CompliantJMS, EJB, JNDI
2. ProtocolsWeb services (SOAP, WSDL), HTTP, HTTPS
3. MessagingJMS, TIBCO Rendezvous
4. Data DescriptionNative support for DTD, XSD, and TIBCO AE Schema
5. Data Representation and ExpressionsNative support for XML, XPath
6. Data TransformationXSLT

Integrated Development Environment


Your integration project must be supported by an integrated development environment that spans all
phases of the project. With TIBCO Business Works, the process design, deployment, and run-time
environment are tightly integrated even though the run-time environment supports a distributed
architecture.

At design time, you use TIBCO Designer to configure services, such as adapters, and design your
business processes.
You can use the TIBCO Designer in test mode to debug the process definitions in your
integration project.
You can use TIBCO Administrator to deploy processes to process engines and to deploy adapter
services to adapters on the individual machines.
Optionally, you can configure manual activities using TIBCO Designer. When you deploy the
project, that information is then used by InConcert. The users authorized to handle the manual
activities can be specified in TIBCO Administrator, then exported to TIBCO InConcert.
You can start the processes using the TIBCO Administrator GUI. You can then monitor and
manage all processes using TIBCO Administrator.

Design-Time Architecture

1. At design time, you work with the TIBCO Designer GUI to configure adapter services and design
business processes. You design a business process by dragging activities (e.g. Read File or Send
Mail) into the design window and joining the activities using transitions. The TIBCO Designer test
mode allows you to debug the business process.

Run-Time Architecture

When the integration project is deployed, the different process engines and adapters are ready to run
on the machines in the administration domain.
You deploy your project and start each component individually from the TIBCO Administrator GUI. After
all adapters and process engines have been started, process instances are created by process starters. A
process starter could be, for example, a File Poller or an Adapter Subscriber activity waiting for incoming
data. When data arrives, the process starter creates a process instance using the process definition to
which it belongs, and the activities in the process are executed in sequence.
Overview of Projects
TIBCO project is a collection of resources, including, for example, adapter resources and process
definitions. Together, these resources define the configuration of your integration project. Each TIBCO
Designer window contains only one project. If you open a second project, TIBCO Designer opens a new
window.

1. 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).
2. TIBCO BW projects support the use of different version control systems:
1. File Sharing
2. Microsoft Visual SourceSafe
3. Perforce Fast Software Configuration Management System
4. XML Canon
5. Clear Case
6. CVS
7. PVCS Version Manager

Overview of Processes

1. A process definition is the graphical representation of your business process. You develop and
test process definitions using TIBCO Designer.
2. The process definition is executed by a TIBCO Business Works process engine. A process engine
creates instances of process definitions. These process instances automate your business
processes by executing the business process described by the process definition.
3. Process engines are started using TIBCO Administrator after you deploy your project.

Process Definitions
A process definition is a graphical representation of your business process model. You create process
definitions by dragging and dropping a Process Definition resource from the Process palette to the
design panel. Selecting the process definition in the project panel changes the palette panel and the
design panel to allow you to create your business process model. The palette panel contains a set of
activity palettes for use in the process definition. The design panel displays the business process model.
Newly created process
definitions contain a Start activity and an End activity.
Process definitions consist of these components:

Activities
Transitions
Groups
Shared Configuration Resources
Sub processes

Overview of Activities

1. Activities are the individual units of work in a process definition. Activities are generally
operations that interface to external systems, but activities can also perform internal
processing. Activities are available on the various palettes in TIBCO Designer. Each palette has a
set of activities that can be performed for that palette.

A process definition can begin with a Start activity, but some palettes contain
activities that can start a process. These activities, also known as process starters,

1. begin a process when the specified event occurs.


2. File
1. Create File
2. Remove File
3. Write File
4. Read File
3. FTP
1. FTP Put
2. FTP Get
Transitions

Transitions describe the flow of processing in a process definition. A transition is Represented by an


arrow between two activities. The arrows are unidirectional, and you cannot draw a transition to a
previously executed activity. Control flow in a process definition must proceed sequentially beginning
with the Start activity (or a process starter) and ending with the End activity.

A transition can optionally specify a condition. The condition determines if the


Transition is taken when an activity completes processing. After an activity Completes, all transitions
whose conditions are met are taken. You can have Transitions from one activity to many other activities.
Therefore, you can have Several branches of activity processing in your diagram.

Having multiple branches in a process definition does not imply that each branch Is
processed concurrently. Transitions describe control flow of the process Definition, not the concurrency
of execution of activities. Process execution is Controlled by the process engine.

Valid transitions

One path from Start to End

Two transitions from the Start activity form multiple paths

An invalid transition
You cannot transition to a previously executed activity

Transitions Conditions

Conditions are specified on transitions to determine whether to take the transition to the next activity
or not. When a transition is created, you are presented with the transition dialog.

Success

Take this transition unconditionally. That is, always transition to the activity the transition points to, if
the activity completes successfully. This is the default condition for transitions.

Success with condition

Specify a custom condition using XPath. If the activity completes successfully, and the condition you
create evaluates to true, the transition is taken to the activity it points to. You can type in an XPath
condition, and you can use the XPath formula builder to drag and drop XPath expressions and data into
the condition.

Success if no Matching condition

Take this transition when the activity completes successfully, but only if no other transitions are taken.
This is useful when multiple transitions with conditions are drawn to other activities. This condition type
can be used to handle any cases not handled by the conditions on the other transitions.

Error

Take this transition if there is an error during processing of the activity.

NOTE

When a transition is created, the default condition type is Success.


Groups
Groups are used to specify related sets of activities. The main uses of groups are the following:

To create a set of activities that have a common error transition. Basically, this is similar to a try...catch
block in Java. This allows you to have a set of activities with only one error-handling transition, instead
of trying to individually catch errors on each activity.

To create sets of activities that are to be repeated. You can repeat the activities once for each item in a
list, until a condition is true, or if an error occurs.

To create sets of activities that participate in a transaction. Activities in the group that can take part in
a transaction are processed together, or rolled back, depending upon whether the transaction commits
or rolls back

If Groups

You can use groups to conditionally execute business logic. The If group allows you to specify a set of
conditions that are evaluated in order.

Critical Section Groups

Critical section groups are used to synchronize process instances so that only one 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.
Critical Section groups are particularly useful for controlling concurrent access to shared variables (see
Synchronizing Access to Shared Variables on page 116 for more information). However, other situations
may occur where you wish to ensure that only one process instance is executing a set of activities at a
time.
Pick First Groups

Pick first groups allow process execution to wait for one or more events. The first event that completes
determines which transition to take to continue processing.

Iterate Loop

An Iterate loop repeats the series of grouped activities once for every item in an existing sequence or
list. The list can be items of any datatype.

Repeat Until True Loop

The Repeat Until True loop repeats the series of grouped activities until the given condition evaluates to
true. The activities are always executed once before checking if the condition is true. After executing the
series of activities, the condition is checked, and the loop exits when the condition evaluates as true.

While True Loop

The While True loop repeats the series of grouped activities as long as the given condition evaluates as
true. The condition is evaluated when the group is entered. If the condition evaluates to false, the
activities within the group are not executed.

Repeat On Error Until True Loop

The Repeat On Error Until True loop allows you to repeat a series of activities when an unhandled error
occurs. The activities in the group are executed once. If there are no unhandled errors, the loop
terminates. If an error occurs for which there is no error transition, the condition of the loop is
evaluated if the
condition is true, the loop terminates, if the condition is false, the loop repeats until there is no error
occurs or the condition is true.

Shared Configuration Resources


Shared configuration resources are specifications that are shared among activities. These are resources,
such as database connections, WSDL files, schema definitions, and connections to other servers. Shared
configuration resources are created outside of process definitions,
Sub processes
Business processes are often very complex and it is difficult to diagram the complete process in one
process definition. You can create several smaller process definitions instead of one monolithic process
definition. You can then call each process definition from another process definition, when necessary.
When you
call a process definition, the called process is known as a subprocess. Using subprocesses helps to make
more readable process diagrams and you can reuse subprocesses across many process definitions.

To create and call a subprocess, follow this procedure:

1. Specify the input, output, and any error schemas of the subprocess on the Start and End activities in
the subprocess. .
2. Create a process definition that will call the subprocess.
3. Place a Call Process activity (located on the General Activities palette) in the process definition.
The Call Process activity allows you to map input values into the called process, and optionally allows
you to spawn the subprocess into another process instance.
Normally, a subprocess executes in the same process instance as the calling process, and the output of
the subprocess is available to all subsequent activities in the process. If you select the checkbox in the
Spawn field of the configuration tab of the Call Process activity, the subprocess is spawned into a new
process
instance. When a subprocess spawns a new process instance, the parent process cannot access the
called process output.
Overview of Variables
TIBCO Business Works provides the following types of variables:
Global Variables these variables allow you to specify constants that can be used throughout the
project. The constants can be specified and changed while designing and testing your project. You can
also specify different values for each deployment of your project.

Process Variables

these variables allow you to access various data in your project. For example, there are predefined
process variables containing the process ID, project name, and other information. You can also create
user-defined process variables for containing process-specific data.

Shared Variables

these variables allow you to specify data for use across multiple process instances. Because multiple
process instances can access the same variable, you can also synchronize access across processes when
setting or retrieving the shared variable.

There are two types of shared variables


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. This type of shared variable is useful if you wish to
pass data across process instances or if you wish to make a common set of information available to all
process instances.

Job Shared Variable

A Job Shared Variable resource is similar to a Shared Variable, but its scope is limited to the current job.
A copy of the variable is created for each new process instance. This type of shared variable is useful for
passing data to and from sub-processes without creating an input or output schema for the called
process.
Web Services

Web services provide a standards-based approach for application integration between or within
organizations. An organization can offer its application services to other organization by using the
standards-based model of web services. Web services can be used within a Business to integrate various
critical applications,
Traditional software applications provide APIs that enable the applications to be automated by other
clients and servers. But, unlike most of these APIs, Web Services expose methods that can be called
from other machines and devices across the Internet. For example, an authentication Web service can
expose methods that are used by other applications for access control, and developers can invoke the
methods on the Web Service to enhance their own Web applications. In general, the Web Service
behavior should work well with Web Services and servers that support both SOAP and WSDL

Most web services comply with the following standards:

HTTP or JMS HTTP and JMS as transports for web service messages.
SOAP SOAP is the communications protocol for web services (version 1.1 or 1.2).
XML XML is used to define data schemas for SOAP message content.
WSDL WSDL describes the interface to a web service.

To create a web service, perform the following general procedure:

1. Create XSDs to define the input, output, and fault messages for the web service.
2. Create a WSDL File resource that defines the interface to the web service.
3. Create a process definition that performs the work of the web service. Use the SOAP Event Source
process starter for this process definition. Use the SOAP Send Reply activity to return a reply or the
SOAP Send Fault activity to return a fault to the client.
4. Create a process definition that retrieves the concrete WSDL file and sends it to web service clients.
Use the HTTP Receiver process starter and the Retrieve Resources activity for this process definition.

Simple Object Access Protocol (SOAP)


SOAP is a simple XML based protocol to let applications exchange information over HTTP.
Or more simply: SOAP is a protocol for accessing a Web Service.

What is SOAP
SOAP stands for Simple Object Access Protocol

SOAP is a communication protocol

SOAP is for communication between applications

SOAP is a format for sending messages


SOAP is designed to communicate via Internet

SOAP is platform independent

SOAP is language independent

SOAP is based on XML

SOAP is simple and extensible

SOAP allows you to get around firewalls

SOAP will be developed as a W3C standard

Why SOAP

1. It is important for application development to allow Internet communication between


programs.
Today's applications communicate using Remote Procedure Calls (RPC) between objects like
DCOM and CORBA, but HTTP was not designed for this. RPC represents a compatibility and
security problem; firewalls and proxy servers will normally block this kind of traffic.

2. A better way to communicate between applications is over HTTP, because HTTP is supported by
all Internet browsers and servers. SOAP was created to accomplish this.

3. SOAP provides a way to communicate between applications running on different operating


systems, with different technologies and programming languages.

What is WSDL
WSDL stands for Web Services Description Language

WSDL is an XML document

WSDL is used to describe Web services

WSDL is also used to locate Web services

WSDL is not yet a W3C standard


Sharing Common Resources with Other Projects

TIBCO Designer allows you to create alias to resources that are to be reused in other projects. Alias are
used in two resources, the Alias Library and the Library Builder. The Alias Library resource allows you to
load files stored in the file system into your project. The Library Builder resource allows you to build a
design-time library that includes resources defined in one project that can be shared with other
projects.

Alias Library Overview


The Alias Library resource allows you to specify aliases to file system resources (such as a jar file) that
need to be included in your project. To use a file system resource, a project needs to know where to find
it. Since projects are exported or deployed to different machines and different environments, Designer
uses aliases to specify file locations. Before including a file, an alias is created that specifies the files
location. An alias is part of your preferences and is common to all of your
projects. Aliases are created and managed under the File Alias tab in the Preferences dialog.

Library Builder Overview


The Library Builder resource allows you to share resources you have defined in a project with other
project developers. This allows you to create shareable resources once, then allow other project
developers to use them in their projects. Library Builder resources are used as part of design-time
libraries

You might also like