Tibco Interview Questions
Tibco Interview Questions
Tibco Interview Questions
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?
X:Patch
Y:Major
Z:Minor
5.What are the revision control system options available in TIBCO designer?
File sharing
VSS
Perforce
XML Canon
ClearCase
iPlanet
CVS
PVCS
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).
JDBC activities
JMS activities
ActiveEnterprise Adapter activities that use JMS transports
EJB activities
TIBCO iProcess BusinessWorks Connector activities
JDBC
Java Transaction API (JTA) UserTransaction
XA Transaction
JDBC
JMS
ActiveEnterprise Adapter (using JMS transports)
EJB activities
to participate in transactions.
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.
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.
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.
Define 3 transitions from JDBC update with condition on the no of updates and call appropriate child
processes.
ISO8859-1(Latin-1)
UTF-8
Project panel
Palette panel
Design panel
Configuration panel
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.
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.
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'.
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.
'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 ?
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 ?
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)
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.
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.
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.
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
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.
XML
HTML
Text
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.
$_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 ?
Which two input parameters are mandatory for the BuiIdEAR Utility?
Answer:
Answer:
Which three Event Types are available when specifying a custom alert for a Tibco
ActiveMatrix BusinessWorks application?
Answer:
1. Log Event,
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:
Answer:Context Resource
Third part General
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.
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
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 -
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.
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 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
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.
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
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.
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.
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).
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.
20)what is a WEB-service?
Ans: application or a network responding to some remote web-request.
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 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 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.
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.
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
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.
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 Rendezvous
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.
CM Transport keeps Ledger file to record information about every unresolved outbound certified
message.
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
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.
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.
2. Subject information.
3. Details on every message that has not yet been confirmed by the subscriber.
2. Subject information.
3. The sequence number of the last confirmed message for a publisher for a particular subject.
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).
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.
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.
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
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.
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.
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.
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.
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.
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.
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
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
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
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).
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
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
UTF-8
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.
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 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)
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.
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)
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.
$_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
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
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
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
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.
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.
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
Name spaces Name spaces are prefixed with No tib in name spaces
tib
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
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.
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.
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:
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'.
$_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.
6. What is tibemsd.conf
It is the main configuration file that controls the characteristics of the EMS server
a. GUI mode
b. Console mode
c. Silent mode
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?
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.
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.
Flow control has to be specified on both sides of bridges where as on routes it operates differently on
sender side and receiver side.
a. Queues.conf
b. Topics.conf
c. Routes.conf
d. Factories.conf
e. Stores.conf
f. Groups.conf,users.conf,transports.conf
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
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.
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.
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. 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.
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
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,
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
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.
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.
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
NOTE
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 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.
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.
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.
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.
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.
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.
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
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.
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.
What is SOAP
SOAP stands for Simple Object Access Protocol
Why SOAP
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.
What is WSDL
WSDL stands for Web Services Description Language
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.