Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 48

OVER VIEW OF EAI

Types of Integration

 Data Level

o Technique of moving data between data stores


o E.g.: Querying data from one or more table and writing to one or
more tables

 Method Level

o Sharing methods existing in applications


o E.g.: Accessing methods exposed in EJB/Application Server

 Application Interface Level

o Use the APIs provided by custom or packaged applications


o E.g.: SAP, PeopleSoft and BAAN

The Middleware

 A software that facilitates communication between two or more software


systems
 Point-to-Point integration creates a spaghetti of connections between
applications Accomplish integration using a Middleware
 Each application is an island of information

A B
A B

F C F Middleware C

E D
E D
Middleware – Advantages

 Organizes Integration
 Hides complexities of the source and target systems
 Eases the maintenance and accommodates change seamlessly
 Creates a common communication protocol

Middleware – Components

 Message
o A unit of data, which may or may not contain header or additional
information
o Messages usually have a structure (a schema) and content (data)
 Message Queue
o Where the message is stored/persisted for a certain amount of time
(Ideally till the subscriber receives it)
 Publisher
o Publishes the message from an application
o Usually done with the help of the application’s API

Publisher
Database
Application Publisher
Caller
API

 Subscriber
o Subscribes the message and sends it to the application using API or
to the database

Subscriber

Listener Callback API Application

Database

Middleware – Features

 Facilitate Asynchronous and Synchronous Communication


 Asynchronous Communication
o An application or process, makes a call or passes data to another
application and continues its process without waiting for a reply
from the called application
o Disconnects after the call is made
 Synchronous Communication
o An application or process, makes a call or passes data to another
application and waits for reply
o Connection is not terminated until a reply received or timed out
 Publish
o The Applications that makes the call or sending the data is said to
be publishing data
o Hence it is called a Publisher
 Subscribe
o An Applications that receives the data is subscribing to that data
o And is called a Subscriber

Publisher - Subscriber
Publisher Subscriber

 Publish – Subscribe is usually an Asynchronous communication

Request – Reply

 Is achieved through synchronous communication


 Publisher makes a Request to Subscriber and waits for Reply
 Times-out when there is no-reply in a pre-defined time
Subscribe
Publisher
r

Addressing Mode

o Unicast
o Multicast
o Broadcast

 Unicast

o One Publisher, publishes a message/data to one known Subscriber


o If the message/data needs to be sent to another subscriber, the
data has to be sent again
o When the subscriber does not receive the data then it is sent
again , until it receives the data
Publisher Subscriber

Publishes
Subscribes

 Multicast

o One publisher publishes a message/data to two or more known


subscribers
o When a subscriber does not receive the message, it is sent again,
until it receives the data

Publisher Subscribes

Publishes

Subscribers

 Broadcast

o Publish messages to more than one known/unknown subscribers


o When the subscriber misses the message, it is lost – not
guaranteed

Subscribers
Publisher

Publishe
s
Middleware – Types of Models

 Logical Middleware Model


o Point-to-Point
 Ideal for two applications
 Example: RPCs
 Not fit for more than 2 applications
o Many-to-Many
 Links many applications to many other applications
 Is the best fit for EAI

Middleware – Different Models

 Physical Middleware Model

o Bus Model
o Hub-Spoke Model
o Multi-Hub Model

Hub-Spoke Model

App 1 App 2
 Is a Centralized configuration
 The Hub acts like a server
Hub-  All messages flow through the hub
Spoke  All messages are queued in the server
 Communication Protocol is Publisher-to-
App 3 App 4 Server & Server-to-Subscriber
E.g.: WebMethods

Bus Model

App 2 App 3
App 1  Decentralized Architecture
 Network bus acts as the message carrier
 Truly Distributed Middleware
B  Communication pattern is peer-to-peer
u  Messages are queued by Publishers
s  E.g.: TIBCO
App 4 App 5

Multi-Hub Model
App
2
App App  Multiple Hubs are linked together
1 5  Load Sharing
Hu  Provide Fail-safe service
b  Complex to configure and maintain
Hu
b

Hu
b App
App
6
3
App
4

Messaging Standards

 The messaging standards are used by EAI and B2B integration. In fact, it
is quite predominant in B2B integrations
 Following are some of the widely used standards

o XML – Extensible Markup Language


o EDI - Electronic Data Interchange
o RosettaNet – Standards for Electronic Industry
o IDOCs – Intermediate Document – used by SAP
o OMG – Open Management Group Standards
o OAG – Open Applications Group Standards

Summary

 Integration is essential for exchanging data between Applications and


external enterprises
 Middleware delivers the following
o Messaging Services
o Message Routing
o Rules Engine
o Middleware Models
o Hub and Spoke
o Bus
o Multi-hub
o Process Automation
Business Works

What is Business Works

TIBCO Business Works is a scalable, extensible, and easy to use


integration platform that allows you to develop, deploy, and run
integration projects.

Components of BW

• TIBCO Designer GUI


• BW Engine
• TIBCO Administrator
• TRA
• TIBCO Admin GUI

What is TIBCO Domain

A set of hardware and software components which can be monitored by


the TIBCO Admin Server

Various Components of TIBCO DOMAIN

• TIBCO Administration Server


• Machines
• User and Access Information
• Software Components
• Projects

Monitoring and Managing Domains

 View, add, delete and assign privileges


 Monitor and mange the machines in the domain.
 Monitor and manage deployments. This includes viewing, starting, or
stopping the individual components, viewing process instances, and
configuring traces which can then be exported to a file

Integrated Development Environment

• At design time, you use TIBCO Designer to configure services, such as


adapters, and lay out your business processes.
• You can use the TIBCO Designer test mode to debug adapter
configurations and process definitions.
• You can use the TIBCO Designer deployment palettes to assign process
engines to individual machines.
• You deploy the project, which means scripts and other information about
the processes to be run are sent to the individual machines.
• Finally, you can start the processes, which are waiting to be started, using
the TIBCO Administrator GUI. You can then monitor and manage all
processes using TIBCO Administrator
BW Usage scenario

Supported Elements

• Messaging
• Adapters
• Business Process Modeling
• Schema and Data Mapping
• Deployment Configuration and Management
• Run-Time Management and Monitoring

Messaging

• Guaranteed and Fault tolerant


• Distributed.
• High Throughput
• Scalable

Adapter Features

• Easy Configuration With Design-Time Adapter


• Easy Inclusion in Business Processes
• Easy Deployment and Monitoring

Business Process Modeling

• Configuration of adapter services.


