Application Development
Important Information
TIBCO Documentation and Support Services
Changing Help Preferences
Application Development Overview
Application Design Considerations
Process Design Considerations
Service Design Considerations
Memory Saving Considerations
TIBCO Business Studio™ for BusinessWorks™ Essentials
Outline
Module
File Explorer
API Explorer
Settings
Process Editor
Palette Library
Entity Naming Conventions
Importing an Existing Project into Workspace
Developing a Basic Process
Creating an Application Module
Creating a Shared Module
Reconfiguring Deployment Target
Generating the manifest.json File Using the bwdesign Utility
Generating the manifest.yml file
Exporting a Shared Module as a Binary Shared Module
Using Binary Shared Modules in your Project
Referencing Shared Modules
Creating a Process
Creating a Subprocess
Working with Process Properties
Configuring a Process
Creating an Activator Process
Adding Activities
Working with Transitions
Working with Standard Activity Features
Input and Output
Importing WSDLs
Using Additional Features
Adding Scope Variables
Defining and Using Shared Variables
Working with Critical Section Groups
Using Fault Handlers
Creating Process Diagrams Explicitly
Password Obfuscator Utility
Removing Groups
Configuring the Ungroup Preferences
Ungrouping a Local Transaction Group
Ungrouping Groups with Scopes
Using Coercions
Overview of Policies
Managing Policy Resources
Creating a Folder for Policies
Creating an Authentication Resource
Associating a Policy
Removing a Policy
XPATH
XPath Basics
XPath Expression
XPath Builder
Developing a SOAP Service
Developing a RESTful Service
Implementing a REST Service Provider
Developing Java Applications
Using a Simple Java Invoke Activity
Accessing Module Properties from Java Global Instance
Accessing Module Properties from Java Invoke Activity
Creating an Application
Working with Application Properties
Exporting an Application Profile
Tokenizing Application Properties for exporting in the Properties file
Exporting Tokenized Properties to Consul Server from TIBCO Business Studio™ for BusinessWorks™
Importing an Application Profile
Hot Update of Application Module Properties
Generating Deployment Artifacts
Refactoring a Shared Resource or Policy Package
Working with Multiple Component Processes
Analyzing Dependencies and References
Unused Resources
Using the Debugger
Configuring the Debugger
Testing an Application in TIBCO Business Studio™ Container Edition
Collaborative Application Development
Configuring TIBCO Business Studio™ for BusinessWorks™ with Git
Generating gitignore Files
Synchronizing Module Properties
Unit Testing
Running Test Assertions
Using Demo Projects
Adding Unit Test Assertions
Running Maven from Command Line
Unit Test Reports and Test Coverage Reports
Limitations for Unit Test Assertions
Running Activity Assertions
Adding Mocking Support for Activities
Running Unit Tests in TIBCO BusinessWorks™ Container Edition
Generating Mock Output File
Limitations for Mock Support
Using the bwdesign Utility
Messaging
Integrating with TIBCO FTL®
Limitations
Integrating with TIBCO EMS
Application Development for Cloud Foundry
The TIBCO BusinessWorks™ Container Edition Buildpack
System Module Properties
Environment Variables
Using Configurations from Configuration Management Services
Using Cloud Foundry Services
Modifying Application Properties
Modifying Properties of Type Password or Integer
Integrating with TIBCO Mashery®
Application Development for Docker
Environment Variables
Using Configurations from Configuration Management Services
Using Configurations from Configuration Management Services for AWS
Creating the TIBCO BusinessWorks™ Container Edition Base Docker Image for Linux Containers
Creating the TIBCO BusinessWorks™ Container Edition Base Docker Image for Windows Containers
Extending the Base Docker Image
Integrating with TIBCO Mashery
Running container on Docker based platform as non-root user
Improving container startup time for Docker
Remote Debugging
Application Development for TIBCO Business Studio™ for BusinessWorks™
Environment Variables
Using Configurations from Configuration Management Services
HTTP Endpoints for Health Checks
Configuring Probes in Kubernetes
Checking Application Liveness in Docker
Service Registration and Discovery
Circuit Breaker Support
Best Practices
Application Monitoring and Troubleshooting
Important Information
TIBCO Documentation and Support Services
Application Monitoring Overview
Application Monitoring on Cloud Foundry
Configuring MySQL on Cloud Foundry
Configuring PostgreSQL on Cloud Foundry
Configuring MS SQL Server on Cloud Foundry
Configuring Oracle on Cloud Foundry
Creating nodeJs buildpack with Oracle client
Creating User Provided Service for Oracle
Configuring Monitoring Application
Setting up TIBCO BusinessWorks™ Container Edition Application Monitoring on Cloud Foundry
Binding BusinessWorks Application to Monitoring Application on Cloud Foundry
Using CUPS
Using an Environment Variable
User Authentication using Cloud Foundry UAA
Enabling User Account and Authentication for Pivotal Platform
Viewing Running Application
Application Monitoring on Docker
Setting Up TIBCO BusinessWorks™ Container Edition Application Monitoring on Docker
Using Docker Compose for MySQL
Using Docker Compose for PostgreSQL
Binding BusinessWorks Application to Monitoring Application on Docker
Viewing Running Applications on Docker
Monitoring an Application on Kubernetes
Setting Up BWCE Application Monitoring on Kubernetes
Binding BusinessWorks Application to Monitoring Application on Kubernetes
Viewing Running Applications on Kubernetes
Viewing Application Monitoring Dashboard
Application Statistics Collection
Monitoring Processes
Enabling Process Monitoring
OpenTracing
Custom Tags For OpenTracing
OpenTracing Tags From Palettes
Binding BusinessWorks Application to Open Tracing on Cloud Foundry
Binding BusinessWorks Application to Open Tracing on Docker
Troubleshooting
Connecting to the Runtime by using HTTP Client
OSGi Commands
Bindings and Palettes Reference
Important Information
TIBCO Documentation and Support Services
Changing Help Preferences
Basic Activities Palette
Constructor
Compensate
Critical Section
Empty
End
Exit
For Each
Get Context
Invoke
Iterate
Local Transaction
Set Context
Start
Rethrow
Reply
Repeat on Error
Repeat
Receive
Scope
Set EPR
Throw
While
Engine Command
Commands
Binding
REST Binding
REST Binding
Rest Service Wizard
REST Reference
SOAP Binding
Terminology
Generating Concrete WSDL
SOAP Service Binding
Fault Operation Configuration
SOAP Reference Binding
Fault Operation Configuration
File Palette
Copy File
Create File
File Poller
List Files
Read File
Remove File
Rename File
Write File
FTP Palette
FTP Change Default Directory
FTP Delete File
FTP Dir
FTP Get
FTP Get Default Directory
FTP Make Remote Directory
FTP Put
FTP Quote
FTP Remove Remote Directory
FTP Rename File
FTP SYS Type
General Activities
Assign
Confirm
Call Process
External Command
Get Shared Variable
Inspector
Log
Mapper
Notify
On Notification Timeout
Receive Notification
Set Shared Variable
Sleep
Timer
Wait for Notification
HTTP Palette
HTTP Receiver
Send HTTP Request
Sending Data in the HTTP Request
Send HTTP Response
JAVA Palette
Adding Java Nature to a Project
Converting JAVA Class to XML Schema
Creating Custom XPath Functions
Using Custom XPath Function at Design Time and Run Time
Deleting Custom XPath Functions
Java To XML
Java Invoke
XML To Java
Java Process Starter
JDBC Palette
JDBC Call Procedure
JDBC Query
JDBC Update
SQL Direct
JMS Palette
Common JMS Properties and Headers
Get JMS Queue Message
JMS Receive Message
JMS Request Reply
JMS Send Message
Reply to JMS Message
Mail Palette
Receive Mail
Send Mail
Parse Palette
Parsing a Large Number of Records
MimeParser
Parse Data
Render Data
REST and JSON
BW JSON Utils
Invoke REST API
Restrictions on XML Schema
Parse JSON
Render JSON
Transform JSON
Policy Resources
Basic Authentication
Basic Credential Mapping
WSS Consumer
WSS Provider
XML Activities Palette
Parse XML
Render XML
Transform XML
TCP Palette
Using the TCP Palette Activities
Read TCP Data
TCP Close Connection
TCP Open Connection
TCP Receiver
Write TCP Data
Shared Resources
Data Format
FTP Connection
HTTP Client
HTTP Connector
Identity Provider
JDBC Connection
JMS Connection
JNDI Configuration
Using Custom JMS JNDI Provider
Enabling Custom Libraries
Configuring Custom Drivers for Runtime
Adding Multiple Initial Context Factories
Setting Up Custom Drivers for Run Time
Java Global Instance
Keystore Provider
LDAP Authentication
Notify Configuration
Proxy Configuration
SMTP Resource
SSL Server Configuration
SSL Client Configuration
Subject Provider
TCP Connection
Trust Provider
Thread Pool
WSS Authentication
XML Authentication
Activity Icons Reference
Concepts
Important Information
TIBCO Documentation and Support Services
Overview
Key Concepts
Layout of the Concepts Guide
General Concepts
Applications
Modules
Application Modules
Shared Modules
Binary Shared Modules
Processes
Activities
Palettes
Transitions
Shared Resources
Additional General Concepts
Groups
Shared Variables
Properties
Fault Handlers
Components
Component Services
Component References
Services
Operations
SOAP Services
REST Services
Policies
Policy Definitions and Concepts
Mapping Concepts to a Sample: Managing Books for a Bookstore
Design-time Concepts
Runtime Concepts
Error Codes
Important Information
TIBCO Documentation and Support Services
Message Codes Naming Convention
Bindings
SOAP Binding Error Codes
REST Binding Error Codes
Core
Engine Error Codes
Design Time Error Codes
Palettes
File Palette Error Codes
FTP Palette Error Codes
General Palette Error Codes
HTTP Palette Error Codes
Java Palette Error Codes
JDBC Palette Error Codes
JMS Palette Error Codes
TCP Palette Error Codes
Mail Palette Error Codes
Parse Palette Error Codes
XML Palette Error Codes
Shared Resources
Shared Resource Framework Error Codes
Data Format Error Codes
FTP Connection Error Codes
HTTP Client Error Codes
HTTP Connector Error Codes
Java Global Instance Error Codes
JMS Connection Error Codes
JDBC Connection Error Codes
JNDI Configuration Error Codes
Proxy Configuration Error Codes
SMTP Resource Error Codes
TCP Connection
Getting Started
Important Information
TIBCO Documentation and Support Services
Orientation
TIBCO Business Studio Container Edition
Application Development
Web Services
Shared Resources
REST Support
REST Documenter and Tester
Discovering API Models from TIBCO Business Studio™ for BusinessWorks™
Importing an API Model into your Workspace
Archive Files
Debugger
Runtime
Changing Help Preferences
REST Service Tutorial
Creating a Service Instance of Cloud Foundry managed PostgreSQL Database Service
Importing a Process Package
Building a REST Service
Testing the REST Service in Cloud Foundry
Testing the POST and GET Operations
Testing the REST Service in OpenShift
Troubleshooting
REST Reference Tutorial
Installation
Important Information
TIBCO Documentation and Support Services
Installation Requirements
Pre-installation Tasks
Hardware and Software Requirements
Installation
Installation Modes
Installing in GUI Mode
Installing in Console Mode
Installing in Silent Mode
Troubleshooting Installation
Uninstalling the Software
Migration
Important Information
TIBCO Documentation and Support Services
Introduction
Migrating TIBCO ActiveMatrix BusinessWorks Projects to TIBCO BusinessWorks Container Edition
ActiveMatrix BusinessWorks 5.x and TIBCO BusinessWorks™ Container Edition Type Columns Legend
Standard Constructs
TIBCO BusinessWorks™ Container Edition Core Constructs
Groups
Mapper
Transitions
Timer
BusinessWorks Palettes
General Activities Shared Resources
General Activities Palette
ActiveEnterprise Palette
Adapter Resources Palette
BPEL Extension Palette
File Palette
FTP Palette
HTTP Palette
JAVA Palette
JDBC Palette
JMS Palette
Mail Palette
Parse Palette
Policy Palette
Process Palette
REST and JSON Plug-in
RMI Palette
Service Palette
SOAP Palette
TCP Palette
Transaction Palette
XML Palette
Migration Scenario
Migrating TIBCO ActiveMatrix BusinessWorks™ 5.x Projects to TIBCO BusinessWorks Container Edition
Migrating Projects Using TIBCO Business Studio™ for BusinessWorks™
Migrating Project Using Command line
Command line Configuration File Template
Post-Migration Manual Tasks
HTTP Basic Sample
Custom XPath Migration
Migrating Design Time Libraries ( DTL) as Shared Modules
Using the Quick Fix Option to Resolve XSLT out of Sync Errors
Migration Process Outline
Frequently Asked Questions
Performance Benchmarking and Tuning
Important Information
TIBCO Documentation and Support Services
Overview
TIBCO BusinessWorks™ Container Edition Architecture
Performance Benchmark Fundamentals
Interpreting Benchmarks
Misleading Experiments
Test Client Limitations
Points to Remember
Benchmarking and Testing Performance
Performance Benchmarking Process
Performance Benchmarking Criteria
Performance Testing Tools and Techniques
Collecting Performance Data
Deploying Performance Testing Framework
Developing a Performance Testing Plan
Build a Baseline Test
Compare Baseline to Targets
Build Stability Test
Develop Incremental Tests
Develop Peak Rate Tests
Develop Steady State Tests
Develop Resource Plan
Testing and Debugging Performance Issues
Develop Component Deployment Plan
Monitoring and Analyzing TIBCO BusinessWorks™ Container Edition Components
JVisualVM
Monitoring Threads and Taking a Thread Dump Using JVisualVM
Understanding Thread Dumps
Identifying Potential Improvement Areas
Implementing Specific Enhancements
Comparing Results
Setting JVM Parameters
JVM Parameters
Heap Space
Heap Dump On Out of Memory Error
Best Practices
TIBCO BusinessWorks Engine Tuning Guidelines
ThreadCount (bw_engine_threadcount)
StepCount (bw_engine_stepcount)
Flow Limit (bw.application.job.flowlimit)
Application Statistics
Process Statistics
Process Excecution Statistics
Activity Instance Statistics
BusinessWorks Transport and Resource Tuning Guidelines
HTTP Resource
HTTP Client Resource
JMS Resource and JMS Transport
Impact of SSL on Performance
JVM Tuning Guidelines
Specifying JVM Heap Size
JVM Garbage Collection
Container Tuning Guidelines
Horizontal Scaling
Vertical Scaling
Tuning Parameters
HTTP Connector Resource
HTTP Client Resource Tuning Parameters
JDBC Connection Resource
TCP Connection Resource
JMS Receiver
Blocking Queue Size
Debugging Performance Issues
Debugging High CPU Utilization Issues
Debugging High Memory Utilization Issues
Debugging High Latency Issues
Performance Improvement Use Cases
Performance Improvement Use Cases - Design Time and Deployment
Usecase 1: Using File as the Input Type for Parse Data Activity
Usecase 2: Schema changes for improved performance
Using XSD Schema Type for the Parse JSON activity
Usecase 4: Changing XSLT Version to Improve Latency
Usecase 5: Repetition Count Tuning for XML Authentication Policy
Performance Improvement Use Case 1
Performance Improvement Use Case 2
Tools for Memory Monitoring, Tracking, and Analysis
TOP Command for Memory Monitoring
Native Memory Tracking
Jemalloc and Jeprof
Memory Saving Mode
Enabling Memory Saving Mode at Design Time
Enabling Memory Saving Mode at Run Time
Performance Use Case - Memory Optimization
References
REST Implementation
Important Information
TIBCO Documentation and Support Services
What is REST?
What is a Resource?
What is an Operation?
What is an Endpoint?
What is Swagger?
The Swagger UI
Parameter Support
Conversion Between Swagger and XML in TIBCO Business Studio for BusinessWorks
Working with Path and Query Parameters
Working with Arrays
Working with Form Parameters
Working with Header Parameters
About REST Services and References
Supported Message Formats
Restrictions
Restrictions on JSON
Restrictions on XML Schema
Using Swagger 1.2 Files
REST Schema Utilities
Creating a New XML Schema File
Creating XML Schema From a JSON Payload
Generating an XML Schema from a Swagger File
REST Service
REST Service Binding
Accept Header Responses
Creating a REST Service
Using Swagger to Create a REST Service
Using the Wizard to Create a REST Service
Rest Service Wizard
Using JSON Payload or an Existing XSD File
REST Service Tutorial
Installing PostgreSQL
Creating a New Process
Building a REST Service
Testing the REST Service
Testing the POST and GET Operations
Troubleshooting
REST Reference
REST Reference Binding
Creating a REST Reference
Using Swagger to Create a REST Reference
Using the Wizard to Create a REST Reference
REST Reference Wizard
Using the Debug Engine
REST Reference Tutorial
Refactoring a REST Service or Reference
Changing the Request and Response Schemas
Updating Configuration
Adding an Operation
Adding or Deleting Parameters
OSGI Commands to List REST URLs
Exception Handling
Creating Faults
Using the Catch and Rethrow Activities
Adding Details to Error Code Descriptions
Using Swagger-Provided Faults
Standard HTTP Status Codes
Eclipse Views for REST
API Explorer
Settings
The REST and JSON Palette in TIBCO Business Studio™ for BusinessWorks™
Samples
Important Information
TIBCO Documentation and Support Services
Accessing Samples
Samples for Cloud Foundry
Using REST to Manage Books for a Bookstore
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the REST BookStore Sample
Creating User Provided Service Instance (CUPS) for Postgres
Setting the Default Application Profile
Modifying the Application Properties
dbPassword Property
Generating an Application Archive File
Deploying the REST BookStore Application
Testing the REST Service
Troubleshooting the REST Bookstore Sample
REST BookStore Consumption
Consuming a BookStore REST Endpoint
Creating a REST Reference Binding
Soap with External Binding
Testing Locally
Understanding the Configuration
Testing the SOAP Sample
Setting the Default Application Profile
Generating an Application Archive File
Deploying the Application
StockQuote Soap Client
Implementing a JMS Service that Returns Information Based on Zip Codes
Understanding the Configuration
Testing the Sample
Creating User Provided Service (CUPS) for TIBCO EMS Server
Setting the Default Application Profile
Deploying the Sample
Hystrix
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the Hystrix Sample
Setting the Default Application Profile
Generating an Application Archive File
Deploying the Hystrix Application
Service Discovery
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the Service Registry Sample
Setting the Default Application Profile
Generating Application Archive Files
Deploying the Service Application
Deploying the Client Application
HTTP Request Response
Testing Locally
Understanding the Configuration
Testing the HTTP Request Response Sample
Setting the Default Application Profile
Generating an Application Archive File
Deploying the HTTP Request Response Sample
JDBC Basic
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the JDBC Basic Sample
Creating a User Provided Service Instance (CUPS) for Oracle
Creating a Managed Service for MySQL
Provisioning the Drivers
Setting the Default Application Profile
Modifying the Application Properties
Password Property
Generating an Application Archive File
Deploying the JDBC Basic Application
JMS Basic
Testing Locally
Understanding the Configuration
Testing the JMS Basic Sample
Creating User Provided Service Instance (CUPS) for the TIBCO EMS Server
Setting the Default Application Profile
Generating an Application Archive File
Deploying the JMS Basic Application
Sending and Receiving Messages Using EMS-SSL
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the EMS Secure Sample
Creating User Provided Service Instance (CUPS) for the TIBCO EMS Server
Setting the Default Application Profile
Generating an Application Archive File
Deploying the EMS Secure Application
JMS Basic With Spring Cloud Config Server
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the JMS Basic Sample with Spring Cloud Config Server
Creating User Provided Service Instance (CUPS) for Spring Cloud Config
Creating User Provided Service Instance (CUPS) for TIBCO EMS Server
Setting the Default Application Profile
Generating an Application Archive File
Deploying the Application
Collecting Process Instance, Activity Instance, and Transition Statistics
Samples for Docker
REST Bookstore
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the REST Sample
Setting the Default Application Profile
Generating an Application Archive File
Building the Application Image
Testing the Application Locally in a Docker Setup
Testing the REST Service
Test Your Application in the Kubernetes Setup on the Google Cloud Platform
REST BookStore Consumption
Consuming a BookStore REST Endpoint in TIBCO Business Studio™ Container Edition
Creating a REST Reference Binding
Implementing a JMS Service that Returns Information Based on Zip Codes
Understanding the Configuration
Testing the Sample
Setting the Default Application Profile
Generating an Application Archive File
Test your Application Locally in a Docker Setup
Test your Application in the Kubernetes Setup on the Google Cloud Platform
Hystrix
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the Hystrix Sample
Setting the Default Application Profile
Generating an Application Archive File
Building the Application Image
Testing the Application Locally in a Docker Setup
Test Your Application in the Kubernetes Setup on the Google Cloud Platform
Service Discovery
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the Service Discovery Sample
Setting the Default Application Profile
Generating an Application Archive File
Building the Application Image for the Service Application
Building the Application Image for the Client Application
Testing the Service and Client Applications Locally in a Docker Setup
Test Your Application in the Kubernetes Setup on the Google Cloud Platform
HTTP Request Response
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the HTTP Request Response Sample
Creating the TIBCO BusinessWorks™ Container Edition Base Docker Image for Linux Containers
Setting the Default Application Profile
Generating an Application Archive File
Building an Application Image
Test your Application Locally in a Docker Setup
Test your Application in the Kubernetes Setup on the Google Cloud Platform
JDBC Basic
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the JDBC Basic Sample
Setting the Default Application Profile
Generating an Application Archive File
Testing the Application Locally in a Docker Setup
Testing the Application in the Kubernetes Setup on the Google Cloud Platform
JMS Basic
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the JMS Basic Sample
Setting the Default Application Profile
Generating an Application Archive File
Building an Application Image
Test your Application Locally in a Docker Setup
Test Your Application in a Kubernetes Setup on the Google Cloud Platform
JMS Basic with Consul
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the Sample
Setting the Default Application Profile
Generating an Application Archive File
Setting up the Consul Server
Test your Application Locally in a Docker Setup
Test your Application in the Kubernetes Setup on the Google Cloud Platform
Sending and Receiving Messages Using EMS-SSL
Testing in TIBCO Business Studio™ Container Edition
Understanding the Configuration
Testing the Sample
Setting the Default Application Profile
Generating an Application Archive File
Creating the TIBCO BusinessWorks™ Container Edition Base Docker Image for Linux Containers
Test your Application Locally in a Docker Setup
Test your Application in the Kubernetes Setup on the Google Cloud Platform
SOAP over HTTP
Testing in TIBCO Business Studio™ Container Edition
Understanding Configuration
Testing the Sample
Generating an Application Archive File
Building an Application Image
Testing the Application Locally in a Docker Setup
SOAP Client
Testing Your Application in Kubernetes Setup on the Google Cloud Platform
SOAP Client
Collecting Process Instance, Activity Instance, and Transition Statistics