Tib BW Administration
Tib BW Administration
Important Information
SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED OR BUNDLED TIBCO SOFTWARE IS SOLELY TO ENABLE THE FUNCTIONALITY (OR PROVIDE LIMITED ADD-ON FUNCTIONALITY) OF THE LICENSED TIBCO SOFTWARE. THE EMBEDDED OR BUNDLED SOFTWARE IS NOT LICENSED TO BE USED OR ACCESSED BY ANY OTHER TIBCO SOFTWARE OR FOR ANY OTHER PURPOSE. USE OF TIBCO SOFTWARE AND THIS DOCUMENT IS SUBJECT TO THE TERMS AND CONDITIONS OF A LICENSE AGREEMENT FOUND IN EITHER A SEPARATELY EXECUTED SOFTWARE LICENSE AGREEMENT, OR, IF THERE IS NO SUCH SEPARATE AGREEMENT, THE CLICKWRAP END USER LICENSE AGREEMENT WHICH IS DISPLAYED DURING DOWNLOAD OR INSTALLATION OF THE SOFTWARE (AND WHICH IS DUPLICATED IN LICENSE FILE) OR IF THERE IS NO SUCH SOFTWARE LICENSE AGREEMENT OR CLICKWRAP END USER LICENSE AGREEMENT, THE LICENSE(S) LOCATED IN THE LICENSE FILE(S) OF THE SOFTWARE. USE OF THIS DOCUMENT IS SUBJECT TO THOSE TERMS AND CONDITIONS, AND YOUR USE HEREOF SHALL CONSTITUTE ACCEPTANCE OF AND AN AGREEMENT TO BE BOUND BY THE SAME. This document contains confidential information that is subject to U.S. and international copyright laws and treaties. No part of this document may be reproduced in any form without the written authorization of TIBCO Software Inc. TIBCO, The Power of Now, TIBCO ActiveMatrix BusinessWorks, TIBCO Rendezvous, TIBCO Administrator, TIBCO Enterprise Message Service, TIBCO InConcert, TIBCO Policy Manager, and TIBCO Hawk are either registered trademarks or trademarks of TIBCO Software Inc. in the United States and/or other countries. All other product and company names and marks mentioned in this document are the property of their respective owners and are mentioned for identification purposes only. THIS SOFTWARE MAY BE AVAILABLE ON MULTIPLE OPERATING SYSTEMS. HOWEVER, NOT ALL OPERATING SYSTEM PLATFORMS FOR A SPECIFIC SOFTWARE VERSION ARE RELEASED AT THE SAME TIME. SEE THE README FILE FOR THE AVAILABILITY OF THIS SOFTWARE VERSION ON A SPECIFIC OPERATING SYSTEM PLATFORM. THIS DOCUMENT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. THIS DOCUMENT COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES WILL BE INCORPORATED IN NEW EDITIONS OF THIS DOCUMENT. TIBCO SOFTWARE INC. MAY MAKE IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBED IN THIS DOCUMENT AT ANY TIME. THE CONTENTS OF THIS DOCUMENT MAY BE MODIFIED AND/OR QUALIFIED, DIRECTLY OR INDIRECTLY, BY OTHER DOCUMENTATION WHICH ACCOMPANIES THIS SOFTWARE, INCLUDING BUT NOT LIMITED TO ANY RELEASE NOTES AND "READ ME" FILES. Copyright 1999-2011 TIBCO Software Inc. ALL RIGHTS RESERVED. TIBCO Software Inc. Confidential Information
| iii
Contents
Chapter 1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Overview of Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 TIBCO Administrator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Starting TIBCO Administrator on Microsoft Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Starting the Administration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Starting the TIBCO Administrator GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Starting TIBCO Administrator on UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Starting the Administration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Starting the TIBCO Administrator GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Stopping the Administration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Using TIBCO Hawk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Using TIBCO Enterprise Management Advisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
iv
| Contents
Start the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Monitor the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Viewing Default Monitoring Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Specifying a Custom Alert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Stop the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Contents v
Specifying a Database for Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Database Table Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Manually Creating Database Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Controlling Execution of TIBCO ActiveMatrix BusinessWorks Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Specifying the Maximum Number of Concurrently Active Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Keeping Services in Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Effects of Setting the Configuration Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 61 62 62
Changing Server Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Setting Graceful Shutdown Properties for a Process Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Configuring Fault Tolerant Process Engines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Peer or Master and Secondary Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Process Starters and Fault-Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting Fault Tolerant Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Changing the Checkpoint Data Repository for a Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 68 69 69 70
Changing Runtime Variables for a Process or Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Application Management Configuration Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Configuration Builder Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Deployed Configuration Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Edit Application Configuration Dialog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Advanced Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Edit Service Configuration Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Monitoring Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Advanced Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Edit Service Instance Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Server Settings Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Graceful Shutdown Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 81 83 84 86 86 86 88
vi
| Contents
Storing Process Instance and Activity Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enabling/Disabling Statistic Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Managing Statistics Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Process Instance Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Activity Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . View Service Instance Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BW Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tracing Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Graceful Shutdown Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 101 102 103 103 107 107 108 110 110
Contents vii
Transaction Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 TCP Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Properties for Backwards Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
viii
| Contents
GetProcessesExceptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetProcessStarters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetRecoverableProcesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getRvCmConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetStaticActivityInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetStatsCollectorDestination. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetTransactionStatistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsActivityTracingEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsAllTracingEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsProcessStarterTracingEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsRoleEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . KillAllProcesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . KillProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ListAllRoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ListDbConnections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ListInflightTransactions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ListInstrumentProperties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ListTraceProperties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ListUserDefinedRoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnProcessActivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnProcessAdded. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnProcessRemoved . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnProcessStatusChanged . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PreRegisterListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RemoveRecoverableProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResetActivityStats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResetProcessDefinitionStats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RestartRecoverableProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResumeAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResumeProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResumeProcessStarter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . reviewLedger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetInstrumentProperty. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetTraceProperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . StartStatsCollection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . stopApplicationInstance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . StopStatsCollection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SuspendAll. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SuspendProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SuspendProcessStarter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . unRegisterListener. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . _onUnsolicitedMsg. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 188 189 190 190 191 191 192 193 194 194 195 195 195 196 196 197 198 198 199 199 199 200 200 201 201 202 202 202 203 203 204 204 205 206 206 206 207 207 207 208 208 209
Contents ix
| Contents
| xi
Figures
Project lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Adding an Enterprise Archive to your project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Adding a Process Archive to your Enterprise Archive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Normal operation: master processing while secondary stands by . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Fault-tolerant failover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Service Container Run-time Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Process Execution in BusinessWorks Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
xii
| Figures
| xiii
Tables
General Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Effects of various configuration settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Stored process instance statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Stored activity statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Categories of Performance Factors for TIBCO ActiveMatrix BusinessWorks . . . . . . . . . . . . . . . 164
xiv
| Tables
| xv
Preface
TIBCO ActiveMatrix BusinessWorks is a standards-based, easy-to-deploy solution for companies looking to integrate their enterprise computing environment and automate their business processes. This manual describes the administration tasks within TIBCO ActiveMatrix BusinessWorks.
Topics
Changes from the Previous Release of this Guide, page xvi Related Documentation, page xvii Typographical Conventions, page xix Connecting with TIBCO Resources, page xxi
xvi
Preface xvii
Related Documentation
This section lists documentation resources you may find useful.
TIBCO Designer software: TIBCO Designer is an easy to use graphical user interface for design-time configuration of TIBCO applications. TIBCO Designer includes online help for each palette. TIBCO Administrator software: TIBCO Administrator is the monitoring and managing interface for new-generation TIBCO products such as TIBCO ActiveMatrix BusinessWorks. TIBCO Adapter software Third-Party Documentation
Preface xix
Typographical Conventions
The following typographical conventions are used in this manual. Table 1 General Typographical Conventions Convention
TIBCO_HOME
Use Many TIBCO products must be installed within the same home directory. This directory is referenced in documentation as TIBCO_HOME. The value of TIBCO_HOME depends on the operating system. For example, on Windows systems, the default value is C:\tibco. Other TIBCO products are installed into an installation environment. Incompatible products and multiple instances of the same product are installed into different installation environments. The directory into which such products are installed is referenced in documentation as ENV_HOME. The value of ENV_HOME depends on the operating system. For example, on Windows systems the default value is C:\tibco. TIBCO ActiveMatrix BusinessWorks installs into a directory within TIBCO_HOME. This directory is referenced in documentation as BW_HOME. The value of BW_HOME depends on the operating system. For example on Windows systems, the default value is C:\tibco\bw\5.9. Code font identifies commands, code examples, filenames, pathnames, and output displayed in a command window. For example: Use MyCommand to start the foo process.
ENV_HOME
BW_HOME
code font
Bold code font is used in the following ways: In procedures, to indicate what a user types. For example: Type admin. In large code samples, to indicate the parts of the sample that are of particular interest. In command syntax, to indicate the default parameter for a command. For example, if no parameter is specified, MyCommand is enabled: MyCommand [enable | disable]
xx
| Typographical Conventions
Table 1 General Typographical Conventions (Contd) Convention
italic font
Use Italic font is used in the following ways: To indicate a document title. For example: See TIBCO ActiveMatrix BusinessWorks Concepts. To introduce new terms For example: A portal page may contain several portlets. Portlets are mini-applications that run in a portal. To indicate a variable in a command or code syntax that you must replace. For example: MyCommand pathname
Key combinations
Key name separated by a plus sign indicate keys pressed simultaneously. For example: Ctrl+C. Key names separated by a comma and space indicate keys pressed one after the other. For example: Esc, Ctrl+Q. The note icon indicates information that is of special interest or importance, for example, an additional action required only in certain circumstances. The tip icon indicates an idea that could be useful, for example, a way to apply the information provided in the current section to achieve a specific result. The warning icon indicates the potential for a damaging situation, for example, data loss or corruption if certain steps are taken or not taken.
Preface xxi
xxii
|1
Chapter 1
Introduction
This chapter describes administration of TIBCO ActiveMatrix BusinessWorks and how to start and stop TIBCO Administrator.
Topics
Overview of Administration, page 2 Starting TIBCO Administrator on Microsoft Windows, page 3 Starting TIBCO Administrator on UNIX, page 5 Stopping the Administration Server, page 6 Using TIBCO Hawk, page 7 Using TIBCO Enterprise Management Advisor, page 8
| Chapter 1
Introduction
Overview of Administration
A TIBCO ActiveMatrix BusinessWorks project has the following lifecycle: Design Deploy Run
Figure 1 illustrates the lifecycle of a TIBCO ActiveMatrix BusinessWorks project. Figure 1 Project lifecycle
Design
TIBCO Designer Projects
Deploy
TIBCO Administrator Enterprise Archive File
Run
TIBCO ActiveMatrix BusinessWorks Engine
TIBCO Administrator
The design phase involves creating and testing the project using TIBCO Designer. During the deployment phase, you use TIBCO Designer to create an Enterprise Archive file (EAR file) that contains the required resources for running the project. Then, you use TIBCO Administrator to deploy the project to the machine(s) where it will run. In the run time phase, the TIBCO ActiveMatrix BusinessWorks process engine executes the process instances of the deployed project and TIBCO Administrator can be used to monitor and manage the process engine. This manual describes the deployment and run time phases of the project lifecycle. The design phase is described in TIBCO ActiveMatrix BusinessWorks Process Design Guide.
TIBCO Administrator
TIBCO Administrator is a central administration server for TIBCO products. You create, deploy, and manage applications in TIBCO Administrator using a web-browser-based interface. There is also a set of command-line utilities available for creating EAR files and deploying applications. See TIBCO Administrator Users Guide for more information about TIBCO Administrator.
2. Start the TIBCO Hawk Agent, which performs the TIBCO Administrator monitoring functions, by typing:
% cd <install-path>\tibco\tra\domain\<domain-name> % hawkagent_<domain-name>.exe
The following message appears when starting the administration server from the command line:
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester).
The log4j logging class is included in the Tomcat web server that is bundled with TIBCO Administrator. TIBCO Administrator provides a logging mechanism and does not use the logging facility provided by log4j. The message can be ignored.
| Chapter 1
Introduction
Starting from a Web Browser 1. Open a web browser and connect to this URL for the TIBCO Administrator GUI:
http://<host-name>:<port>/administrator/servlet/tibco_administrator
host-name is the name of the machine on which the administration server has been installed. If this is the same machine you are currently on, you can use localhost as the machine name. port is 8080 by default. If you have used the TIBCO Domain Utility to assign a different port, use that port number instead. If you created multiple domains on one machine, the port is incremented by 10 for each domain. For example, the second domain will use 8090. You can enter http://<host-name>:8080. This displays a list of domains, the port each domain is using, and the TIBCO software available on that port. You can pick a domain from this list to go to the login screen. 2. Log in. For the first login, this must be the user specified as the domain administrator user with the Domain Utility. You can then assign other users privileges to log in. Starting from the Start Menu To start TIBCO Administrator from the Start menu, your default browser must be set to one of the following: Netscape Navigator 6.1 or higher Microsoft Internet Explorer 5.5 or higher Mozilla Suite 1.7.1 or higher Mozilla Firefox 1.x or higher
Follow these steps: 1. Select Start > All Programs>TIBCO>TIBCO Administrator <version> > TIBCO Administrator. 2. Log in. For the first login, this must be the user specified as the domain administrator user with the Domain Utility. That user can then assign other users privileges to log in.
2. Then start the TIBCO Hawk Agent, which performs the TIBCO Administrator monitoring functions, by typing:
% cd <install-path>/tibco/tra/domain/<domain_name> % hawkagent_<domain-name>
The following message appears when starting the administration server from the command line:
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester).
The log4j logging class is included in the Tomcat web server that is bundled with TIBCO Administrator. TIBCO Administrator provides a logging mechanism and does not use the logging facility provided by log4j. The message can be ignored.
<host-name> is the name of the machine on which the administration server has been installed. If this is the same machine you are currently on, you can use localhost as the machine name. <port> is 8080 by default. If you have used the TIBCO Domain Utility to assign a different port, use that port number instead. If you created multiple domains on one machine, the port is incremented by 10 for each domain. For example, the second domain will use 8090. You can enter http://<host-name>:8080 to get a list of domains, the ports they are using, and the TIBCO software available on that port, and then pick a domain from this list to go to the login screen. 2. Log in as the domain administrator user. This user was specified using the Domain Utility. That user can then assign other users privileges to log in.
TIBCO ActiveMatrix BusinessWorks Administration
| Chapter 1
Introduction
| Chapter 1
Introduction
|9
Chapter 2
Administration Tutorial
This chapter provides a short tutorial that shows how to use TIBCO Administrator to deploy and start an application that contains a TIBCO ActiveMatrix BusinessWorks process definition. Important Note: This chapter is meant to provide an introduction to the functionality, not comprehensive step-by-step instructions.
Topics
Tutorial Overview, page 10 Create the Enterprise Archive File, page 11 Create and Deploy the Application, page 12 Start the Application, page 13 Monitor the Application, page 14 Stop the Application, page 18
10
| Chapter 2
Administration Tutorial
Tutorial Overview
This chapter walks through a simple example of how to do the following: 1. Create the Enterprise Archive File on page 11 2. Create and Deploy the Application on page 12 3. Start the Application on page 13 4. Stop the Application on page 18
Prerequisites
This tutorial relies on the project created in TIBCO ActiveMatrix BusinessWorks Getting Started. Create the project described in that tutorial before continuing with the tutorial in this chapter. Also, to perform the tasks in this tutorial, you must have installed and configured the TIBCO ActiveMatrix BusinessWorks and TIBCO Administrator software properly. 1. Install all components of TIBCO Runtime Agent on your system. 2. Install all components of TIBCO ActiveMatrix BusinessWorks on your system. 3. Install all components of TIBCO Administrator on your system.
2. Select the top-level (tutorial) folder and drag an Enterprise Archive resource from the General palette into the design panel. Notice that the name is the same as the project name. 3. In File Location field, use the default value or click the Browse button and select a location and filename. 4. With the tutorial archive selected in the project panel, drag a Process Archive from the Process palette into the design panel. 5. In the Configuration tab: a. Change the name to FileActivityTest and click Apply. b. Select the Processes tab and click the browse (process starter) icon.
c. Select the FileTest process you created earlier, click OK, and then click Apply. 6. Select the tutorial archive and click the Build Archive button in the left bottom corner. 7. Click Project > Save. 8. Click Project > Exit.
12
| Chapter 2
Administration Tutorial
2. In the Service Instances console, click the check box next to the Service Instance (named after the machine and the process archive) and click Start. The State column changes to first show Starting Up, and then Running.
14
| Chapter 2
Administration Tutorial
3. To make the default monitoring information more detailed, click the Configure Tracing button. The service instance must be running or the button will be disabled.
4. In the window that appears, click All Activities to have execution of each activity included in the log; click All Starters to have execution of all starters included, and then click Save.
5. When you return to the log, you will find that information about the individual activities and the starter are now included.
16
| Chapter 2
Administration Tutorial
2. In the Configuration Builder panel, expand the tutorial application and select the FileActivityTest.par, and then choose the Monitoring tab.
3. In the Events pane, click Add. 4. In the dialog that appears, make the following changes (shown in the next figure). a. In the General pane, select First Component Failure. b. In the Alert pane, select the check box next to Generate Alert. c. Select the All Occurences radio button and choose the level High. d. In the Message field, type First FileActivityTest. e. Click OK, and then click Save.
component failure -
TIBCO Administrator will now display a high-level alert with the message upon first failure of this process. If you wanted, you could also have an email sent in the event of component failure.
5. When you are returned to the Configuration Builder notice that it indicates that services require deployment. Click Deploy and the changes will take effect.
18
| Chapter 2
Administration Tutorial
2. Select either the All Service Instances panel, or choose Application Management> Timer Application > tutorial > Service Instances. 3. Select the check box next to the process engine you started earlier, and then click Stop.
| 19
Chapter 3
When you are ready to deploy your project, you must generate an Enterprise Archive, which contains the configuration for the process definitions you wish to deploy. You can upload the archive in TIBCO Administrator to deploy the associated application on the machine of your choice.
Topics
Overview, page 20 Creating an Enterprise Archive, page 22 Creating a Process Archive, page 24 Making Changes to a Shared Archive, page 26
20
| Chapter 3
Overview
During development, you save your design to a project repository as needed. When you are ready to deploy your project to a machine, you must generate an Enterprise archive file (EAR file) using TIBCO Designer. The EAR file contains information on the resources you wish to deploy. This includes one or more TIBCO ActiveMatrix BusinessWorks process definitions and the associated shared resources required by the process definitions. Building an archive creates the EAR file that you can then deploy from TIBCO Administrator. If you make changes to the business processes or shared resources included in the archive, you must rebuild and redeploy the archive. Saving the project does not affect the archive. You can define multiple Enterprise Archive resources for a single Designer project. For each archive, you can choose the processes to include. You can deploy these multiple archives in a service container. See Overview of BusinessWorks Service Container on page 152 for details.
Overview 21
designer.ear.watermark.size=16
This property specifies when the warning message should appear. For example, if you change the value to 32, the warning only appears if you are loading a files that are greater than 32 MB. If the warning appears, you must understand the consequence of loading the files. You may need to increase the heap size value in designer.tra so Designer has enough memory to manage the project. At deployment, TIBCO Administrator copies the EAR file and deployment files to remote machines. If the EAR file is large, copying files may take extra time. It is good practice to load only the files you need for your project. For example, if you require only one jar file of 500KB that exists in a directory that contains 20 MB of jar files, you should create an alias that references only the required jar rather than the entire directory.
22
| Chapter 3
3. Provide the following information: Field Name Description Description Name of the Enterprise Archive you are creating. Description of the archive content.
Description Person creating the archive. Version of the archive. Note: The user assigns this number. TIBCO Designer does not use this number.
Location where this archive will be saved. Click Browse to select a different file location than the default. Includes all global variables for which you clicked the Service check box. Note: This checkbox is provided for some adapters that do not properly report all their properties. TIBCO Designer cannot tell if that adapter is using a service level global variables or not. This check box explicitly forces inclusion of all service-level variables.
4. Create one or more Process Archives and add them to the Enterprise archive. This is described in Creating a Process Archive on page 24. 5. Build the archive by clicking the Build Archive button. When you click the button, TIBCO Designer creates an enterprise archive (.ear) file that you can then deploy from TIBCO Administrator.
24
| Chapter 3
4. Specify information in the Configuration tab, then click Apply: Name Description Author Name of the Process
Archive. Archive.
Archive.
5. Click the Processes tab to specify the process definitions to include. To include processes: a. Click the browse button (the binoculars). b. Select the process definitions you wish to add to the archive. Any process definitions called by the selected process (unless they are dynamically called) are automatically included in the archive. Explicitly add any dynamically called sub-processes. Do not explicitly add sub-processes that are not dynamically called. See TIBCO ActiveMatrix BusinessWorks Process Design Guide for more information about dynamically called sub--processes. c. Repeat the procedure to add multiple processes. You can select multiple process definitions by using shift-click or control-click to make contiguous or discontiguous selections) 6. Click Apply. 7. To build the archive, select the Enterprise Archive (which is one level higher in the project tree) and click the Build Archive button.
26
| Chapter 3
| 27
Chapter 4
The TIBCO Administrator Application Management module allows you to create and deploy applications using the corresponding archive files.
Topics
Application Management Overview, page 28 Creating an Application, page 29 Deleting an Application, page 31 Deploying an Application, page 32 Deploying Applications in a Service Container, page 34 Reverting to a Previously Deployed Application, page 35 Undeploying a Deployed Application, page 36 Undeploying Applications in a Service Container, page 37 Viewing Application Deployment History, page 38 Managing Folders, page 39 Upgrading an Application, page 41 Upgrading Application in a Service Container, page 43
28
| Chapter 4
All Applications
Single Application
Creating an Application 29
Creating an Application
To create an application in TIBCO Administrator, you must import an enterprise archive file created in TIBCO Designer. See Chapter 3, Creating an Archive for Deployment, on page 19 for more information. To create an application, perform the following procedure: 1. Select either Application Management, a previously created folder or All Applications. 2. Click New Application. 3. Click Browse and select an enterprise archive file, and then click OK. For example, the next diagram shows a new application, ready for deployment.
4. Click Save.
30
| Chapter 4
Once an application is created, you specify deployment configuration information, such as which machines should run which process engines in the application. Then the application can be deployed and the process engines can be started. You can use the same enterprise archive file to create multiple applications and configure and deploy each application separately with different deployment options. This allows you to balance the load of the application across multiple machines. You can also modify a deployed application and redeploy it. Also, you can revert to an earlier deployment if the changes you made do not have the desired result. You have the following choices when creating an application: You can verify application information and make choices in the fields that allow input. If you wish, you can select a different archive file by clicking Change EAR File. If Quick Configure is selected, the services are bound to the targets selected in the target field. If Quick Configure is selected, Deploy on Save can be selected. When the Save button is clicked, the application is created and immediately deployed to the target machines specified in the Services pane, Target column. All variables, logging and other configuration values will use defaults defined in the archive file. The next screen will display the deployment status. If Deploy on Save is not selected, the application must be explicitly deployed using the applications Configuration Console that displays upon save. This allows you to change settings, such as global variable settings and runtime options before deploying.
Deleting an Application 31
Deleting an Application
When you delete an application, all files associated with that application are removed and it becomes unavailable in TIBCO Administrator. You must upload the related enterprise archive file again to recreate the application. A deployed application must be undeployed before it can be deleted. To delete an application, perform the following procedure: 1. Click Application Management or All Applications. 2. Select the application to delete. 3. Click Delete. 4. Click OK in the confirmation dialog.
32
| Chapter 4
Deploying an Application
When you deploy an application, TIBCO Administrator copies any required configuration information to the target machine and creates services to run the deployed process engines. You can automatically start any deployed services after the application is successfully deployed. You can make changes to a deployed application, and then deploy the changed application. The currently deployed application can continue to run while you make changes. When you deploy the updated application, the current application is automatically undeployed. You can revert to a previously deployed application, if the changes you made need be rolled back. You may want to change: Deployment configurations. See Deploying an Application in a Service Container on page 156. The machines where the processes or services are deployed. See Enabling a Process or Service to Run on Other Machines on page 49. The monitoring behavior. See Adding a Rulebase to a Process or Service on page 51. Runtime variables. See Changing Runtime Variables for a Process or Service on page 72. Checkpointing behavior for TIBCO ActiveMatrix BusinessWorks. See Changing the Checkpoint Data Repository for a Process on page 70. How TIBCO ActiveMatrix BusinessWorks processes are executed. See Controlling Execution of TIBCO ActiveMatrix BusinessWorks Services on page 60.
To deploy an application, perform the following procedure: 1. Click Application Management. 2. Click ApplicationName > Configuration, where ApplicationName is the application created when you loaded the enterprise archive file. See Creating an Application on page 29.
Deploying an Application 33
3. Before deploying, you can: Click the process archive (.par) and make changes, as outlined under Changing Application Global Variables and Repository Properties on page 47. Click the service instance (<machine-name>-Process Archive), to change server settings. See Edit Service Instance Dialog on page 86. 4. Click Deploy. The dialog similar to the following displays and informs you that all running processes with configuration changes in this application will be stopped when you click OK to deploy. If processes deploy successfully, they are restarted automatically if the corresponding check box was selected.
The dialog allows you to add a description and displays information about the application and each service. 5. Click OK if to deploy the application, or click Cancel to choose an advanced configuration, different archive file, or make other changes.
34
| Chapter 4
4. Click the button next to the revision you wish to use. 5. Click OK. The application is now shown as ready to deploy in the Configuration Builder. 6. Click Deploy.
36
| Chapter 4
Undeploy Dialog
Kill services that havent stopped after (seconds) Specify the amount of time to wait before stopping process engines that have not stopped. The default is zero, meaning no time is allowed for a graceful shutdown, if previously set for a process engine. Administrator Tasks To Perform Lists the tasks that TIBCO Administrator will perform for this server if you choose to deploy by selecting the OK button. Remote Tasks To Perform Lists the tasks to perform on the selected machine (which could actually be the local machine) in the following fields: Service Instance. Service Configuration. Deployability Shows whether the application has been deployed before. Task Actions the deployment process performs on the target machine(s).
38
| Chapter 4
Managing Folders 39
Managing Folders
If the structure of the applications you expect to manage using TIBCO Administrator is complex, you can organize the applications into folders. After creating a folder, you can create other folders, or add applications to the folder. When you delete a folder, the folder contents are also deleted. To move a folder, you must have Administer permissions on the source folder (including its contents) and the destination folder. To create a folder, perform the following procedure: 1. Select either Application Management, or a previously created folder. 2. Click New Folder. 3. Provide a folder name and, optionally, a description and contact. 4. Click Save. To delete a folder, perform the following procedure: 1. Select the folders parent, either Application Management, or a previously created folder. 2. Select the folder to delete. 3. Click Delete. 4. Click OK in the confirmation dialog. To move a folder, perform the following procedure: 1. Select the folders parent, either Application Management, or a previously created folder. 2. Select the folder to move. 3. Click Move.
40
| Chapter 4
Upgrading an Application 41
Upgrading an Application
If you have installed a new version of TIBCO software on a machine that is part of your administration domain, and the software is used in one or multiple applications, you can use the Upgrade feature to enable the applications to use the upgraded software. The Upgrade feature remaps properties in the property files of the process engines to use the new software targets. The upgrade operation is not reversible. That is, you cannot revert to using the previous software version after upgrading. You must redeploy your applications after upgrading. The next diagram shows the dialog that displays when upgrading software.
42
| Chapter 4
2. Click ApplicationName > Configuration, where ApplicationName is the application you wish to upgrade 3. In the Configuration panel, click Upgrade. 4. Select Deploy after upgrade to redeploy your application as part of the upgrade. You can redeploy later, if necessary. 5. Select Start successfully deployed services to deploy and start your service instances and process engines. If Deploy after upgrade is not selected, this option is not available. 6. Select the software to upgrade. 7. Review the upgrade summary. 8. Click OK.
44
| Chapter 4
| 45
Chapter 5
This chapter explains how to use the configuration builder to manage deployment options.
Topics
Configuration Console Overview, page 46 Changing Application Global Variables and Repository Properties, page 47 Enabling a Process or Service to Run on Other Machines, page 49 Adding a Rulebase to a Process or Service, page 51 Adding an Event to a Service, page 55 Configuring Storage for TIBCO ActiveMatrix BusinessWorks Processes, page 57 Controlling Execution of TIBCO ActiveMatrix BusinessWorks Services, page 60 Changing Server Settings, page 65 Setting Graceful Shutdown Properties for a Process Engine, page 66 Configuring Fault Tolerant Process Engines, page 67 Changing Runtime Variables for a Process or Service, page 72 Application Management Configuration Dialog, page 73 Edit Application Configuration Dialog, page 76 Edit Service Configuration Dialog, page 81 Edit Service Instance Dialog, page 86 View Service Configuration, page 89
46
| Chapter 5
The Configuration Builder pane on the left allows you to deploy or update applications and to revert a deployment, that is, choose an earlier deployment configuration if there was one. You can deploy the same application multiple times, for example, to try out different machine configurations. However, only one deployment configuration can be running at any time. If you later wish to return to a previous deployment configuration, you can do so by choosing Revert. You can also view the deployment history, the current deployment if there is one, and completely undeploy the application. See Undeploying a Deployed Application on page 36 for a detailed discussion. If you have installed new TIBCO software on a machine that is running process engines, you can upgrade them to use the new software by clicking Upgrade. See Upgrading an Application on page 41 for more information. When you select an application, service or service instance in the Configuration Builder panel, the displayed dialog allows you to change parameters for the deployment. When you select an application, service or service instance in the Deployed Configuration panel, the displayed dialog is read-only, providing a description of the properties.
48
| Chapter 5
7. After you have made your changes, the Configuration Builder indicates that the deployment is out of date.
8. Click Deploy. See Also See Edit Application Configuration Dialog on page 76 for more information. See Global Variables on page 76 for descriptions.
3. In the Configuration Builder pane, click a service or process name. A service is named with a .arr suffix. A process is named with a .par suffix.
50
| Chapter 5
4. In the General pane enable or disable the process or service by selecting or clearing the Enable Service check box. 5. In the Target Machines pane, click Add to Additional Machines to add a selected process or service to another machine. 6. A dialog appears, similar to the following, displaying all machines in the domain on which the software required by the process or service is available. Select a machine, and then click OK.
7. Click Save. See Also See Edit Service Configuration Dialog on page 81 for more information. See Configuring Fault Tolerant Process Engines on page 67. See Configuring Fault Tolerant Process Engines on page 67.
52
| Chapter 5
For example, the next diagram shows the rulebase section for a process archive.
When you deploy the service, TIBCO Hawk Agent saves the rulebase file in the <install-path>\tibco\tra\domain\<domain-name>\rulebase folder. The original rulebase can be safely removed, because the rulebase has been loaded into the domain. If you change the original rulebase, it must be reloaded into the service and the application must be redeployed.
When the conditions specified in the rulebase occur, the results display in the Resource Management > Machines View Machine panel. For example, the next screen shows several alerts that have been generated based on a rulebase.
For example, if two rulebase files are created and named: shared_custom1.hrb shared_custom2.hrb
And the above rulebase files are assigned to two service instances (as described in the previous section). D1-Process_Archive E1-Process_Archive
54
| Chapter 5
When the D1-Process_Archive service is deployed, TIBCO Hawk Agent creates the following rulebase files for the service. D1-Process_Archive-shared_custom1.hrb D1-Process_Archive-shared_custom2.hrb.
Similarly, when the D1-Process_Archive-1 service is deployed, TIBCO Hawk Agent creates the following rulebase files for the service: E1-Process_Archive-shared_custom1.hrb E1-Process_Archive-shared_custom2.hrb.
The rulebase file names for each instance are stored in an external property file so the TIBCO Hawk Agent knows where to re-load the rulebase files if it is restarted. Rulebase file names are stored in the
<install-path>\tibco\tra\domain\<application-name>\startup\<application-name >.properties file in the rbList property.
TIBCO Hawk Agent assumes that the input rulebase file name provided when uploading a rulebase file uses the .hrb extension. If there is no file extension, Hawk Agent appends .hrb to the rulebase file during deployment.
Variable Substitution You can assign certain variables to a rulebase and TIBCO Hawk Agent will substitute values for the variables when the application is deployed. Variable substitution is typically used in a rulebase to change the data source from pointing to a specific service instance to point a generic service instance. The following variables are supported by TIBCO Hawk Agent: %%TIBCO_DEPLOYMENT%% When encountered, the Hawk Agent substitutes the applications deployment name. %%TIBCO_COMPONENT_INSTANCE%% When encountered, Hawk Agent substitutes the service instance name. %%TIBCO_DOMAIN%% When encountered, Hawk Agent substitutes the administration domain name. %%TIBCO_COMPONENT_TYPE%% When encountered, Hawk Agent substitutes the components type.
56
| Chapter 5
The event can be sent as an alert, by email or can trigger an operating system command. If the event is sent as an alert, it appears in the View Service Instance dialog under the Active Alerts pane. For example:
See Also See Edit Service Configuration Dialog on page 81 for more information. See Specifying a Custom Alert on page 15 for an example event configuration.
58
| Chapter 5
4. In the TIBCO
Repository
Converts To Domain ID
TIBCO_docounting TIBCO_doarketing TIBCO_doarketing
All table names created by TIBCO ActiveMatrix BusinessWorks begin with T_<domain-id>_<deploymentID>_. You can alter the storage parameters for these tables if you desire, but the table names and column definitions must remain the same.
In these scripts <TABLE_NAME_PREFIX> and <ENGINE_NAME_MAX_LENGTH> are placed in the SQL code as placeholders. The <TABLE_NAME_PREFIX> is determined by default at deployment time (see Database Table Names on page 58 for a description of how the table name prefix is determined). You can obtain this prefix by locating the Database.Tablename.Prefix property in the deployment configuration file and substituting its value where required in the template SQL script. <ENGINE_NAME_MAX_LENGTH> is 128, so supply that value instead of the placeholder in the SQL script. To manually create the tables, perform the following procedure: 1. Create a deployment configuration that specifies a database for process engine storage. See Specifying a Database for Storage on page 57. 2. Before starting the process engine, examine the deployment configuration file (the <processEngine>.tra file) and locate the property Database.Tablename.Prefix. 3. Edit the appropriate SQL script template for the database you are using and replace <TABLE_NAME_PREFIX> with the value of the Database.Tablename.Prefix property. 4. Change <ENGINE_NAME_MAX_LENGTH> to 128. 5. Save the changes to the SQL script. 6. Run the SQL script against the database you wish to use. 7. Start the process engine.
60
| Chapter 5
To change process configuration properties, perform the following procedure: 1. In TIBCO Administrator, click Application Management. 2. Select an application and expand it. 3. Click Configuration. 4. In the Configuration Builder pane, click a process name. A process is named with a .par suffix. 5. Click the Advanced tab. 6. Change properties as required. The remaining topics in this section provide information about the properties you can set. 7. Click Save.
62
| Chapter 5
The HTTP Receiver process starter uses a different mechanism for controlling the flow of incoming requests. When Flow Limit is set on a process definition containing this process starter, the maximum number of incoming requests is limited to <flowLimitValue> -1. 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. See the description of the HTTP Connection resource in TIBCO ActiveMatrix BusinessWorks Palette Reference for more information on flow control of the HTTP Receiver process starter. The Max Jobs field in the Process Configurations dialog allows you to specify the maximum number of concurrent process instances that can be stored in memory. For example, if you set Max Jobs to 5, the process engine can only keep five process instances in memory. Any process instances created once the maximum is reached must be paged out to disk. Specifying a value for Max Jobs causes the process engine to incur some overhead for managing the paging of process instances to and from disk. If you have sufficient system resources and do not expect incoming events to exceed the limits of your system, consider specifying Max Jobs as 0. This allows the process engine to create an unbounded number of process instances and eliminates the overhead of paging.
Table 2 Effects of various configuration settings Max Jobs 0 Use Activation Limit Cleared or selected Flow Limit 0 Description An unlimited number of process instances can be created and concurrently loaded into memory. Use Activation Limit is ignored when Max Jobs is set to 0. 0 Cleared or selected N No paging of process instances. Allows up to N process instances before placing process starter in flow controlled stated. Use 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 Use 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 Use 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.
64
| Chapter 5
Table 2 Effects of various configuration settings Max Jobs M Use Activation Limit Selected Flow Limit 0 Description 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 Use 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. 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. Same as above, except only N process instances are created before the process engine is placed in the flow controlled state.
Cleared
To change server settings for a process engine, perform the following procedure: 1. In TIBCO Administrator, click Application Management. 2. Select an application and expand it to view process engines. 3. Click a process engine or service instance. 4. Click the Server Settings tab. 5. Change options as required. 6. Click Save. See Also See Server Settings Tab on page 86 for field descriptions.
66
| Chapter 5
In the event the master process engine fails, the secondary engine detects the stop in the masters heartbeat and resumes operation in place of the master. All process starters are restarted on the secondary, and services are restarted to the state of their last checkpoint. Figure 3 illustrates a failure and the secondary restarting the service.
68
| Chapter 5
The expected deployment is for master and secondary engines to reside on separate machines. You can have multiple secondary engines, if desired, and you can specify a weight for each engine. The weight determines the type of relationship between the fault-tolerant engines. See Peer or Master and Secondary Relationships on page 68 for more information about relationships between fault-tolerant engines. A master and its secondary engines is known as a fault-tolerant group. The group can be configured with several advanced configuration options, such as the heartbeat interval and the weight of each group member. See TIBCO ActiveMatrix BusinessWorks Palette Reference for a complete description of configuration options for fault tolerance.
70
| Chapter 5
If you shutdown a process engine, the appropriate secondary engine starts automatically.
1. In TIBCO Administrator, click Application Management. 2. Select an application and expand it. 3. In the Configuration with a .par suffix. 4. Click the General tab. 5. Select Run Fault Tolerant. Change other options as required. See FT Group Settings on page 82 for field descriptions. 6. Click Save.
Builder pane, click process
procedure: 1. In TIBCO Administrator, click Application Management. 2. Select an application and expand it. 3. In the Configuration Builder pane, click a process name. A process is named with a .par suffix. 4. Click the Advanced tab. 5. Change properties as required. The value defaults to Checkpoint Data Repository. If a JDBC Connection Resource has been configured for the project, you also have the option to choose database. 6. Click Save.
72
| Chapter 5
74
| Chapter 5
Show deployed configuration Select to display the Deployed Configuration dialog box where you can view detailed information about the components deployed in the application. Configuration List Each component and service in the application is listed along with one of the following descriptors in the Deployability column Deployable, (Remove) On Component. The last uploaded enterprise archive file does not contain this component. The component and all service instances will be removed from the application on deploy. On Service Instance The service instance has been deleted. This will take effect on deployment. Deployable, (New) The component or service instance has never been deployed successfully. If all service instances are removed and new ones added, the component will be in this state. Deployable (Archive Update) The last uploaded enterprise archive file has changes related to this component. Changes will take effect on deployment. Deployable (Configuration Update) The last uploaded enterprise archive file had deployment descriptors updated (typically global variables) that effect this component. Deployable (Configuration Changes) Changes have been made to the service instance configuration and will take effect on deployment. Deployable (Last Deploy Failed) The last deployment failed. History should have details. Likely problems are the TIBCO Hawk agent needs to be started on the target machine, or TIBCO Rendezvous communication or configuration parameters are not correct. Synchronized The configuration is correct. There have been no changes since last successful deployment. Needs configuration You must select a component or service instance and then each tab. Workflow in particular requires this for some automatic configuration to be done. Must be remedied or the component must be disabled before deployment can succeed. Need to deploy in a Service Container There are no service instances specified for the component. You must either disable it or assign at least one machine to component to enable deployment. Need to bind to a Service Not currently used.
Deployable, services require deployment The undeploy command was run. All services are configured correctly and are ready for deployment. Deployable, containers require deployment The component had a service instance modified, added or removed. The change will take effect on deployment. Services require configuration A component has a service instance that needs to be configured. Deployment can not be done until this is remedied or the component is disabled. Containers require configuration Not currently used. Disabled The component is marked disabled and will not be deployed. If deployment is attempted, the component will be undeployed when deployment is done. Disabled, will remove existing configuration The component for the deployed service instance was marked Disabled. When deployment is done, the service instance will be undeployed.
76
| Chapter 5
General Tab
Application Archive Provides information about the enterprise archive file including the package name, version, description, creation date and owner. Upload New EAR File Allows you to replace the current enterprise archive file with an updated version. Application Parameters Provides information about the application name, associated deployment name, description and contact name for the application.
Advanced Tab
The Reset to Defaults button resets all global variables to default settings as set in the enterprise archive file. Global Variables Displays the global variables set in the enterprise archive file for this application. The following global variables are predefined by default: DirLedger Used by the system when defining the path name of the TIBCO Rendezvous certified messaging ledger file. The default is the root installation directory. DirTrace Used by the system to partially create the path name for log file used by the adapter. The default is the root installation directory.
HawkEnabled Used by the system to indicate whether TIBCO Hawk is used to monitor the adapter. True indicates that a Hawk microagent is defined for the adapter. False indicates the microagent is not to be used. Default is False. JmsProviderUrl A JMS provider URL tells applications where the JMS daemon is located. Setting this value mostly makes sense in early stages of a project, when only one JMS daemon is used. JmsSslProviderUrl Specifies where the JMS server, running in the SSL mode, is located. Setting this value mostly makes sense in the early stages of a project, when only one JMS server is used. RemoteRvDaemon Used by the system to identify the TIBCO Rendezvous routing daemon. See TIBCO Rendezvous Administration for details about specifying the routing daemon name. RvDaemon Used by the system to identify the TIBCO Rendezvous daemon parameter. The parameter instructs the transport object about how and where to find the Rendezvous daemon and establish communication. The default value is 7500, which is the default value used by the Rendezvous daemon. See TIBCO Rendezvous Concepts for details about specifying the daemon parameter. RvNetwork Used by the system to identify the TIBCO Rendezvous network parameter. Every network transport communicates with other transports over a single network interface. On computers with more than one network interface, the network parameter instructs the TIBCO Rendezvous daemon to use a particular network for all outbound messages from this transport. See TIBCO Rendezvous Concepts for details about specifying the network parameter. RvService Used by the system to identify the TIBCO Rendezvous service parameter. The Rendezvous daemon divides the network into logical partitions. Each transport communicates on a single service; a transport can communicate only with other transports on the same service. See TIBCO Rendezvous Concepts for details about specifying the service parameter. Default is 7500 RvaHost Used by the system to identify the computer on which the TIBCO Rendezvous agent runs. See TIBCO Rendezvous Administration for details about specifying the rva parameters. RvaPort Used by the system to identify the TIBCO Rendezvous agent TCP port where the agent listens for client connection requests. See TIBCO Rendezvous Administration for details about specifying the rva parameters. Default is to 7501.
78
| Chapter 5
TIBHawkDaemon Used by the system to identify the TIBCO Hawk daemon parameter. See the TIBCO Hawk Installation and Configuration manual for details about this parameter. Default is the value that was set during domain creation (7474 by default). TIBHawkNetwork Used by the system to identify the TIBCO Hawk network parameter. See the TIBCO Hawk Installation and Configuration manual for details about this parameter. Default is an empty string. TIBHawkService Used by the system to identify the TIBCO service parameter. See the TIBCO Hawk Installation and Configuration manual for details about this parameter. Default is 7474. MessageEncoding The message encoding set for the application. The default value is ISO8859-1, which only supports English and other western European languages that belong to ISO Latin-1 character set. After the project is deployed in an administration domain, the messaging encoding set at design time is overridden by the domain's encoding property. All the TIBCO components working in the same domain must always use the same encoding for intercommunication. See TIBCO Administrator Server Configuration Guide for more information.
TIBCO ActiveMatrix BusinessWorks Deployment Repository Instance When TIBCO Administrator deploys an application, it creates an application repository which contains information about the application configuration. You can view and change certain aspects of the application repository. In Transport you select the transport the administration server uses to communicate with the client application. Choose local, rv (TIBCO Rendezvous) or HTTP, or HTTPS if the administration domain has been set up to use HTTPS. local. By default, the transport is set to local. This means that the application repository will be sent to the target machine. This allows the application to run independently of the administration server. If you change the transport from local to another value, the application repository will not be pushed to the target machine, and the application will communicate with the administration server at runtime. For more information about these choices, see TIBCO Administrator Server Configuration Guide. The local choice is supported only if the target machines have installed TIBCO Runtime Agent 5.3 or later.
rv. If selected, the client application will use TIBCO Rendezvous to communicate with the administration server. The following fields become available: Server Name administration server name. Instance Name Service instance name, that is, the instance of the service running on a particular machine. User Name User authorized for this application repository. Defaults to the user currently logged into Administrator. Password Users password. Timeout Amount of time in seconds allowed for completing a task, such as retrieving information from the server. Defaults to 600 seconds. Service, Network, Daemon TIBCO Rendezvous connection parameters used. Discovery Timeout Amount of time in seconds allowed for the initial connection to the administration server. Regional Subject TIBCO Rendezvous subject prefix used for regional read-operation in the load balancing mode. For additional information see TIBCO Administrator Server Configuration Guide. Operation Retry Number of times to retry after a timeout occurs.
http. If selected, the client application will use HTTP to communicate with the administration server. If your administration domain is not initially enabled for HTTPS, and there are deployed applications in the domain that use HTTP to connect to the application repository, the service instances will not restart after they are shut
80
| Chapter 5
down. In this case, you must redeploy each service instance after changing the transport to HTTPS. Server Name administration server name. Instance Name Service instance name, that is, the instance of the service running on a particular machine. User Name User authorized for this application repository. Defaults to the user currently logged into Administrator. Password Users password. Timeout Amount of time in seconds allowed for completing a task, such as retrieving information from the server. Defaults to 600 seconds. HTTP URL, HTTPS URL The URL on which the client attempts to connect to the server. What displays depends on whether you configured the server for HTTPS. Note: You cannot use HTTP or HTTPS to connect to a 4.x adapter. Preview URL If you have selected, rv or http in the Transport field, click the preview URL to display the URL that the application uses to access the application repository.
General Tab
General Name Service name. Description Service description. Additional Required Components Any other components required to run this service. You cannot enable this service unless this field is empty. Enable Service Only enabled services are deployed. Disabling a service, effectively undeploys just that service while letting all other services in the application run as normal. This can be useful, for example when you wish to deploy an application that includes a service for which you don't have the required software.
Target Machines Remove from Selected Machines Click to remove this service configuration from the selected machine(s). Add to Additional Machines Adding services to additional machines is useful for fault tolerance. As a rule, it therefore does not make sense to run the same service on the same machine twice. Service Instance Service instance from the selected machine. The service instance name includes the machine name. Software The software required by this service instance. Deployment Status Deployment status, as shown in the Configuration Builder
82
| Chapter 5
FT Weight The fault tolerance status and weight of the service instance. Appears only if Run Fault Tolerant is selected. See Configuring Fault Tolerant Process Engines on page 67 for an in-depth discussion of this topic.
FT Group Settings Appears only if a TIBCO ActiveMatrix BusinessWorks process is assigned to additional machines. Note that TIBCO Adapter services cannot be assigned fault tolerant options. Run Fault Tolerant If selected, the selected service instances will run in fault tolerant mode. Heartbeat Interval (ms) The master engine of a fault-tolerant group broadcasts heartbeat messages to inform the other group members that it is still active. The heartbeat interval determines the time (in milliseconds) between heartbeat messages. In the event if one process engine fails, another engine detects the stop in the masters heartbeat and resumes operation in place of the other engine. All process starters are restarted on the secondary, and services are restarted to the state of their last checkpoint. Activation Interval (ms) A standard TIBCO Rendezvous fault tolerant parameter, documented in the TIBCO Rendezvous Concepts chapter 15, Developing Fault Tolerant Programs. Secondary process engines track heartbeat messages sent from the master engine. This field specifies the amount of time to expire since the last heartbeat from the master before the secondary restarts the process starters and process engines. The Heartbeat Interval should be smaller than the Preparation Interval, which should be smaller than the Activation interval. It is recommended that Activation Interval be slightly over 2 heartbeats. Preparation Interval (ms) A standard TIBCO Rendezvous fault tolerant parameter, documented in the TIBCO Rendezvous Concepts chapter 15 Developing Fault Tolerant Programs). When a master engine resumes operation, the secondary engine shuts down and returns to standby mode. For some situations, it may be necessary to ensure that the secondary engine has completely shut down before the master engine resumes operation. This field is used to specify a delay before the master engine restarts. When the time since the last heartbeat from an active member exceeds this value, the ranking inactive member will receive a "hint" so that it can prepare for activation.
The Heartbeat Interval should be smaller than the Preparation Interval, which should be smaller than the Activation interval.
Monitoring Tab
Rulebases Click Add to add an existing custom TIBCO Hawk rulebase. The rulebase must have been configured using the TIBCO Hawk Display. See Adding a Rulebase to a Process or Service on page 51 for more information. Events Click Add to create an event. See Adding an Event to a Service on page 55 for more information. Failure Count When an instance is down unexpectedly, the error count and last failure time are tracked. When the error count is greater or equal to the value set for Reset Failure Count, or if the value set for Reset Failure Interval expires (whichever comes first), the error count is reset to zero. Reset Failure Count. The value in this field defines how many restarts should be attempted before resetting the error counter to 0. When an instance is down, the TIBCO Hawk Agent will attempt to restart the instance the number of times specified in this field. If the instance restarts after the number of times specified, the event you have defined is triggered. Reset Failure Interval (seconds). The value in this field defines how much time should expire before resetting the error counter to 0.
Failure
Count
For example, if you define the following three events and set the Reset to 5: Event 1, restart the instance and send an alert on the first failure. Event 2, restart the instance and send an email on the second failure
Event 3, restart the instance and execute a command on subsequent failures. On the first failure, the error count is 1, the instance is restarted and an alert is sent. On the second failure, the error count is 2, the instance is restarted and email is sent.
84
| Chapter 5
On third failure, the error count is 3, the instance is restarted and the command you configured is executed. On fourth failure, the error count is 4, instance is restarted and the command you configured is executed. On fifth failure, the error count is 5 and then reset to 0. The instance is restarted and the command you configured is executed. On sixth failure, the error count is 1, the instance is restarted and an alert is sent. The cycle repeats. If you do not want to receive alerts frequently, Reset Failure Count should be set with a high value. When error count is reset to 0, the last failure time is reset as well. The Reset Failure Interval takes effect only after the first failure occurs.
Advanced Tab
Click Reset to Defaults to use the defaults defined in the enterprise archive file. Adapter SDK Properties Displays if an adapter service is included in the application. Allows you to change TIBCO Adapter SDK properties that were defined in the enterprise archive file. Runtime Variables Displays if an adapter service is included in the application. Displays the runtime variables settable for this service. You can change the runtime variable values as required. TIBCO ActiveMatrix BusinessWorks Checkpoint Data Repository If you wish to run TIBCO ActiveMatrix BusinessWorks using multiple engines in fault tolerant mode, you must specify a checkpoint data repository. For true fault tolerance, you must store the data in a database. You specify a JDBC Connection resource for the database to be used when you configure your project in TIBCO Designer. The database is then one of the available options on the pop-up menu. See Configuring Storage for TIBCO ActiveMatrix BusinessWorks Processes on page 57 for more information.
TIBCO ActiveMatrix BusinessWorks Process Configurations Allows you to change the process configurations. See Controlling Execution of TIBCO ActiveMatrix BusinessWorks Services on page 60 for more information. The Flow Limit parameter always appears in release 5.2 and later and only has meaning when deploying to a TIBCO ActiveMatrix BusinessWorks release 5.2 process engine. If you use Administrator 5.2 or later to deploy to a TIBCO ActiveMatrix BusinessWorks release 5.1.3 process engine, the parameter will display, but have no effect on the process engine.
86
| Chapter 5
General Tab
The General tab displays the following information: Software that will run the used by the service instance. Machine on which this instance has been set up to run. Operating system used by this machine. Name of the service instance. Description for this service instance. Contact for this service instance.
execute concurrently. Set the number of threads to a value that is appropriate for your operating system and physical machine configuration. You should measure the available CPU and memory resources on your system under a typical processing load to determine if the default value of 8 threads is appropriate for your environment. For example, if engine throughput has reached a plateau, yet measurements show that CPU and memory are not fully utilized, increasing this value can have a positive effect on throughput. Typical numbers of worker threads range between 4 and 32. Specifying too low a value can cause higher memory use and lower engine throughput even though spare CPU resources exist. Specifying too high a value can cause CPU thrashing behavior, or an increase in latency caused by a large number of messages in the message queue. Java This pane is only available for Java applications. Prepend to Classpath The items you supply here are prepended to your CLASSPATH environment variable. You can specify a Java code editor, or the jar file from a JNDI provider if you wish to use TIBCO ActiveMatrix BusinessWorks to receive and process JMS messages. Append to Classpath The items you supply here are appended to your CLASSPATH environment variable. You can specify a Java code editor, or the jar file from a JNDI provider if you wish to use TIBCO ActiveMatrix BusinessWorks to receive and process JMS messages. Initial Heap Size (MB) Initial size for the JVM used for the process engine. Default is 32 MB. Maximum Heap Size (MB) Maximum size for the JVM used for the process engine. Default is 128 MB. Java Thread Stack Size (KB) Size for the thread stack. Default is 128 KB.
NT Service Run as NT Service Select to run this service as a Microsoft Windows Service. You can then manage the engine as you would any other service, and you can specify that it starts automatically when the machine reboots. Startup Type Choose one of the service startup types, Automatic, Manual, or Disabled. Login As Specify the login account for the service, if any. The domain name must be specified. If the user is defined on the local machine, the domain is ".". For example, user jeff on the local machine would be specified as .\jeff.
88
| Chapter 5
Password Click set to define the password for that service, if any.
General The General pane displays the name of the service and description provided when the service was deployed. It also displays whether additional components are required and whether the service is enabled. The Target pane displays the service instance, the software used for the instance and the deployment status. Monitoring Displays the TIBCO Hawk rulebases defined for the service, events defined and the failure count. See Failure Count on page 83 for more information. Advanced Displays the TIBCO Adapter SDK properties and runtime variables for the service.
90
| Chapter 5
| 91
Chapter 6
Topics
Process Engines Overview, page 92 Starting or Stopping a Process Engine, page 93 Starting or Stopping Process Engine in a Service Container, page 94 Viewing Log File Information, page 95 Editing Process Engine Properties, page 97 Viewing the TIBCO Administrator Audit Log, page 98 Managing Recoverable Process Instances, page 99 Storing Process Instance and Activity Statistics, page 101 All Service Instances Dialog, page 105 View Service Instance Dialog, page 107
92
| Chapter 6
All Services
An Applications Services
The All Service Instances console is organized to show the software at top level. You can then select the software to display all associated service instances. For example, if you created multiple deployments of a TIBCO ActiveMatrix BusinessWorks process engine, you will see one engine for each deployed process archive. You can select a TIBCO ActiveMatrix BusinessWorks process engine to view information about its corresponding jobs.
94
| Chapter 6
Make sure the process or service State indicates the process or service is running. To view tracing results for a process engine, perform the following procedure: 1. Under Application Management, select All Service Instances or go directly to a specific application and select All Service Instances. 2. Click the process engine name. 3. Click the Tracing tab. 4. Click details to drill-down view the entry. 5. To export an entry to a file, select the item(s) you wish to export. 6. Click Export.
96
| Chapter 6
7. Click Done.
98
| Chapter 6
100
| Chapter 6
102
| Chapter 6
To control activity statistic collection, perform the following procedure: 1. Under Application Management, select All Service Instances or go directly to a specific application and select All Service Instances. 2. Click a process engine name. 3. Click the Engine Control tab. 4. In the Statistics Collection pane, click the Start button to begin statistics gathering for activities or click the Stop button to halt statistics gathering. The current status of statistic gathering is detailed in the Status field. If statistics gathering is disabled, the Status is Off. If statistics gathering is enabled, the Status field details the location of the file containing activity statistics. You can enable or disable statistic collection for the activity elapsed time in the Output schema of JDBC activities by setting the property java.property.bw.activity.output.stats.elapsedTime.activty_name in designer.tra for design-time and bwengine.tra for runtime. Setting this property causes a performance overhead and hence it is recommended that you use this property in a non-production environment as a diagnostic tool. You can turn off the property and not calculate the elapsed time at run-time by setting the property java.property.bw.activity.output.stats.elapsedTime.turnoff in the bwengine.tra file. See TIBCO ActiveMatrix BusinessWorks Palette Reference for details.
evalTime
status
Activity Statistics
One record per completed activity execution is created and stored in the activity statistics file. Table 4 describes the statistics stored for each activity. Table 4 Stored activity statistics Statistic startTime elapsedTime Description Offset (in milliseconds) from the start of statistic gathering to the time the activity was invoked. The time when the activity ended minus the time the activity started. The total clock time that has elapsed during the execution of the activity.
104
| Chapter 6
Table 4 Stored activity statistics Statistic evalTime Description The time between the beginning and end of the evaluation period for the activity. If the activity completes in one step, the evalTime and elapsedTime would be the same. However, some activities, such as Request/Reply or Wait for... activities typically do not complete in one step. ID of the process instance in which this activity executed. Name of the process definition the process instance in which this activity is located. When the activity is executed as part of a called process, this column contains the call stack from the original process to the called process. Specifies whether the process instance was paged out to disk when the activity was invoked.
paged
106
| Chapter 6
FT Group Fault Tolerance group to which this component belongs, if any. Machine The computer on which this component is running. Software Name of the installed TIBCO software that runs the application. The highest alert for that software is displayed in the left-most column.
General Tab
General Displays the following information about a process engine or service instance: Uptime for this component. Process ID for this component. Name of the process. Status of the component. If stopped, click start to start it. If running, click stop to stop it. Name of the machine on which this process engine or service instance is running. Name of the fault tolerant group, if any, to which this component belongs.
Statistics This pane only displays for process engines. Created Processes The processes created by the process engine. Suspended Processes The processes currently suspended. Swapped Processes The total number of times processes were swapped up to current. Queued Processes The processes currently queued. Aborted Processes The processes that were aborted. Completed Processes The processes that were completed. Checkpointed Processes The processes currently checkpointed.
108
| Chapter 6
Total Execution (ms) Total execution time for all processes. This refers to the total time the process was executing but does not include any wait times. Average Execution (ms) Average duration for execution of a process.
Active Alerts Displays information about the active alerts for this component. Date/Time The date and time at which the alert occurred. Alert Level The alert level set when the alert was created. Text Description defined when creating the alert.
BW Processes
This tab displays only for process engines. Select Active Processes, Process Starters, Process Definitions, Locks, Recoverable Processes, or Blocked Resources. Active Processes Displays active process engines. As a rule, this includes process engines that are suspended or waiting. Examples include process engines that contain a Wait activity and are waiting in a loop. All other process engines usually complete before TIBCO Administrator is updated by auto-refresh and are therefore not displayed. Add Search Condition You can add one or more search condition to narrow the display. Export Click to export information about the selected process engine to a comma-separated file. Kill Stops the selected process engine. Suspend Suspends the selected process engine. Resume Resumes the selected suspended process engine. Description ID of the running process instance. Status of the process. Tracking ID for the process instance.
Statistic Custom ID Start Time Duration (ms) Process Defn Current Activity Starter
Description Custom ID for the process instance. Time when the process instance started. Elapsed clock time (in milliseconds) since the process instance started. Name of the process definition. Name of the currently executing activity in the process instance. Name of the process starter that started this process instance.
Process Starters Displays all process starters in the process engine. You can then select individual process starters and enable or disable them. This can be useful, for example, if you wish to understand the performance impact of one of the process engines. Process Definitions Use the search field to limit the display. The * character can be used as a wildcard. Click a process engine to display the process definition details. The following information is displayed. Name Activity for which throughput is displayed. Called Process This field only shows information if youre running a process engine called by another process engine. Execution Count Number of jobs in which this activity is currently participating. Elapsed Time (ms) Average time this activity took to complete. CPU time (ms) CPU time used by this activity. Errors Number of errors encountered for this activity. Status Activity status. Function Name of the activity resource. details Click details for more detailed information about this particular activity.
110
| Chapter 6
Locks Lock object shared configuration resources are used by Critical Section groups to ensure that only one process engine executes the activities within a Critical Section group at a time. The lock name, wait position, process id and requestor display. You can export lock information to a comma separated file, or kill a lock, if necessary. See the TIBCO ActiveMatrix BusinessWorks Process Design Guide for more information. Recoverable Processes Recoverable processes are process instances that have been checkpointed but not restarted. The Recoverable Processes option allows you to manage recoverable processes and either restart or remove them. See Managing Recoverable Process Instances on page 99 for more information. Blocked Resources A process instance can become blocked when resources that it depends upon are unavailable and TIBCO Enterprise Management Advisor blocks their use. For example, a process instance my require a database connection. This option allows you to resume a blocked process instance once the resource becomes available. See Using TIBCO Enterprise Management Advisor on page 8 for more information.
Tracing Tab
Allows you to view the trace logs for this application. You can create one or more search conditions to narrow the search scope. To see the default log, leave Where click Search.
File is <project.component>.log
and
The log may grow quite large, and you are therefore encouraged to add one or more a search conditions before you click Search. The number of lines displayed is governed by tibcoadmin.monitor.traceLogMaxLines in tibcoadmin_<domain>.tra and defaults to 1000.
Kill Jobs Timeout Kill Jobs Timeout specifies the maximum timeout in seconds the process engine will wait for jobs to finish before shutting down the engine. A zero (0) value means 0 seconds, which effectively turns the graceful shutdown into an immediate shutdown. Wait for Checkpoint When selected, causes the process engine to wait for all jobs to finish (up to the maximum timeout) before shutting down the engine, rather than removing jobs at their next checkpoint.
112
| Chapter 6
| 113
Chapter 7
The UDDI Servers module allows you to browse and publish to UDDI Operator Sites. This chapter describes the UDDI Servers module.
Topics
Overview of UDDI, page 114 Managing UDDI Servers, page 115 Managing Business Entities, page 117
114
| Chapter 7
Overview of UDDI
Universal Description, Discovery, and Integration (UDDI) refers to the protocol used by web-based registries to publish information about web services. Businesses publish information about the web services they offer to public UDDI Operator Sites. This allows other businesses to locate and access published web services. TIBCO ActiveMatrix BusinessWorks supports both browsing and publishing to UDDI registries that comply with the UDDI Version 2.0 API specification. See http://uddi.org/pubs/ProgrammersAPI-V2.04-Published-20020719.htm for more information about the UDDI API. The UDDI Servers module allows you to define connections to UDDI servers and view the web services contained in the servers. If you have been granted access to publish your own web services, you can also use the UDDI Servers module to publish information about your business and the web services you offer. Clicking the UDDI Servers module displays the UDDI Servers panel. You must add UDDI servers to the server list before proceeding with any other operations. The following sections describe the process for adding UDDI servers and the subsequent operations you can perform.
116
| Chapter 7
Field
Description
Proxy Server Settings Specify these fields when you access the registry by way of a proxy server. Host Port User Name Password Host name of the proxy server. Port number on the proxy server. User name on the proxy server. Password on the proxy server.
3. Click the Done button to save the information you have entered.
4. Click the Edit button to display the Manage Business panel and edit any of the business details. Only authorized users can edit business entities. The Manage Business panel also allows you to add discovery URLs or contact information for this business. See Adding a Business Entity on page 118 for more information.
118
| Chapter 7
5. The Services area lists the services available for this business entity. You can add web services that are in deployed and running TIBCO Administrator applications by clicking the Add button. See Adding Services on page 119 for more information.
4. Add discovery URLs to this business entity by clicking the Add button in the Discovery URLs area. A discovery URL provides a link to additional information, either technical or descriptive, about your business. Enter the URL and the use type for the URL. UDDI defines two use types for discovery URLs: businessEntity and businessEntityEx. See the UDDI specification for more information about discovery URLs. 5. Add contact information to this business entity by clicking the Add button in the Contacts area. The Edit Contacts Detail panel appears where you can add a contact name, description, phone, email, and address. 6. Click Done to record the changes you have made.
Adding Services
You can add TIBCO ActiveMatrix BusinessWorks web services that are deployed and running to your business entities. This allows you to publish the details of your web services to an external audience. You can only add Service resources or process definitions that contain a SOAP Event Source process starter to a business entity. To add TIBCO ActiveMatrix BusinessWorks web services to your business entity, perform the following procedure: 1. Click the UDDI Servers module, then click the UDDI server name that contains your business entity. 2. Click your business name in the list of businesses for the selected UDDI server. 3. Click the Add button in the Services area to add a TIBCO ActiveMatrix BusinessWorks web service. The Add Service panel appears. 4. Click the Browse button to view a list of deployed and running applications that contain web services. A panel appears that allows you to select the desired Service resources or process definitions that contain SOAP Event Source process starters. 5. Click Done once you have selected the desired web services. The web services are added to the Services area. 6. Click each service name to bring up the View Business Service Detail panel. 7. Add bindings to each web service by clicking the Add button in the Bindings area. The Edit Service Binding Detail panel appears. 8. Enter the appropriate binding information: Field Access Point Binding Key Service Key Description The URL where the service can be accessed. The UUID binding key for the service. See the UDDI specification for more information. The UUID service key for the service. See the UDDI specification for more information.
9. Click Done to dismiss the Edit Service Binding Detail panel and save your changes. 10. Click Done to dismiss the View Business Service Detail panel and save your changes.
120
| Chapter 7
| 121
Chapter 8
TIBCO ActiveMatrix BusinessWorks process engines can be configured using custom properties in configuration files. This chapter describes the custom properties that can be altered.
Topics
Overview of Custom Engine Properties, page 122 Setting Custom Engine Properties for the Testing Environment, page 123 Setting Custom Engine Properties in Deployed Projects, page 124 Available Custom Engine Properties, page 126
122
| Chapter 8
Some properties can be set for specific process definitions or activities, and the property name can be variable. Properties that have variable portions can use the wildcard character (*) to indicate the property should be set to the specified value for all potential names. For example, Trace.Role.* is the property to control tracing for all roles. Property names and values can be separated by either a space ( ), an equal sign (=), or a colon (:). If a property value contains a space, equal sign, or colon, you must escape these characters in the property value by using a \ (for example, \ , \=, or \:). You can place comments in the configuration files by placing a hash (#) as the first character in a comment line. The following sections describe how to set custom engine properties and list the custom properties that you can set.
124
| Chapter 8
where <release_number> is the release number of the currently installed TIBCO Designer. The bwengine.xml file has a <properties> element that defines all of the properties you would like to have available in deployed process engine. Each property is contained in a <property> element with the following structure:
<property> <name>Name to display in TIBCO Administrator</name> <option>name of property</option> <default>default value</default> <description>short description of property</description> </property>
For example, to include the Trace.Role.* property in deployment configurations, you would add the following to the bwengine.xml file:
<property> <name>Trace All Roles</name> <option>Trace.Role.*</option> <default>false</default> <description>Controls tracing of all roles.</description> </property>
Once the property is defined in the bwengine.xml file, it is available in Enterprise Archive Files that are created by TIBCO Designer and will be displayed in the Advanced tab of the deployment configuration in TIBCO Administrator. Be sure to re-save EAR files in TIBCO Designer and re-load them into any deployment configurations created in TIBCO Administrator after changing the bwengine.xml file. You can alter the value of any property on the Advanced tab of the deployment configuration and that value will be used in the deployed project. See Chapter 4, Creating and Deploying Applications, on page 27 for more information about creating and managing deployment configurations.
property in the bwengine.xml file enables TIBCO BusinessWorks to host multiple process engines in a service container. The sample entry is as follows:
<property> <name>Service Container</name> <option>bw.container.service</option> <default/> <description>Enable deployed instance to run inside a container</description> </property>
It allows you to deploy multiple project archive files in the same service container. In one service container, you can host multiple BusinessWorks engines based on your deployment configurations and the processes hosted by engine. After enabling a service container, you can perform various operations on service container. See Enabling Service Container Mode on page 155 for details.
126
| Chapter 8
Engine Properties
This section describes properties that control the behavior of the process engine. bw.engine.autoCheckpointRestart This property controls whether checkpointed process instances are automatically restarted when a process engine restarts. By default, this property is set to true, indicating that checkpointed process instances should automatically be restarted. You can set this property to false, and any checkpointed process instances can later be recovered using the Job Recovery dialog in TIBCO Administrator. This allows you to handle any resource availability problems such as database recovery or bringing up a web server before handling the process instance recovery. See Managing Recoverable Process Instances on page 99 for more information about process instance recovery. bw.engine.dupKey.enabled This property controls whether duplicate detection is performed. true (the default) indicates the process engine will check for identical duplicateKey values. false indicates duplicateKeys when specified are ignored. See TIBCO ActiveMatrix BusinessWorks Process Design Guide for more information about duplicate detection. bw.engine.dupKey.timeout.minutes This property specifies how long (in minutes) to keep stored duplicateKeys. The default is 30 minutes. 0 indicates the duplicateKey is removed when the job is removed. However, if bw.engine.enableJobRecovery=true, the job is not automatically removed after a failure so the duplicateKey will remain as long as the job remains. Such a job can be restarted or purged later. -1 indicates to store duplicateKey values indefinitely. Any positive integer greater than 0 indicates the number of minutes to keep stored duplicateKeys.
See TIBCO ActiveMatrix BusinessWorks Process Design Guide for more information about duplicate detection. bw.engine.dupKey.pollPeriod.minutes Specifies the number of minutes to wait before polling for expired duplicateKey values. See TIBCO ActiveMatrix BusinessWorks Process Design Guide for more information about duplicate detection. bw.engine.enableJobRecovery This property specifies whether checkpoint data for process instances that fail due to unhandled exceptions or manual termination should be saved. Saving the checkpoint data allows the process instance to be recovered at a later time. By default, this property is set to false indicating that checkpoint data for failed process instances is not saved. Setting this property to true saves checkpoint data for failed process instances and these process instances can be recovered at a later time using the Job Recovery dialog in TIBCO Administrator. See Managing Recoverable Process Instances on page 99 for more information about process instance recovery. bw.engine.stats.dir This property specifies the location of the process instance and activity statistic files when statistics storing is enabled. The default location of this property is <engineWorkingDir>/stats. See Storing Process Instance and Activity Statistics on page 101 for more information about statistic collection. bw.engine.jobstats.enable This property controls process instance statistic collection. The default value of this property is false indicating that statistics for each process instance should not be stored. Setting this property to true enables the gathering of statistics for each process instance. See Storing Process Instance and Activity Statistics on page 101 for more information about statistic collection. bw.engine.jobstats.rollover This property specifies the maximum size (in bytes) for process instance statistic files. Once a file reaches the specified size, a statistics are written to a new file. The default value of this property is 1024 (1 MB).
128
| Chapter 8
See Storing Process Instance and Activity Statistics on page 101 for more information about statistic collection. EnableMemorySavingMode or EnableMemorySavingMode.<processName> Memory saving mode can reduce the memory used by actively running process instances as well as potentially improve the performance of checkpoints. By default, memory saving mode is disabled, but you can enable garbage collection on specific process instances by setting the EnableMemorySavingMode.<processName> property to true. You can enable memory saving mode for all process instances by setting the EnableMemorySavingMode property to true. See TIBCO ActiveMatrix BusinessWorks Process Design Guide for more information. Engine.dir When the process engine is configured to use local file for storage (see Configuring Storage for TIBCO ActiveMatrix BusinessWorks Processes on page 57), this property controls the location of the process engine storage. By default, this is set to <TIBCO_Home>/tra/domain/<domainName>/application/<appName>. Normally, you should not need to change the default location of engine storage. Engine.ShutdownOnStartupError By default, checkpointed process instances are restarted when the engine restarts, and if the engine encounters errors during startup, the restarted process instances continue to be processed and may eventually be lost depending upon the type of error at startup. You can specify that the process engine should shutdown if any errors are encountered during startup so that checkpointed jobs are not lost in the event of an error. The custom engine property named Engine.ShutdownOnStartupError controls this behavior. By default, the value of the property is false, but setting it to true shuts the engine down if errors are encountered when the engine starts. See the description of the Checkpoint activity in TIBCO ActiveMatrix BusinessWorks Palette Reference for more information. Engine.StandAlone Under some situations, a unique constraint violation is thrown when using a database as the data manager for process engines. Set this property to false if you encounter this situation.
Engine.StepCount This property controls the max number of execution steps (unless inside a transaction) for a job before an engine thread switch occurs. The default value of this parameter is 20. Frequent thread switching can cause engine performance degradation, but when a process instance keeps the tread too long, this may cause less concurrency for executing process instances (and therefore inefficient use of CPU). Therefore, it is difficult to determine the correct value for this property. The default value is sufficient for most situations, but if your process definitions contain a large number of activities and especially if they contain a large number of activities in iteration loops, you may benefit from setting this property to a higher value. Engine.ThreadCount This property controls the number of threads available for executing process instances concurrently. The default value is 8. On a multi-CPU machine, the ThreadCount value can be increased.However, too many threads can cause resource contention. Hence you need to experiment with it to decide on a higher ThreadCount value.
Description Enables both TIBCO Hawk and Engine Command activity usage.
130
| Chapter 8
Value
local
Description Enables only Engine Command activity. TIBCO Hawk cannot be used when this value is used. Disables both TIBCO Hawk and Engine Command activity usage.
false
Hawk.Service Specifies the service parameter for the TIBCO Rendezvous transport of your TIBCO Hawk configuration. By default this is set to 7474. See the TIBCO Rendezvous documentation for more information about the syntax of the service parameter of TIBCO Rendezvous transports. Hawk.Network Specifies the network parameter for the TIBCO Rendezvous transport of your TIBCO Hawk configuration. By default this is set to "". See the TIBCO Rendezvous documentation for more information about the syntax of the network parameter of TIBCO Rendezvous transports. Hawk.Daemon Specifies the daemon parameter for the TIBCO Rendezvous transport of your TIBCO Hawk configuration. By default this is set to tcp:host:7474. See the TIBCO Rendezvous documentation for more information about the syntax of the daemon parameter of TIBCO Rendezvous transports. Instrumentation.<processName> Some of the TIBCO Hawk instrumentation methods require runtime actions that impose performance and memory overhead. These actions can be enabled or disabled on a per-process definition basis at any time by setting this property. The actions that can be enabled or disabled are: Collection of activity statistics for the GetActivity microagent method Calls to OnProcessActivity and OnProcessStatusChanged microagent methods
Setting the engine property Instrumentation.* to true enables those actions for all process definitions. Setting the property Instrumentation.<processName> to true enables those actions for a specified process definition. Setting this property to false disables the actions.
The instrumentation properties can be set at runtime by calling the TIBCO Hawk setInstrumentProperties method. The property value specified in a call to setInsrumentProperties takes effect immediately.
Trace Properties
Trace properties control which trace messages are sent and where they are sent to. Tracing is controlled either by roles, by activities, or by process definitions. For roles, you can configure system role tracing (Error, Warn, Info, Debug), or you can configure tracing for user-defined roles. The Write to Log activity allows you to specify a user-defined role for the message to write. Specifying Location of Trace Messages The following properties control where trace messages are sent. Messages can be sent to the log file, to the console, or published as TIBCO Rendezvous messages. Trace.Role.<userRoleName>.Term or Trace.<systemRoleName>.Term controls whether or not messages for the specified user-defined role are sent to the console; use Trace.Role.*.Term to control console output for all user-defined roles.
Trace.Role.<userRoleName>.Term Trace.<systemRoleName>.Term
controls whether or not messages for the specified system role (Error, Warn, Info, or Debug) are sent to the console.
132
| Chapter 8
Trace.Role.<userRoleName>.Log or Trace.<systemRoleName>.Log controls whether or not messages for the specified user-defined role are sent to the log file; use Trace.Role.*.Log to control log output for all user-defined roles.
Trace.Role.<userRoleName>.Log Trace.<systemRoleName>.Log
controls whether or not messages for the specified system role (Error, Warn, Info, or Debug) are sent to the log file. Trace.Role.<systemRoleName>.Publish Trace.Role.<systemRoleName>.Publish controls whether or not messages for the specified system role (Error, Warn, Info, or Debug) are published as a TIBCO Rendezvous message. By default, the messages are sent on TIBCO ActiveMatrix BusinessWorks default transport. You can specify a different transport for published trace messages with the following properties:
Trace.<systemRoleName>.Publish.Subject Trace.<systemRoleName>.Publish.Service Trace.<systemRoleName>.Publish.Network Trace.<systemRoleName>.Publish.Daemon
See the TIBCO Rendezvous documentation for the correct syntax for specifying transport parameters. Specifying Rolling Log Files for UserRole You can specify that entries for the role named UserRole are sent to a set of rolling log files. To accomplish this, you specify the location of the log files, log file name, the number of log files, and the maximum size of each log file. Entries will be written to the first log file until it reaches its maximum size, and then entries are then directed to the second log file until it reaches its maximum size, and so on. Once the maximum number of log files is reached, entries are then directed back to the first log file again. The following engine properties allow you to configure rolling log files:
Trace.Role.UserRole.Log.Dir
Trace.Role.UserRole.Log.File
Filename for the log files. A number is appended to each new log file created up to the specified maximum number of log files. Maximum size of a log file before entries are directed to the next log file in the sequence.
Trace.Role.UserRole.Log.MaxSize
Trace.Role.UserRole.Log.Maximum
Maximum number of log files to create. Entries are directed back to the first log file when the maximum number of log files have been created.
Tracing by Role The following properties enable or disable all tracing for user-defined and system roles. Trace.Role.<userRoleName> or Trace.<systemRoleName>.* Enables or disables the specified role. Trace.Role.<userRoleName> enables or disables the specified user-defined role; specify Trace.Role.* to enable or disable all user-defined roles. Trace.<systemRoleName>.* enables or disables the specified system role (Error, Warn, Info, or Debug). Tracing by Resource The following properties enable or disable tracing for activities and process starters. Trace.Task.* Controls whether or not trace messages for all activities are output. Trace.Task.<processDefinition>.<activityName> Controls whether or not trace messages for a given activity in a process definition are output. Specifying a wildcard for the process definition name indicates you would like to control trace messages for all activities with a given name. Specifying a wildcard for the activity name indicates you would like to control trace messages for all activities in the specified process definition. Trace.JC.<processStarterName> Controls whether or not trace messages for a given process starter are output. Specify Trace.JC.* to control trace messages for all process starters. Including Activity Input/Output in Trace Messages When resource tracing is enabled, you can optionally include the resource input or output XML in the trace messages. The following properties determine whether input or output are included.
134
| Chapter 8
bw.engine.showInput When set to true, resources that have input will include the input XML in the trace messages for that resource. bw.engine.showOutput When set to true, resources that have output will include the output XML in the trace messages for that resource.
Prefix the above properties by "java.property." to enable the associated advisory messages.
com.tibco.xml.schema.preserve-boolean-lexical-value This property specifies whether the lexical value of xs:boolean is preserved. By default, this property is false. TIBCO strongly advises against modifying this property unless you are told to do so by TIBCO Support.
Security Properties
The following properties control the behavior of Secure Sockets Layer (SSL) and other security settings. Some protocols such can use SSL to ensure secure communication. Properties in this section apply to resources that use SSL. bw.plugin.security.strongcipher.minstrength The bw.security.strongcipher.minstrength property specifies the cipher suites you wish to exclude when the Strong Cipher Suites Only checkbox is checked in an SSL configuration. This property allows you to choose the types of cipher suites you wish to disable. Equivalent key strength is taken into account, for example ciphers like 3DES using 168 bits would be equivalent to an equivalent key length of 112 bits. The default value of this property is DISABLED_CIPHERS_BELOW_128_BIT. This property is also only applicable for resources that have the Strong Cipher Suites only field checked. The following are the valid values for this property: Property Value
DISABLED_CIPHERS_EXPORTABLE
Description Cipher suites that are suitable for export out of the United States are disabled. This list of exportable cipher suites is controlled by the US government. This usually refers to asymmetric algorithms (such as RSA) with a key of modulus lower than 512 bits or symmetric algorithms (such as DES) of key length 40 or lower. Typically exportable cipher suites contain _EXPORT_ in the suite name, but this is not always the case.
DISABLED_CIPHERS_BELOW_128_BIT
Cipher suites whose key length (or equivalent) is below 128 bits are disabled. Cipher suites whose key length (or equivalent) is 128 bits or less are disabled.
DISABLED_CIPHERS_128BIT_AND_BELOW
136
| Chapter 8
Property Value
DISABLED_CIPHERS_BELOW_256BIT
Description Cipher suites whose key length (or equivalent) is below 256 bits are disabled.
By default, the jurisdiction policy files shipped with TIBCO ActiveMatrix BusinessWorks are not unlimited strength. When you disable lower strength cipher suites, you may receive an error suggesting that you should upgrade your policy files. To download and install unlimited strength policy files, perform these steps: 1. Download the required files from the following web site: For all platforms except IBM: http://java.sun.com/javase/downloads/index.jsp For IBM platforms: https://www14.software.ibm.com/webapp/iwm/web/reg/pick.do?source =jcesdk&lang=en_US 2. Unzip jce_policy-1_5_0.zip. 3. Copy US_export_policy.jar and local_policy.jar to: TIBCO_home\jre\1.5.0\lib\security.
WaitNotify.Service When Wait and Notify activities are used across multiple engines, TIBCO Rendezvous is used for communication between the engines. This property specifies the service parameter for the TIBCO Rendezvous transport. See the TIBCO Rendezvous documentation for more information about the syntax and default value of the service parameter of TIBCO Rendezvous transports. WaitNotify.Network When Wait and Notify activities are used across multiple engines, TIBCO Rendezvous is used for communication between the engines. This property specifies the network parameter for the TIBCO Rendezvous transport. See the TIBCO Rendezvous documentation for more information about the syntax and default value of the daemon parameter of TIBCO Rendezvous transports. WaitNotify.Daemon When Wait and Notify activities are used across multiple engines, TIBCO Rendezvous is used for communication between the engines. This property specifies the daemon parameter for the TIBCO Rendezvous transport. See the TIBCO Rendezvous documentation for more information about the syntax and default value of the daemon parameter of TIBCO Rendezvous transports.
HTTP Properties
In some situations, you may wish to alter the configuration of the HTTP server that receives incoming HTTP requests for TIBCO ActiveMatrix BusinessWorks. This section lists the properties for configuring the HTTP server.
bw.plugin.http.protocol.single-cookie-header This property allows you to send multiple cookies in a single, non-repeating Cookie header element for outgoing HTTP requests in the Send HTTP Request activity. bw.plugin.http.server.allowIPAddresses This property allows you to specify a comma-separated list of regular expression patterns that is compared with the remote clients IP address before accepting or rejecting requests from the client. The remote IP address of the client must match for the request to be accepted.
138
| Chapter 8
bw.plugin.http.server.restrictIPAddresses This property allows you to specify a comma-separated list of regular expression patterns that is compared with the remote clients IP address before accepting or rejecting requests from the client. The remote address of the client must not match for any request from this client to be accepted. bw.plugin.http.server.acceptCount This property specifies the maximum queue size for incoming requests. Incoming requests that are not handled by available threads (see bw.plugin.http.server.minProcessors and bw.plugin.http.server.maxProcessors) are placed on the queue until they can be processed. If the queue is full, new incoming requests are refused with an error. The default value of this property is 100. This property is available only when the server type Tomcat is selected. bw.plugin.http.server.serverType This property specifies the server type that is to be used for the HTTP Connection resource. Two server types are available: Tomcat and HTTP Component. The default value of this property is Tomcat. bw.plugin.http.server.httpcomponents.workerThread This property specifies the maximum number of web server threads available to handle HTTP requests for the HTTPComponents server type. The default value of this property is 50. bw.plugin.http.server.minProcessors This property specifies the minimum number of threads available for incoming HTTP requests. The HTTP server creates the number of threads specified by this parameter when it starts up. The default minimum number of threads is 10. If the Flow Limit deployment property is set, the value of this property is set to
<valueOfMaxProcessorsProperty>/2.
bw.plugin.http.server.maxProcessors This property specifies the maximum number of threads available for incoming HTTP requests. The HTTP server will not create more than the number of threads specified by this parameter. The default maximum number of threads is 75. If the Flow Limit deployment property is set, the value of this property is set to <valueOfFlowLimit> - 1.
bw.plugin.http.server.maxSpareProcessors This property specifies the maximum number of unused request processing threads that can exist until the thread pool starts stopping the unnecessary threads. The default maximum number of spare threads is 50. bw.plugin.http.client.ParseEntireMultipartMessage This property enables the HTTP client to parse the entire multi-part message. For BusinessWorks 5.2, an HTTP response message that is received by the HTTP client, is parsed on the content-type header. When the message is a multi-part message, the attachments are put in the attachment list. In BusinessWorks 5.2, the message body that is exposed to the user should contain the entire message body, including the attachments. However, parsing a multi-part message is not a problem in BusinessWorks 5.3 and later versions as MIME attachments are handled differently. bw.plugin.http.client.ResponseThreadPool By default, each Request/Response activity that uses the HTTP protocol (for example, Send HTTP Request or SOAP Request Reply) is associated with a unique thread pool. Each request is executed in a separate thread, belonging to the thread pool associated with the activity. The size of each thread pool is 10 by default, therefore, only 10 requests can execute concurrently. Setting this property to a value specifies the size of the thread pool to use for request/response activities. This thread pool can be for each activity, or all activities can share the same thread pool. See bw.plugin.http.client.ResponseThreadPool.type on page 139 for more information about determining the type of thread pool to use. The thread pool is created when the engine starts, therefore be careful to set the value of this property to a reasonable number for your system. If you set the value too high, it may result in extra resources allocated that are never used. bw.plugin.http.client.ResponseThreadPool.type This property determines the type of thread pool to use for request/response activities. Either one thread pool per activity is created, or one common thread pool is created to be shared across all activities. Specify default as the value of this property if you wish to create a thread pool for each activity. Specify single as the value of this property if you wish to create a single, common thread pool for all activities.
140
| Chapter 8
The size of the thread pool is determined by the value of the property bw.plugin.http.client.ResponseThreadPool. When the thread pool type is default, a thread pool of the specified size is created for each request/response activity. When the thread pool type is single, one thread pool of the specified size is created and all activities share the same thread pool. bw.plugin.http.client.usePersistentConnectionManager This property specifies that a pool of HTTP connections to each HTTP server should be created so that connections can be reused by Send HTTP Request activities. Not all HTTP servers support persistent connections. Refer to your HTTP server documentation for more information about support for persistent connections. When this property is set to true, a pool of connections is created for each HTTP server that Send HTTP Request activities connect to. The total number of connections in the pool is limited by the bw.plugin.http.client.maxTotalConnections property. The number of connections for each host is limited by the bw.plugin.http.client.maxConnectionsPerHost property. The default value of this property is false. See the description of the Send HTTP Request activity in TIBCO ActiveMatrix BusinessWorks Palette Reference for more information. bw.plugin.http.client.maxConnectionsPerHost The value of this property is ignored unless the
bw.plugin.http.client.usePersistentConnectionManager
property is set to true. This property specifies the maximum number of persistent connections to each remote HTTP server. The default value for this property is 20. See the description of the Send HTTP Request activity in TIBCO ActiveMatrix BusinessWorks Palette Reference for more information.
property is set to true. This property specifies the maximum number of persistent connections to create for all HTTP servers. The default value for this property is 200.
See the description of the Send HTTP Request activity in TIBCO ActiveMatrix BusinessWorks Palette Reference for more information. bw.plugin.http.client.checkForStaleConnections The value of this property is ignored unless the
bw.plugin.http.client.usePersistentConnectionManager
property is set to true. When using persistent connections, a connection can become stale. When this property is set to true, a persistent connection is checked to determine if it is stale before it is used by a Send HTTP Request activity. Checking for stale connections adds significant processing overhead, but it does improve reliability. The default value for this property is false. See the description of the Send HTTP Request activity in TIBCO ActiveMatrix BusinessWorks Palette Reference for more information.
bw.plugin.http.handleAllMimePartsAsAttachment In previous releases, when the content-type of an incoming message was "multipart/*", the first part of the message was presented as the POSTDATA. This is incorrect according to MIME specification. The bw.plugin.http.handleAllMimePartsAsAttachment property fixes this problem. If this property is set to true and the top-level content-type of the incoming HTTP message is "multipart/*", then an HTTP Receiver will present all the MIME parts as attachments and the POSTDATA field will be empty. If this property is set to false (the default value), backward compatibility is maintained and the first MIME part is presented as the POSTDATA. Do not check the Parse Post Method Data field on the HTTP Receiver process starter when this property is set to true. This causes an error to be thrown. bw.plugin.http.server.debug When set to true, specifies that the contents of incoming HTTP requests are written to the log file. Writing each request to a log file does incur some overhead and additional processing time. bw.plugin.http.server.defaultHost Specifies the name of the default host to use when the machine has multiple domains or IP addresses. The value of this parameter can be either a host name or IP address.
142
| Chapter 8
When the hostname is localhost, TIBCO BusinessWorks considers the machine as a non multi home environment. Hence it is not required to set the bw.plugin.http.server.defaultHost property in bwengine.tra file. However, when the hostname is anything other than the localhost, then TIBCO BusinessWorks considers the machine as a multi home environment. Set the bw.plugin.http.server.defaultHost property in bwengine.tra file to the same value as has been set in the host field of HTTP Shared Connection for default host.
JDBC Properties
This section describes custom engine properties that can be set for resources in the JDBC palette. Engine.Database.TestStatement.<name> When a SQL error occurs during statement execution, TIBCO ActiveMatrix BusinessWorks executes a test SQL statement to determine if the error is caused by a bad connection. If the error is due to a bad connection, the statement can be re-executed using a different connection in the connection pool. This property allows you to specify a test SQL statement. Specify the database name in the <name> portion of the property and set the value of the property to a valid SQL statement. Engine.DBConnection.idleTimeout Normally, connections in the database connection pool close after a period of time when they are idle. This property specifies the time (in minutes) to allow database connections to remain idle before closing them. The default timeout for database connections is 5 minutes, but you can set this property to the amount of time you would like to keep database connections open. Config.JDBC.Connection.SetLoginTimeout Time (in seconds) to wait for a successful database connection. Only JDBC drivers that support connection timeouts can use this property. If the JDBC driver does not support connection timeouts, the value of this field is ignored. Most JDBC drivers should support connection timeouts. The value of this property overrides any value set for connection timeouts in the Configuration tab of the JDBC Connection resource.
JMS Properties
This section describes custom engine properties that can be set for resources in the JMS palette. bw.plugin.jms.receiverTimeout This property specifies the polling interval for JMS activities that receive messages (for example, JMS Topic Subscriber or Wait for JMS Queue Message). Specify an integer as the value of the property to determine the number of seconds to set the default polling interval for all JMS activities that receive messages. Individual activities can override this default polling interval by specifying a value in the Receiver Timeout field on the Advanced tab of the activity. See TIBCO ActiveMatrix BusinessWorks Palette Reference for more information about the activities that have the Receiver Timeout field. bw.plugin.jms.recoverOnStartupError When a process engine attempts to startup and the JMS server that JMS activities connect to is not up, the JMS process starters cannot connect to the JMS server. Setting this property to true allows the process engine to start and the JMS process starters will wait until the JMS sever is up before starting.
Mail Properties
This section describes custom engine properties that can be set for the resources in the Mail palette. bw.plugin.mail.receiverFlattenNesteedAttachments In previous releases, the Receive Mail activity threw exceptions when receiving email, if the email was in rich text format and the any mime part contained nested mime sub-parts. You can fix this by setting this property to true which creates a flat output structure where all sub-parts are siblings. For example, the following nested structure:
<mimeEnvelopeElement> <mimePart> <mimePart> <textContent /> </mimePart> </mimePart> </mimeEnvelopeElement>
144
| Chapter 8
If you rely on the behavior of previous releases, keep this property set to its default value of false. bw.plugin.mail.receiverHandleDiscreteTypes In previous releases, the Receive Mail activity did not handle incoming mime messages with mime types application/*, audio/*, video/*, or image/*. While fetching these types of emails, TIBCO ActiveMatrix BusinessWorks threw exceptions. You can fix this by setting this property to true. If you rely on the behavior of previous releases, keep this property set to its default value of false. bw.plugin.mail.receiverRetryCount When a mail sender is in the process of sending a message, the mail server may expose the message to the Receive Mail process starter, but indicate later that the message is unavailable. This typically occurs when sending large messages. The Receive Mail process starter attempts to receive the message during subsequent polls of the mail server. By default, the process starter will attempt to receive the message for three minutes. The number of retries within that three-minute limit depends upon the value of the polling interval. For example, if the polling interval is set to 30 seconds, there will be up to six retries. If the polling interval is set to 4 minutes, there will be only one retry. This property allows you to specify the number of times the Receive Mail process starter will attempt to receive the same message. The amount of time allotted for retries will be the value of this property multiplied by the polling interval. For example, if the polling interval is every 10 seconds, and the retry count is set to 12, then the Receive Mail process starter will attempt to receive the message for two minutes.
Rendezvous Properties
This section applies to activities that can use TIBCO Rendezvous transports. This includes activities in the Rendezvous palette and the ActiveEnterprise Adapter palette.
Config.Tibrv.cmQueueTransport.TaskBacklogLimitInBytes When the RVCMQ transport is used, TIBCO ActiveMatrix BusinessWorks applies the value of this property to the RVCMQ transport using the RVCMQ API setTaskBacklogLimitInBytes() method to set the scheduler task queue limits in bytes for the distributed queue transport. See the TIBCO Rendezvous documentation for more information about this method. The value of this property must be set to a positive integer.
setTaskBacklogLimitInMessages()
When RVCMQ is the transport, this property calls the method to set the backlog limit of the task scheduler in bytes for the transport. See the TIBCO Rendezvous documentation for more information about this method. The value of this property must be set to a positive integer.
Transaction Properties
This section describes custom engine properties that can be set for the resources in the Transaction palette. bw.plugin.transaction.xa.arjuna.objectStoreDir By default, when executing the Arjuna Transaction Service within the same JVM as TIBCO ActiveMatrix BusinessWorks, the Arjuna property file is used to determine the location of the object store directory. If you wish to override the value in the Arjuna property file, set the custom engine property bw.plugin.transaction.xa.arjuna.objectStoreDir to a valid directory name. bw.plugin.transaction.xa.isolation By default in an XA transaction, the transaction isolation level is set to the default value for the JDBC driver you are using. If you wish to ensure a particular transaction isolation level, set the bw.plugin.transaction.xa.isolation custom engine property to one of the following values: Value 1 2 3 4 Transaction Isolation Level Description java.sql.Connection.TRANSACTION_READ_UNCOMMITTED java.sql.Connection.TRANSACTION_READ_COMMITTED java.sql.Connection.TRANSACTION_REPEATABLE_READ java.sql.Connection.TRANSACTION_SERIALIZABLE
146
| Chapter 8
bw.plugin.transaction.xa.lock.connection By default, JDBC activities in an XA Transaction groups obtain database connections from a connection pool and release the connections when the activity completes. This can cause a database connection to be used concurrently in multiple transactions. Some databases or JDBC drivers support this behavior and others do not. If you are using a database or JDBC driver that requires database connections to be used in only one transaction at a time (for example, IBM DB2), set the bw.plugin.transaction.xa.lock.connection custom engine property to true. When the value of this property is set to true, once a connection is associated with a transaction, the connection remains associated with the transaction until the transaction completes. The default value of this property is false.
TCP Properties
This section describes custom engine properties that can be set for the resources in the TCP palette. TCPRead.ThreadCount Through this property the TCPRead Activity can be configured for any number of threads. bw.plugin.tcp.server.acceptCount This property specifies the maximum number of incoming requests that can be handled by the TCP Server. The default value for this property is 50.
148
| Chapter 8
To preserve backward compatibility, the Java Code activity still behaves the same. However, you can set the bw.plugin.javaCode.explicitNull to true to cause the Java Code activity to behave in the same way as other activities. When this property is set to true, an explicit null is set for a null reference. This property is set to false by default, maintaining the behavior of the previous releases. bw.plugin.parseData.enforceLineLength In previous releases, the line length specified in the Data Format resource was not enforced. This allowed files with one large line to be parsed in some situations. In more recent releases, the line length is enforced so that files containing one large line are no longer allowed. If you rely on the behavior of the previous releases, set the bw.plugin.parseData.enforceLineLength property to false. By default, this property is set to true. bw.plugin.timer.useJavaMonth In previous releases, the Timer process starter used the Java convention (0-11) for month numbers in its output, however, the expected convention for month numbers is 1-12. In release 5.2.0, the month is returned as a number between 1 and 12. If you rely on the behavior of previous releases, you can set this property to true to maintain compatibility with previous releases. com.tibco.plugin.soap.no_xsi_type SOAP activities were enhanced in release 2.0.5 to emit xsi:type attributes. If you wish to maintain backward compatibility and not emit these attributes, you must set this property to true. com.tibco.xml.xpath.create-dateTime.has.timezone In Release 2.x, the XPath function create-dateTime() returned a value that included a time zone. In Release 5.1.2 and 5.1.3, the function was changed to omit the time zone. This property controls whether the time zone is included in the output of the create-dateTime() function. Setting this property to false (the default value) omits the time zone from the function output (the same behavior as 5.1.x). Setting this property to true causes the time zone to be included in the function output (the same behavior as 2.x). Config.JDBC.CallProcedure.InputOptional In releases prior to 5.2.0, the JDBC Call Procedure activity created input elements that were optional for stored procedure parameters. Optional parameters have never been supported by this activity (see the Known Issues list under the JDBC Palette heading in TIBCO ActiveMatrix BusinessWorks Release Notes). When
TIBCO ActiveMatrix BusinessWorks Administration
migrating a project from a previous release, there will be validation errors for any unspecified input elements for stored procedure parameters. These migrated projects cannot be executed until the errors are resolved (by using the Mapper Check and Repair button on the Input tab). If you wish to migrate a project without fixing this problem, you can do so by setting this property to true. Config.JDBC.CallProcedure.OutputUseNil Prior to release 5.1.2, if a value returned from a database table was null, the output element corresponding to that table value was not placed into the output schema for a JDBC Call Procedure activity, if the output element was optional. The element is now placed into the output schema and has "xsi:nil = true" to indicate the element is null. You should surround elements that can be nil with an if statement to determine whether to output the element. To maintain the behavior of previous releases, this property controls whether elements that are nil are contained in the output. Set the property to false to achieve the behavior of previous releases. ignore.delimiters.under.quotes Prior to Release 2.0.4, when using the activities in the Parse palette, delimiter-separated data was not treated in a standard way. There was no mechanism to escape the specified delimiter character. For example, if you chose a comma as the delimiter, there was no way to have a field contain a comma as in "Fresno, CA". Also, there was no way to have a field span multiple lines or include leading and trailing spaces. Now fields can be surrounded in double quotes. See the description of the Data Format shared configuration resource in TIBCO ActiveMatrix BusinessWorks Palette Reference for more information about the new semantics for parsing input text. To disable this functionality, set the value of this property to true. java.property.DiscardUTF8BOM When a file is saved on a Windows platform using UTF-8 encoding, Windows adds a Byte Order Mark (BOM) to the beginning of the file. This BOM is not necessary for UTF-8, but it is valid. Prior to release 2.0.6, the File Reader activitys output includes the BOM at the beginning of the data read from the file. The BOM is now stripped when it is encountered. If you wish to retain the functionality of previous releases, you can set this property to false. In most cases, you will not need to set this property. You may need to set this property to true if your process definition is expecting a file that contains the BOM.
150
| Chapter 8
java.property.com.tibco.schema.ae.makeNillable Certain TIBCO ActiveEnterprise-based schema elements do not display as nillable in the Input mapping tab. This can result in mappings (optional to optional) that do not copy the xsi:nil attributes at runtime to the output elements, and subsequently validation errors. Setting this property to true causes mappings that meet the criteria to show warnings. Selecting the input mapping with an error and clicking the Mapper Check and repair button will display yellow warnings: The input and this element are both nillable, set to copy-nil. Clicking OK changes the mappings to add the copy-of for the nil attribute (Optional and nillable to optional and nillable). This is generally a better way to map this structure and ensures if the element in the source data has the xsi:nil attribute, it will be copied to the target element. In Release 5.2.1 and subsequent releases, the default setting for this property is true, which may cause new warnings to appear in existing projects. Typically, the Mapper Check and repair button can be used to update the mappings to copy xsi:nil attributes. If it is preferable to have empty elements emitted in this case, then the property can be set to false. Any new mapping done by drag-and-drop with the property set to true will have the Optional and nillable style mapping, instead of the optional to optional style.
| 151
Chapter 9
This chapter introduces you to the concept of service container. It provides the procedure to deploy an application in a service container. Also, it explains the advantages and limitation of using a service container.
Topics
Overview of BusinessWorks Service Container, page 152 Enabling Service Container Mode, page 155 Deploying an Application in a Service Container, page 156 Starting and Stopping Applications in a Service Container, page 158 Undeploying Applications in a Service Container, page 37 Upgrading Application in a Service Container, page 43 Understanding Limitations, page 162
152
| Chapter 9
In the above figure: Engine 1 acts as a gateway, forwards HTTP requests to RV using operation name in the subject. Engine 2 and 3 act as backend Integration Service that receives requests via RV, transforms data, and forwards to legacy systems via JMS Queue. Engine 4 act as a fault tolerance standby for Engine 1. Engine 5 and 6 act as load balanced pairs of Engine 2 and 3.
154
| Chapter 9
property in the bwengine.xml file enables TIBCO BusinessWorks to host multiple process engines in a service container. The sample entry is as follows:
<property> <name>Service Container</name> <option>bw.container.service</option> <default/> <description>Enable deployed instance to run inside a container</description> </property>
It allows you to deploy multiple project archive files in the same service container. In one service container, you can host multiple BusinessWorks engines based on your deployment configurations and the processes hosted by engine. Service Container Commands After enabling the service container, you can perform the following operations. To start a service container To start a service container, use the command:
bwcontainer --deploy <container
name>
where container_name specifies a unique name. To list all the service containers To list all the service containers on a local machine, use the command:
bwcontainer --list
The list of service container names and the process engines hosted in each of those service containers is displayed in the command tool as follows:
Container <container name> is hosting the following engines: engine <application01_process_archive_name> engine <application02_process02_archive_name>
156
| Chapter 9
where <container_name> can be any unique name. For example, container01. 2. Open TIBCO Designer and create the archive (EAR) files for your application. If you want to deploy the application in a service container, you must first start the service container. 3. Start TIBCO Administrator and log into a domain. 4. Select Application Management > New Folder to create a folder to hold all the related applications together. 5. In the newly created folder, select New Application and upload the EAR file. Make sure that the Application names are unique in the domain. Using unique application names help you identify all the processes and services running in the same domain. It also helps you monitor and manage all the applications from the Application Management > All Service Instances dialog. By default, the application name is derived from the name of the uploaded EAR file. If you have already uploaded the EAR file, modify the Application Parameters from the Configuration dialog of the application to change the application name. 6. Once the EAR file is uploaded, go to the Application console and select the Configuration dialog. 7. Select the Process
Archive.par
8. Go to the Advanced tab. 9. For the bw.container.service property, enter the service container name as a value.
For example, to deploy the process in container01, enter the value container01. As TIBCO Administrator does not validate the bw.container.service property, make sure that you enter the correct container name. 10. Click the Deploy button to deploy the application. You cannot specify the bwcontainer properties in TIBCO Administrator if an Enterprise Archive file, generated with TIBCO BusinessWorks 5.4.x or earlier versions, is deployed. To enable the bwcontainer properties in TIBCO Administrator, recreate the Enterprise Archive file with TIBCO ActiveMatrix BusinessWorks 5.6.0 and deploy in TIBCO Administrator.
158
| Chapter 9
Where container01 specifies the container name. The system first undeploys all the applications hosted inside a service container and then undeploys the service container.
160
| Chapter 9
property. For detailed instructions, refer to Deploying an Application in a Service Container on page 156. 5. Verify that the new application is running properly by checking the process engine status in Application Management > All Service Instances.
162
| Chapter 9
Understanding Limitations
If your project is complex and you plan to build multiple Enterprise Archive resources for a single Designer project and if each archive includes multiple processes, make sure that all processes using HTTP process starters are grouped into the same EAR file. If your project uses JMS-MQ for message transport and you plan to run it through TIBCO Administrator, add the fscontext.jar and other MQ jar files from <MQ_HOME>/java/lib to the CLASSPATH in one of the following ways: add the jar files from <MQ_HOME>/java/lib/ to
<TIBCO_HOME>/jre/1.5.0/lib/ext/
to
Whenever a service container goes down, all the deployed applications in the container also stop. However, when the container restarts, these deployed applications do not restart automatically. You have to manually restart all the deployed applications from TIBCO Administrator.
| 163
Chapter 10
Performance Tuning
This chapter provides an overview of tuning the BusinessWorks environment to optimize performance. It also describes how altering certain parameters can affect the system performance.
Topics
Overview of Engine Performance, page 164 Characteristics of BusinessWorks Activities, page 167 Performance Considerations, page 168 Sample Scenario, page 173
164
| Chapter 10
Performance Tuning
Java
Engine
Number of engines, number of threads, job creators, flow control, job pool, etc. Job size User scripts, sub-processes, inline processes, checkpoints, logging activities External software, like relational DB, other TIBCO Software product
Other Software
The process instances created are typically held in memory. However, this may not be the case if the following parameters are set:
Max Jobs: If the number of process instances in memory have reached the value of Max Jobs, then the process instances created are temporarily held on a disk. These process instances will be moved back into memory when sufficient memory is available. Flow Limit: When set, this property limits the number of process instances that can be created. If the number of process instances being created exceeds the value of FlowLimit, the engine suspends the creation of new process instances. However, it continues executing the process instances in memory. The engine resumes creating new process instances when process instances, approximately half the value specified for FlowLimit, have completed. See Controlling Execution of TIBCO ActiveMatrix BusinessWorks Services in Chapter 5, Setting Deployment Options for more information on FlowLimit property.
166
| Chapter 10
Performance Tuning
The number of process instances that can be created in memory is also limited by the memory available on the machine and the memory allocated to the JVM on which the process engine executes. The process instances in memory are executed by the BusinessWorks engine. The number of process instances that can be executed concurrently by the engine is limited by the maximum number of threads, specified by property ThreadCount. Threads execute a finite number of tasks or activities uninterrupted and then yield to the next process instance that is ready. The engine property StepCount determines the number of tasks that are executed by a thread uninterruptedly. However, the exceptions to StepCount occur when the job is blocked or in a transaction. When a job is in a transaction, the thread will not be released even if the StepCount is exceeded. However, if a process instance is waiting or is in a blocked state, it can be paged out and the freed memory used to process another process instance.
Activation Limit can be set if a process instance that is blocked should remain in memory till completion. Setting the ActivationLimit affects the engine performance substantially.
See Chapter 8, Custom Engine Properties for more information on setting these properties. In addition to the components above, the performance of the BusinessWorks engine is also affected by external factors such as rate of incoming messages, network latency, performance of external applications with whom BW processes communicate, and other OS processes that may be running on the system.
168
| Chapter 10
Performance Tuning
Performance Considerations
This section describes the memory and throughput considerations to be made, while tuning factors affecting the performance of a BusinessWorks engine.
Memory Considerations
Engine parameters Max jobs If the number of process instances in memory have reached the value of Max Jobs, then the process instances created are temporarily held on a disk. These process instances will be moved back into memory when sufficient memory is available. Flow limit When the job processing starts lagging, the memory allocated to the job pool is utilized by the new jobs created and can exhaust the job pool. The FlowLimit property can be set to specify the number of jobs that can reside in the job pool. Once the job pool is full, the job creator is suspended and is in a state. The job creator comes out of the FLOW_CONTROLLED state after approximately half the value specified for FlowLimit jobs are executed to completion.
FLOW_CONTROLLED
Activation limit
Activation Limit can be set if a job that is blocked should remain in memory till
completion. Setting the ActivationLimit affects the engine performance substantially. JVM parameters Every BusinessWorks engine runs in a Java Virtual Machine. As a result, the settings on the JVM influence the engine performance. Java provides some parameters to tune the memory usage and optimize engine performance.
Heap size Following parameters are used to set the heap size for the engine:
-Xms: -Xmx:
TIBCO BusinessWorks 5.2.0 and higher versions may see an increase in memory footprint and a potential memory sizing issue. This is because TIBCO BusinessWorks version 5.2.0 and above point to server JVM, while versions older than TIBCO BusinessWorks 5.2.0 point to client JVM in the bwengine.tra file. While sizing and tuning your environment, consider the following: The total memory used by the JVM (memory footprint) is dependent on the type of JVM used (Server JVM or Client JVM), the JVM version, and the JVM vendor. A Server JVM occupies a higher memory footprint and may result in higher performance when compared to a Client JVM. A Client JVM may have a lower startup time and memory footprint.
For more information on tuning the JVM to suit your application, refer to the JVM Tuning Guide of the JVM used in your environment. You may also consult your JVM vendor for details about the exact memory footprint and heap management in the JVM version used in your environment. Garbage collection The java object, such as a job, occupies memory from the time it is created to the time it is destroyed. Java provides garbage collection, an automated mechanism to clean up objects that still exist but are no longer used. To retrieve the garbage collection metrics for the BusinessWorks engine, specify the -verbose:gc option when starting the JVM used by the engine.
java.extended.properties
You can set the Java memory parameters by using the option in the bwengine.tra file. For example, specify the following in the bwengine.tra to set the heap size to 768M and retrieve the garbage collection metrics for the engine.
Throughput Considerations
Throughput of the BusinessWorks engine is the rate at which the engine can execute and complete processes. The throughput of the engine is determined by factors that can be grouped into engine parameters and HTTP parameters.
TIBCO ActiveMatrix BusinessWorks Administration
170
| Chapter 10
Performance Tuning
concurrently by BusinessWorks engine. By default, the thread count is eight. It is recommended that you measure the CPU and memory resources under a typical processing load to determine if the default value is suitable for your environment. If the engine throughput has reached a plateau, but the CPU and memory are not fully utilized, you can increase the thread count to have a positive effect on the throughput. However, specifying too high value can cause CPU thrashing, or an increase in latency caused by a large number of messages in the queue. Specifying too low value can cause higher memory use and lower engine throughput as some CPU resources remain unutilized. Each process instance consists of multiple activities that have to be executed in a sequence for the process instance to complete. If one of these activities is a blocking activity, the thread that is executing this process instance is idle and resources are under-utilized. This affects the engines throughput. Step Count You can specify the parameter, Engine.StepCount, to control the maximum number of steps executed (unless the job is in a transaction) for a job after which the thread yields to another job ready in the job pool. A low value of StepCount can degrade the engine performance due to frequent thread switches. A high value of StepCount may cause less concurrency in executing jobs and hence, result in an inefficient use of CPU. See Available Custom Engine Properties, page 126 for more details on Engine.StepCount. HTTP specific parameters minProcessors Specifies the number of threads created when the HTTP Server is started. These threads process HTTP requests. The default value of this property is 10. Setting a high value for minProcessors can produce a large number of excessive threads and hence block the system resources.
maxProcessors Specifies the maximum number of threads that can be created by the HTTP Server to process incoming HTTP requests. The default value of this property is 75. Setting a low value for maxProcessors results in the following: limiting the number of threads in the system and therefore limiting the number of requests that can be processed simultaneously. reduced memory contention. less number of context switches. increased throughput.
Setting a high value for maxProcessors results in the following: more number of requests can be processed simultaneously. degraded throughput for all the processes.
acceptCount Specifies the maximum number of incoming connection requests that can be accepted when all HTTP processors are in use. Incoming requests received after the acceptCount limit is reached are rejected. The default value for acceptCount is 100. When maxProcessors is low, you may wish to set acceptCount to a higher value so that more client requests are accepted and queued, rather than being rejected. Enable DNS Lookups Checking this field enables a Domain Name System (DNS) lookup for HTTP clients so that the IP address is resolved to a DNS name. Setting this field adds latency to every request because it requires the DNS lookup to complete before the request can be completed. Since the throughput is adversely affected, this field should be set only when required. Processor Affinity On a multi-CPU machine, process(es) can be configured to run only on a dedicated set of CPUs using processor affinity. Processor affinity takes advantage of the fact that some remnants of a process may remain in one processor's state (in particular, in its cache) from the last time the process ran. Scheduling it to run on the same processor the next time could result in the process running more efficiently than if it were to run on another processor.
172
| Chapter 10
Performance Tuning
JDBC Activities Every JDBC Connection shared resource has a connection pool. The parameter Maximum Connections determines the connection pool size and hence, the maximum number of connection requests that can be processed by a JDBC shared resource. JDBC activities use engine threads to connect to a database configured in the JDBC Connection shared resource and process requests. The engine threads are released once the operation in the JDBC activity completes and the connection is closed. For a typical scenario using a single JDBC Connection shared resource, ensure that the parameter Maximum Connections specified is inline with the engine thread pool size specified by the property engine.ThreadCount.
Sample Scenario
Consider a web service that queries for books in a bookstore by the name of their Author. A client for the web service is configured using the services WSDL file. The client sends a SOAP request containing the name of an Author to the web service and receives a list of books. See the example at
<TIBCO_HOME>\bw\<version_number>\examples\activities\soap\soap_over_
http
Consider the web service is running on a two CPU Windows machine with 3GHz and 2G RAM. When the number of concurrent SOAP requests sent to the web service increases, the BusinessWorks engine is loaded and the memory required increases. The JVM heap size determines the memory allocated for the BusinessWorks engine and processes instances. To specify the JVM heap size, set the following property in bwengine.tra:
java.extended.properties -Xms768m -Xmx768m
The JVM heap size can also be set in TIBCO Administrator. See Server Settings Tab on page 86 for details. The memory required for a BusinessWorks engine is defined by the workload that the engine is designed to handle.
174
| Chapter 10
Performance Tuning
To specify the number of concurrent incoming HTTP requests that can be handled by the web service, set the following properties in bwengine.tra file:
bw.plugin.http.server.minProcessors bw.plugin.http.server.maxProcessors
Setting maxProcessors to 100, ensures that upto 100 requests can be accepted concurrently. To improve the ability to execute process instances concurrently, more engine threads are required. The number of engine threads to be allocated can be set using the property Engine.ThreadCount. The default value is eight. Theoretically, the value of Engine.ThreadCount can be increased till maximum CPU utilization is reached. However, an increase in the thread count and hence, an improved concurrency, may not always result in an improved performance. This is because an improved concurrency also implies an increased resource consumption. Set the property, Engine.StepCount, to specify the maximum number of execution steps for a job, unless in a transaction or when the ActivationLimit is set. The default value is 20. Depending on the nature of the jobs being executed, the value of this property can be increased or decreased. A low value of StepCount results in frequent thread switches. This is an overhead, especially when the number of execution steps for most jobs is high. To specify the size of the thread pool used by the Request-Reply activity on the web service client side, set the properties:
bw.plugin.http.client.ResponseThreadPool bw.plugin.http.client.ResponseThreadPool.type
As the thread pool is created when the engine starts, use a reasonable number to specify the size of the ResponseThreadPool for your system. A high value results in extra resources being allocated which may never be used.
Appendix A
TIBCO Administrator is the preferred monitoring and management application for TIBCO ActiveMatrix BusinessWorks. However, the process engine is instrumented with a TIBCO Hawk microagent that can be used to perform most administrative functions. This appendix describes the microagent methods available for the TIBCO ActiveMatrix BusinessWorks process engine.
Topics
Enabling TIBCO Hawk, page 176 TIBCO Hawk Microagent Methods, page 177
176
| Appendix A
ConfigureActivityTracing
Description:
Enables or disables tracing for specified activity. Activities can be specified by process definition and activity name or by class name. The class name is the Java implementation class' name. The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description Name of the process definition for which you wish to configure tracing. Specifying * signifies all process definitions. If ActivityClass is specified, this argument is optional. Name of the activity for which you wish to configure tracing. Specifying * signifies all activities. If ActivityClass is specified, this argument is optional. Java implementation class name of the activity for which you wish to configure tracing. This argument is optional if you specify the ProcessDefinition and Activity arguments. Specify true if you wish to enable tracing, false if you wish to disable tracing.
Method Arguments:
Activity
ActivityClass
Enable
Output:
None
ConfigureAllTracing
Description:
178
| Appendix A
Method Arguments:
The following table describes the arguments of this microagent method: Argument Name EnableAllActivities EnableAllStarters Description
false,
If true, tracing is enabled for all activities. If tracing will be disabled for all activities.
If true, tracing is enabled for all process starters. If tracing will be disabled for all process starters.
false,
EnableAllUserRoles
If true, tracing is enabled for all user-defined roles. If false, tracing will be disabled for all user-defined roles.
Output:
None
ConfigureProcessStarterTracing
Description:
Enables or disables tracing for specified process starter. Process starters can be specified by name or class name. The class name is the Java implementation class' name. The following table describes the arguments of this microagent method: Argument Name ProcessStarter Description Name of the process starter for which you wish to configure tracing. Specifying * signifies all process starters. If StarterClass is specified, this argument is optional. Java implementation class name of the process starter for which you wish to configure tracing. This argument is optional if you specify the ProcessStarter argument. Specify true if you wish to enable tracing, false if you wish to disable tracing.
Method Arguments:
StarterClass
Enable
Output:
None
ConfigureRole
Description: Method Arguments:
Enables or disables tracing for the specified role. The following table describes the arguments of this microagent method: Argument Name Role Enable Description Name of the role for which you wish to configure tracing. Specifying * signifies all roles. Specify true if you wish to enable tracing, false if you wish to disable tracing.
Output:
None
ConfigureUserDefinedTracing
Description: Method Arguments:
Enables or disables tracing for the specified user-defined role. The following table describes the arguments of this microagent method: Argument Name Role Description Name of the user-defined role for which you wish to configure tracing. Specifying * signifies all user-defined roles. Specify true if you wish to enable tracing, false if you wish to disable tracing.
Enable
Output:
None
DelayedStopApplicationInstance
Description:
Instructs all process starters to stop further job creation but stay active. The engine shuts down after all process instances have completed or the specified maximum delay has been reached. After shutdown, any remaining checkpoint files are preserved and the engine's operating system process exits.
180
| Appendix A
Method Arguments:
The following table describes the arguments of this microagent method: Argument Name MaxDelay WaitForCheckpoints Description Specifies the amount of time (in seconds) to wait before shutting down the process engine. When true is specified, the engine waits for any checkpointed process instances to complete before shutting down.
Output:
None
GetActivities
Description:
Retrieves information about the activities that have been executed for a given process definition since the engine was started. The activity information is cumulative. A single activity name represents all executions of that activity. The min/max fields can be reset with the ResetActivityStats method. The ExecutionTime computation for the Call Process Activity includes the sum of the execution times for all activities in the called process, not just the execution time for the call process activity itself.
Method Arguments:
The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description Name of the process definition.
Output:
The following table describes the output of this microagent method: Column Name ProcessDefName Name ActivityClass ExecutionCount Description Name of the process definition. Name of the activity. Name of the class that implements the activity. Number of times the activity has been executed.
Description Total clock time (in milliseconds) used by all executions of this activity. This includes waiting time for Sleep, Call Process, and Wait For... activities. Total clock time (in milliseconds) used by all executions of this activity. This does not include waiting time for Sleep, Call Process, and Wait For... activities. Total number of executions of the activity that have returned an error. Status code returned by most recent execution of this activity. This can be either OK, DEAD, or ERROR. True if tracing is enabled for this activity, false if tracing is disabled. Elapsed clock time (in milliseconds) of the activity execution that has completed in the shortest amount of elapsed time. Elapsed clock time (in milliseconds) of the activity execution that has completed in the longest amount of elapsed time. Execution time (in milliseconds) of the activity execution that has completed in the shortest amount of execution time. Execution time (in milliseconds) of the activity execution that has completed in the longest amount of execution time. Elapsed clock time (in milliseconds) of the most recently completed activity execution. Execution time (in milliseconds) of the most recently completed activity execution. Time (in milliseconds) since the statistics have been updated.
ExecutionTime
ErrorCount LastReturnCode
Tracing MinElapsedTime
MaxElapsedTime
MinExecutionTime
MaxExecutionTime
182
| Appendix A
Description A comma-separated list of names of process definitions called by this activity. Number of activity executions that have completed since the last reset of the statistics.
GetExecInfo
Description: Method Arguments: Output:
Retrieves the process engine execution information. None The following table describes the output of this microagent method: Column Name Status Description Engine status. Can be one of the following: Uptime Threads Version ACTIVE SUSPENDED STANDBY STOPPING
Elapsed time (in milliseconds) since the process engine was started. Number of worker threads used by the process engine. Version of the process engine.
getHostInformation
Description:
Returns the value of the specified property on the host machine on which the process engine is running.
Method Arguments:
he following table describes the arguments of this microagent method: Argument Name Name Description Name of the property to return. Leave this argument blank to return all properties. The following are the properties that can be returned: Application Instance is the name of the project that is running in the process engine. Application Name TIBCO Hawk display name of the process engine. This is set by the engine property Hawk.AMI.DisplayName. Application State state of the process engine. Can be UNINITIALIZED, INITIALIZING, RUNNING, STOPPING, or STOPPED
Output:
The following table describes the output of this microagent method: Column Name Name Value Description Name of the property returned. Value of the property.
GetMemoryUsage
Description: Method Arguments: Output:
Retrieves information about the process engines memory usage. None The following table describes the output of this microagent method: Column Name TotalBytes FreeBytes UsedBytes PercentUsed Description Total number of bytes allocated to the process engine. Total number of bytes that are not currently in use. Total number of bytes that are currently in use. Percentage of total bytes that are in use.
184
| Appendix A
GetProcessCount
Description: Method Arguments: Output:
The following table describes the output of this microagent method: Column Name TotalRunningProcesses Description Total number of currently executing process instances.
GetProcessDefinitions
Description: Method Arguments: Output:
Retrieves information about process definitions. None The following table describes the output of this microagent method: Column Name Name Starter Created Suspended Swapped Queued Aborted Description Name of the process definition. Name of the process starter for the process. Number of process instances created for this process definition. Number of times process instances have been suspended. Number of times process instances have been swapped to disk. Number of times process instances have been queued for execution. Number of times process instances have been aborted.
Description Number of process instances that have been successfully completed. Number of times process instances have executed a checkpoint. Total execution time (in milliseconds) for all successfully completed process instances. Average execution time (in milliseconds) for all successfully completed process instances. Total elapsed time (in milliseconds) for all successfully completed process instances. Average elapsed clock time (in milliseconds) for all successfully completed process instances. Elapsed clock time (in milliseconds) of the process instance that has completed in the shortest amount of elapsed time. Elapsed clock time (in milliseconds) of the process instance that has completed in the longest amount of elapsed time. Execution time (in milliseconds) of the process instance that has completed in the shortest amount of execution time. Execution time (in milliseconds) of the process instance that has completed in the longest amount of execution time. Execution time (in milliseconds) of the most recently completed process instance. Elapsed clock time (in milliseconds) of the most recently completed process instance. Time (in milliseconds) since the statistics have been updated. Number of process instances that have completed since the last reset of the statistics.
TIBCO ActiveMatrix BusinessWorks Administration
MaxElapsed
MinExecution
MaxExecution
186
| Appendix A
GetProcesses
Description:
Retrieves information about active process instances. If arguments are specified, information for process instances that match the specified arguments is returned. The following table describes the arguments of this microagent method: Argument Name Id Name EarliestStartTime Description ID for the process instance. Name of the process definition used by the process instance. Earliest time (in milliseconds) at which the process instance started. All process instances started after the specified time will be retrieved. Minimum time (in milliseconds) in elapsed clock time since the process instance started. All process instances that have elapsed times greater than the specified minimum duration will be retrieved. Name of the main process definition.
Method Arguments:
MinimumDuration
MainProcessName
Output:
The following table describes the output of this microagent method: Column Name Id Name TrackingId CustomId Status StartTime Duration MainProcessName Description ID for the process instance. Name of the process definition used by the process instance. Tracking ID for the process instance. Custom ID for the process instance. Status of the process. Time when the process instance started. Elapsed clock time (in milliseconds) since the process instance started. Name of the main process definition.
Description Name of the currently executing activity in the process instance. Name of the process starter that started this process instance. Name of the process definition for the sub-process.
GetProcessesExceptions
Description: Method Arguments:
Retrieves error information reported by the specified process. The following table describes the arguments of this microagent method: Argument Name Id Description ID for the process instance. If not specified, or if 0 is specified, exceptions for all process instances are returned.
Output:
The following table describes the output of this microagent method: Column Name Seq Id Message StackTrace ExceptionClass ProcessStack Description Sequence number of the exception, with the most recent exception first. ID for the process instance. Exception message. Exception stack trace. Exception class name. Process stack at exception. This displays the [ProcessName/GroupName/ActivityName] of the activity issuing the exception. If the activity is in a called sub-process, then the calling activitys process stack plus a '>' separator character will be pre-pended to the normal information to produce the process stack of the activity issuing the exception.
188
| Appendix A
Description Tracking ID for the process instance. Name of the process definition. State of the process.
GetProcessStarters
Description:
Retrieves information about either active or inactive process starters. The information is cumulative. A single process starter name represents all executions of that process starter. The following table describes the arguments of this microagent method: Argument Name ActiveOrInactive Description Specify Active to retrieve information about process starters with the ACTIVE or READY status. Specify Inactive to retrieve information about process starters with the INACTIVE status.
Method Arguments:
Output:
The following table describes the output of this microagent method: Column Name ProcessDef Name Status Created CreationRate Running Description Name of the process definition. Name of the process starter. Status of the process starter. The status can be INACTIVE, ACTIVE, or READY. Number of process instances created by this process starter. Number of process instances per hour created by this process starter. Number of process instances currently executing.
Description Number of process instances that have completed. Time (in milliseconds) at which the process starter was started. Elapsed clock time since the process starter was started. True if the process was restarted from a checkpoint. True if tracing is enabled for this process starter, false if tracing is disabled.
GetRecoverableProcesses
Description:
Retrieves the process instances that can be recovered. See Managing Recoverable Process Instances on page 99 for more information about recoverable process instances. Use the returned process instance ID in the RestartRecoverableProcess or RemoveRecoverableProcess commands. None.
The following table describes the output of this microagent method: Column Name Id Status Description ID for the process instance. Status of the process instance. Can be one of the following: faulted this status occurs when the process instance is terminated due to an unhandled exception. interrupted this status occurs when the process instance is terminated due to engine failure (and the instance did not automatically restart when the engine restarted) or a manual termination.
190
| Appendix A
Description Tracking ID for the process instance. Custom ID for the process instance. Process definition for this process instance. Name of the last executed Checkpoint activity in the process instance. This is the point at which the process instance will begin executing when it is restarted.
getRvCmConfig
Description: Method Arguments: Output:
Get information about all the TIBCO Rendezvous certified message transports. None
The following table describes the output of this microagent method: Column Name certifiedName service daemon network ledgerFile cmTimeout Description Name used for certified delivery. Service parameter for the Rendezvous daemon. Daemon parameter for the Rendezvous daemon. Network parameter for the Rendezvous daemon. Name of the ledger file for the Rendezvous daemon. Timeout value for certified delivery.
GetStaticActivityInfo
Description:
Retrieves design time activity information for all activities in a given process definition.
Method Arguments:
The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description Name of the process definition.
Output:
The following table describes the output of this microagent method: Column Name Name Type Description Name of the activity as specified in TIBCO Designer. A Java class name, for the type of the activity. For example, com.tibco.pe.core.CallProcessActivity.
GetStatsCollectorDestination
Description:
Retrieves the file name of the file where activity statistics are currently being collected. See Storing Process Instance and Activity Statistics on page 101 for more information about collecting activity statistics. None The following table describes the output of this microagent method: Column Name fileName Description Name of the file where activity statistics are currently collected. This value is blank if statistics are not currently being collected.
GetStatus
Description: Method Arguments:
192
| Appendix A
Output:
The following table describes the output of this microagent method: Column Name InstanceID AdapterName Uptime NewErrors TotalErrors ProcessID Host Description Name of this instance of the process engine. Name of the application. Number of seconds since this process engine was started. Total number of errors encountered since the last time this method was called. Total number of errors encountered since the process engine was started. Operating system process ID of the process engine. Name of the host machine on which the process engine is running.
GetTransactionStatistics
Description:
Retrieves statistics for XA transactions initiated using the TIBCO XA Transaction Manager or Arjuna Transaction Manager. Statistics are totals collected for the lifetime of the process engine. See TIBCO ActiveMatrix BusinessWorks Process Design Guidefor more information about XA transactions. None The following table describes the output of this microagent method: Column Name Total Transactions Total Committed Rolledback Description Total number of transactions since the process engine started. Total number of committed transactions since the process engine started. Total number of rolled back transactions since the process engine started.
Description Total number of transactions rolled back because of a timeout since the process engine started. Timeout rollback occurs when the transaction or resource times out. Java transaction APIs do not provide explicit information about timeouts. Therefore the timeout rollback also covers scenarios that represent other illegal transaction states.
Total number of transactions rolled back due to resource issues since the process engine started. Total number of transactions rolled back due to application issues since the process engine started. Total number of transactions with a heuristic outcome.
IsActivityTracingEnabled
Description:
Reports whether tracing is enabled or disabled for the specified activity. If tracing is enabled for all activities by way of a wildcard (*), this method returns false because tracing is not enabled for the activity specifically. The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Activity Description Name of the process definition for which you wish to determine tracing status. Name of the activity for which you wish to determine tracing status.
Method Arguments:
Output:
The following table describes the arguments of this microagent method: Column Name Enabled Description
true false
194
| Appendix A
IsAllTracingEnabled
Description:
Reports whether tracing is enabled or disabled for all activities and process starters. True is returned when tracing is enabled using a wildcard (*). If tracing is enabled for all activities and/or process starters by specifying a tracing parameter individually for each one, this method will return false. None
The following table describes the output of this microagent method: Column Name ActivityTracingEnabled Description
true when tracing is enabled for all activities. false when tracing is disabled for all activities.
ProcessStarterTracingEnabled
true when tracing is enabled for all process starters. false when tracing is disabled for all process starters.
IsProcessStarterTracingEnabled
Description:
Reports whether tracing is enabled or disabled for the specified process starter. If tracing is enabled for all process starters by way of a wildcard (*), this method returns false because tracing is not enabled for the process starter specifically. The following table describes the arguments of this microagent method: Argument Name ProcessStarter Description Name of the process starter for which you wish to determine tracing status.
Method Arguments:
Output:
The following table describes the arguments of this microagent method: Column Name Enabled Description
true if tracing is enabled for the specified process starter, false if tracing is disabled.
IsRoleEnabled
Description:
Reports whether tracing is enabled or disabled for the specified role. If tracing is enabled for all roles by way of a wildcard (*), this method returns false because tracing is not enabled for the role specifically. The following table describes the arguments of this microagent method: Argument Name Role Description Name of the role for which you wish to determine tracing status.
Method Arguments:
Output:
The following table describes the arguments of this microagent method: Column Name Enabled Description
true false
KillAllProcesses
Description:
Kills all process instances. All process instances are stopped immediately and are permanently removed from the engine. The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description The name of the process definition. Only process instances for the specified process definition are killed. If unspecified, this action applies to all process definition.
Method Arguments:
Output:
None
KillProcess
Description:
Kills the specified process instance. The process instance is stopped immediately and permanently removed from the engine.
196
| Appendix A
Method Arguments:
The following table describes the arguments of this microagent method: Argument Name ProcessNameOrId Description The name or process ID of the process instance you wish to kill. You can retrieve the process ID for a process instance by using the GetProcesses method.
Output:
None
ListAllRoles
Description:
Returns a list of all roles, along with the current state (enabled or disabled) of each role. None
The following table describes the output of this microagent method: Column Name Role Enabled Description Name of the role. True if the role is enabled, false if the role is disabled.
ListDbConnections
Description:
Returns a list of all open and idle JDBC connections that have been opened by a single instance of ActiveMatrix BusinessWorks engine. None
The following table describes the output of this microagent method: Column Name Connection-State Connection-Name Description State of the JDBC Connection. The connection state can be Active or Idle. Name of the JDBC Connection.
Description Username used by the JDBC Connection resource to to connect the database. Owner of the JDBC Connection. For active connections, this field displays the activity name and the job-id for which the connection has been acquired. For idle connections, this field is empty.
Idle-Time
Time in milliseconds for which the JDBC Connection has been idle. For active connections, the value is 0.
The statistics for idle connections are available for the time set by the engine property Engine.DBConnection.idleTimeout. By default, this property is set to 5 minutes.
ListInflightTransactions
Description:
Retrieves information about the currently in-flight XA transactions being processed by the TIBCO XA Transaction Manager or Arjuna Transaction Manager. In-flight transactions are all transactions that have not completed or rolled back. See TIBCO ActiveMatrix BusinessWorks Process Design Guidefor more information about XA transactions. None The following table describes the output of this microagent method: Column Name Format ID Description Format identifier part of the XID. Please refer to http://java.sun.com/products/jta/javadocs-1.0.1/i ndex.html for more information about XID. Global Transaction ID Branch Qualifier Global transaction identifier part of XID. Transaction branch identifier part of XID.
198
| Appendix A
Description Current status of the transaction. For example, active, preparing, prepared, committing, committed, rolling back, rolled back. Amount of time (in milliseconds) since this transaction has initiated. XA Resources enlisted in the transaction.
ListInstrumentProperties
Description: Method Arguments: Output:
Retrieves the current settings for all Instrumentation properties. None The following table describes the output of this microagent method: Column Name Property Description Lists the Instrumentation properties that are currently set in the form:
<ProcessDefinitionName>=<CurrentValue>
ListTraceProperties
Description: Method Arguments: Output:
Returns the names and current values for all engine trace properties. None The following table describes the output of this microagent method: Column Name Property Description Lists the tracing properties and their values in the form:
<TracingPropertyName>=<CurrentValue>
ListUserDefinedRoles
Description:
Returns a list of user-defined roles, along with the current state (enabled or disabled) of each role. None
The following table describes the output of this microagent method: Column Name Role Enabled Description Name of the role. True if the role is enabled, false if the role is disabled.
OnProcessActivity
Description:
This method is called when a process executes an activity, and it is only called when instrumentation is on. None The following table describes the output of this microagent method: Column Name ProcessId ProcessDef ActivityName TrackID Description ID of the process instance. Process definition name. Name of the activity. ID of the execution track in which the activity was executed.
OnProcessAdded
Description:
This method is called whenever a process instance is added, and it is only called if instrumentation is on.
200
| Appendix A
None The following table describes the arguments of this microagent method: Column Name ProcessId Description Process ID of the process instance that was added.
OnProcessRemoved
Description:
This method is called whenever a process instance is removed, and it is only called if instrumentation is on. None
The following table describes the arguments of this microagent method: Column Name ProcessId Description Process ID of the process instance that was added.
OnProcessStatusChanged
Description:
This method is called when a process is suspended or resumed, and it is only called when instrumentation on. None The following table describes the output of this microagent method: Column Name ProcessId When Active Description ID of the process instance. Date and time when the status of the process instance changed. Status of the process instance. True when the process instance is active, false when it is inactive.
PreRegisterListener
Description: Method Arguments:
Pre-register a listener for certified delivery. The following table describes the arguments of this microagent method: Argument Name Publisher CM Name Subject Listener CM Name Description Publisher certified name. Subject used for certified delivery. Listener certified name.
Output:
None
RemoveRecoverableProcess
Description:
Removes the specified recoverable process instance from the list of potential recoverable processes. After executing this method, the checkpoint data of the specified process instance is removed and the process instance will no longer be able to be recovered. Obtain the process ID of the recoverable process with the GetRecoverableProcesses method. The following table describes the arguments of this microagent method: Argument Name ProcessId Description Process ID of the process instance you wish to remove from the recoverable process instance list.
Method Arguments:
Output:
None
202
| Appendix A
ResetActivityStats
Description:
Resets the min and max time calculations for each activity in the specified process definition. This method is for internal use only and should not be invoked. The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description Name of the process definition.
Method Arguments:
Output:
None
ResetProcessDefinitionStats
Description:
Resets the minimum, maximum, and average time statistics gathered for process instances. See GetProcessDefinitions on page 184 for more information about process instance statistics. The following table describes the argument of this microagent method: Argument Name ProcessDefinition Description Name of the process definition whose statistics you wish to reset.
Method Arguments:
Output:
None.
RestartRecoverableProcess
Description:
Restarts the specified recoverable process. Obtain the process ID of the recoverable process with the GetRecoverableProcesses method. The following table describes the arguments of this microagent method: Argument Name ProcessId Description Process ID of the process to restart. The process will be restarted from its last saved checkpoint.
Method Arguments:
Output:
None
ResumeAll
Description: Method Arguments:
Resumes all process starters and/or processes. The following table describes the arguments of this microagent method: Argument Name Action Description Specifies what to resume. Can be one of the following: ProcessDefinition
AllProcessStarters
starters.
AllProcesses
AllProcessStartersAndProcesses
all processes and process starters. The name of the process definition.
Output:
None
ResumeProcess
Description: Method Arguments:
Resumes the specified process instance. The following table describes the arguments of this microagent method: Argument Name ProcessNameOrId Description The name or process ID of the process instance you wish to resume. You can retrieve the process ID for a process instance by using the GetProcesses method.
Output:
The following table describes the output of this microagent method: Column Name Status Description Status of the process instance after executing this operation.
204
| Appendix A
ResumeProcessStarter
Description: Method Arguments:
Resumes the specified process starter. The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description Name of the process definition whose process starter you wish to resume.
Output:
The following table describes the output of this microagent method: Column Name Status Description Status of the process starter after executing this operation.
reviewLedger
Description:
Returns information retrieved from the certified message ledger for the given CM name and subject. If no values are supplied for the method arguments, all ledgers are returned. The following table describes the arguments of this microagent method: Argument Name CM Name Subject Description Certified name. Subject used for certified delivery.
Method Arguments:
Output:
The following table describes the output of this microagent method: Column Name CM Name Subject Last Sent Message Description Name used for certified delivery. Subject used for certified delivery. Sequence number of the most recent message sent with this subject name.
Column Name Total Messages Total Size Listener CM Name Last Confirmed Unacknowledged Messages
Description The total number of messages with this subject name for the given CM name. The total storage in bytes occupied by all messages with this subject name. Name of the delivery-tracking listener for this subject. Sequence number of the last message confirmed by the listener. Number of messages pending for this listener.
SetInstrumentProperty
Description:
Sets the Instrumentation property for the specified process definition to a given value. The OnProcessActivity and OnProcessStateChanged methods will be called for the specified processes definition names. For example, use property name "*" and value "true" to enable those asynchronous methods for all process definitions. The property name does not need to begin with "Instrumentation.", but if it does, the leading "Instrumentation." will be ignored. See Enabling TIBCO Hawk on page 176 for more information about the Instrumentation property.
Method Arguments:
The following table describes the arguments of this microagent method: Argument Name Name Description Name of the process definition for which you wish to alter the Instrumentation property. Specify * for this argument if you wish to enable or disable instrumentation for all process definitions.
true if you wish to enable instrumentation for the given process definition. false if you wish to disable instrumentation for the given process definition.
Value
Output:
None
206
| Appendix A
SetTraceProperty
Description:
Sets the specified engine tracing property to the specified value. While you can set properties with this method, ConfigureActivityTracing, ConfigureProcessStarterTracing, and ConfigureUserDefinedTracing are simpler to use for setting trace properties. See Trace Properties on page 131 for more information about tracing properties.
Method Arguments:
The following table describes the arguments of this microagent method: Argument Name Name Value Description Name of the tracing property you wish to set.
true
if you wish to enable the property. false if you wish to disable the property.
Output:
None
StartStatsCollection
Description:
Enables collection of statistics for each executed activity. See Storing Process Instance and Activity Statistics on page 101 for more information about collecting activity statistics. None None
stopApplicationInstance
Description:
Shuts down the process engine immediately. All checkpoint files are preserved and the engine's operating system process exits. None
None
StopStatsCollection
Description:
Disables collection of statistics for each executed activity. See Storing Process Instance and Activity Statistics on page 101 for more information about collecting activity statistics. None
None
SuspendAll
Description: Method Arguments:
Suspends all process starters and/or processes. The following table describes the arguments of this microagent method: Argument Name Action Description Specifies what to suspend. Can be one of the following: ProcessDefinition
AllProcessStarters
starters.
AllProcesses
AllProcessStartersAndProcesses suspends
all processes and process starters. The name of the process definition.
Output:
None
SuspendProcess
Description:
208
| Appendix A
Method Arguments:
The following table describes the arguments of this microagent method: Argument Name ProcessNameOrId Description The name or process ID of the process instance you wish to suspend. You can retrieve the process ID for a process instance by using the GetProcesses method.
Output:
The following table describes the output of this microagent method: Column Name Status Description Status of the process instance after executing this operation.
SuspendProcessStarter
Description: Method Arguments:
Suspends the specified process starter. The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description Name of the process definition whose process starter you wish to suspend.
Output:
The following table describes the output of this microagent method: Column Name Status Description Status of the process starter after executing this operation.
unRegisterListener
Description: Method Arguments:
Unregister a certified delivery listener. The following table describes the arguments of this microagent method: Argument Name Publisher CM Name Description Publisher certified name.
None
_onUnsolicitedMsg
Description:
Subscribing to this method returns any unsolicited notifications that are sent from the managed application corresponding to this microagent. Invoking this method returns the last such message that was received (if any). None
Method Arguments:
210
| Appendix B
Appendix B
TIBCO ActiveMatrix BusinessWorks processes that are deployed on TIBCO Administrator can be monitored using the Java Management Extensions (JMX) API. This section describes how to enable JMX monitoring for the BusinessWorks engine.
To enable remote monitoring using JMX, set the following properties in bwengine.tra:
java.property.com.sun.management.jmxremote=true java.property.com.sun.management.jmxremote.port=<port_number>
Once these properties are set, Java monitoring tools such as JConsole can be used instead of TIBCO Hawk to monitor the BusinessWorks engine.
212
| Appendix B
Using JConsole
Perform the following tasks to monitor a BusinessWorks engine using JConsole. Set the properties mentioned in the section Enabling JMX Support on page 211. Deploy the BusinessWorks project on TIBCO Administrator. Ensure that the TIBCO Hawk Agent has been started. Start JConsole and connect to the application that needs to be monitored. By default, JConsole is available in the installation location of Java Development Kit (JDK) for 1.5.0 and higher versions. On the JConsole window, click the MBeans tab. Select the node com.tibco.bw in the tree on the right-hand side. The methods available to monitor the BusinessWorks engine are displayed under the Operations tab. These methods are the TIBCO Hawk Microagent methods that you can also invoke using TIBCO Hawk.
See TIBCO Hawk Microagent Methods on page 177, for a complete list of the available methods.
Appendix C
This section lists the threads on which each BusinessWorks activity works. Activity Name HTTP Receiver Invoke An Adapter Request Response Service JMS Sender JMS Receiver JMS Topic/Queue Requestor JDBC Query Send HTTP Request Send Rendezvous Request SOAP Request Reply Wait, WaitFor and Sleep activities Threads Used Private Private Engine Private Private Engine Private Private Private Private
214
| Appendix C
| 215
Index
A
Adding a Process Archive 24 Event 51 Monitoring Rulebase 51 All Service Instances Dialog 105 Application Undeploying 36 Upgrading 41 Application Management Configuration Dialog 73 Application Management Overview 28 Application to a Folder, Moving an 40 Application, Reverting to a Previously Deployed 35 Archive File, Creating 11
D
Database Table Names 58 Database Tables, Manually Creating 58 Deleting an Application 31 Deployed Application, Reverting to Previous 35 Deployed Application, Undeploying 36 Deployed Configuration Pane 75 Deploying an Application 12, 32
C E
Changing a Shared Archive 26 Application Global Variables and Repository Properties 47 Checkpoint Data Repository for a Process 70 Process Configuration Properties 60 Runtime Variables for a Process or Service 72 Server Settings 65 Configuration Builder Pane 73 Configuration Console Overview 46 Configuration Dialog, Application Management 73 Configuring Storage for Services 57 Creating an Application 29 an Enterprise Archive 22 Enterprise Archive 22 Process Archive 24 Creating Database Tables, Manually 58 Edit Application Configuration Dialog 76 Edit Service Configuration Dialog 81 Edit Service Instance Dialog 86 Editing Process Engine Properties 97 Enabling Process or Service to Run on Other Machines 49 Engine Properties, Editing 97 Enterprise Archive File Size 20 Enterprise Archive File, Creating 11
F
Fault-Tolerance and Process Starters 69 Fault-tolerant 68 Folder, Moving an Application to a 40
216
| Index
G
Graceful Shutdown Tab 88, 110
P
Peer or Master and Secondary Relationships 68 Performance Considerations 168, 168 Performance Tuning 163 Previously Deployed Application, Reverting 35 Process Engine Properties, Editing 97 Process Engines Overview 92 Process Starters and Fault-Tolerance 69 Properties, Process Engine 97
I
Instance Dialog, View Service 107
K R
Keeping Services in Memory 62 Reverting to a Previously Deployed Application 35 rulebase, variable substitution 54
M
Making Changes to a Shared Archive 26 Managing Folders 39 Manually Creating Database Tables 58 Master and Secondary Relationships, Peer or 68 Memory, Keeping Services in 62 Monitoring an Application 14 Monitoring Tab 83 Moving an Application to a Folder 40
S
Server Settings Tab 86 Service Configuration, Viewing 89 Service Instance Dialog, View 107 Service Instances Overview 92 Services in Memory, Keeping 62 Setting Fault Tolerant Options for a Process 67 Graceful Shutdown Properties for a Process Engine 66 Settings Tab, Server 86 Shutdown Tab, Graceful 88, 110 Specifying Custom Alert 15 Database for Storage 57 Maximum Number of Concurrently Active Processes 61 Starting Administration Server 3, 5 an Application 13 Service Instance or Process Engine 93 TIBCO Administrator 3, 5 TIBCO Administrator on Microsoft Windows 3 TIBCO Administrator on UNIX 5
N
Normal operation master processing while secondary stands by 67
O
Overview, Application Management 28
Index 217
Stopping Administration Server 6 Application 18 Service Instance or Process Engine 93 support, contacting xxi
T
Table Names, Database 58 Tables, Manually Creating in Database 58 technical support xxi TIBCO_HOME xix Tracing Tab 110
U
Undeploy Dialog 36 Undeploying a Deployed Application 36 Upgrading an Application 41
V
variable substitution, rulebase 54 View Service Configuration 89 View Service Instance Dialog 107 Viewing Application Deployment History 38 Default Monitoring Information 14 Log File Information 95 TIBCO Administrator Audit Log 98