• A complete set of commonly used activities such as File Read, Write, and
Create, a set of email activities, timers, FTP activities, etc.
• A transformation tool that lets you map the output of one activity to the
input of subsequent activities.
• Conditional transitions supporting XPath syntax.
• Grouping of activities.
• An easy-to-use design-time process debugger.
Simple Process

Other Components

End-to-end business process monitoring.

 Track components such as adapter services or process engines.


 Create customized logs that could include number of jobs, throughput, and
so on.

Systems management.

 Monitor system performance.


 Monitor processes, system health, and network status.
 Receive alerts if parts of the project are overloaded or if a failure occurred.
 Automatically restart failed processes and send alerts.

Tracing.

 Specify filters for tracing.


 View log files for all machines remotely in one place.
 User authorization and authentication.

BW example

Admin Server

 Enforce security for the domain. TIBCO Business Works supports both
authentication and authorization of users that want view access or full
access to the run-time components.
 Manage storage for server-based projects.
 Manage registration, that is, add deployed projects and machines to a
domain.
 Send appropriate information to each machine's run-time agent when a
project is deployed, and pick up alerts sent by those run-time agents.

TRA

 Supplies the runtime environment, that is, all shared libraries including
third-party libraries.
 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.

BW interactions

Install time interactions

Advantages of BW

 Short Deployment cycle


 Scalability and extensibility
 Ease of Use
TIBCO Designer 5.X

Introduction:

 Provides an easy to use graphical user interface


 Used for configuration of TIBCO products
o configure adapters using a drag and drop interface
o Save the adapter configuration
o Configure Business Works processes
o Import Export resources
o Manage multi-user projects
 Conversion
o To convert 4.x repos to 5.x and vice versa
o To convert MultiFile Projects to dat files and vice versa
 Palettes
o TIBCO products which have a GUI for configuration, included as
paletted in designer.

Starting TIBCO Designer:

Windows

 Click Start>Programs>Tibco>TIBCO Designer>TIBCO Designer 5.1


 Double click on the designer.exe in the <TIBCO_HOME>\designer\5.1\bin
directory
 Run <TIBCO_HOME>\designer\5.1\bin\designer.exe from the command
prompt

UNIX

 Navigate to the <TIBCO_HOME>/designer/5.1/bin directory.


 Type ./designer

Note: <TIBCO_HOME> refers to the path where TIBCO products have been
installed
Start up options

Project Tab
 New empty project – to create a
project from scratch

 From template – To create a project


with an existing template

 Open Existing Project

 Reopen Project – To open projects that


have been recently worked with

 Delete Project

Administration Tab

Features provided by the admin tab:

 Convert DAT to VC files


 Convert Files to DAT
 Configure preferences
o General options
o Views
o References
o Others
o XML Editing
 Configure Runtime
o Palette path, Class Path, User
Directory & Heap Size can be
specified

Main Window

The Designer main window has these components :

 Menu bar and menus


 Tool bar icons
 Four panels (starting in the top left corner and continuing clockwise):
- Project panel
- Design panel
- Configuration panel
- Palette panel

Designer Panels
Project Panel Design Panel

Palette Panel Configuration Panel

Projects

 A project is a collection of resources.


 Represented by the top-level folder in the project panel.
 This top-level Folder ‘s name corresponds to the project name.
 Each new TIBCO Designer window contains one and only one project.

Resources

 The components of a project.


 Can be complex and contain other resources
 Examples: Adapter configurations, BW processes.

Project Structure

 When you save a project, TIBCO Designer creates a hierarchy of folders


and files in the location you choose for the project.
 Each top level resource corresponds to a file in a local-file system.

Using a Version Control System

 Multi-file projects support the use of different version control systems.


 The Projects are stored as Version Control(VC) files.
 VC files have a folder structure.
 Individual Folders can be accessed /modified .
 No Impact on other components of the project.
 The following version control systems are supported:
o Perforce
o File sharing
o Microsoft Visual Source Safe

Palettes
 Each TIBCO application you install adds one or more palettes to TIBCO
Designer during installation
 Palettes provide access to resources
 Drag-and-drop resources from the palette panel into the design panel to
add them to your project
 TIBCO Designer contains a number of native palettes

Global Variables

Provide an easy way to set default values for use throughout the project

 Click on the Global Variables tab to configure the Global Variables.

 To create a new global variable

o Click on Add new variable/variable group Icon


o Specify a name
o Assign a value
o Press Enter

The global variable is now displayed in the global variables list.

 Variables can also be configured to be specified on a per-deployment or a


per-service basis.

Global Variables

 To use the global variable in the fields of a resource, enter the variable
name surrounded by %% on both sides
 Most projects define some standard variables, but you may define any
variables you need.

AESchema
 TIBCO applications use schema data to describe the data structure used
by the application.
 Applications use schema to describe the data a particular subscriber or
publisher receives from or publishes to TIBCO Messaging.
 TIBCO Designer is used to define schema data for a project.
 The schema can then be used by all resources in the project.

Import / Export of projects

 The project saved as a local file system cannot be used by the


adapters. It is mainly used during the development phase.
 The project has to be exported as a local File or a server based
Repository. You can only run an adapter if it has been saved as a .dat
file.
 The entire project or individual resources can be exported / imported.

Validating projects

 Before you save a project, it is critical that you validate it.


 TIBCO Designer includes reference-checking and other validation facilities
that allow you to make sure a project is internally consistent. This is
essential if you intend to run the project, hand it to another user, etc.
 To validate a resource
o select the resource
o then choose Resources > Validate Resource from the menu bar.
 To validate all resources in the project
o Choose Project > Validate Project for deployment.
Configuring an adapter instance

 To add an adapter instance resource to the project:


o Left-click a resource in the palette panel and drag and release it in
the design panel.
o Right-click a resource > Add this to project in the Pop-up Window

 Double-click the adapter instance in the project tree panel. The two high
level folders visible are:
o Adapter Services
o Advanced

 The next slide shows the adapter instance which has been dragged and
dropped

Adapter Instance
Tabs for Adapter Instance

 Some Common tabs in the configuration panel for an instance are:

o Configuration
 Provide the name of adapter instance
 Associate Message Filters if any
o Logging
 To specify the types of messages (info, debug, warning,
error) to be logged
 To customize the Log file name
 To Log to standard I/O
o Startup
 To provide startup banner
 State at startup
o Monitoring
 To customize the Micro agents
o Other tabs include Connection, Adapter Services etc

Configuring Services

 Double-click the Adapter Services folder to open it. (The available


resources now display in the palette panel)
 Drag an adapter service resource from the palette panel into the design
panel The configuration panel is updated to allow you to configure the
service.
 Click through the tabs and apply configuration details to configure the
resource
 Save the project, the resource is saved and can then be used at run-time
Adapter Services

Adapter Services Folder

 Displays services supplied by the adapter (publication, subscription,


request - response, request-response invocation services)

Advanced Folder

 Contains resources that are created by TIBCO Designer while the adapter
is configured
 For example, each time a service is added to an adapter, a session and
endpoint are created
 Other Common resources include Advisories, Log Sinks, Timers,
Transaction Controls and Metadata URLs.

Adapter Service Tabs


TIB/Rendezvous (RV) Concepts

 Enables exchange of data among applications across a network.


 RV software supports many hardware and software platforms.
 Inter-operable across different hardware/software platforms.

The components of RV

Two main components


 TIB/Rendezvous daemon
– runs on each participating computer on your network
– All information that travels between program processes passes
through the Rendezvous daemon as the information enters and
exits host computers
– The daemon also passes information between program processes
running on the same host
 TIB/Rendezvous programming language interface (API)
– Rendezvous software includes several programming language
interfaces
– efficient, easy to use, and compatible with most other libraries
(including window systems)
Features

 Decoupling and Data Independence


– Rendezvous self-describing data messages promote data
independence
– producers and consumers of data can communicate even if they do
not share the same internal representations for data
– Communicating programs can run on different hardware
architectures, even though they use different bit order, byte
alignment or numeric representations
 Location Transparency
– the messaging is subject based
– the Sender need not know the listener's location (IP/network
address) and vice versa
– You can dynamically add, remove and modify components of a
distributed system without affecting other components
 Reliable Delivery
– Rendezvous software takes care of segmenting and recombining
large messages, acknowledging packet receipt, retransmitting lost
packets, and arranging packets in the correct order

Benefits of Programming with TIB/Rendezvous Software

Benefits during Application Development:

 Eliminates the need for applications to locate clients or determine network


addresses.
 Simplifies the development of distributed application systems by hiding the
networking details.
 Makes it easy to develop resilient systems - redundant data producers are
transparent to consumers.
(A producer is any application that sends data. A consumer is any application
that receives data.)

Benefits during Application Use


 Can publish broadcast messages to distribute information quickly and
reliably to many consumers.
 Can use request/reply interactions, such as queries or transactions.
 TIB/Rendezvous applications are location independent, and port easily
between platforms.

Benefits as Applications Evolve

 Maintainable
 Scalable
 Longer useful lifetimes
 Portable

How TIB/Rendezvous Software Works with Your Application

TIB/Rendezvous Daemon

 Runs as background process (rvd)


 Takes care of Network details/communication
 Data transport, Packet ordering, receipt acknowledgment, retransmission
requests, and dispatching information to the correct application processes
 Invisible to the applications that depend upon it.

Interactions Between Applications

 Publish/subscribe interactions, such as distribution of information to


multiple recipients.
 Request/reply interactions, such as queries or transactions to individual
services.

Publish/Subscribe Interactions

 These interactions are driven by events


 A publisher makes information available for general distribution.
 Communication is in one direction (publisher to subscribers), and often
one-to-many.
 The complete interaction consists of one broadcast message, published
once, and received by all subscribers.

Publish/Subscribe Interactions (examples)

 Securities data feed handlers publish the latest stock prices to hundreds of
traders on a trading floor simultaneously.
 Materials movement systems distribute data to various materials handlers,
controllers and tracking systems on a factory floor.
 Inventory levels flow continuously to accounting, purchasing, marketing
and other departments in a retail store.
 A bug tracking database immediately sends bug reports and updates to all
personnel interested in a particular project.
 A master database publishes updates to a set of internet mirrors.

Request/Reply Interactions

 Demand for data drives request/reply interactions.


 A client requests data from a server,
 the server computes an individual response and returns it to the client.
 The complete interaction consist of two point-to-point messages-a request
and a reply.

Request/Reply Interactions(examples)

 Transaction processing (as in ATM banking).


 Database query (with a remote DBMS).
 Factory equipment control.

Points to remember
 A producer does not send data until a consumer makes a request.
 Each program sends its message to a specific inbox within the other
program.
 The requesting consumer listens until it receives the reply, and then stops
listening

Subject Names
 Each message has a Subject Name.
 A subject name is a character string that specifies the destination(s) of a
message.
 Subject Name can also describe the message content.
 Sending and receiving applications must agree upon a subject name
 Subject-based addressing technology enables anonymous messaging
 have the freedom (and the responsibility) to establish conventions for
using subject names
 Subject names consist of one or more elements separated by periods.
 The elements can be used to implement a subject name hierarchy that
reflects the structure of information in an application system.

Subject Names (examples)

 Valid Names
NEWS.LOCAL.POLITICS.CITY_COUNCIL
NEWS.NATIONAL.ARTS.MOVIES.REVIEWS
CHAT.MRKTG.NEW_PRODUCTS
CHAT.DEVELOPMENT.BIG_PROJECT.DESIGN
News.Sports.Baseball
finance
This.long.subject_name.is.valid.even.though.quite.uninformative
 Invalid Names
News..Natural_Disasters.Flood (null element)
WRONG. (null element)
.TRIPLE.WRONG.. (three null elements)

Subject Names (examples)

 Max 500 chars


 Can contains multiple elements
 Case Sensitive
 Can contain up to 100 elements
 Each element max chars - 255

Some issues with elements

 For better performance use


– less no of elements (4 or 5)
– less no of chars in an element (not > 50)
 Make them meaningful
 Develop conventions for clarity

Wildcards

 * - One element
 > - Any number of elements
 Listening on wildcards is okay (take care)
 Never publish on wildcards

Reserved elements

 The following elements are reserved. Do not use them.


– _INBOX
– _RV
– _LOCAL
– _RVCM
– _RVFT

Quality of Service(Transport)

 Reliable Messaging
 Certified Messaging
 Distributed Queue

Reliable Messaging

 Minimal network overhead beyond the message itself.


 No file storage overhead.
 Rendezvous daemons inform programs when data is lost.
 No information about the lost data is available.
 Rvd retains outbound messages for 60 seconds.
 60 seconds, or Rvd process termination—whichever is first.

Certified Messaging

 Offers greater certainty of delivery—even in situations where processes


and their network connections are unstable.

 FEATURES
– Certainty – Maintains Order
– Ledger Recording
– Graceful Degradation – From certified to reliable

Certified Messaging - Benefits

 Individual confirmation of delivery for each message


 Order of messages is maintained
 Delivery even in case of intermittent physical network connections

Limitation
 Not Recommended for High Data rates.
Distributed Queue

 Certified Delivery Behavior


 Group of cooperating transport objects, each in a separate process
 All groups members listen on the same subject
 Members share same CMQ name
 Senders are not group members
 Member Roles—Worker and Scheduler
 Inside the group, the member acting as scheduler assigns each task
message to exactly one of the other members
 Load Balancing

Distributed Queue - Architecture


Fault Tolerance

 Helps achieve fault tolerance by coordinating a group of redundant


processes
 Some processes actively fulfill the tasks of the program, while other
processes wait in readiness
 When one of the active processes fails, another process assumes active
duty.

Fault Tolerance Vs Distributed Queue

 Fault tolerance requires that every member of a fault tolerance group


receive each message.
 each message to a distributed queue group is received by exactly one
worker in the group

A program cannot simultaneously be a member of a fault tolerance group and a


member of a distributed queue

Transports

 Applications create Transports with RV daemon process


 Transport Parameters
– Service
– Network
– Daemon
Service

 A UDP port number


 Default = 7500 (Can be modified by Sys admin)
 Communication across networks
 As a direct result, services divide the network into logical partitions called
service groups.
 Each session belongs to a single service group.
 A session can communicate only with other sessions in the same service
group.
 To communicate with more than one service group, applications must
initialize more than one session.

Network

 Only one network card for your machine


– You don’t need to worry about this parameter
– Otherwise, specify the IP address or host name
Daemon

 Specifies the rvd client socket TCP port #


 Default 7500
 If you want to connect to an rvd on another machine ….
 Use it along with Host name or IP address
 Ex:
– -daemon “tcp:8000” (local)
– -daemon “tcp:itl-pc-3424:8000” (remote)

Fields in Rv Message

 TIB/Rendezvous programs exchange self-describing data. Each item of


self-describing data consists of four parts:
 Data-the data itself.
 Type-an indicator to manipulate and interpret the data as an integer, a
string, a composite message, or other datatype.
 Size-the number of bytes that the data occupies.
 Name- the name of a field within a composite message
Basics of JMS

JMS is a specification that defines a set of interfaces and associated semantics,


which allow applications written in Java to access the services of any JMS
compliant Message MOM product."

 Originally developed(by Sun) to provide a standard java interface to


legacy MOMs like IBM and Tibco.

 Specification for message passing among distributed s/w components.

 JMS is only useful if there are any compliant MOMs


Eg:MQSeries from IBM, SonicMQ from Progress Software, FioranoMQ from
Fiorano, TIBCO etc
"JMS is an API used to access the facilities of a MOM from a Java
application.“

 Frees from security burdens as JMS Server provides security through


administered objects

 Enterprise Java Beans can use JMS for message passing among beans.

Why JMS ?

Client

Java Message Service(JMS) API

IBM Sun Java Progress


TIBCO Message
MQ SonicMQ
RV Queue
Series

Types of Messaging

 Point To Point
 Uses queues
 the messages are in a queue, waiting to be retrieved.
 almost parallel to e-mailing

 Publish / Subscribe
 Uses topics
 Message subscribers receive messages only when
they are active, and they have subscribed to the
topic on which the message was sent. Therefore,
there is a time dependency.
 Can be avoided if durable subscribers are used.
(TopicSubscriber subscriber =
session.createDurableSubscriber(topic,durableName);)

Message Delivery Modes

 Persistent: at-most-once. -Performance


Can lose the message but must not deliver it more than once.

 Non-Persistent: once-and-only-once. -Reliability


must not allow the message to be lost and it must not deliver it more than
once.
Persistence != Reliability

 Delivery mode only covers the transport of the message to its destination.

 Retention of a message at the destination until its receipt is acknowledged


is not guaranteed by a persistent delivery mode.

TIBCO JMS - Features

 Support for both queue and publish/subscribe APIs


 Fully-compliant with the JMS specification
 C-based server process for optimum performance
 Lightweight pure-Java client library for maximum compatibility
 Full authorization and access control
 Queue and subscriber administration
 All extensions made without changes to API, so your programs retain their
standardization
 Seamless bi-directional connectivity with TIBCO Rendezvous™
 Interoperability with all of TIBCO's EAI, B2B Integration, Portal and BPM
solutions

TIB JMS Server

 Functions as an intermediary to handle message passing among clients.

 C-based server process for optimum performance

 Client isn’t burdened to monitor the receiving client,network failure etc.

 Transparently handles network-related issues like reliable delivery which


involves transaction processing and/or persistent message storage.

Administration Tool

 Helps to create topics and queues

 To add security features etc.

Some executable commands:

add addprop autocommit commit


connect create delete disconnect
exit grant revoke show
info purge remove shutdown
Messaging Implementation

Connection
Factory

creates

Connection

Message creates creates Message


Session
Producer Consumer

Receives
from
Destinatio
Destination Message
n

Q: Describe a scenario when duplicate messages can come


Ans: In case of RVCM messages, acknowledgement might get lost or was not sent
as process engine crashed. However process data was check pointed. Publisher
resends the message.

Q: How is duplicate detection performed?


Ans: Duplicate messages should be detected and discarded to avoid processing
the same event more than once. Duplicate detection is performed when a process
instance executes its first Checkpoint activity. You must specify a value for the
duplicateKey element in the Checkpoint activity input schema. This value should
be some unique key contained in the event data that starts the process. For
example, the orderID value is unique for all new orders.

The following describes the procedure for duplicate detection by the process
engine:

1. An incoming message is received and a process instance is created.

2. Activities in the process instance are executed until the first Checkpoint
activity is reached. The Checkpoint activity has a value specified for the
duplicateKey input element.

3. The process engine checks the current list of duplicateKey values for a
matching value.
a. If no process instance has stored the given duplicateKey value, the
process engine stores the value and completes the Checkpoint
activity.

b. If another process instance has already stored the given


duplicateKey value, the process engine terminates the process and
throws a DuplicateException.

4. Once a process engine stores a duplicateKey value and performs the


Checkpoint for a process instance, no other Checkpoint activities in the
same process instance can be used to store a different duplicateKey value

Q:What are the deployment tools available for command line scripting?
Ans: buildear and AppManage. Buildear can build an ear file . You need to specify
path to enterprise archive in designer, path to designer repository and path to the
new archive to be created. AppManage can produce a deployment config file and
can be used to upload the ear file and config file into the administrator server. It
can be used to do various things like deploying on multiple servers, create config
files for already deployed components which can be used to deploy them on other
environments, delete a component from server etc.

Q:What are the two ways of ensuring that process instances run
sequentially in the order of their creation?
Ans: All process starters allow you to specify a sequencing key. All the process
instances with the same value for this key will be executed in sequence, however
any processes with different values for this key can still execute concurrently.
Second way of ensuring this is that administrator allows you to configure how
many process instances can live in memory and maximum number of
concurrently running processes. By setting these configurations also you can
ensure the same. However first message is preferable, second should be used
only when you cannot change the code or you have to do it at deployment time.
Q: What are the locally defined and globally defined schema elements
when defining a schema?
Sol: XML Schema elements can be declared locally or globally. Local elements
exist within the context of their parent element only. Accordingly, you could have
a local element named title that appears within a book element and another local
element named title that appears within a mortgage element. Global elements
are declared such that they can be referenced within any content model. All
global elements must have unique names.

Q: Name some of the headers in a JMS messages and what are the
headers fields filled by a client (sender/publisher).
Sol: JMSMessageId, JMSReplyTo, JMSCorrelationId, JMSRedelivered,
JMSExpiration, JMSType. There are 10 of them.

Q: When a process is suspended (e.g by checking ‘Suspend if still error’


option in case of ‘repeat on error until true group), how can you
configure a automatic action to be taken. (note this can be done as part
of some deployment configuration).
Sol: This is not complete answer. In case of ‘repeat on error until true group’
group, resuming the process instance, it will resume before the ‘repeat on error
until true group’ group i.e. whole group will be executed again and all process
instances will be reset as if it was never executed before.

Q: What are different types of variables in BW?


Ans: Global Variables, Process Variables, Shared Variables.

Q: What are the types of process variables?


Ans: Pre-defined process variables, user-defined process variables, error process
variables, output process variables.

Q: what are the two types of predefined process variables:


Ans: $_globalVariables, $_processContext., $_error

Q: what type of information is stored in $_processContext predefined


process variables and names a few of them:
Ans: These type of variables store information like process id, project name,
whether the process was started from a checkpoint etc. Few of the names are:
ProcessID, ProjectName, RestartedFromCheckpoint, EngineName, CustomInfo,
TrackingInfo.

Q: Rules for global variables?


Ans: Only global variables which has ‘Deployment’ option checked and only those
who follow the XML naming rules (e.g. % cannot be in the name) are shown in
the $_globalVariables.

Q: How error process variables values are are shown?


Ans: $_error contain the general error information and $_error_<Activity Name>
is also produced sometimes.

Q: Some important points about shared variables:


Ans: Job shared variables do not have the persistent and multi-engine options.
If many process instances share the ‘Shared Variables’ in the same process
engine, then if persistent field is checked, value of shared variable can be
persisted in file system or database depending upon how process engine is
configured. However If multi-engine option is selected then persistent is by
default and it has to be persisted in a database i.e. all process engine should use
the same database for storage. Note that sharing ‘Shared variables’ among
multiple process engine is only possible in case all process engines are part of
same deployment and part of same load-balancing group.

Q: what are the new features in b/w 5.4 as compared to 5.2


Ans: There are two more types of groups namely ‘while true’ and ‘if’.
There are no ‘Policy’ and ‘Service’ palettes in 5.2.
In General Activity pallette, there are 4 more quite useful activities: Rethrow,
Catch, CustomActivity and Notification Timeout.
Administrator can be configured to use rv, http/https or ems as transport for
inter-domain communication, this was not possible prior to tra5.3

Q: What are the modules in the administrator?


Ans: User Management, Resource Management, Application Management.

Q: In application management module, when you click on an application,


its configuration panel is presented in the right pane. What is displayed
in this panel and what can you configure in each of them?
Ans: Configuration panel shows three things in the form of a tree in the following
order:

Application
Service
ServiceInstance
By clicking on ‘application’, one can change the global variable values.
By clicking on ‘Service’, one can configure the monitoring options. You can
add the service to more machines in the administrator domain.
By clicking on ‘ServiceInstance’, one can configure logging, whether to run
as an instance or as a windows service and shutdown options. You can set
various jvm options like classpath, memory etc.

Q: What are things that can be done using DomainUtility?


Ans: Create or delete domains, add/remove a machine into a domain, upgrade
administrator domains, manage administrator servers, add/remove administrator
plugins like EMS/servlet engine.

Q: What is the difference between hawk monitoring from administrator


and hawk console?
Ans: If you deploy a hawk rulebase (*.hrb file) from administrator then it is saved
in the ‘TIBCO_TRA_DOMAIN_HOME\domain-name\rulebase’ directory of the
target machine. If the original rulebase is changed, it must be reloaded into the
configuration and application must be redeployed. This seems to be disadvantage
and may be with every new release, rulebases will have to be configured again.

Q: What is the benefit of using database as BW storage?


Ans: a) If using database as storage for bw, process engines (assuming (and they
should be as otherwise it does not make sense for them to be in fault tolerance)
in a fault-tolerance group can restart the process instances from their last check-
pointed state. Second, using database, wait and notify activities can pass data
between processes/services running on different machines. If BW is not using
database but a filesystem for its storage then they cannot communicate across
machine.

Q: How are tables for BW storage created in a database?


Ans: Either you can create them manually or they can be created automatically
when you deploy an application after choosing database as the storage (in the
advance tab of a service).

Q: How do you control the execution of process instances during


deployment?
Ans: Using ‘Max job (in memory)’ and ‘Flow Limit (max jobs in memory +
paging)’ are the two fields which can be used to control the execution of process
instances. Paging involves some overheads so if system has enough resources
then set the Max Job to 0; this allows the process engine to create unlimited
number of process instances without paging. When the flow limit is reached,
process started is suspended and no more requests are accepted. You should
consider the kind of activity the process starter is as while configuring these
values. In case of ‘http receiver’, client may not be able to connect but in case of
others such as rendezvous, jms, receive email etc activities, it will work normally
as messages will remain on the sender side and will not be lost. These will be
accepted by the process engine when Flow limits goes below its maximum value.

Table 3 Effects of various configuration settings


Max Activation Max Description
Jobs Limit Jobs
(Flow
Limit)
0 Cleared or 0 An unlimited number of process instances can be
selected created and concurrently loaded into memory.
Activation Limit is ignored when Max Jobs is set to 0.
0 Cleared or N No paging of process instances. Allows up to N
selected process instances before placing process starter in
flow controlled stated.
Activation Limit is ignored when Max Jobs is set to 0.
1 Selected N One process instance is loaded into memory at a
time and kept there until it completes its execution.
This guarantees incoming events are processed in
the order in which they occur. Up to N process
instances are paged to disk, and then the process
starter is placed into flow controlled state.
Note: If your goal is to sequentially process
incoming events, use the Sequencing Key field on
the Misc tab of the process starter. Using Max Jobs
and Activation Limit incurs overhead as process
instances are paged to disk and retrieved from disk.
1 Selected 0 Once process instance is loaded into memory at a
time and kept there until it completes its execution.
This guarantees incoming events are processed in
the order in which they occur. There is no limit on
the number of process instances that can be created
and paged to disk.
Note: If your goal is to sequentially process
incoming events, use the Sequencing Key field on
the Misc tab of the process starter. Using Max Jobs
and Activation Limit incurs overhead as process
instances are paged to disk and retrieved from disk.
1 Cleared N One process instance is loaded into memory at a
time, but up to N process instances are created.
Incoming events can be processed in any order
because process instances are not kept in memory
until they complete execution.
M Selected 0 An unlimited number of process instances can be
created, but only M are loaded into memory and
processed concurrently.
This setting ensures a limited amount of concurrent
processing. This situation is useful if you have
limited resources, such as database connections.
You can set Max Jobs to a relatively small number
and the Activation Limit option keeps each service in
memory until the service completes. Each loaded
process uses a machine resource until the service
completes. Once a service releases the resource, a
new process can be loaded into memory and the
corresponding service can use the resource.
N Same as above, except only N process instances are
created before the process engine is placed in the
flow controlled state.
M Cleared 0 An unlimited number of process instances can be
created, but only M are loaded into memory and
processed concurrently. After M process instances
are created, new process instances are paged to
disk. There is no guarantee of the order in which
process instances are executed.
N Same as above, except only N process instances are
created before the process engine is placed in the
flow controlled state.

Q: Why there is no ‘Max Session’ field on configuration tab of ‘Get JMS


Queue Message’, ‘JMS Queue Requestor’, ‘JMS Queue Sender’, ‘JMS Topic
Publisher’, ‘Reply to JMS Message’, ‘Wait for JMS Queue Message’ and
‘Wait for JMS Topic Message’ activities
Ans: ‘Session’ field allows you to specify how many sessions you want to create
to handle the incoming messages on this process. Generally, until a message is
acknowledged by the ‘Confirm’ activity (if not in ‘auto’ or ‘Dups OK’ confirm
mode) another message won’t be processed by a session. So if there are 5
sessions that means there can be at max 5 messages processed (or same
number of process instances) at any time. As one message is acknowledged, a
new process instances will be created to handle the new incoming message.

Having mentioned that it is clear that ‘Max Session’ field is meaning full only for
those activities which receive or subscribe messages. So this field will have no
meaning for ‘JMS Queue Requestor’, ‘JMS Queue Sender’, ‘JMS Topic Publisher’,
‘Reply to JMS Message’ activities.

In case of ‘Get JMS Queue Message’, ‘Wait for JMS Queue Message’ and ‘Wait for
JMS Topic Message’, they are supposed to get only one message at a time so
there is no ‘Max Session’ field in them as this would be 1 by default.

Q: Why is it so that ‘Max Session’ field is editable in case of ‘JMS Queue


Receiver’ and non-editable in case of ‘JMS Topic Subscriber’ when
‘Acknowledge Mode’ is selected is ‘Client’ or ‘Transactional’.
Ans: This is due to the basic behaviour of ‘queues’ and ‘topics’. In case of queues,
there can be more than one receivers but a message will be delivered one and
only one receiver. But in case of topic a published message can be subscribed by
more than one subscriber. A value of more than 1 in ‘Max Session’ fields means
that there will be actually more than 1 instance of that process waiting for the
message. So having more than 1 value in case of ‘‘JMS Queue Receiver’ makes
sense as all the messages will be create a new process instance with a guarantee
that each message will be processed only once. However if we have a ‘Max
Session’ value of more than 1 in ‘JMS Topic Subscriber’ that will mean there can
be as many process instance which may process the same message more than
once and that is why this field is set to 1 and is non-editable in case of the ‘JMS
Topic Subscriber’

Q: What are the acknowledgement modes in ‘JMS Queue Receiver’, ‘JMS


Topic Subscriber’, ‘Get JMS Queue Message’, ‘Wait for JMS Queue
Message’ and ‘Wait for JMS Topic Message’ activities?
Ans: All of these activities except ‘Wait for JMS Topic Message’ have all the
acknowledgement modes available to them. i.e.
1) Auto
2) Client
3) Dups Ok
4) Transactional
5) Tibco EMS Explicit
6) Tibco EMS No Acknowledge

However in case ‘Wait for JMS Topic Message’ there are only three of them:
1) Auto
2) Dups Ok
3) Tibco EMS Explicit

 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 — this mode behaves exactly the same as the Client
mode, except the session is not blocked and one session can handle all
incoming messages. This mode is only available when using TIBCO EMS.
 TIBCO EMS No Acknowledge — messages delivered using this mode do not
require acknowledgement. Therefore messages in this mode will not be
redelivered regardless of whether the delivery was successful. This mode
is only available when using TIBCO EMS.
 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.

Q: When is the 'Output Editor' tab enabled in JMS activities


Ans: When JMS message type is Map, Stream or XML Text.

Q: What are the different ways of handling errors in a BW process?

Ans:

Approach 1  Use ‘Generate Error’ activity. When this activity generates an


error, error control is given to the next higher exception scope. So you can
use it inside the groups or subprocesses. Draw an error transition from an
activity, and use Generate Error activity. Using the End activity of a process
you can define one or more error schemas. You can select one of these
schemas in the ‘Generate Error’ schama.

Upon execution of Generate Error activity, If there is an ‘error transition’ from


the subprocess call (or group in which it was called), that transition will be
followed. If there is no error transition but there is a Catch activity, then catch
activity will get the control (if catch activity is in the subprocess it will get the
control, if it is not in subprocess but there is one in calling process that will
get the control provided there was no error transition from the subprocess call
as previously mentioned.). Transitions cannot be drawn from a ‘Generate
Error’ activity.

Approach 2  You can place a Catch activity in your process definition to deal
with unhandled exceptions. The Catch activity allows you to create a track
that handles the exception and proceeds to the end of the current scope;
either the end of the process definition or the end of a group. You can use the
Catch activity as an alternative to individually handling exceptions for each
activity, or you can use error transitions to handle some exceptions and the
Catch activity to handle others. In a process you can have more than one
catch activity, but each one of them should catch a different exception. You
can define catch activity which will catch all exceptions. So if there is an
exception which is not specifically handled by any of the catch activity then
this catch activity will catch rest of the exceptions.

Rethrow activtity allows you to throw the exception currently being handled
by the catch path. Transitions cannot be drawn to a catch activity.

Q: What all different types of activities can take part in a transaction in


BW?
Answer: JDBC activities, JMS activities, EJB activities, TIBCO IProcess
BusinessWorks Connector activities, TIBCO ActiveEnterprise adapter activities
when configured to use JMS transport.

Any activity can be configured inside a transaction group but only activities
belonging to above group can actually take part in a transaction.

If a transaction commits, all eligible activities commits, if transaction rollsback,


all eligible activities rollbacks.

Q: Important points while configuring JTA User Transaction transaction


type.
Sol: JDBC activities in a JTA UserTransaction must be configured to use JNDI and
specify the datasource in the application server. All JMS activities should use the
XA connection factory in the application server.

Question: What are different types of administration domains available?


And what are main points of each of them?
Sol: They can be of two types:
a) Tibco Rendezvous Administration Domain:
b) Tibco EMS Administration Domain:
In case of RV Domain, domain data can either be stored as files or database. In
case of EMS domain, domain data can only be stored as database.
In case of RV domain, all three (http, Local and RV) type of transports are
available for application data. For EMS, only Local transports are available.
Only RV domain allows administration servers to run in a load balanced mode,
which also provides failure recovery, where secondary server continues to run
when primary server goes down.

Q: Can job shared variables be persisted across BE Engines? Why?


Sol: No. As they work in between called and calling process and both of them
always exists in the same BW engine. This cannot work across JVMs.

Q: Difference between different types of deployments in administrator


(local, RV & http/s). Any pros/cons for them?
Sol: Local: repository (& global variables and other settings) are created on the
same machine on which deployment is done. Process instance can run without
administrator being running. You can start/stop irrespective of admin running.
RV/http: Repository and other data is deployed on server (in file or database as
configured in domain) and process instances seek the data RV or http depending
upon which transports used.

With http you can work through the firewall etc (not 100% sure of this particular
thing).
Q: What are advantage and disadvantages of using Local application
data?
Ans: Advantages: applications can run independent of administrator server so if
server crashes there is no impact on the application. Bcoz local service instance
uses no memory, this increases the performance of administrator server.
Disadvantages are: main disadvantage is synchronization. e.g. if while domain
update time, a subset of a machine in the domain are down and are later started,
they may start the components with old configurations. This can result in severe
problems. Another is security as these local repos may contain information like
username/password. Even though they are weakly encrypted, very good network
security measures should be taken.

Q: What are the advantages and disadvantages of using server based


application data?
Ans: Advantages is that there are no sync related issues. Disadvantage is that
each repository instance on server consumes memory and thread. Memory
requirements are usually 3-5 times the size of repository. Now with many
repositories this can lead to lots of memory requirement.

Q: How administrator is is configured to run in a load-balanced/fault


tolerance mode?
Ans: Note that LB/FT in tibco administrator is not a complete LB/FT. You can run
multiple admin servers with one acting as primary server and other acting as
secondary servers. They you tibco RVDP (distributed protocol). This can be done
via domainutility or changing the repo.master property in the
tibcoadmin_<domain_name>.tra file. This property contains the name of server
acting as the primary server so if primary server crashes then rest of the group
will not choose primary server automatically but you will have to change this
property in the secondary server (and also preferably change in primary server
which just crashed) to correct primary server and restart all of them. All read
operations are distributed among all the servers, however only primary server
can update the data.

Q: What are the limitations of a secondary server?


Ans: If primary server has crashed, you can use the secondary server to
start/stop processes but you cannot undeploy, deploy or delete the applications.

Q: describe situation when it is required to have a database for TIBCO


BW process data storage:
Ans : --When using shared variables to pass data among process instances
running on multiple engines.
--When using critical section groups across multiple engines require database
as storage (e.g for lock shared resource (check it)).
--When using wait/notify activity across multiple engines.
--Duplicate detection of messages across multiple engines after restarting the
processes from a checkpoint.
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.
1. The agent is responsible for starting and stopping processes that run on a
machine according to the deployment information.
2. 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 messages—a request and a response. The
interaction is only considered complete after the response has arrived.
← Publication (notification) means an operation sends information on an as-needed
basis, potentially multiple times.
← Subscription means incoming information is processed on an as-needed basis,
potentially multiple times.

7.What is vcrepo.dat?
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 file’s encoding is not valid
and the content of the file is read into process data.
← FileIOException :Thrown when an I/O exception occurred when trying to read the
file.

13.What is the purpose of the inspector activity ?


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 group 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.
1. - Iterate over a list.
2. - Repeat until condition true.
3. - 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'.
Important Points:----------------------

 Members of superuser can only set other users in the superuser list and it
is done in the ‘security’ panel.

 Permissions for the repositories in the DATA ACCESS are only visible and
hence can be set by the superuser users.

 The Security console allows the domain administrator user, a member of


the Super User role, or a user with Administer permission to assign access
permissions to consoles and repositories

 A Super User role member has read, write, and administer access to
TIBCO Administrator consoles, applications and data.
 When you upgrade, you must redeploy the application.

 When you revert, you need to deploy the application again.

 When you redeploy, you can choose options like ‘stop running services
before deployment’, ‘Kill services that have not stopped’ (this is a timeout
setting), ‘Start successfully deployed services’ and ‘Forced deployment of
all services’.

 Must read (very important) ‘Changing Global Variables at deployment’ in


Chapter 8 ( Admin User Guide)

 Fault tolerance options can be set only for TIBCO BusinessWorks


processes. TIBCO Adapter services cannot be assigned fault tolerant
options.

 Fault tolerance relies on the administration server when applications are


deployed using the rv or http transport options. When either of these
transport options is used, the administration server must be running for
fault tolerance to work correctly.

 Activation limit field (in advance tab of a service (process) specifies that
once a process is loaded into the memory, it should not be paged out until
it is completed. This option is useful if you wish to specify sequential
execution of process instances.

 The Heartbeat Interval should be smaller than the Preparation Interval,


which should be smaller than the Activation interval. i.e.
Heartbeat Interval < Preperation Interval < Activation Interval.

 It is recommended that Activation Interval should be slightly over two


Heartbeat intervals. Activation interval is the amount of time to wait since
the last heartbeat message before a secondary server starts.

 Preparation interval: Consider a situation where primary server is ready to


up again so secondary server will go back to stand by mode. This interval
is the delay before the master engine restarts. When the time since the
last heartbeat from an active member (secondary server) exceeds this
value, the ranking inactive member (primary member) will receive a "hint"
so that it can prepare for activation.

 Must remember that there are two kinds of data. Application data which is
in the form a repository which can be stored either on the server or locally
on the same machine as application/process engine etc. It is
recommended that application data is stored in the form of files regard
less of local or server based. Other kind of data is domain data. It is
recommended that domain data should be stored in database. This
improves the performance.

 While creating tibco administrator domain, one can specify the transport
that will be used for inter-domain communication. It can be either RV or
EMS. If it is choose as RV, you can run multiple administrators in a load
balanced mode. One will act as primary and others will act as secondary
servers. One host cannot host both primary as well as secondary servers.
If it is EMS, it does not matter if you run more than one servers as only
deployment option is local so components run independent of admin
servers.
 An administration domain stores domain information in a file repository or
database repository in case transport is RV, however if transport used for
inter-domain communication is EMS, data storage can only be in a
database. When using a file-based repository with a primary and
secondary administration server, performance will be slower than when
using a database to store administration domain data.

 In most cases, it is recommended to use a database for the domain


repository and files for client application repositories. In the case of a
file-based domain, domain data is stored in the SYS_domain.dat and
AUTH_domain.dat files. Data stored in the SYS_domain.dat file is referred
to as the administration domain while data stored in the AUTH_domain.dat
file is referred to as the authorization domain. The authorization domain
contains the users, roles and data access ACLs. Everything else is stored
in the administration domain: installed software, machines, applications,
plug-ins, TIBCO Administrator ACLs, and so on. As such, the
administration domain file is usually much larger than the authorization
domain file.

 Performance can improve if domain data is saved into a database. If


using file for domain data storage, each time you make a change and
save, contents of that file must be regenerated and committed (written)
into the file. And during deployment there are a lot of steps when this is
done. This is quite expensive thing to do both bcoz of I/O involved and
large strings to be read/written. When using database, only changed data
is written into the database. Note that moving application data to a
database has no such savings and will slightly increase the server startup
and deployment times. This is because, application data is not loaded into
the administrator server memory (it is only used by the
application/component).

 Using Local Application Data


Using Server-based Application Data
For both choices, a directory is created for each deployed application on
the target machine under TIBCO_TRA_DOMAIN_HOME\domain-name\
application. The executables, property files and deployment files required
for the application are stored under this directory.

 The TIBCO_TRA_DOMAIN_HOME\domain-name\datafiles directory is also


created as needed and only for local deployment. This directory contains
the project files used by an application’s non adapter components such as
TIBCO BusinessWorks. Adapter repository files (.dat) are stored in the
TIBCO_TRA_DOMAIN_HOME\domain-name\data directory.

 Pick First Group : Only wait for , request reply, timer (activites with a
pause button) can have valid transition from start of the group to
activitiy.

 Global variable valid types are string, integer, boolean and password.

 Password policy does not apply to users created inside LDAP.


Administrator can only read information from LDAP but cannot write into
it. i.e. admin cannot be used to create new users directly inside LDAP but
you can have both LDAP users and local users (created directly using
admin GUI).
 Using TIBCO Rendezvous, load balancing is automatic. To get the load
balancing and fault tolerance benefit with HTTP, you must either use an IP
redirector or explicitly point to a backup server to be used when a server
fails. LB is not possible with EMS.

 When a rulebases is added in a service/process, if conditions of those


rulebases are met then results are displayed in 'Resource Management >
Machines View Machine' panel. When an alert in a service/process, alerts
are shown in the general tab of view service instance panel.

 It is recommended that you use the minProcessors and maxProcessors


properties to control the flow of incoming HTTP requests instead of using
the Flow Limit property.

 All jdbc activities that use the same connection take part in a transaction if
configured inside a JDBC transaction. If a error happened in a jdbc or non-
jdbc (e.g. writefile activity) activity inside the transaction group,
transaction will be rolled back.

 To create a distributed transaction across multiple databases, use the XA


transaction type. 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 XA
Transaction type allows JDBC activities, ActiveEnterprise Adapter activities
that use the JMS transport, and JMS activities to participate in
transactions.
 The Java Transaction API (JTA) UserTransaction type allows JDBC, JMS,
ActiveEnterprise Adapter (using JMS transports), and EJB activities (& not
Iprocess Connector activities) to participate in transactions.

 ‘Include checkpoint’ checkbox is only available in case of XA or JTA


UserTransaction types of transactions. If chosen, it will checkpoint just
before commiting the transaction

 Fault tolerance relies on the administrator server.Therefore, the


administrator server must be up and running for fault tolerance to work
properly.

 InstanceID and AppName are two global variables which are not defined
intentionally and you cannot see them in Global Variables list in designer
or administrator.

 When exporting a project as a Local Repository, do not use the name


vcrepo in the Project Name field. This name is reserved and must not be
used to name a project.

 A Checkpoint activity cannot be placed in or in parallel to a transaction.


You can, however, specify that an implicit checkpoint should be taken as
part of a transaction by checking the Include Checkpoint field on a
transaction group.

 For explicit Checkpoints, place the checkpoint activity outside of any


transaction group. Also, make sure that if you have multiple paths in your
process definition, the Checkpoint activity does not occur in parallel with a
path that has a transaction group. Instead, any Checkpoint activities
should be placed at points that are guaranteed to be reached before or
after the transaction group is reached.
 When a checkpoint occurs in a called process, the checkpoint saves the
state of the current process instance. If no called processes spawn new
process instances, then a checkpoint in any called process saves the state
of the process instance, including state from the parent process(es) of the
current process. In the case of a called process that spawns a new process
instance, only the spawned process instance is saved.

 Fault tolerance relies on the administration server when applications are


deployed using the rv or http transport options. When either of these
transport options is used, the administration server must be running for
fault tolerance to work correctly.
Q: What does different configuration parameters means while creating a new
domain?

Q: How many types of variables can be defined in BW and difference between


them?
A situation where these can be used,

Q: Different types of confirmation in JMS

Q: Difference between shared and job-shared variables.

Q: Difference between <xsl:copy-of> and <xsl:value-of>

Q: Diff b/w point-to-point and publish-subscribe

Q: Two rv subjects used by the administrator?

Q: If tibco infra in a company is spread over more than one subnet, how would
administrator monitors(or handles) machines in these subnets? (not sure of the
exact subnet).

Q: What are the different parts of a JMS message

Q: What is a durable subscriber and what is fail-safe. How are these specified and
what is the use of them.

You might also like