25.01.2015 Views

Managing Ensemble Productions - InterSystems Documentation

Managing Ensemble Productions - InterSystems Documentation

Managing Ensemble Productions - InterSystems Documentation

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Managing</strong> <strong>Ensemble</strong><br />

<strong>Productions</strong><br />

Version 2010.2<br />

25 April 2011<br />

<strong>InterSystems</strong> Corporation 1 Memorial Drive Cambridge MA 02142 www.intersystems.com


<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong><br />

<strong>Ensemble</strong> Version 2010.2 25 April 2011<br />

Copyright © 2011 <strong>InterSystems</strong> Corporation<br />

All rights reserved.<br />

This book was assembled and formatted in Adobe Page Description Format (PDF) using tools and information from the following sources:<br />

Sun Microsystems, RenderX, Inc., Adobe Systems, and the World Wide Web Consortium at www.w3c.org.The primary document development<br />

tools were special-purpose XML-processing applications built by <strong>InterSystems</strong> using Caché and Java.<br />

and<br />

Caché WEBLINK, Distributed Cache Protocol, M/SQL, M/NET, and M/PACT are registered trademarks of <strong>InterSystems</strong> Corporation.<br />

, , and<br />

<strong>InterSystems</strong> Jalapeño Technology, Enterprise Cache Protocol, ECP, and <strong>InterSystems</strong> Zen are trademarks of <strong>InterSystems</strong> Corporation.<br />

All other brand or product names used herein are trademarks or registered trademarks of their respective companies or organizations.<br />

This document contains trade secret and confidential information which is the property of <strong>InterSystems</strong> Corporation, One Memorial Drive,<br />

Cambridge, MA 02142, or its affiliates, and is furnished for the sole purpose of the operation and maintenance of the products of <strong>InterSystems</strong><br />

Corporation. No part of this publication is to be used for any other purpose, and this publication is not to be reproduced, copied, disclosed,<br />

transmitted, stored in a retrieval system or translated into any human or computer language, in any form, by any means, in whole or in part,<br />

without the express prior written consent of <strong>InterSystems</strong> Corporation.<br />

The copying, use and disposition of this document and the software programs described herein is prohibited except to the limited extent<br />

set forth in the standard software license agreement(s) of <strong>InterSystems</strong> Corporation covering such programs and related documentation.<br />

<strong>InterSystems</strong> Corporation makes no representations and warranties concerning such software programs other than those set forth in such<br />

standard software license agreement(s). In addition, the liability of <strong>InterSystems</strong> Corporation for any losses or damages relating to or arising<br />

out of the use of such software programs is limited in the manner set forth in such standard software license agreement(s).<br />

THE FOREGOING IS A GENERAL SUMMARY OF THE RESTRICTIONS AND LIMITATIONS IMPOSED BY INTERSYSTEMS<br />

CORPORATION ON THE USE OF, AND LIABILITY ARISING FROM, ITS COMPUTER SOFTWARE. FOR COMPLETE INFORMATION<br />

REFERENCE SHOULD BE MADE TO THE STANDARD SOFTWARE LICENSE AGREEMENT(S) OF INTERSYSTEMS CORPORATION,<br />

COPIES OF WHICH WILL BE MADE AVAILABLE UPON REQUEST.<br />

<strong>InterSystems</strong> Corporation disclaims responsibility for errors which may appear in this document, and it reserves the right, in its sole discretion<br />

and without notice, to make substitutions and modifications in the products and practices described in this document.<br />

For Support questions about any <strong>InterSystems</strong> products, contact:<br />

<strong>InterSystems</strong> Worldwide Customer Support<br />

Tel: +1 617 621-0700<br />

Fax: +1 617 374-9391<br />

Email: support@<strong>InterSystems</strong>.com


Table of Contents<br />

About This Book .................................................................................................................................... 1<br />

1 <strong>Ensemble</strong> Management Portal .......................................................................................................... 3<br />

1.1 System Requirements ................................................................................................................. 4<br />

1.2 Starting the Portal ....................................................................................................................... 4<br />

1.2.1 Starting from the System Management Portal ................................................................. 4<br />

1.2.2 Starting from Studio ......................................................................................................... 4<br />

1.3 Login .......................................................................................................................................... 5<br />

1.3.1 Logging into the Portal .................................................................................................... 5<br />

1.3.2 Working with Login Accounts ......................................................................................... 5<br />

1.3.3 Working with Namespaces ............................................................................................... 5<br />

1.3.4 Working with Security Settings ........................................................................................ 5<br />

1.4 <strong>Ensemble</strong> Home Page ................................................................................................................. 6<br />

1.4.1 <strong>Ensemble</strong> Menu ................................................................................................................ 6<br />

1.4.2 <strong>Ensemble</strong> Table ................................................................................................................ 7<br />

1.4.3 Job Table .......................................................................................................................... 8<br />

1.4.4 Log Table .......................................................................................................................... 8<br />

1.4.5 Service Table .................................................................................................................... 9<br />

1.4.6 Process Table .................................................................................................................... 9<br />

1.4.7 Operation Table ................................................................................................................ 9<br />

1.5 Logout ...................................................................................................................................... 10<br />

1.6 Portal Command Summary ...................................................................................................... 10<br />

2 Management Tasks ........................................................................................................................... 15<br />

2.1 Adding Items ............................................................................................................................ 16<br />

2.2 Configuring Items .................................................................................................................... 16<br />

2.3 Finding Items ............................................................................................................................ 17<br />

2.4 Monitoring Items ...................................................................................................................... 17<br />

2.5 Purging Items ........................................................................................................................... 18<br />

2.6 Starting and Stopping Items ..................................................................................................... 18<br />

2.7 Storing Items ............................................................................................................................ 19<br />

2.8 Testing Items ............................................................................................................................ 19<br />

2.9 Viewing Items ........................................................................................................................... 20<br />

3 What to Manage ................................................................................................................................ 21<br />

3.1 Working with <strong>Productions</strong> ........................................................................................................ 21<br />

3.2 Working with Host Classes ...................................................................................................... 22<br />

3.3 Working with Configuration Items ........................................................................................... 23<br />

3.3.1 Business Services ........................................................................................................... 24<br />

3.3.2 Business Processes ......................................................................................................... 24<br />

3.3.3 Business Operations ....................................................................................................... 25<br />

3.3.4 Scheduling Configuration Items .................................................................................... 25<br />

3.3.5 Assigning Configuration Items to Categories ................................................................ 28<br />

3.4 Working with Credentials ......................................................................................................... 29<br />

3.5 Working with Dashboards ........................................................................................................ 29<br />

3.5.1 Dashboards ..................................................................................................................... 30<br />

3.5.2 Business Metrics ............................................................................................................ 31<br />

3.6 Working with Business Rules ................................................................................................... 32<br />

3.6.1 Business Rules Pages ..................................................................................................... 33<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong><br />

iii


3.7 Working with the Event Log .................................................................................................... 33<br />

3.8 Working with the I/O Archive .................................................................................................. 34<br />

3.9 Working with Jobs .................................................................................................................... 35<br />

3.9.1 Jobs Page ........................................................................................................................ 35<br />

3.10 Working with Messages ......................................................................................................... 36<br />

3.10.1 Message Status ............................................................................................................. 37<br />

3.10.2 Messages in Progress ................................................................................................... 38<br />

3.11 Working with Queues ............................................................................................................. 38<br />

3.12 Working with Sessions ........................................................................................................... 39<br />

3.13 Working with Workflow ......................................................................................................... 39<br />

3.13.1 Workflow Portal ........................................................................................................... 40<br />

4 <strong>Productions</strong> ........................................................................................................................................ 41<br />

4.1 Production List ......................................................................................................................... 41<br />

4.2 Starting a Production ................................................................................................................ 42<br />

4.3 Stopping a Production .............................................................................................................. 43<br />

4.4 Production <strong>Documentation</strong> ....................................................................................................... 44<br />

5 Configuration .................................................................................................................................... 45<br />

5.1 Configuration Diagram ............................................................................................................ 46<br />

5.1.1 Configuration Shapes ..................................................................................................... 46<br />

5.1.2 Configuration Names ..................................................................................................... 47<br />

5.1.3 Configuration Icons ........................................................................................................ 49<br />

5.1.4 Status Indicators ............................................................................................................. 50<br />

5.1.5 Pool Size ........................................................................................................................ 50<br />

5.1.6 Context Menu ................................................................................................................. 50<br />

5.2 Configuration Settings .............................................................................................................. 51<br />

5.2.1 Configure Production Settings ....................................................................................... 51<br />

5.2.2 Configure Business Host Settings .................................................................................. 54<br />

5.2.3 Business Service Settings ............................................................................................... 59<br />

5.2.4 Business Process Settings .............................................................................................. 60<br />

5.2.5 Business Operation Settings ........................................................................................... 61<br />

5.2.6 Reply Code Actions Setting ........................................................................................... 62<br />

6 System Monitor ................................................................................................................................. 65<br />

7 Event Log .......................................................................................................................................... 67<br />

7.1 Event Log Entries ..................................................................................................................... 67<br />

7.2 Event Log Filter ........................................................................................................................ 68<br />

7.3 Event Log Purge ....................................................................................................................... 69<br />

8 Message Browser .............................................................................................................................. 71<br />

8.1 Message List ............................................................................................................................. 71<br />

8.1.1 Message Details ............................................................................................................. 73<br />

8.1.2 Message Contents .......................................................................................................... 75<br />

8.1.3 Visual Trace .................................................................................................................... 76<br />

8.2 Message Filter .......................................................................................................................... 79<br />

8.2.1 Basic Filter Terms .......................................................................................................... 79<br />

8.2.2 Detailed Filter Terms ...................................................................................................... 80<br />

8.2.3 Filter Results .................................................................................................................. 84<br />

8.3 Resend Messages ...................................................................................................................... 85<br />

8.3.1 Resend Editor ................................................................................................................. 86<br />

9 Business Processes ............................................................................................................................ 87<br />

iv<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


9.1 Business Process List ............................................................................................................... 87<br />

9.2 BPL Viewer .............................................................................................................................. 88<br />

9.3 Business Process Instances ....................................................................................................... 91<br />

9.3.1 Business Process Instance Entries .................................................................................. 91<br />

9.3.2 Business Process Instance Filter .................................................................................... 93<br />

9.3.3 Business Process Instance Purge .................................................................................... 93<br />

10 Host Monitor ................................................................................................................................... 95<br />

10.1 Monitor Items ......................................................................................................................... 95<br />

10.2 Monitor Instances ................................................................................................................... 97<br />

10.3 Monitor History ...................................................................................................................... 98<br />

11 Queues ............................................................................................................................................. 99<br />

11.1 Queue Contents ...................................................................................................................... 99<br />

11.2 Message Details .................................................................................................................... 100<br />

12 Maintenance .................................................................................................................................. 103<br />

12.1 Suspended Messages ............................................................................................................ 104<br />

12.1.1 Resend Editor for Resubmitting Messages ................................................................ 105<br />

12.2 Purge Management Data ...................................................................................................... 105<br />

12.3 Credentials ............................................................................................................................ 107<br />

12.4 Local Archive Manager ........................................................................................................ 108<br />

12.5 Lookup Settings .................................................................................................................... 109<br />

12.6 Default Settings .................................................................................................................... 110<br />

12.7 Enterprise Message Bank ..................................................................................................... 111<br />

12.7.1 Adding a Message Bank Business Operation ............................................................ 113<br />

12.7.2 Configuring a Message Bank Business Operation ..................................................... 113<br />

13 Testing Service ............................................................................................................................... 117<br />

13.1 Testing Service - 1 of 4, Select Target .................................................................................. 117<br />

13.2 Testing Service - 2 of 4, Select Message Type ..................................................................... 118<br />

13.3 Testing Service - 3 of 4, Submit Test Data ........................................................................... 118<br />

13.4 Testing Service - 4 of 4, View Results .................................................................................. 118<br />

14 EDI / HL7 Manager ...................................................................................................................... 121<br />

14.1 Schema Structures ................................................................................................................ 121<br />

14.2 Document/Message Viewer .................................................................................................. 122<br />

Index ................................................................................................................................................... 123<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong><br />

v


List of Figures<br />

Figure 3–1: Dashboard Page with an Active Dashboard ....................................................................... 31<br />

Figure 5–1: Configuration Page ............................................................................................................ 45<br />

Figure 5–2: Configuration Page Left Column — Business Service ...................................................... 46<br />

Figure 5–3: Configuration Page Center Column — Business Process ................................................. 46<br />

Figure 5–4: Configuration Page Right Column — Business Operation ............................................... 47<br />

Figure 5–5: Different Configuration Names, Same Host Class ............................................................ 47<br />

Figure 5–6: Same Configuration Name, Different Host Classes ........................................................... 48<br />

Figure 5–7: Item List Box for Same-Named Configuration Items ........................................................ 48<br />

Figure 8–1: Standard <strong>Ensemble</strong> Message Body Contents in XML Format .......................................... 75<br />

Figure 8–2: HL7 Virtual Document Contents in Message Segment Format ......................................... 75<br />

Figure 8–3: The Visual Trace Page ........................................................................................................ 77<br />

Figure 9–1: The BPL Viewer Page ........................................................................................................ 88<br />

vi<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


List of Tables<br />

Table 1–1: <strong>Ensemble</strong> Management Portal Commands .......................................................................... 10<br />

Table 2–1: Management Terminology Conventions .............................................................................. 15<br />

Table 4–1: Production Status Values ..................................................................................................... 42<br />

Table 5–1: Icons on Configuration Diagram Shapes ............................................................................. 49<br />

Table 5–2: Code Values for Reply Code Actions .................................................................................. 63<br />

Table 5–3: Action Values for Reply Code Actions ................................................................................ 63<br />

Table 8–1: Options for Filter Type ........................................................................................................ 81<br />

Table 8–2: Options for Filter Class ........................................................................................................ 82<br />

Table 8–3: Fields and Properties for Message Filter Conditions ........................................................... 82<br />

Table 8–4: Comparison Operators for Message Filter Conditions ........................................................ 83<br />

Table 12–1: Default Setting Properties ................................................................................................ 110<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong><br />

vii


About This Book<br />

This book explains how to use the browser-based <strong>Ensemble</strong> Management Portal to configure, monitor, and maintain an<br />

<strong>Ensemble</strong> production. <strong>InterSystems</strong> <strong>Ensemble</strong> shares many underlying core technologies with <strong>InterSystems</strong> Caché. This<br />

book refers you to books in both documentation sets.<br />

The book begins by exploring the tasks involved in administering an <strong>Ensemble</strong> production:<br />

• “<strong>Ensemble</strong> Management Portal” introduces the login page, <strong>Ensemble</strong> home page, and main menu.<br />

• “Management Tasks” describes tasks you might want to accomplish.<br />

• “What to Manage” describes the parts of an <strong>Ensemble</strong> production.<br />

Further chapters describe major <strong>Ensemble</strong> functions you can perform using the portal:<br />

• <strong>Productions</strong><br />

• Configuration<br />

• System Monitor<br />

• Event Log<br />

• Message Browser<br />

• Business Processes<br />

• Host Monitor<br />

• Maintenance<br />

• Testing Service<br />

• EDI / HL7 Manager<br />

There is also a detailed Table of Contents.<br />

The following books provide related information:<br />

• Introducing <strong>Ensemble</strong> provides an overview of the <strong>Ensemble</strong> product, its purpose and features.<br />

• Using Dashboards with <strong>Ensemble</strong> explains how to build browser-based dashboards that display real-time data for an<br />

<strong>Ensemble</strong> production.<br />

• Using Business Rules with <strong>Ensemble</strong> explains how to define business rules that direct business process logic at decision<br />

points.<br />

• Using Workflow with <strong>Ensemble</strong> explains how to incorporate human interaction into automated business processes.<br />

For more system administration topics, consult the following guides:<br />

• Caché System Administration Guide<br />

• Caché Security Administration Guide<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 1


1<br />

<strong>Ensemble</strong> Management Portal<br />

This chapter describes how to use the browser-based <strong>Ensemble</strong> Management Portal. Developers use the portal to deploy<br />

new productions. System administrators use the portal to monitor or configure productions that are already running. Business<br />

analysts use the portal to define business rules for existing productions.<br />

The <strong>Ensemble</strong> Management Portal provides the ability to:<br />

• Start and stop a production.<br />

• View and modify production configuration.<br />

• Apply configuration changes while a production is running.<br />

• View, filter, and search for messages based on content and other criteria.<br />

• Choose Visual Trace to view message activity in visual format with full details.<br />

• View, filter, and search for message activity records in the Event Log.<br />

• Display and configure dashboards for business activity monitoring.<br />

• View the detailed data contents of messages or business metrics.<br />

• Work effectively with Electronic Data Interchange (EDI) formats such as HL7 or X12.<br />

• Edit business rules and view their activity records in the Business Rule Log.<br />

• Manage workflow, define user roles, and accept tasks.<br />

• Perform cleanup and maintenance tasks, such as purging old records or configuring login credentials.<br />

• Monitor production activities from the system viewpoint, as CPU jobs.<br />

This topic offers a quick tour of the portal as follows:<br />

• System Requirements<br />

• Starting the Portal<br />

• Login<br />

• <strong>Ensemble</strong> Home Page<br />

• Logout<br />

• Portal Command Summary<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 3


<strong>Ensemble</strong> Management Portal<br />

1.1 System Requirements<br />

The <strong>Ensemble</strong> Management Portal runs on Internet Explorer 6.0 or higher.<br />

Additionally, the Scalable Vector Graphics (SVG) Viewer 3.0 must be installed on the system that is running <strong>Ensemble</strong>.<br />

If you encounter any problems, you can double-check your installation by looking for SVG Viewer under the Adobe products<br />

installation folder on the machine where you run the <strong>Ensemble</strong> Management Portal.<br />

1.2 Starting the Portal<br />

You can start the <strong>Ensemble</strong> Management Portal in one of the following ways:<br />

• Starting from the System Management Portal<br />

• Starting from Studio<br />

• Bookmarking the [<strong>Ensemble</strong>] home page URI once you navigate to it in your browser. For example, the <strong>Ensemble</strong><br />

Management Portal home page URI in the <strong>Ensemble</strong> namespace for a default new installation is:<br />

http://localhost:57772/csp/ensemble/UtilEnsHome.csp<br />

If your system security requires it, a login page may display at some point in your navigation with a Please login prompt.<br />

See the Login section for details.<br />

1.2.1 Starting from the System Management Portal<br />

To start the <strong>Ensemble</strong> Management Portal from the System Management Portal:<br />

1.<br />

Click the <strong>Ensemble</strong> launcher in the Windows system tray and click System Management Portal to display the<br />

System Management Portal [Home] page.<br />

2. Click <strong>Ensemble</strong> Management Portal located at the bottom of the System Administration column on the left-hand side.<br />

3. Depending on the security of your system you may encounter a login page. Enter your username and password and<br />

click Login to continue to the [<strong>Ensemble</strong>] home page.<br />

1.2.2 Starting from Studio<br />

To start the <strong>Ensemble</strong> Management Portal from Studio:<br />

1. On the File menu, click Change Namespace to display the Connection Manager.<br />

2. Choose a Server and Namespace (choose an <strong>Ensemble</strong> namespace) and click OK.<br />

3. If necessary, enter the Username and Password for that namespace and server.<br />

4. Click OK to save your changes, Cancel to cancel them.<br />

5. On the Utilities menu, click <strong>Ensemble</strong> Management.<br />

6. Depending on the security of your system you may encounter a login page. Enter your username and password and<br />

click Login to continue to the [<strong>Ensemble</strong>] home page.<br />

4 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Login<br />

1.3 Login<br />

The <strong>Ensemble</strong> Management Portal login page displays whenever you start the portal or leave the portal idle for more than<br />

15 minutes and you have more than minimal security on your instance. You may see a login page earlier in your navigation<br />

to the <strong>Ensemble</strong> Management Portal in either the System Management Portal or Studio, depending on the security configuration<br />

of your system.<br />

1.3.1 Logging into the Portal<br />

From the login page, you can log into the <strong>Ensemble</strong> Management Portal as follows:<br />

1. If you have more than one <strong>Ensemble</strong> namespace, the login page includes a Namespace list. Click the appropriate<br />

namespace from the Namespace list. If you have only one <strong>Ensemble</strong> namespace, the login page automatically selects<br />

that namespace.<br />

2. In the Username and Password fields, enter the username and password for a user account defined in the namespace.<br />

The default login for any namespace is the username _SYSTEM with a password of SYS.<br />

3. Click Login to display the [<strong>Ensemble</strong>] home page.<br />

1.3.2 Working with Login Accounts<br />

You can change the _SYSTEM password associated with an <strong>Ensemble</strong> namespace, or add new login accounts, by using the<br />

System Management Portal [Home] > [Security Management] > [Users] > [Edit User] page. For instructions, see the Creating<br />

and Editing Users section in the “Users” chapter of the Caché Security Administration Guide.<br />

1.3.3 Working with Namespaces<br />

For information about namespaces in <strong>Ensemble</strong>, see the Namespaces section in the “Production Concepts” chapter of<br />

Developing <strong>Ensemble</strong> <strong>Productions</strong>.<br />

1.3.4 Working with Security Settings<br />

For each <strong>Ensemble</strong>-enabled namespace there is a CSP application that needs to be properly configured to run the <strong>Ensemble</strong><br />

Management Portal. Normally there is nothing you need to do about this. At installation time, the CSP applications in the<br />

namespaces ENSEMBLE and ENSDEMO acquire the following authentication settings, depending on the type of security<br />

that you select at installation time.<br />

Security Level<br />

Minimal<br />

Normal<br />

Locked Down<br />

Type of Authentication<br />

Unauthenticated<br />

Password<br />

Password, Kerberos, and LDAP<br />

During installation, <strong>Ensemble</strong> identifies the level of security you select and saves this information for future use. Any time<br />

you create a new namespace, the built-in CSP applications in that namespace acquire the appropriate authentication settings<br />

for that security level.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 5


<strong>Ensemble</strong> Management Portal<br />

1.4 <strong>Ensemble</strong> Home Page<br />

The [<strong>Ensemble</strong>] home page contains a welcome message, a menu of commands, and information about the active <strong>Ensemble</strong><br />

production.<br />

You can display the <strong>Ensemble</strong> home page in any of the following ways:<br />

• Navigate from the System Management Portal or Studio.<br />

• Click Home in any <strong>Ensemble</strong> Management Portal menu.<br />

• Click <strong>Ensemble</strong> in the navigation path of any portal page.<br />

At far right, the title bar provides a Namespace list that you can use to switch to a different <strong>Ensemble</strong> namespace. There is<br />

also a Go to list that you can use to return to previously visited pages in the <strong>Ensemble</strong> Management Portal or System<br />

Management Portal.<br />

Under the home page title bar is a display area. At the top left corner of this display is the <strong>Ensemble</strong> Management Portal<br />

menu, also referred to as the <strong>Ensemble</strong> Menu.<br />

The main display of the <strong>Ensemble</strong> home page shows tables that contain summary information about the <strong>Ensemble</strong> installation<br />

and any production activity in the active namespace. Each table on the home page provides summary statistics about some<br />

key aspect of <strong>Ensemble</strong> operations. The numbers reflect a current snapshot when you refresh the home page. If you want<br />

to see the details behind these statistics, click the title of the following tables:<br />

• <strong>Ensemble</strong> Table<br />

• Job Table<br />

• Log Table<br />

• Service Table<br />

• Process Table<br />

• Operation Table<br />

At the top of the <strong>Ensemble</strong> home page, above the [<strong>Ensemble</strong>] link, is a Home option. Click it to display the System Management<br />

Portal [Home] page.<br />

1.4.1 <strong>Ensemble</strong> Menu<br />

The <strong>Ensemble</strong> home page as well as many pages in the <strong>Ensemble</strong> Management Portal contain a menu on the left-hand side<br />

of the page, the <strong>Ensemble</strong> Menu. Click commands in this menu to navigate to the associated pages. When you do, the<br />

navigation path changes to track your place in the portal structure. In addition to Home, the <strong>Ensemble</strong> menu selections are:<br />

• <strong>Productions</strong> — lists productions known to the currently selected namespace.<br />

• System Monitor — displays real-time status of external connections and internal message queues.<br />

• Event Log — lists event log entries and allows you to enter criteria to filter the list.<br />

• Message Browser — lets you filter, search, and view the message archive for the currently running production.<br />

• Business Processes — lists all business processes in the current namespace.<br />

• Business Rules — lets you define business rules.<br />

• Business Rule Log — lets you log business rules activity.<br />

• Host Monitor — displays the status of configuration items in the current production.<br />

6 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


<strong>Ensemble</strong> Home Page<br />

• Jobs — lists the system jobs doing work for the current production.<br />

• Queues — lists the queues in use by the currently running production<br />

• Maintenance — lets you select specialized tasks from the Maintenance menu.<br />

• Dashboards — lists the available Business Activity Monitoring dashboards.<br />

• Business Metrics — summarizes the data being collected by business metric classes.<br />

• Workflow Portal — lets you manage workflow, define user roles, and accept tasks.<br />

• Testing Service — lets you send test requests to the currently running production.<br />

• EDI / HL7 Manager — lets you work with Electronic Data Interchange (EDI) formats such as HL7.<br />

1.4.2 <strong>Ensemble</strong> Table<br />

The home page <strong>Ensemble</strong> table displays the following data fields:<br />

• <strong>Ensemble</strong> Running (or other status values) — This field describes the <strong>Ensemble</strong> execution engine. The value Running<br />

appears if any <strong>Ensemble</strong> production is running. Otherwise, the field may display the values Stopped, Suspended, or<br />

Troubled. For details about these values, see the Production List section in the “<strong>Productions</strong>” chapter.<br />

• Production — The name of the running production, or name of the last production run. If you click Start Production,<br />

Stop Production, Update Production, or Recover on the home page, this is the production that you are starting, stopping,<br />

updating, or recovering.<br />

The home page Production field provides links to other portal pages as follows:<br />

– If you click the production name, the display changes to the configuration diagram for that production, where you<br />

can configure the operational settings for a production in the active namespace. See the “Configuration” chapter<br />

for details.<br />

– If you click more... to the right of the production name, the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] page displays where you<br />

can select a different production to start.<br />

• Start Time — The start time of the currently running production. The Start Time field is never reset while the production<br />

is running, even if you click Reset Counter to reset other fields. If there is no production running, the Start Time field<br />

is blank.<br />

The home page <strong>Ensemble</strong> table also provides the following commands:<br />

• Start Production — Start Production displays only if no production is currently running. Click Start Production to start<br />

the production listed in the home page Production field.<br />

• Stop Production — displays only if a production is currently running. Click Stop Production to stop the production<br />

listed in the home page Production field.<br />

• Update Production — Under some conditions, when you start the portal there is a discrepancy between the production<br />

as defined in the code, and the status of the running production. Examples would be if:<br />

– A specific business host experienced an error and has died (the most likely cause)<br />

– The user changed a configuration parameter for a business host in a running production, such that the host now<br />

needs to be restarted.<br />

– A production typically opens a Terminal window, but this window was closed by a user action while the production<br />

was still running.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 7


<strong>Ensemble</strong> Management Portal<br />

When discrepancies such as this arise, the Update Production command becomes available on the home page. Click<br />

it, to update the production and resolve the discrepancy. <strong>Ensemble</strong> displays a confirmation message. Click OK to return<br />

to the [<strong>Ensemble</strong>] home page.<br />

Alternatively, you can cause the production to update itself automatically. When you take this approach, the Update<br />

Production command never appears. To do this:<br />

– Start the Business Service Wizard. For instructions, see the Adding a Business Service to a Production section in<br />

the “Business Services” chapter of Developing <strong>Ensemble</strong> <strong>Productions</strong>. When the wizard displays, choose Other,<br />

and for the Service Class choose Ens.ProductionMonitorService. You may accept the default values for the other<br />

settings. Click OK. This adds a production monitor service to the production.<br />

– View the production configuration diagram on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page. Select the<br />

new production monitor service and configure its General Settings and Specific Settings. For details, see the<br />

“Business Service Settings” section in the “Configuration” chapter. The Call Interval setting controls how frequently,<br />

in seconds, the production monitor service checks to see if there is a discrepancy between the production<br />

as defined in the code, and the status of the running production. Each time it finds such a discrepancy, the production<br />

monitor service updates the production to resolve it.<br />

• Recover — Appears on the home page if a production has a status of Troubled due to some unexpected program error.<br />

Click Recover to clean up the troubled instance of the production so that you can run a new instance when you are<br />

ready.<br />

1.4.3 Job Table<br />

The <strong>Ensemble</strong> home page Job table displays the following data fields:<br />

• Total Jobs Running — The number of system jobs that have been allocated to pools for use by business hosts within<br />

this production. This number reflects a current snapshot when you refresh the home page.<br />

Each time a business service, business process, or business operation needs to do work, it starts a system job in which<br />

to complete its tasks. This job comes either from a private pool of jobs belonging to the business service, business<br />

process, or business operation, or (in the case of a business operation) it may come from the public actor pool for the<br />

production. When the task is done, the job returns itself to the pool of jobs from which it came.<br />

A production might need to start and stop several different jobs to complete a single requests. The details depend (in<br />

part) on whether requests are made synchronously or asynchronously. For example, if a job is required to wait, the job<br />

returns itself to its pool during the wait time to free up that resource.<br />

• Jobs OK, Jobs Inactive, Jobs of Other Status — The number of jobs with a status of OK, Inactive, or some other value,<br />

respectively.<br />

If you click the Job table title on the <strong>Ensemble</strong> home page, the [<strong>Ensemble</strong>] > [Jobs] page displays — the same result as<br />

clicking Job on the <strong>Ensemble</strong> menu.<br />

1.4.4 Log Table<br />

The home page Log table displays the following data fields:<br />

• Last Error Time — The date and time of the most recent entry in the Total Error Count.<br />

• Total Error Count — The number of error entries that have been written to the event log since this production was last<br />

started. Errors that were recorded during a previous run of this production or of any other production might still reside<br />

in the event log as entries, but are not included in the Total Error Count.<br />

8 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


<strong>Ensemble</strong> Home Page<br />

If you click the Log table title on the <strong>Ensemble</strong> home page, the [<strong>Ensemble</strong>] > [Event Log] page displays — the same result<br />

as clicking Log on the <strong>Ensemble</strong> menu.<br />

Tip:<br />

Most of the entries on the [<strong>Ensemble</strong>] > [Event Log] page are not errors. You can find the error entries by clicking<br />

on the Type column heading to sort the column. Entries labeled Error in this column are errors; they have red text<br />

and a pink background. The most recent errors appear at the top of the list.<br />

1.4.5 Service Table<br />

The home page Service table displays the following data fields:<br />

• Last Activity Time — The date and time of the most recently completed activity.<br />

• Activities Completed — A completed activity means that a business service has received a request message from outside<br />

the currently running production, and has done whatever it is designed to do as a result of receiving that request. It<br />

might be designed to invoke a business process or business operation, return a value, acknowledge receipt of the<br />

message, or something else. Whatever that is, when it is done the activity is considered complete.<br />

If you click the Service table title on the <strong>Ensemble</strong> home page, the [<strong>Ensemble</strong>] > [Host Monitor] page displays — the same<br />

result as clicking Host Monitor on the <strong>Ensemble</strong> menu. You can find the business service entries by clicking on the Type<br />

column heading to sort the column.<br />

1.4.6 Process Table<br />

The home page Process table displays the following data fields:<br />

• Last Activity Time — The date and time of the most recently completed activity.<br />

• Activities Completed — A completed activity means that a business process has received a request message from within<br />

the currently running production, and has done whatever it is designed to do as a result of receiving that request. It<br />

might be designed to fire a rule, open a file for writing, execute programming logic to decide which business operation<br />

to invoke, return a value, acknowledge receipt of the message, begin a long-running workflow sequence, or something<br />

else. Whatever that is, when it is done the activity is considered complete.<br />

• Messages In Progress — A message in progress means that a business process has received a request message from<br />

within the currently running production, and has not yet completed all of the activities that it is designed to do as a<br />

result of receiving that request.<br />

• Messages In Queues — The total number of messages that are waiting to be received by business processes in the<br />

currently running production.<br />

If you click the Process table title on the <strong>Ensemble</strong> home page, the [<strong>Ensemble</strong>] > [Host Monitor] page displays — the same<br />

result as clicking Host Monitor on the <strong>Ensemble</strong> menu. You can find the business process entries by clicking on the Type<br />

column heading to sort the column.<br />

1.4.7 Operation Table<br />

The home page Operation table displays the following data fields:<br />

• Last Activity Time — The date and time of the most recently completed activity.<br />

• Activities Completed — A completed activity means that a business operation has received a request message from<br />

within the currently running production, and has done whatever it is designed to do as a result of receiving that request.<br />

It might be designed to invoke an external application or database, open a file for writing, return a value, acknowledge<br />

receipt of the message, or something else. Whatever that is, when it is done the activity is considered complete.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 9


<strong>Ensemble</strong> Management Portal<br />

• Messages In Progress — A message in progress means that a business operation has received a request message from<br />

within the currently running production, and has not yet completed all of the activities that it is designed to do as a<br />

result of receiving that request. If there is a message in progress, it is most likely in a retry loop. For details, see the<br />

“Messages in Progress” section in the chapter “What to Manage.”<br />

• Messages In Queues — The total number of messages that are waiting to be received by business operations in the<br />

currently running production.<br />

If you click the Operation table title on the <strong>Ensemble</strong> home page, the [<strong>Ensemble</strong>] > [Host Monitor] page displays — the same<br />

result as clicking Host Monitor on the <strong>Ensemble</strong> menu. You can find the business operation entries by clicking on the Type<br />

column heading to sort the column.<br />

1.5 Logout<br />

When you choose the Logout option from the <strong>Ensemble</strong> menu, the portal logs you out and displays a link inviting the next<br />

user to log in. To do so, click the link. To exit the portal completely, close the browser. If a production is running at this<br />

time, it continues to run while the portal is closed.<br />

1.6 Portal Command Summary<br />

The following table summarizes the major functions of the <strong>Ensemble</strong> Management Portal in alphabetical order. Each entry<br />

summarizes how to navigate the <strong>Ensemble</strong> Management Portal by choosing an <strong>Ensemble</strong> menu command, then selecting<br />

further commands.<br />

Table 1–1: <strong>Ensemble</strong> Management Portal Commands<br />

Page or<br />

Command<br />

Purpose<br />

<strong>Ensemble</strong><br />

Menu<br />

Command<br />

Additional Commands<br />

Add Operation<br />

Add a business operation to the<br />

currently selected production. You<br />

must add the operation before you<br />

can configure it.<br />

<strong>Productions</strong><br />

Click Configure, click the neutral<br />

background in the top display,<br />

then in the bottom display click<br />

Add Operation.<br />

Add Process<br />

Add a business process to the<br />

currently selected production. You<br />

must add the process before you<br />

can configure it.<br />

<strong>Productions</strong><br />

Click Configure, click the neutral<br />

background in the top display,<br />

then in the bottom display click<br />

Add Process.<br />

Add Rule<br />

Add a business rule to the currently<br />

selected production.<br />

Business Rules<br />

At the top of the page, click Create<br />

New Rule Set or Create New Routing<br />

Rule Set.<br />

Add Service<br />

Add a business service to the<br />

currently selected production. You<br />

must add the service before you can<br />

configure it.<br />

<strong>Productions</strong><br />

Click Configure, click the neutral<br />

background in the top display,<br />

then in the bottom display click<br />

Add Service.<br />

10 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Portal Command Summary<br />

Page or<br />

Command<br />

Purpose<br />

<strong>Ensemble</strong><br />

Menu<br />

Command<br />

Additional Commands<br />

Archive Manager<br />

Periodically save older messages to<br />

a separate archive for long term<br />

storage.<br />

Maintenance<br />

Select Archive Manager from the<br />

menu.<br />

Auto-Start<br />

Configure <strong>Ensemble</strong> so that a<br />

specific production starts<br />

automatically at system startup, and<br />

stops automatically at system<br />

shutdown.<br />

Maintenance<br />

Click a production name from the<br />

Auto-Start Production list.<br />

BPL Viewer<br />

Display the BPL diagram for a<br />

business process class at top.<br />

Diagram data appears at bottom.<br />

Business<br />

Processes<br />

Click Definition next to the<br />

business process name.<br />

Business Metrics<br />

View current values for the data<br />

being collected by a business<br />

metric.<br />

Business<br />

Metrics<br />

Click Properties next to the<br />

business metric name.<br />

Business Process<br />

Instances<br />

List any current instances of a<br />

business process in the currently<br />

running production. If a business<br />

process has completed its work,<br />

there is no entry for it on this page.<br />

Business<br />

Processes<br />

Click Instances next to the<br />

business process name.<br />

Configuration<br />

View relationships between<br />

configuration items in a visual format<br />

in the top display. Add or remove<br />

configuration items from a<br />

production.<br />

<strong>Productions</strong><br />

Click Configure next to the<br />

production name. To select the<br />

production for editing, click the<br />

neutral background.<br />

Credentials<br />

Create a table of usernames and<br />

passwords that business operations<br />

can use to establish remote<br />

connections.<br />

Maintenance<br />

Select Credentials from the menu.<br />

Dashboards<br />

View a list of available Business<br />

Activity Monitoring dashboards.<br />

Dashboards<br />

Click View next to the name of the<br />

dashboard.<br />

Event Log<br />

View event log entries.<br />

Event Log<br />

Enter criteria to filter the list of<br />

entries.<br />

EDI / HL7<br />

Manager<br />

View and transform messages in<br />

Electronic Data Interchange (EDI)<br />

formats such as HL7 or X12.<br />

EDI / HL7<br />

Manager<br />

View information from the<br />

standards organization, view<br />

document structure<br />

specifications, or view and<br />

transform the contents of specific<br />

messages.<br />

Login<br />

Enter a username and password to<br />

use the portal in an <strong>Ensemble</strong><br />

namespace.<br />

—<br />

Click the <strong>Ensemble</strong> cube icon<br />

and select System Management<br />

Portal, then choose <strong>Ensemble</strong><br />

Management Portal from the list of<br />

options on the page.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 11


<strong>Ensemble</strong> Management Portal<br />

Page or<br />

Command<br />

Purpose<br />

<strong>Ensemble</strong><br />

Menu<br />

Command<br />

Additional Commands<br />

Lookup Settings<br />

Create and configure data tables to<br />

support the Lookup and Exists utility<br />

functions<br />

Maintenance<br />

Select Lookup Settings from the<br />

menu.<br />

Message<br />

Contents<br />

View the contents of a message<br />

body.<br />

Message<br />

Browser<br />

Click Contents next to the<br />

message, in the Message<br />

Browser and other pages.<br />

Message Details<br />

View the entire contents of a<br />

message, including message header<br />

and message body.<br />

Message<br />

Browser<br />

Click Details next to the message,<br />

in the Message Browser and<br />

other pages.<br />

Message Queue<br />

Contents<br />

List the messages on the currently<br />

selected queue. Select a message<br />

in the top display, to reveal Message<br />

Details at bottom.<br />

Queues<br />

Click Contents next to the<br />

message queue.<br />

Monitor<br />

(connections)<br />

View continually updated status of<br />

external connections and internal<br />

message queues.<br />

System Monitor<br />

—<br />

Monitor (graph)<br />

Monitor the level of activity for<br />

currently running business services,<br />

processes, or operations.<br />

Host Monitor<br />

Click History next to the name of<br />

the configuration item.<br />

Monitor (table)<br />

Monitor the operational status of<br />

currently running business services,<br />

processes, or operations.<br />

Host Monitor<br />

Click Instances next to the name<br />

of the configuration item.<br />

Operation<br />

Settings<br />

Edit the operational settings of a<br />

business operation in the currently<br />

selected production.<br />

<strong>Productions</strong><br />

Click Configure, then select a<br />

Business Operation in the top<br />

display.<br />

Process Settings<br />

Edit the operational settings of a<br />

business process in the currently<br />

selected production.<br />

<strong>Productions</strong><br />

Click Configure, then select a<br />

Business Process in the top<br />

display.<br />

Production<br />

Settings<br />

Edit the operational settings of the<br />

currently selected production.<br />

<strong>Productions</strong><br />

Click Configure, then click the<br />

neutral background in the top<br />

display.<br />

Purge<br />

Management<br />

Data<br />

Purge event log entries, the<br />

message warehouse, business<br />

process records, and the business<br />

rule log.<br />

Maintenance<br />

Select Purge Management Data<br />

from the menu.<br />

Rule Log<br />

View business rule activity records<br />

for the currently running production.<br />

Business Rule<br />

Log<br />

Enter criteria to filter the list of<br />

rules.<br />

Service Settings<br />

Edit the operational settings of a<br />

business service in the currently<br />

selected production.<br />

<strong>Productions</strong><br />

Click Configure, then select a<br />

Business Service in the top<br />

display.<br />

Start Production<br />

Start a production. View the results<br />

of this request.<br />

<strong>Productions</strong><br />

Click Start next to the production<br />

name.<br />

12 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Portal Command Summary<br />

Page or<br />

Command<br />

Purpose<br />

<strong>Ensemble</strong><br />

Menu<br />

Command<br />

Additional Commands<br />

Stop Production<br />

Stop a production. View the results<br />

of this request.<br />

<strong>Productions</strong><br />

Click Stop next to the production<br />

name.<br />

Suspended<br />

Messages<br />

Resend messages that have<br />

entered a Suspended state, for<br />

example because of a<br />

communication failure. If you have<br />

corrected the failure, you can now<br />

resend these messages.<br />

Maintenance<br />

Select Suspended Messages from<br />

the menu.<br />

System Monitor<br />

View continually updated status of<br />

external connections and internal<br />

message queues.<br />

System Monitor<br />

—<br />

Testing Service<br />

Enter parameter values for a test<br />

request message. View the results<br />

of a test request message.<br />

Testing Service<br />

Select a business service,<br />

process, or operation; select a<br />

request; click OK, enter<br />

parameter values, click Save.<br />

Visual Trace<br />

Represent message history visually.<br />

Trace how and when messages<br />

traveled between production items.<br />

Enter criteria in the bottom display,<br />

to filter messages at top.<br />

Message<br />

Browser<br />

Click Trace next to the message,<br />

in the Message Browser and<br />

other pages.<br />

Workflow Portal<br />

Manage workflow, define user roles,<br />

and accept tasks.<br />

Workflow Portal<br />

Select an option from the menu:<br />

My Tasks, Workflow Roles, Workflow<br />

Users, Task Browser, or Worklist<br />

Browser.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 13


2<br />

Management Tasks<br />

This chapter describes the tasks required to manage an <strong>Ensemble</strong> production. Each of the following sections defines tasks<br />

and explains how to complete them using the <strong>Ensemble</strong> Management Portal:<br />

• Adding Items<br />

• Configuring Items<br />

• Finding Items<br />

• Monitoring Items<br />

• Purging Items<br />

• Starting and Stopping Items<br />

• Storing Items<br />

• Testing Items<br />

• Viewing Items<br />

If you cannot find the task you have in mind, try the following table. This table lists the conventions that this chapter uses<br />

to identify tasks with many alternate names.<br />

Table 2–1: Management Terminology Conventions<br />

Task<br />

Add<br />

Configure<br />

Find<br />

Monitor<br />

Purge<br />

Start<br />

Stop<br />

Store<br />

Test<br />

Alternate Names for Similar or Related Tasks<br />

Configure, create, and register.<br />

Add, change, create, delete, determine, edit, modify, register, remove, and set.<br />

Filter and search. Items you might want to find include messages, business processes, and<br />

jobs.<br />

Administer, examine, manage, observe, study, and view. Items you might want to monitor<br />

include dashboards, messages, event log entries, external connections, and operational<br />

statistics.<br />

Archive, clean, delete, destroy, maintain, and remove.<br />

Access, boot, execute, launch, login, reboot, run, send, and startup.<br />

Close, exit, halt, and shutdown.<br />

Archive, populate, save.<br />

Debug and develop. Related activities include solution delivery and quality assurance.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 15


Management Tasks<br />

Task<br />

View<br />

Alternate Names for Similar or Related Tasks<br />

Display, examine, find, identify, monitor, search, and study. Items you might want to view<br />

include messages, event log entries, external connections, and operational statistics.<br />

If you want to find management tasks organized by what is being managed, more topics are also available in the next<br />

chapter, “What to Manage.”<br />

2.1 Adding Items<br />

When you add a configuration item — a business service, business process, or business operation — the underlying host<br />

class already exists. The class code has been written and compiled using the Studio tool. When you add a configuration<br />

item to a production, you assign parameters to the class and give that set of parameters a name. In effect, you are telling<br />

the production you want to use this already-existing class in a particular way.<br />

If you do not see the task you want in this section, try the Configuring Items section.<br />

Add...<br />

Business metric<br />

Business operation<br />

Business process<br />

Business rule<br />

Business service<br />

Credentials for remote login<br />

Data tables for lookups<br />

Production<br />

Routing rule<br />

Sequence of Portal Commands<br />

<strong>Productions</strong>, Configure, Production, Add Service<br />

<strong>Productions</strong>, Configure, Production, Add Operation<br />

<strong>Productions</strong>, Configure, Production, Add Process<br />

Business Rules, Create New Rule Set<br />

<strong>Productions</strong>, Configure, Production, Add Service<br />

Maintenance, Credentials<br />

Maintenance, Lookup Settings<br />

<strong>Productions</strong>, Create New Production<br />

Business Rules, Create New Routing Rule Set<br />

2.2 Configuring Items<br />

Configuration tasks do not create classes or code. They determine the context in which code executes while the production<br />

is running. When you configure a production, the classes already exist — the code has been written and compiled. By<br />

configuring the production, you are telling the production how you want it to use these already-existing classes.<br />

The “configure” task includes other tasks that you might want to perform, such as add, change, create, delete, determine,<br />

edit, modify, register, remove, or set. Many of these tasks are included in the following table. If you do not see the task<br />

you want in this section, try the Adding Items section.<br />

Configure...<br />

Business metric settings<br />

Business operation settings<br />

Business process settings<br />

Sequence of Portal Commands<br />

<strong>Productions</strong>, Configure, Business Service<br />

<strong>Productions</strong>, Configure, Business Operation<br />

<strong>Productions</strong>, Configure, Business Process<br />

16 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Finding Items<br />

Configure...<br />

Business rule definition<br />

Business service settings<br />

Production settings<br />

Remote connections<br />

Routing rule definition<br />

Workflow<br />

Sequence of Portal Commands<br />

Business Rules, Select a Rule, Edit<br />

<strong>Productions</strong>, Configure, Business Service<br />

<strong>Productions</strong>, Configure, Production<br />

Maintenance, Credentials<br />

Business Rules, Select a Rule, Edit<br />

Workflow Portal<br />

2.3 Finding Items<br />

The “find” task includes other tasks that you might want to perform, such as browse, filter, or search. If you do not see<br />

the task you want in this section, try the Viewing Items section.<br />

Find...<br />

Filter the event log for the currently running production by entering search criteria<br />

such as time of day or session identifier.<br />

Filter the rule log for the currently running production by entering search criteria such<br />

as reason or rule version.<br />

Filter the message log for the currently running production by entering search criteria<br />

such as time of day or session identifier.<br />

Sequence of Portal<br />

Commands<br />

Event Log<br />

Business Rule Log<br />

Message Browser<br />

2.4 Monitoring Items<br />

Viewing is essentially a passive activity; you glance at a display to get a snapshot of the data at one point in time. Monitoring<br />

tasks require more participation; you watch a display and interpret changes in the display between one time and another.<br />

Monitoring usually involves some form of observing and noting changes over time to determine whether there were any<br />

changes between time A and time B, and if so, what caused them. Monitoring does not need to be continuous; samples can<br />

be taken at regular or random intervals.<br />

The “monitor” task includes other tasks that you might want to perform, such as administer, examine, manage, observe,<br />

study, and view. If you do not see the task you want in this section, try the Finding Items section.<br />

Monitor...<br />

Currently running business processes<br />

Currently running business services, business processes, and<br />

business operations<br />

Dashboard activity<br />

Real-time status of external connections, event log, and message<br />

queues<br />

Sequence of Portal Commands<br />

Business Processes, Instances<br />

Host Monitor<br />

Dashboards, View<br />

System Monitor<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 17


Management Tasks<br />

Monitor...<br />

Message queues<br />

Messages on a specific queue<br />

Messages in a Suspended state<br />

System jobs, in detail<br />

Sequence of Portal Commands<br />

Queues<br />

Queues, Contents<br />

Maintenance, Suspended Messages<br />

Jobs<br />

This book describe how to monitor an <strong>Ensemble</strong> production using the <strong>Ensemble</strong> Management Portal. Other types of monitoring<br />

are available, and other books describe them. For example:<br />

• To read about a command-line interface that you can use to retrieve basic status information from a running production<br />

via a Telnet connection or command-line script, see the section “TCP Status Service” in the “TCP Text Line Inbound<br />

Adapter” chapter of Using TCP Adapters with <strong>Ensemble</strong>.<br />

• Windows Management Instrumentation (WMI) is a feature of the Windows operating system that provides a standardized<br />

way of collecting management information. It allows users and programmers to access management information from<br />

the operating system and other applications in a variety of ways, including scripts, programming languages, and management<br />

tools and applications. WMI is the Microsoft implementation of the Web-Based Enterprise Management<br />

(WBEM) standard from the Distributed Management Task Force (DMTF).<br />

The <strong>InterSystems</strong> implementation of WMI signals an <strong>Ensemble</strong>_LogEvent each time an <strong>Ensemble</strong> business host posts<br />

an alert to the <strong>Ensemble</strong> Event Log. To set up WMI monitoring for <strong>InterSystems</strong> products, see “Monitoring Caché<br />

Using WMI” in the Caché Monitoring Guide.<br />

2.5 Purging Items<br />

The “purge” task includes other tasks that you might want to perform, such as archive, clean, delete, destroy, maintain,<br />

or remove. If you do not see the task you want in this section, try the section “Monitoring Items.”<br />

Purge...<br />

Any runtime data: event log, rule log, I/O log, messages, business<br />

process instances<br />

Event log entries only<br />

Business process instance data<br />

Older messages, while saving them to a separate archive for long<br />

term storage<br />

Production configuration data<br />

Sequence of Portal Commands<br />

Maintenance, Purge Management Data<br />

Event Log, Purge<br />

Business Processes, Instances, Purge<br />

Maintenance, Archive Manager<br />

<strong>Productions</strong>, Configure, Production<br />

2.6 Starting and Stopping Items<br />

The “start” task includes other tasks that you might want to perform, such as access, boot, execute, launch, login, reboot,<br />

run, send, or startup. The “stopping” task includes other tasks that you might want to perform, such as close, exit, halt,<br />

log out, or shut down. If you do not see the task you want in this section, try the Monitoring Items section.<br />

18 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Storing Items<br />

Start or Stop...<br />

Configure <strong>Ensemble</strong> so that a specific production starts<br />

automatically at system startup, and stops automatically at<br />

system shutdown.<br />

Log into the <strong>Ensemble</strong> Management Portal.<br />

Log out of the portal, leaving the browser open for the next<br />

administrator to log in.<br />

Resend messages that have entered a Suspended state.<br />

Start a message archive operation.<br />

Start a production.<br />

Start or stop a business service on a schedule.<br />

Start or stop a business operation on a schedule.<br />

Start or stop a business process on a schedule.<br />

Start the <strong>Ensemble</strong> Management Portal.<br />

Stop a production.<br />

Sequence of Portal Commands<br />

Maintenance, Auto-Start Production<br />

Login<br />

Logout<br />

Maintenance, Suspended Messages<br />

Maintenance, Archive Manager<br />

<strong>Productions</strong>, Start<br />

<strong>Productions</strong>, Configure, Business Service<br />

<strong>Productions</strong>, Configure, Business Operation<br />

<strong>Productions</strong>, Configure, Business Process<br />

Login<br />

<strong>Productions</strong>, Stop<br />

2.7 Storing Items<br />

The “store” task includes archiving messages and other important data. The <strong>Ensemble</strong> persistent message store operates<br />

automatically, but there are optional tasks that you might consider.<br />

Store...<br />

Periodically save older messages to a separate archive for long term<br />

storage.<br />

Create and configure data tables to support the Lookup and Exists utility<br />

functions.<br />

Sequence of Portal Commands<br />

Maintenance, Archive Manager<br />

Maintenance, Lookup Settings<br />

2.8 Testing Items<br />

The “test” task includes other tasks that you might want to perform, such as debug, deliver, or develop. If you do not see<br />

the task you want in this section, try the Monitoring Items section.<br />

Test...<br />

Messages in Electronic Data Interchange (EDI) formats such<br />

as HL7 or X12<br />

<strong>Productions</strong>, by sending request messages and receiving<br />

response messages<br />

Sequence of Portal Commands<br />

EDI / HL7 Manager, Message Viewer<br />

or Testing Service<br />

Testing Service<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 19


Management Tasks<br />

2.9 Viewing Items<br />

Viewing is a passive activity; you glance at a display to get a snapshot of the data at one point in time. Monitoring tasks<br />

require more participation; you watch a display and interpret changes in the display between one time and another. Monitoring<br />

usually involves some form of observing and noting changes over time to determine whether there were any changes<br />

between time A and time B, and if so, what caused them. Monitoring does not need to be continuous; samples can be taken<br />

at regular or random intervals.<br />

The “view” task includes other tasks that you might want to perform, such as display, examine, find, identify, monitor,<br />

search, or study. If you do not see the task you want in this section, try the Monitoring Items section.<br />

View...<br />

BPL diagram of a business process class<br />

Data being collected by a business metric<br />

Business operation settings<br />

Business process settings<br />

Business processes, in various ways<br />

Business rule definition<br />

Business rule activity records<br />

Business service settings<br />

Credentials for remote connections<br />

Event log entries<br />

I/O archive entries<br />

Lookup table<br />

Message body contents<br />

Message header and body contents<br />

Messages of all kinds<br />

Production settings<br />

Routing rule definition<br />

Software version information<br />

Statistics about all productions<br />

Statistics about the currently running production<br />

Suspended messages<br />

Visual trace of the delivery of a message, from original<br />

source all the way through to the final destination<br />

Sequence of Portal Commands<br />

Business Processes, Definition<br />

Business Metrics, Properties<br />

<strong>Productions</strong>, Configure, Operation<br />

<strong>Productions</strong>, Configure, Process<br />

Business Processes<br />

Business Rules, Select a Rule, View<br />

Business Rule Log<br />

<strong>Productions</strong>, Configure, Service<br />

Maintenance, Credentials<br />

Event Log<br />

See “Working with the I/O Archive”<br />

Maintenance, Lookup Settings<br />

Message Browser, Contents<br />

Message Browser, Details<br />

Message Browser<br />

<strong>Productions</strong>, Configure, Production<br />

Business Rules, Select a Rule, View<br />

Maintenance<br />

<strong>Productions</strong><br />

Home<br />

Maintenance, Suspended Messages<br />

Message Browser, Trace<br />

20 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


3<br />

What to Manage<br />

Each topic in this section describes an aspect of an <strong>Ensemble</strong> production that you can manage in some way, and explains<br />

how to accomplish this using the <strong>Ensemble</strong> Management Portal. Topics include:<br />

• Working with <strong>Productions</strong><br />

• Working with Host Classes<br />

• Working with Configuration Items<br />

• Working with Credentials<br />

• Working with Dashboards<br />

• Working with Business Rules<br />

• Working with the Event Log<br />

• Working with the I/O Archive<br />

• Working with Jobs<br />

• Working with Messages<br />

• Working with Queues<br />

• Working with Sessions<br />

• Working with Workflow<br />

3.1 Working with <strong>Productions</strong><br />

A production is the unit of delivery for development projects based on <strong>Ensemble</strong>. A production is a package of host classes<br />

and configuration items that solves a specific integration problem for an enterprise.<br />

A production has many settings that you can configure using the <strong>Ensemble</strong> Management Portal. These settings affect the<br />

behavior of the production, as well as the various configuration items within the production — services, processes, and<br />

operations. While the production is running, there are a variety of monitoring and diagnostic tasks you can perform. Any<br />

changes you make to a production while it is running are applied immediately, without requiring you to stop and restart<br />

the production.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 21


What to Manage<br />

Production Task<br />

Purge old records for the currently running production. Resend<br />

suspended messages, set user credentials, and configure automatic<br />

startup.<br />

Configure a production and its associated business services, business<br />

processes, and business operations.<br />

Configure <strong>Ensemble</strong> so that a specific production starts automatically<br />

at system startup and stops automatically at system shutdown.<br />

Create a new production.<br />

Delete a production.<br />

Establish credentials for remote connections.<br />

Monitor dashboard activity.<br />

Purge records from the event log, message warehouse, business<br />

process archives, and business rule log.<br />

Quickly view the real-time status of incoming and outgoing<br />

connections for the production.<br />

Remove a production from a namespace, or remove a business<br />

service, business process, or business operation from a production.<br />

Start a production.<br />

Stop a production.<br />

Test a production.<br />

View a list of configuration items that have been instantiated in the<br />

currently running production.<br />

View statistics about all productions.<br />

View statistics about instances of currently running business services,<br />

business processes, and business operations.<br />

Sequence of Portal Commands<br />

Maintenance<br />

<strong>Productions</strong>, Configure<br />

Maintenance, Auto-Start Production<br />

<strong>Productions</strong>, Create New Production<br />

<strong>Productions</strong>, Delete Production<br />

Maintenance, Credentials<br />

Dashboards, View<br />

Maintenance, Purge Management<br />

Data<br />

System Monitor<br />

<strong>Productions</strong>, Configure, Production<br />

<strong>Productions</strong>, Start<br />

<strong>Productions</strong>, Stop<br />

Testing Service<br />

Host Monitor<br />

<strong>Productions</strong><br />

Host Monitor, Instances<br />

3.2 Working with Host Classes<br />

An <strong>Ensemble</strong> host class is executable source code. Class developers use the Studio tool, the BPL Editor, or a text editor to<br />

create, view, edit, and compile host classes. No class can be created or changed from the <strong>Ensemble</strong> Management Portal,<br />

but you do choose them from the portal.<br />

Every host class extends Ens.Host, an <strong>Ensemble</strong> class that determines general characteristics for classes that operate as<br />

members of a production. Every host class is one of three types, all of which inherit from Ens.Host:<br />

• Business service class — Instances of the Ens.BusinessService class accept requests from entities outside <strong>Ensemble</strong><br />

and relay them to host classes inside <strong>Ensemble</strong> for processing and fulfillment. A business service class corresponds to<br />

a single, well-defined action that an external entity needs to perform. This action enters an <strong>Ensemble</strong> production in the<br />

form of a request to the business service. The business service generates whatever activity is needed to satisfy this<br />

request. It invokes various lower-level host classes — business processes and business operations — and it controls<br />

the logic of these invocations. When all of its internal processing is complete, a business service formulates and returns<br />

22 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Working with Configuration Items<br />

a response to the outside entity’s original request. Some requests do not require a response; if this is the case, none is<br />

returned.<br />

• Business process class — Instances of the Ens.BusinessProcess class accept requests from host classes inside<br />

<strong>Ensemble</strong> — business services or business processes — and either process the requests or relay them to other host<br />

classes inside <strong>Ensemble</strong> for processing. A business process class corresponds to a single, well-defined business task<br />

that needs to be performed. The business process generates whatever activity is needed to complete this task. It invokes<br />

various lower-level host classes — business processes or business operations — and it controls the logic of these<br />

invocations. When all of its internal processing is complete, a business process formulates and returns a response to<br />

the original request, if a response is needed. Some requests do not require a response; if this is the case, none is returned.<br />

• Business operation class — Instances of the Ens.BusinessOperation class accept requests from host classes inside<br />

<strong>Ensemble</strong> — business services or business processes — and either process the requests or relay them to entities outside<br />

<strong>Ensemble</strong> for processing. A business operation class consists of one or more methods, each of which corresponds to<br />

a single, well-defined external or internal operation that needs to be performed, such as retrieving a specific piece of<br />

data or making a specific type of calculation. When its internal processing is complete, a business process formulates<br />

and returns a response to the original request, if a response is needed. Some requests do not require a response; if this<br />

is the case, none is returned. By convention, a business operation is an extremely specific operation that contain very<br />

little logic and does what is requested of it without calling further operations or branching in any way. When the design<br />

of the production demands logic, this is contained in a higher-level business processes.<br />

A host class must be compiled and loaded before the corresponding business host — business service, business process,<br />

or business operation — can be added to the production. Once the business host is added to the production, it has configurable<br />

settings that can be adjusted using the display on the <strong>Ensemble</strong> Management Portal [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration]<br />

page.<br />

A host class determines how a configuration item can be configured, by publishing its configurable properties in a class<br />

parameter called SETTINGS. Any property listed in the SETTINGS parameter for a host class automatically appears in the<br />

display on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page, whenever an item of that host class is selected for configuration.<br />

You can edit and save values on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page without editing or recompiling<br />

the host class itself. Any changes you make are applied immediately, without requiring you to stop and restart a running<br />

production. The same is true of production-wide properties defined in the production class and exposed for configuration<br />

by using the SETTINGS class parameter in the production class.<br />

A host class is sometimes called a business class. Either term is appropriate.<br />

3.3 Working with Configuration Items<br />

An <strong>Ensemble</strong> configuration item is any business service, business process, or business operation within an <strong>Ensemble</strong> production.<br />

Every configuration item extends the class Ens.Item, and consists of a name, a reference to a specific host class,<br />

and a group of operational settings that determine how the host class behaves when it is a member of a running production.<br />

There is a clear difference between <strong>Ensemble</strong> configuration items and <strong>Ensemble</strong> host classes:<br />

• An host class is executable source code.<br />

• An configuration item is a specialized configuration of a host class.<br />

A configuration item is always associated with a specific production. It may resemble or duplicate items in other productions.<br />

Each production is an entirely closed universe that does not use configuration items from other productions.<br />

An <strong>Ensemble</strong> production contains the following types of configuration item:<br />

• Business services (includes business metrics)<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 23


What to Manage<br />

• Business processes (includes routing processes)<br />

• Business operations (includes workflow operations)<br />

You can use the diagram on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page to create, view, edit, and save configuration<br />

items. You can configure items that reference the same host class; each such item has a different name. All configuration<br />

items with the same host class have the same operational settings, but each item of that class can have different values for<br />

those settings, so each item is unique.<br />

After you define the configuration settings for a production using the <strong>Ensemble</strong> Management Portal and save your settings,<br />

the portal outputs the settings to the production class in the form of an embedded XML excerpt. You can view this XML<br />

directly; look for the production class in <strong>Ensemble</strong> Studio, on the <strong>Productions</strong> tab. The intention is for you to use the<br />

<strong>Ensemble</strong> Management Portal to generate the XML initially, and there is no need to edit the production class directly.<br />

However, the XML is there, if you ever want to view it, or export it from Studio.<br />

You can further define configuration items as described in the following sections:<br />

• Scheduling Configuration Items<br />

• Assigning Configuration Items to Categories<br />

3.3.1 Business Services<br />

A business service accepts requests from sources outside the <strong>Ensemble</strong> production. If designed to do so, it also returns a<br />

response to the requestor. A request that enters a business service from outside <strong>Ensemble</strong> is known as a primary request.<br />

This type of request instigates a tracking mechanism called a session, which remains open until all of the activities prompted<br />

by the primary request are completed. The session has an identifier that is used to mark all of the subsequent, internal<br />

messages that <strong>Ensemble</strong> generates to fulfill the primary request.<br />

Service Task<br />

Add a business service to a production.<br />

Remove a business service from a production.<br />

View or configure operational settings for a business service.<br />

Sequence of Portal Commands<br />

<strong>Productions</strong>, Configure, Production, Add<br />

Service<br />

<strong>Productions</strong>, Configure, Production<br />

<strong>Productions</strong>, Configure, Service<br />

A business metric is a special type of business service used to monitor business activity and display the resulting statistics<br />

on dashboards. Business metrics have their own host class, Ens.BusinessMetric, which inherits from the business service<br />

host class. To use a business metric in a production, you must add and configure it as for any other business service, using<br />

the tasks described in the preceding table. However, there are additional details for business metrics only. See the “Business<br />

Metrics” chapter in Using Dashboards with <strong>Ensemble</strong>.<br />

3.3.2 Business Processes<br />

A business process accepts requests from business services and from other business processes. If designed to do so, it also<br />

returns a response to the requestor. A business process communicates only with other <strong>Ensemble</strong> configuration items.<br />

Business processes contain programmatic logic that describes what must happen inside <strong>Ensemble</strong> to fulfill a specific portion<br />

of a request that (at some point) originated from outside <strong>Ensemble</strong>. The logic within a business process is both applicationindependent<br />

and format-independent, and is described entirely in <strong>Ensemble</strong> terms.<br />

Process Task<br />

View the BPL diagram of a business process class.<br />

Sequence of Portal Commands<br />

Business Processes, Definition<br />

24 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Working with Configuration Items<br />

Process Task<br />

Add a business process to a production.<br />

Define a business rule for a BPL business process.<br />

Monitor instances of currently running business processes<br />

in detail.<br />

Purge business process records.<br />

Remove a business process from a production.<br />

View business processes and their host classes in various<br />

ways.<br />

View or configure operational settings for a business<br />

process.<br />

Sequence of Portal Commands<br />

<strong>Productions</strong>, Configure, Production, Add Process<br />

Business Rules, Create New Rule Set<br />

Business Processes, Instances<br />

Business Processes, Instances, Purge<br />

<strong>Productions</strong>, Configure, Production<br />

Business Processes<br />

<strong>Productions</strong>, Configure, Process<br />

A routing process is a special type of business process used to direct routing rules for the <strong>Ensemble</strong> message routing engine.<br />

Routing Task<br />

Invoke a routing rule from a routing process.<br />

Define a routing rule set for a routing business process.<br />

Sequence of Portal Commands<br />

<strong>Productions</strong>, Configure, Process<br />

Business Rules, Create New Routing Rule Set<br />

To configure routing processes for use with the routing engine, reference the instructions in the <strong>Ensemble</strong> HL7 Version 2<br />

Development Guide or the <strong>Ensemble</strong> HL7 Version 3 Development Guide.<br />

3.3.3 Business Operations<br />

A business operation formulates and send a request to a target outside the <strong>Ensemble</strong> production. Business processes accept<br />

requests from business services and from business processes, and if designed to do so, also return a response to the requestor.<br />

Operation Task<br />

Add a business operation to a production.<br />

Establish credentials for remote connections to external<br />

systems.<br />

Remove a business operation from a production.<br />

View or configure operational settings for a business<br />

operation.<br />

Sequence of Portal Commands<br />

<strong>Productions</strong>, Configure, Production, Add<br />

Operation<br />

Maintenance, Credentials<br />

<strong>Productions</strong>, Configure, Production<br />

<strong>Productions</strong>, Configure, Operation<br />

A workflow operation is a special type of business operation used to direct requests for human workflow to the <strong>Ensemble</strong><br />

Workflow Engine rather than to an external application or database. Workflow operations have their own host class,<br />

EnsLib.Workflow.Operation, which inherits from the business operation host class. To use a workflow operation in a production,<br />

you must add and configure it as for any other business operation, using the tasks described in the preceding table. However,<br />

there are additional details for workflow operations only. See the book Using Workflow with <strong>Ensemble</strong>.<br />

3.3.4 Scheduling Configuration Items<br />

The default scheduling for configuration items is for them to run whenever the production is running. However, a finer<br />

control is possible. Not only can you enable and disable configuration items, but the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration]<br />

page also offers a Schedule setting for each configuration item. This is an optional command string that schedules<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 25


What to Manage<br />

the item to be stopped and started at specific times and on specific days of the week, month, or year. When it is time to<br />

start, if the item is enabled, the scheduler starts it; when it is time to stop, if the item is running, the scheduler stops it.<br />

The Schedule string is a comma-separated list of event specifications. Each event specification has the following format:<br />

action:YYYY-MM-DDThh:mm:ss<br />

Where each item in the event specification, from left to right, has the described values:<br />

Item<br />

action<br />

:<br />

YYYY-MM-DD<br />

Possible Values<br />

START or STOP indicates the desired action<br />

Required separator<br />

Either:<br />

• YYYY is the year as 4 numerals<br />

• MM is the month as 2 numerals<br />

• DD is the day of the month as 2 numerals<br />

• Any of these fields may be the single character * (asterisk) indicating all years,<br />

all months, or all days<br />

Or:<br />

• YYYY is the word WEEK<br />

• MM is the specific occurrence of the day of the week (indicated by DD) in the<br />

month (01 = first occurrence of the specific day of the week in the month, 02 =<br />

second occurrence in the month, etc.)<br />

• DD is a specific day of the week (00 = Sunday, 01 = Monday, etc.)<br />

• MM may be * for all occurrences and DD may be * for all days<br />

Once a field is specified as *, all fields to the left of it are also assumed to be *.Thus,<br />

if the DD value is *, the MM value is treated as * even if it has a specific numeric<br />

value. Similarly, if MM is *, YYYY is treated as *.<br />

T<br />

hh:mm:ss<br />

,<br />

Required separator<br />

Hour, minute, and second<br />

Use the comma separator only if there is another event specification after the current<br />

one. Do not use it at the end of the Schedule string.<br />

If your schedule contains recurring events, the Schedule setting requires both START and STOP actions. If your schedule<br />

setting is an absolute one time event, then you need only use the appropriate single START or STOP action. In most cases,<br />

Schedule strings should contain both a START and a STOP action.<br />

Some examples of Schedule strings follow:<br />

• Start the configuration item every day at 8 a.m. and stop it every day at 5 p.m.<br />

START:*-*-*T08:00:00,STOP:*-*-*T17:00:00<br />

• Stop every year on January 2 at 7 a.m. and start again on January 3 at 7 a.m.<br />

STOP:*-01–02T07:00:00,START:*-01-03T07:00:00<br />

26 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Working with Configuration Items<br />

• Start every month on the second day of the month at 8 a.m. and stop every month on the tenth day of the month at 8:30<br />

p.m.<br />

START:*-*-02T08:00:00,STOP:*-*-10T20:30:00<br />

• Stop every Sunday at 10 a.m. and start every Monday at 8:30 a.m.<br />

STOP:WEEK-*-00T10:00:00,START:WEEK-*-01T08:30:00<br />

• Start every third Tuesday at 9 a.m. and stop every third Friday at 4 p.m.<br />

START:WEEK-03-02T09:00:00,STOP:WEEK-03-05T16:00:00<br />

• Stop on December 31, 2010 just before midnight.<br />

STOP:2010-12-31T23:59:59<br />

• Start on January 3, 2011 at 6:45 a.m.<br />

START:2011-01-03T06:45:00<br />

• The following two strings are equivalent: Start every day at 2 a.m.<br />

START:*-*-*T02:00:00<br />

START:WEEK-*-*T02:00:00<br />

See the Ens.ScheduleHandler entry in the Class Reference for more information.<br />

The following sections provide details on Daylight Saving Time considerations with using the Schedule configuration setting<br />

and also the intended use and limitations of the setting.<br />

3.3.4.1 Scheduling and Daylight Saving Time<br />

When daylight saving time (DST) begins, clocks skip an hour that day, usually from 2:00 a.m. to 3:00 a.m. Any item you<br />

have scheduled that falls into that nonexisting hour takes place at the beginning (which is also the end) of that hour. For<br />

example, on the day DST begins, an event scheduled to take place at 2:15 a.m. takes place at 2:00 a.m. (which is also 3:00<br />

a.m.).<br />

When DST ends, an hour of the day repeats, usually from 1:00 a.m. to 2:00 a.m. Any item you have scheduled that falls in<br />

that repeated hour takes place only once. Whether the event takes place on the first occurrence of the scheduled time or the<br />

second occurrence in the repeated hour depends on the operating system, but it only takes place once. For example, on a<br />

Windows system on the day DST ends, an event scheduled to take place at 1:15 a.m. takes place at the second occurrence<br />

of 1:15 a.m.<br />

3.3.4.2 Intended Use and Limitations of the Schedule Configuration Setting<br />

The Schedule setting starts and stops production business hosts according to a schedule; it is not a task scheduler. The<br />

schedule string defines a square wave in time declaring during what time intervals the item should be running, in between<br />

which it should be not be running. <strong>Ensemble</strong> cannot prevent scheduled transitions from being interrupted or superseded by<br />

other production events.<br />

The scheduler wakes up periodically (it sets its own alarm clock for when any scheduled item next expects a transition)<br />

and attempts to start or stop any items that are not currently in the expected state according to their schedule strings. It runs<br />

the UpdateProduction() method of the Ens.ScheduleHandler class and checks what event it needs to schedule next.<br />

There are two general classes of things that can prevent transitions from taking place as the schedule string indicates:<br />

• One is if the scheduler is unable to cause the intended state change; that is the UpdateProduction() method fails to<br />

affect the relevant items.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 27


What to Manage<br />

For example, an item could be in a Read timeout or some other busy state that lasts longer than the Update timeout.<br />

Another example is a configuration item the scheduler starts cannot be stopped by the scheduler if the item is in the<br />

middle of a synchronous call. The configuration item must wait for a response to the call before the scheduler stops<br />

it. See the “Working with Messages” section.<br />

• The other is if the scheduler itself is prevented from waking up at the intended time. Examples of conditions that could<br />

cause this: the CPU is busy, a queue builds up of the alarm clock messages for the scheduler, the scheduler is itself<br />

disabled or crashed, the production is down, etc. The scheduler is not guaranteed to wake up during any particular<br />

interval, and when it does wake up it only looks at the intended state for the current moment, not at any history of when<br />

it should have woken up.<br />

Use of the schedule setting is not intended or designed as an event signaling device. It is intended to accommodate planned<br />

outages and scheduled intervals of activity or inactivity. If you have events that you must trigger at a particular time or as<br />

soon as possible thereafter, <strong>Ensemble</strong> offers better alternatives:<br />

• You can configure your business service to use an inbound adapter with the implemented OnTask() method where<br />

you call the business service. <strong>Ensemble</strong> provides classes for many types of inbound adapters. See the Ens.InboundAdapter<br />

entry in the Class Reference and the books in the <strong>Ensemble</strong> Adapter Guides set for details.<br />

• If you do not want to use an adapter, you can call the business service programmatically and schedule it to run using<br />

the [Home] > [Task Manager] page (/csp/sys/op/UtilSysTaskHome.csp) in the Management Portal. This gives you finer<br />

control in situations such as the system being down at 1:00 a.m.<br />

The recommended approach is to configure the business service with Pool Size = 0 and then use the Task Manager to<br />

launch a task that calls CreateBusinessService on it and invokes ProcessInput() on the resulting service instance<br />

object. The advantage of calling a business service this way is that you call it at the time you want and it runs only<br />

once. If <strong>Ensemble</strong> happens to be down at that time, your task can register an error. See the following sections for<br />

details:<br />

– “Using the Task Manager” section of the “<strong>Managing</strong> Caché” chapter of the Caché System Administration Guide<br />

– “Invoking a Business Service Directly” section of the “Business Services” chapter of Developing <strong>Ensemble</strong><br />

<strong>Productions</strong><br />

3.3.5 Assigning Configuration Items to Categories<br />

The [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page offers a Category field for each configuration item. This is an optional<br />

text label that you can use to visually group configuration items within the production diagram.<br />

Once you have provided Category values for configuration items, when you are viewing the production configuration diagram<br />

you can right-click on the background of the diagram. Choose Show Category and a category name from the context menu.<br />

The diagram changes to reveal only those configuration items that match the Category name you have just selected. The<br />

diagram displays the Category name at the top left of the diagram, below the production name.<br />

Alternatively, when you choose Show Category, select All (the first option) to reveal all configuration items, regardless of<br />

category.<br />

Each category name is case-sensitive, and it may contain spaces. You may assign a configuration item to more than one<br />

category by providing a comma-separated list of category values in the Category field. Do not use leading or trailing spaces<br />

around these commas, as these are interpreted as characters within the label and can prevent what would otherwise be a<br />

proper match. Use:<br />

TEST,My Test Category,MINE<br />

Not:<br />

TEST, My Test Category , MINE<br />

28 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Working with Credentials<br />

3.4 Working with Credentials<br />

Some remote systems require a username and password to log into that system. A username-and-password pair is a login<br />

credential.<br />

<strong>Ensemble</strong> permits you to store login credentials in a centralized table that can be viewed and edited only by users with<br />

access to the <strong>Ensemble</strong> Management Portal. This table, called the Credentials table, provides ease of management and<br />

protects login data from unauthorized access. Users can edit the Credentials table only by logging into the <strong>Ensemble</strong><br />

Management Portal and choosing the Maintenance option, then Credentials.<br />

Each username-and-password pair in the Credentials table has an ID. When configuring an inbound or outbound adapter<br />

using the <strong>Ensemble</strong> Management Portal, you can enter this ID in place of the username or password that is required to log<br />

into the remote system.<br />

An adapter that uses credentials logs itself into a remote system as follows: Using the ID as a key into the Credentials table,<br />

it gets the username and password from the table and sends them to the remote system with a request to log in.<br />

This means that system administrator can log into the <strong>Ensemble</strong> Management Portal to change the username and password<br />

values for an ID, without disturbing any other data in the production configuration.<br />

When using the <strong>Ensemble</strong> Management Portal, you can confirm that an adapter uses credentials as follows: Open the configuration<br />

display on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] page. Choose a business host to configure. In the Specific Settings<br />

column, look for a Credentials field. If the Credentials field is not present, the adapter does not permit credentials to be<br />

configured for it.<br />

If the Credentials field is present in the configuration display, it must contain an ID from the Credentials table. If there is<br />

no appropriate entry in the Credentials table, you must create it, and enter its ID into the Credentials field for the adapter to<br />

work.<br />

Credentials Task<br />

Establish credentials for remote connections to external systems.<br />

Configure the remote connection settings for a business service.<br />

Configure the remote connection settings for a business operation.<br />

Sequence of Portal Commands<br />

Maintenance, Credentials<br />

<strong>Productions</strong>, Configure, Service<br />

<strong>Productions</strong>, Configure, Operation<br />

3.5 Working with Dashboards<br />

<strong>Ensemble</strong> supports business activity monitoring (BAM) by enabling developers to provide browser-based “corporate<br />

dashboards” that display graphical, real-time information about an <strong>Ensemble</strong> production. The following <strong>Ensemble</strong> elements<br />

support dashboards:<br />

• Business metrics are specialized business service classes that gather or otherwise calculate specific measured data<br />

called metrics. After you add a business metric to a production, it is automatically triggered to calculate the values of<br />

its properties at the time interval specified by its Call Interval configuration setting. These calculations can take a variety<br />

of forms, involving calls to business operations, federated databases, the <strong>Ensemble</strong> storage layer, or any arbitrary source<br />

code contained within the business metric class.<br />

• Dashboards are Web pages that provide a real-time, graphical display of metric values. Each dashboard presents one<br />

or more meters; that is, graphical elements that display the current value of a specific metric property within a specific<br />

business metric class. <strong>Ensemble</strong> provides a complete set of built-in meters that includes speedometers, odometers, fuel<br />

gauges, light bars, traffic lights, indicator lights, line charts, and bar charts. A production can also include custom<br />

meters.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 29


What to Manage<br />

Each dashboard is associated with a specific production, displays values from that production, and can be viewed “live”<br />

from the <strong>Ensemble</strong> Management Portal whenever that production is running. The following tasks are required to configure<br />

and run dashboards:<br />

Dashboard Task<br />

Add a business metric to a production.<br />

Configure the Call Interval for a business metric.<br />

View current values of data being collected by a business<br />

metric.<br />

Monitor dashboard activity.<br />

Sequence of Portal Commands<br />

<strong>Productions</strong>, Configure, Production, Add<br />

Service<br />

<strong>Productions</strong>, Configure, Business Service<br />

Business Metrics, Properties<br />

Dashboards, View<br />

For full details, see the book Using Dashboards with <strong>Ensemble</strong>.<br />

3.5.1 Dashboards<br />

The [<strong>Ensemble</strong>] > [Dashboards] page displays when you click Dashboards in the <strong>Ensemble</strong> Management Portal main menu.<br />

This topic briefly introduces the page. For full details, see Using Dashboards with <strong>Ensemble</strong>.<br />

3.5.1.1 Dashboard List<br />

At left, the [<strong>Ensemble</strong>] > [Dashboards] page reveals the same menu as on the [<strong>Ensemble</strong>] home page. You can click on<br />

selections in this menu to navigate to other portal pages.<br />

To the right and below the title bar, the Dashboard page displays a table called Available Dashboards. This table lists all<br />

the dashboards associated with productions in the currently active namespace.<br />

To the right of each entry in the Available Dashboards table are two commands:<br />

• Click View to display the dashboard. If you click on one of the meters in the top half of the screen, the bottom half<br />

displays detailed information about that meter.<br />

• Click View (no frames) to display the dashboard without the Dashboard page title bar (above) or the information frame<br />

(below).<br />

3.5.1.2 Dashboard Display<br />

When you click View to the right of an entry in the Dashboard page table, the display changes to the [<strong>Ensemble</strong>] > [Dashboards]<br />

> [Dashboard] page, which displays the specific dashboard you selected. Graphical meters display in the top half of the<br />

screen, according to the dashboard definition.<br />

30 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Working with Dashboards<br />

Figure 3–1: Dashboard Page with an Active Dashboard<br />

If the production that includes a dashboard is not currently running, the dashboard is dimmed (inactive). To activate an<br />

inactive dashboard, stop the currently running production (if any) and start the production whose dashboard you want to<br />

view. Then, return to the [<strong>Ensemble</strong>] > [Dashboards] page and click View next to the dashboard name.<br />

Note:<br />

For dashboards to be able to refresh the page, you must make sure Internet Explorer has the Java Virtual Machine<br />

(JVM) enabled. You can verify this by selecting Tools, Internet Options, and clicking the Advanced tab to look<br />

at Java options.<br />

If you right-click on a meter in an active dashboard display, a context menu displays. The following menu options are<br />

available:<br />

• Drill Down — If the production developer has enabled the Drill Down feature for this metric, this selection displays a<br />

browser page that contains additional information related to the metric. When you are done viewing this information,<br />

click the browser Back command to return to the [<strong>Ensemble</strong>] > [Dashboards] > [Dashboard] page.<br />

• Zoom — Choose a zoom factor for the dashboard.<br />

• Change Chart Scale — A chart can be defined so that each data series has its own scale for the y-axis. When this is the<br />

case, you can click on the chart in the dashboard to select it, then right-click and choose Change Chart Scale to display<br />

the y-axis that corresponds to the next data series in the chart. Repeat to walk through all the possibilities for the chart.<br />

• Find, Find Again — Search for a text string on the dashboard.<br />

• View Source — Display the SVG code that displays the diagram.<br />

• About SVG Viewer — Display version and copyright information about the SVG Viewer used to render the dashboard.<br />

3.5.2 Business Metrics<br />

The [<strong>Ensemble</strong>] > [Business Metrics] page allows you to view the values contained within active business metrics in the<br />

currently running production. The Business Metrics page is useful to developers and system administrators solving problems<br />

encountered with the system. When a production is running smoothly, the intended display page for business metrics is the<br />

[<strong>Ensemble</strong>] > [Dashboards] > [Dashboard] page.<br />

The Business Metrics page displays when you click Business Metrics in the <strong>Ensemble</strong> menu. At left, the Business Metrics<br />

page reveals the same menu as on the [<strong>Ensemble</strong>] home page. You can click on selections in this menu to navigate to other<br />

portal pages.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 31


What to Manage<br />

At far right, the title bar provides a Namespace drop-down list that you can use to switch to a different <strong>Ensemble</strong> namespace.<br />

There is also a Go to drop-down list that you can use to return to previously visited pages in the <strong>Ensemble</strong> Management<br />

Portal or System Management Portal.<br />

To the right and below the title bar, the Business Metrics page displays a table that lists all the business metrics associated<br />

with productions in the currently active namespace.<br />

To the right of each entry in the Business Metrics table is a Properties command to display the [<strong>Ensemble</strong>] > [Business<br />

Metrics] > [Business Metric Properties] page. Below the title bar and to the right of the main menu, a line of text displays:<br />

• Contents of Business Metric Cache for myMetric:<br />

Where myMetric is the business metric whose Properties command you clicked on the previous page.<br />

Beneath this introductory text is a table, with the following columns from left to right:<br />

• Instance — In the typical case, there is a single instance for the business metric, so the Instance column contains the<br />

number 1, and can be ignored.<br />

If the business metric defines multiple instances, the Instance column lists the name of the instance that contains the<br />

values shown in columns to the right. The table lists instances in the order in which the business metric class code<br />

defines them.<br />

• Property — The name of a business metric property. The table lists each property in the business metric class in<br />

alphabetical order by property name. If the business metric defines multiple instances, the table lists the properties for<br />

the first instance, then the properties for the second instance, and so on.<br />

• Value — The current value of the property. The values shown reside in the business metric cache. If a property has no<br />

value or is an empty text string, the cell is blank.<br />

If the values are actively changing, the display refreshes itself at the time interval set by the business metric Call Interval.<br />

You can also click the Refresh command in the browser to update the values in the display.<br />

• History — In the typical case, the property is single-valued, so this cell is blank.<br />

If the property is a multidimensional property with an automatic history, the History column lists a history of values<br />

that the property has held over time. This comma-separated list that begins with the oldest cached value at the top left<br />

of the History cell for that property; the History reads sequentially from left to right, and from top to bottom.<br />

The bottom right value in the History cell for a property is the same as the current Value of that property.<br />

3.6 Working with Business Rules<br />

Each business rule is an independently defined piece of logic that can be invoked from a BPL business process or routing<br />

business process. The details of any business rule are defined by editing it using the graphical Business Rule Editor. The<br />

tasks in the following table are associated with business rules.<br />

Business Rule Task<br />

Add a new rule set definition.<br />

Add a new routing rule set definition.<br />

Edit an existing rule definition.<br />

Invoke a routing rule.<br />

Purge the business rule log.<br />

Sequence of Portal Commands<br />

Business Rules, Create New Rule Set<br />

Business Rules, Create New Routing Rule Set<br />

Business Rules, Select a Rule, Edit<br />

<strong>Productions</strong>, Configure, Process<br />

Maintenance, Purge Management Data<br />

32 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Working with the Event Log<br />

Business Rule Task<br />

View a record of rule activity for the currently running<br />

production.<br />

View an existing rule definition.<br />

Sequence of Portal Commands<br />

Business Rule Log<br />

Business Rules, Select a Rule, Edit<br />

For full details, see the book Using Business Rules with <strong>Ensemble</strong>.<br />

3.6.1 Business Rules Pages<br />

The [<strong>Ensemble</strong>] > [Business Rules] page displays a list of the business rules defined in the currently running production. A<br />

business rule determines how a business process will behave at a specific decision point.<br />

A rule definition is entirely separate from business process code. Rule definitions are stored in the <strong>Ensemble</strong> database and<br />

are evaluated at runtime. Modifications to rule definitions are simply updates to the database and can be instantly applied<br />

to a production that is still running.<br />

The developer of a BPL business process identifies a decision point by naming the business rule that will make the decision<br />

at this point. A user at the enterprise, typically a business analyst, defines the criteria that the rule will use to make the<br />

decision. The tool for creating and modifying this list of criteria is the Business Rule Editor.<br />

At runtime, the business process invokes the rule, the rule returns an answer to the business process, and the business process<br />

continues execution based on this answer. Meanwhile, <strong>Ensemble</strong> creates an audit entry that contains information about the<br />

business process that fired the rule, what value was returned, and why the answer was chosen. The Business Rule Log lets<br />

you view this information.<br />

You can display the Business Rules page from the <strong>Ensemble</strong> Management Portal as follows:<br />

• From the <strong>Ensemble</strong> menu click Business Rules to display the [<strong>Ensemble</strong>] > [Business Rules] > [Business Rule Editor]<br />

page.<br />

• Click Rule List at the top of the page.<br />

For details about the Business Rules page, Business Rule Editor, and Business Rule Log, see the “<strong>Managing</strong> Business<br />

Rules” chapter in Using Business Rules with <strong>Ensemble</strong>.<br />

In addition to regular business rules, message routing rules are also available. See the <strong>Ensemble</strong> HL7 Version 2 Development<br />

Guide or the <strong>Ensemble</strong> HL7 Version 3 Development Guide.<br />

3.7 Working with the Event Log<br />

<strong>Ensemble</strong> generates event log entries to record the following items:<br />

• Normal occurrences in the life cycle of any production, such as starting or stopping the production.<br />

• Abnormal occurrences, such as errors or warnings, that a specific production records in the event log.<br />

• Occurrences associated with debugging a production, such as traces or asserts.<br />

Viewing the event log is a way to “take the pulse” of a production by scanning the event log entries that it produces while<br />

it runs. The following options are available.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 33


What to Manage<br />

Event Log Task<br />

Filter event log entries for the currently running production by entering<br />

search criteria such as time of day or session identifier.<br />

Purge event log entries.<br />

Quickly view the real-time status of the event log.<br />

View the event log entries generated by the currently running production.<br />

Sequence of Portal Commands<br />

Event Log, Filter<br />

Event Log, Purge<br />

System Monitor<br />

Event Log<br />

Not all errors or activities should necessarily generate an event log entry. Developers of custom code determine which<br />

abnormal occurrences a host class will write to the event log. Once a production is running, only those events can be<br />

monitored. It is up to the developer to choose which occurrences will be of interest to enterprise system administrators.<br />

The only way to cause the production to report additional new types of event is to rewrite its host classes using <strong>Ensemble</strong><br />

Studio. However, you can use the <strong>Ensemble</strong> Management Portal to control what you see in the event log in another way:<br />

You can filter the event log to exclude all entries except those of special interest to you.<br />

3.8 Working with the I/O Archive<br />

All business services and business operations have a configuration setting called Archive IO. If True, the adapter associated<br />

with this business host logs in the <strong>Ensemble</strong> I/O archive each input and output communication it shares with the external<br />

system.<br />

I/O Task<br />

Configure the Archive IO setting for a business operation.<br />

Configure the Archive IO setting for a business service.<br />

Sequence of Portal Commands<br />

<strong>Productions</strong>, Configure, Business Operation<br />

<strong>Productions</strong>, Configure, Business Service<br />

To retrieve information from the <strong>Ensemble</strong> I/O archive, you must execute an SQL query, as follows:<br />

1. Start the System Management Portal.<br />

2. Navigate to the [Home] > [SQL] page.<br />

3. Choose the namespace where you want to execute the query.<br />

4. Click Execute SQL Statement. The [Home] > [SQL] > [Execute SQL Query] page displays.<br />

5. In the SQL Query field, type:<br />

SELECT * FROM Ens_Util.IOLog<br />

Where the table name identifies Ens.Util.IOLog or one of its subclasses. The choice of subclass depends on the type of<br />

data. Options include Ens.Util.IOLogFile, Ens.Util.IOLogObj, Ens.Util.IOLogStream and Ens.Util.IOLogXMLObj.<br />

6. Click Execute Query. The results display in the bottom half of the page.<br />

7. If there are no results, or if the results do not match your expectations, check to see that the Archive IO option is enabled<br />

for the business service or business operation that you want to investigate.<br />

34 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Working with Jobs<br />

3.9 Working with Jobs<br />

Jobs are CPU processes that host the work done by an <strong>Ensemble</strong> production. This terminology is intended to avoid confusion<br />

between CPU processes (“jobs”) and business processes (“processes”). From a low-level, system viewpoint, an <strong>Ensemble</strong><br />

production consists almost entirely of jobs waiting to wake up to perform work. When a request arrives on the queue of a<br />

business host, the item claims a job from its pool of available jobs. The job then hosts the work that needs to be done. If<br />

no job is available in the pool of jobs for that business host, it must wait for a job to become available, so that it can do the<br />

work. The job returns to the pool after the work is done, or whenever the next task is to wait for something to happen. A<br />

job always returns to the same pool from which it came.<br />

The choice of Actor Pool Size for the production, and Pool Size for each business host, determines how many jobs are<br />

available to perform which types of work for the production. These numbers are an essential part of the production design<br />

and are unlikely to need adjustment once the production is deployed live. Larger numbers are not necessarily helpful; most<br />

pool sizes are best set to either 0 or 1. For a full discussion of appropriate values for different types of production, see the<br />

Pool Size section in the “Production Concepts” chapter of Developing <strong>Ensemble</strong> <strong>Productions</strong>.<br />

The following portal commands are available to configure and monitor job use in a production.<br />

Job Task<br />

Configure the number of jobs allocated to a specific business<br />

operation within a production.<br />

Configure the number of jobs allocated to a specific business<br />

process within a production.<br />

Configure the number of jobs allocated to a specific business<br />

service within a production.<br />

Configure the number of jobs allocated to be shared publicly<br />

by business processes.<br />

Monitor status of system jobs associated with various<br />

production activities.<br />

Sequence of Portal Commands<br />

<strong>Productions</strong>, Configure, Business Operation<br />

<strong>Productions</strong>, Configure, Business Process<br />

<strong>Productions</strong>, Configure, Business Service<br />

<strong>Productions</strong>, Configure, Production<br />

Jobs<br />

3.9.1 Jobs Page<br />

The [<strong>Ensemble</strong>] > [Jobs] page allows you to match each <strong>Ensemble</strong> configuration item with the underlying system job(s)<br />

that are hosting its activities. The Jobs page lists the system Job ID number for each configuration item. You can use this<br />

information to look up detailed information about the job in the System Management Portal. The same Process ID number<br />

appears in the left-most column of the System Management Portal [Home] > [Processes] page.<br />

To display the Jobs page, click Jobs in the <strong>Ensemble</strong> Management Portal main menu.<br />

There is no menu on the Jobs page. You can return to the home page by clicking [<strong>Ensemble</strong>] in the title bar navigation path.<br />

At far right, the title bar provides a Namespace list that you can use to switch to a different <strong>Ensemble</strong> namespace. There is<br />

also a Go to list that you can use to return to previously visited pages in the <strong>Ensemble</strong> Management Portal or System<br />

Management Portal.<br />

Under the Jobs page title bar is a table called Current <strong>Ensemble</strong> Processes. Each row of the table lists one of the system<br />

jobs that is doing work for the currently running <strong>Ensemble</strong> production. Each row has the following columns:<br />

• Job — The system process ID for the job.<br />

• Configuration Name — This is the name assigned to the business host during configuration using the [<strong>Ensemble</strong>] ><br />

[<strong>Productions</strong>] configuration display. It may be different from the host class name.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 35


What to Manage<br />

• Mode — The execution mode for the job: Background or Foreground. This is the value you set when defining the host<br />

using the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] configuration display. If you selected the Foreground check box, the Mode field<br />

reads Foreground; otherwise it reads Background.<br />

• Status — Dequeuing, Running, Error, or Quiescent. Most jobs run in less than 1 millisecond, so it is almost impossible<br />

to see an entry on the Jobs page with a Running status, unless it is stuck in an infinite loop of some kind. All jobs<br />

should become Quiescent during production shutdown, and if one does not do so, there may be a problem with it. In<br />

all other cases entries on the Jobs page have a Status value of Dequeuing.<br />

<strong>Ensemble</strong> may terminate a job, in which case its last known status prior to termination appears in the Status column,<br />

and the background color of the row is red. This is called a “dead” job.<br />

• Detail — This string contains information relating to the Status field. If the status of the job is Running, the Detail field<br />

is blank. If the status of the job is Dequeuing or Quiescent, the Detail field lists the following information:<br />

– The current queue name (for public queues such as Ens.Actor)<br />

– The job ID (for private queues associated with specific business hosts).<br />

• Active Message — If there is currently a message from this job, this column displays it.<br />

• State — Dead, Starting, or Alive.<br />

In each row, the background color indicates the job’s status, as follows:<br />

• Blue — A startup job.<br />

• (Neutral) — Jobs that are Dequeuing, Running, or Quiescent.<br />

• Pink — A job that has Error status but is not dead.<br />

• Red — A dead job.<br />

3.10 Working with Messages<br />

All communication that passes between configuration items in <strong>Ensemble</strong> is accomplished using messages. A message has<br />

a header, which is the same for all messages and contains data fields that help route the message through the system. A<br />

message also contains a body, which provides different fields depending on the message contents.<br />

Every message class is one of two types: request or response. There may be request classes that do not have a corresponding<br />

response class defined, but every response is (conceptually) paired with a request. Any request class may be synchronous<br />

(waits for a response) or asynchronous (does not wait) in its implementation. These decisions are made by the class developer<br />

and they are not configurable once the production is complete.<br />

<strong>Ensemble</strong> offers some built-in message classes to handle various types of message content. Other message classes may be<br />

defined by class developers to fulfill a specific production need. Without exception, all instantiated messages have complete<br />

tracking information stored in the <strong>Ensemble</strong> message warehouse, and this information is available at all times to the<br />

<strong>Ensemble</strong> Management Portal pages devoted to messages.<br />

Since messages are the primary “currency” of action and communication within <strong>Ensemble</strong>, there are a large number of<br />

management tasks associated with messages. The following table lists what you can do to work with messages using the<br />

<strong>Ensemble</strong> Management Portal.<br />

Message Task<br />

Filter and view messages in various ways.<br />

Sequence of Portal Commands<br />

Message Browser<br />

36 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Working with Messages<br />

Message Task<br />

Filter the message log for the currently running production by<br />

entering search criteria such as time of day or session identifier.<br />

View the contents of two messages and compare them, side by<br />

side.<br />

View message body contents.<br />

View message header and body contents for a message.<br />

Periodically save older messages to a separate archive for long<br />

term storage.<br />

Resend selected messages.<br />

View messages that have entered a Suspended state. Resend<br />

selected messages.<br />

View a visual trace of the delivery of a message, from original<br />

source all the way through to fulfillment (or failure).<br />

Test HL7 or X12 messages, by viewing and transforming them.<br />

Test a production by sending request messages and receiving<br />

responses.<br />

Sequence of Portal Commands<br />

Message Browser, Filter<br />

Message Browser, Compare Messages<br />

Message Browser, Contents<br />

Message Browser, Details<br />

Maintenance, Archive Manager<br />

Message Browser, Resend Messages<br />

Maintenance, Suspended Messages<br />

Message Browser, Trace<br />

EDI / HL7 Manager, Message Viewer<br />

Testing Service<br />

3.10.1 Message Status<br />

When you trace messages using the <strong>Ensemble</strong> Management Portal, you see a visual representation of each message as it<br />

travels from one configuration item to the next. The message object can have various status values that indicate its rotation<br />

through a normal life cycle. These status values are visible on most <strong>Ensemble</strong> Management Portal message pages: Created,<br />

Queued, Delivered, Deferred, Completed, Discarded, or Suspended. These status values apply to instances of request and<br />

response messages individually. Request-response “pairs” are not tracked together, because a request might be repeated<br />

several times before it is successfully delivered, some requests have an optional response that can be ignored if it does not<br />

arrive, some responses can be deferred for later delivery, and some requests have no response defined for them at all.<br />

Message Status<br />

Completed<br />

Created<br />

Deferred<br />

Delivered<br />

Discarded<br />

Queued<br />

Suspended<br />

Meaning<br />

The intended recipient has received the message and has finished processing the<br />

message.<br />

The message is in transit between sender and target.<br />

The message response has been deferred by the business operation for later delivery.<br />

The intended recipient has received the message.<br />

The message is a response that reached its destination after the timeout period for the<br />

corresponding request expired.<br />

The message is on a queue.<br />

The message was suspended by the business operation after failing to reach its external<br />

destination, or by an administrator from the Instances display on the [<strong>Ensemble</strong>] > [Host<br />

Monitor] page. In either case, you can resend the message from the [<strong>Ensemble</strong>] ><br />

[Maintenance] > [Suspended] page or by clicking the Resend Messages command on the<br />

[<strong>Ensemble</strong>] > [Messages] page.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 37


What to Manage<br />

3.10.2 Messages in Progress<br />

It is not always possible for a message to be immediately Delivered. Most host classes provide some level of recovery from<br />

initial obstacles that a message might encounter. Obstacles to delivery might arise for any number of reasons, including<br />

circumstances outside the <strong>Ensemble</strong> system (an external server goes down) or the need to wait for a decision from another<br />

business process or human participant (workflow). The different message status values help you to track what is happening<br />

to message that are not yet Delivered. Details are as follows:<br />

• In many cases, business operations are designed to retry a message a given number of times, at given intervals, before<br />

declaring the message failed or announcing a timeout. Many outbound adapters offer configurable parameters that<br />

control the time interval and number of retries to make. If this is the case, you can set these values when you configure<br />

Specific Settings for the business operation using the <strong>Ensemble</strong> Management Portal, without changing any classes in<br />

Studio.<br />

• Some business operations are designed to set the status of any failed messages to Suspended. Alternatively, you can<br />

manually suspend a message from the Instances display on the [<strong>Ensemble</strong>] > [Host Monitor] page. In either case,<br />

<strong>Ensemble</strong> automatically places all Suspended messages on a special queue. A system administrator can find these<br />

message on the [<strong>Ensemble</strong>] > [Maintenance] > [Suspended] page. An inspection of the routing information or contents<br />

of a specific message might reveal the reason why the message failed. For example, if the problem is that an external<br />

destination went out of service, a change can be made to reestablish communication with that server. Then the Suspended<br />

messages can be resent to the external server by clicking a command on the [<strong>Ensemble</strong>] > [Maintenance] > [Suspended]<br />

page or by clicking Resend Messages on the [<strong>Ensemble</strong>] > [Messages] page.<br />

• There is a message status that does not indicate either delivery or failure; that is the Deferred status. A business operation<br />

can set the status of a response message to Deferred before it exits. The Deferred response can be picked up and sent<br />

back to the original requester by any business host in the production. Between the time when the business operation<br />

defers the response, and when the response is finally sent, the response message has a status of Deferred. The sender<br />

of the original message is unaware of the fact that the message was Deferred. If the original call was synchronous, the<br />

call does not return to the sender until the deferred response is sent.<br />

3.11 Working with Queues<br />

In the <strong>Ensemble</strong> context, a queue is simply a list of message objects waiting to be processed by a business host — a business<br />

service, a business process, or a business operation — within a production. No queue setup is required. <strong>Ensemble</strong> manages<br />

all queues automatically; see the Queues section in the “<strong>Ensemble</strong> Messages” chapter of Developing <strong>Ensemble</strong> <strong>Productions</strong><br />

for details.<br />

The following portal commands are available to monitor queue status.<br />

Queue Task<br />

List the messages on a specific queue. Provide a facility for viewing these<br />

messages in detail.<br />

Monitor the activities of a message queue in detail.<br />

Quickly view the real-time status of message queues.<br />

Sequence of Portal Commands<br />

Queues, Contents<br />

Queues<br />

System Monitor<br />

Queues offer one of the most useful means of quickly spotting a problem in the system. When there is buildup on a queue,<br />

it usually means something needs to be repaired. For example:<br />

38 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Working with Sessions<br />

• If a service or operation queue is suddenly longer, this means that messages created by <strong>Ensemble</strong> suddenly cannot get<br />

out of the system, or that messages from outside the system suddenly cannot get in. An external connection may be<br />

down, or there may be a peak-hour effect that is affecting throughput on your external connections.<br />

• If a service or operation queue is consistently long, this means that messages created by <strong>Ensemble</strong> consistently cannot<br />

get out of the system, or that messages from outside the system consistently cannot get in. The pool of jobs for that<br />

service or operation may need to be larger, or you may need to reconfigure the external connection to overcome an<br />

entrenched issue there.<br />

• If the Ens.Actor queue is suddenly longer, a business process may have experienced an error that has caused it to become<br />

“stuck” in some way.<br />

• If the Ens.Actor queue is consistently long, the actor pool for the production may need to be larger.<br />

• If many queues have a consistently large buildup, there may be a general capacity issue on the host computer, the<br />

<strong>Ensemble</strong> production (in its role as a CSP application) may need more resources, or the underlying Caché installation<br />

may need to be tuned. For suggestions about how to allow enough capacity, see the Caché System Administration<br />

Guide and Using Caché Server Pages (CSP). In general, however, you will be able to keep queues moving with the<br />

simpler adjustments listed in this topic.<br />

Usually the most important information that the portal provides about queues is the destination, or target, of any message<br />

that has been too long on a queue. In general, when a queued message is not being sent, it is because it cannot get to its<br />

target. This means there is something wrong with the target of the queue (its associated service or operation, for example).<br />

If you can find out what is causing a problem with the target, when you solve that problem, the queue buildup generally<br />

disappears.<br />

3.12 Working with Sessions<br />

A session defines the boundaries of a primary request — one that enters <strong>Ensemble</strong> from an external source. A session exists<br />

from the moment the primary request enters <strong>Ensemble</strong>, usually via a business service. The session continues to exist while<br />

the production generates internal requests and responses to process the primary request. When the last internal activity<br />

prompted by the primary request is done, the session is over. If the primary request required a response, the final act that<br />

the production performs within the session is to formulate and send this response.<br />

Session Task<br />

Filter the message log for the currently running production to find all<br />

messages associated with a specific session.<br />

View a visual trace of a primary request message, from its original, external<br />

source all the way to fulfillment (or failure).<br />

Sequence of Portal Commands<br />

Message Browser<br />

Message Browser, Visual Trace<br />

3.13 Working with Workflow<br />

Workflow makes it possible to incorporate human interaction into automated business processes. Typical uses of workflow<br />

within the enterprise might include order entry, order fulfillment, contract approval, and help desk activities.<br />

A workflow management system automates the distribution of tasks among users. Tasks are distributed according to a<br />

predefined distribution strategy. This convention makes task distribution more efficient and task execution more accountable.<br />

<strong>Ensemble</strong> has a built-in Workflow Engine that supports a variety of default and custom distribution strategies for tasks and<br />

users.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 39


What to Manage<br />

Workflow Task<br />

Manage workflow, define user roles, and accept tasks.<br />

Sequence of Portal Commands<br />

Workflow Portal<br />

3.13.1 Workflow Portal<br />

The browser-based user interface for managing workflow, defining user roles, and accepting tasks is called the Workflow<br />

Portal. You can access it from the <strong>Ensemble</strong> menu, by selecting the Workflow Portal option. When you do this, the<br />

[<strong>Ensemble</strong> Workflow] page displays. From here you can access any of the following pages:<br />

• [<strong>Ensemble</strong> Workflow] > [Workflow Tasks] — Accept and complete tasks, or relinquish tasks to other users.<br />

• [<strong>Ensemble</strong> Workflow] > [Workflow Roles] — Sort workflow users into workflow roles.<br />

• [<strong>Ensemble</strong> Workflow] > [Workflow Users] — Identify workflow users.<br />

• [<strong>Ensemble</strong> Workflow] > [Task Browser] — View a history of task activity, assign tasks, edit or cancel tasks.<br />

• [<strong>Ensemble</strong> Workflow] > [Worklist Browser] — View a list of all uncompleted tasks.<br />

For full details, see Using Workflow with <strong>Ensemble</strong>.<br />

40 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


4<br />

<strong>Productions</strong><br />

The [<strong>Ensemble</strong>] > [<strong>Productions</strong>] page contains a table with information about all the <strong>Ensemble</strong> productions that are defined<br />

in the current namespace. Only one of these productions can run at a time. If you try to start one, and another is already<br />

started, a warning message displays and nothing changes. You can stop the running production and start another one from<br />

the <strong>Ensemble</strong> <strong>Productions</strong> page. You can also use the page to navigate to a specific production in the list to configure. You<br />

can display the <strong>Productions</strong> page from various locations in the <strong>Ensemble</strong> Management Portal, as follows:<br />

• From the <strong>Ensemble</strong> Menu — Click <strong>Productions</strong><br />

• From the <strong>Ensemble</strong> Table on the <strong>Ensemble</strong> Home Page — Click more...<br />

At far right, the title bar provides a Namespace list that you can use to switch to a different <strong>Ensemble</strong> namespace. There is<br />

also a Go to list that you can use to return to previously visited pages in the <strong>Ensemble</strong> Management Portal or System<br />

Management Portal.<br />

Under the <strong>Productions</strong> page title bar is a display area. At the top left corner of this display is the <strong>Ensemble</strong> Management<br />

Portal menu. This is the same menu as on the home page. You can click on selections in this menu to navigate to other<br />

portal pages.<br />

Above the Production List are two commands:<br />

• Click Create New Production to start the production wizards that create new productions. For instructions, see the<br />

“Creating a New Production” chapter in Developing <strong>Ensemble</strong> <strong>Productions</strong>.<br />

• Click Delete Production to remove an existing production from the namespace.<br />

From this page, you can choose which production to delete from a list of existing productions. As an added safeguard,<br />

you can click View Configuration Details before confirming the delete to verify you are deleting the appropriate production.<br />

4.1 Production List<br />

Under the <strong>Productions</strong> page title bar and to the right of the menu is a table that lists all the productions associated with the<br />

currently active namespace. You can begin typing any string in the Filter box to narrow down the list of productions. Each<br />

row is devoted to one production and has the following columns of information:<br />

• Production — The name of the production.<br />

• Status — The status of the production — Running, Suspended, Troubled, or Stopped — as described in the following<br />

table.<br />

• Last Start Time — The date and time when the production was last started.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 41


<strong>Productions</strong><br />

• Last Stop Time — The date and time when the production was last stopped.<br />

Table 4–1: Production Status Values<br />

Status<br />

Value<br />

Running<br />

Stopped<br />

Suspended<br />

Troubled<br />

Row Color<br />

Light green<br />

Light gray<br />

Orange<br />

Light gray<br />

Meaning<br />

When a production has been started and is operating normally, it has a status<br />

of Running. This is an acceptable state.<br />

A production acquires a status of Stopped when, at the end of the shutdown<br />

sequence, all of its queues are free of synchronous messages. This is an<br />

acceptable state.<br />

A production acquires the Suspended status if, at the end of the shutdown<br />

sequence, some queues still contain synchronous messages, waiting for a<br />

response. Depending on how the production has been designed, this may or<br />

may not indicate a problem.<br />

You may start a Suspended production. Starting the production again may<br />

permit the waiting messages to be processed. However, if you start the Suspended<br />

production, and more messages arrive while those in front of them in<br />

the queue cannot be resolved, queues may simply continue to fill. In that case<br />

you must investigate to discover why the incoming messages never complete.<br />

A production acquires a status of Troubled if <strong>Ensemble</strong> is stopped but the<br />

production did not shut down properly. This can happen if you restarted<br />

<strong>Ensemble</strong> or rebooted the machine without first stopping the production.<br />

When a production acquires a Troubled status, a Recover command appears<br />

on the <strong>Ensemble</strong> Management Portal home page (the [<strong>Ensemble</strong>] page). Click<br />

this command to clean up the troubled instance of the production so that you<br />

can run a new instance when you are ready.<br />

To the right of each entry in the <strong>Productions</strong> table are four of the following five commands:<br />

• Click Configure to display the configuration diagram. This is a graphical inventory of the business hosts in the production,<br />

organized into three columns: business services, business processes, and business operations. Each item in the diagram<br />

displays runtime status indicators. You can select individual elements to monitor and edit the details of performance<br />

and configuration. For details about this diagram, see the “Configuration” chapter.<br />

• Click Start to Start the production; offered if the production is stopped.<br />

• Click Stop to Stop the production; offered if the production is running.<br />

• Click <strong>Documentation</strong> to view or generate configuration documentation for this production in HTML format.<br />

4.2 Starting a Production<br />

You can start an <strong>Ensemble</strong> production from various pages in the <strong>Ensemble</strong> Management Portal, including the <strong>Productions</strong><br />

page. To do so:<br />

1. The initial command sequence you choose depends on which page you are viewing when you begin. For example, you<br />

can:<br />

42 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Stopping a Production<br />

• Begin from the home page. If the <strong>Ensemble</strong> panel (top left) displays a Stopped status and a Start Production<br />

command, examine the name in the Production field. If this production is the one you want to start, click Start<br />

Production. Otherwise, click more... to display the <strong>Productions</strong> page.<br />

• Begin from the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] page. To start a production, find its name in the list and click Start to<br />

the right of it. If you want to view a production’s configuration details before starting it, you can click Configuration<br />

to the right of the production name. The production configuration diagram displays.<br />

• Begin from the configuration display on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page. While viewing the<br />

production diagram in the top half of the screen, click Start Production in the bottom half of the screen.<br />

2. Click Yes to confirm the action.<br />

3. The Production Start page displays the name of the production, its startup status, and any messages associated with<br />

production startup.<br />

Note:<br />

If any Terminal windows open as a result of starting the production, do not close them.<br />

4. When the startup Status is Finished, click OK at the bottom of the Production Start page.<br />

You can also configure an automatic start for an <strong>Ensemble</strong> production. On the [<strong>Ensemble</strong>] > [Maintenance] page, use the<br />

Auto-Start Production field to choose a specific production to start automatically at system startup, and stop automatically<br />

at system shutdown.<br />

4.3 Stopping a Production<br />

You can stop an <strong>Ensemble</strong> production from various pages in the <strong>Ensemble</strong> Management Portal, including the <strong>Productions</strong><br />

page. To do so:<br />

1. The initial command sequence you choose depends on which page you are viewing when you begin. For example, you<br />

can:<br />

• Begin from the home page. If the <strong>Ensemble</strong> panel (top left) displays a Running status and a Stop Production<br />

command, examine the name in the Production field. If this production is the one you want to stop, click Stop<br />

Production. Otherwise, click more... to display the <strong>Productions</strong> page.<br />

• Begin from the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] page. To stop a production, find its name in the list and click Stop to<br />

the right of it. If you want to view a production’s configuration details before stopping it, you can click Configuration<br />

to the right of the production name, and the production configuration diagram displays.<br />

• Begin from the configuration diagram on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page. While viewing<br />

production configuration information in the top half of the screen, click Stop Production in the bottom half of the<br />

screen.<br />

2. Click Yes to confirm the action.<br />

3. After a normal shutdown, the Production Stop page displays the name of the production, its shutdown status, and any<br />

messages associated with production shutdown. When the shutdown Status is Finished, click OK at the bottom of the<br />

Production Stop page.<br />

4. If the request to stop the production initially fails, the portal displays a message:<br />

“Production could not stop, do you want to force a shut down”<br />

And offers a command:<br />

Yes - Force to Shut Down<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 43


<strong>Productions</strong><br />

If you click this command, the production is forced to shut down.<br />

You can also configure an automatic stop for an <strong>Ensemble</strong> production. On the [<strong>Ensemble</strong>] > [Maintenance] page, use the<br />

Auto-Start Production field to choose a specific production to start automatically at system startup, and stop automatically<br />

at system shutdown.<br />

4.4 Production <strong>Documentation</strong><br />

From the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] page, click <strong>Documentation</strong> in the appropriate row to generate or view production<br />

documentation, which includes a list of all the configuration items and their settings.<br />

If HTML documentation exists, you are prompted whether you want to Generate a new version of the documentation or<br />

View the documentation you previously generated. It may take a considerable amount of time to generate documentation<br />

for large productions; therefore, you may not want to generate new documentation if you have not made changes to the<br />

configuration of your production.<br />

You can also generate HTML documentation and additionally PDF documentation using the following methods in the<br />

Ens.Config.Production class:<br />

• CreateDocumentHTML — creates new documentation in HTML format.<br />

For example, to create documentation for Demo.Loan.FindRateProduction in HTML format:<br />

Set<br />

status=##class(Ens.Config.Production).CreateDocumentHTML("Demo.Loan.FindRateProduction",1,.URL,.ErrLog)<br />

• RemoveDocumentHTML — removes existing HTML-format documentation in the current namespace.<br />

• CreateDocumentPDF — creates new documentation as a PDF file.<br />

For example, to create documentation for Demo.Loan.FindRateProduction in PDF format, you can use the method in<br />

a statement similar to the following:<br />

Set<br />

status=##class(Ens.Config.Production).CreateDocumentPDF("Demo.Loan.FindRateProduction",1,"C:\Temp\Rate.pdf",.Log)<br />

The PDF format requires that you have a PDF renderer installed; if you have configured one for Zen, then it becomes<br />

the default renderer. See the Using Zen Reports guide for details.<br />

44 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


5<br />

Configuration<br />

The [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page allows you to configure operational settings for an <strong>Ensemble</strong> production<br />

in the active namespace. When you edit production settings using the configuration display, you can apply your configuration<br />

changes immediately, even if the production is running.<br />

You can view the configuration page from the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] page by clicking Configure to the right of a production<br />

name.<br />

There is no menu on the Production Configuration page. Click <strong>Productions</strong> in the navigation bar to return to the list of<br />

productions.<br />

The following figure shows the configuration for the Demo.Loan.FindRateProduction contained in the ENSDEMO namespace.<br />

Figure 5–1: Configuration Page<br />

Under the Production Configuration page title bar are the following two display areas, one above the other:<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 45


Configuration<br />

• Configuration Diagram — the upper display shows the production as a logical diagram.<br />

• Configuration Settings — the lower display provides data fields that you can edit to configure the production and its<br />

items shown in the diagram.<br />

You can drag the boundary between the displays to resize them as needed. In many cases you must use the scroll bars to<br />

see the full contents of either display. The following sections provide details on each portion of the Production Configuration<br />

page.<br />

5.1 Configuration Diagram<br />

At the top left corner of the configuration page is the name of the production, plus the message, Production Running,<br />

if that is the case. Under the production name are three columns, separated by vertical lines. From left to right, these columns<br />

contain Business Services, Business Processes, and Business Operations.<br />

The following sections describe the elements of the diagram in detail:<br />

• Configuration Shapes<br />

• Configuration Names<br />

• Configuration Icons<br />

• Status Indicators<br />

• Pool Size<br />

• Context Menu<br />

5.1.1 Configuration Shapes<br />

Any business service, business process, or business operation that has been added to the production appears as a rectangular<br />

shape in the configuration diagram, in the appropriate column. If the underlying host classes exchange <strong>Ensemble</strong> messages,<br />

lines connect the shapes across the columns.<br />

When you click on a shape in the configuration diagram, its background color changes to yellow and its connections to<br />

other entries change to bold purple. The data display at the bottom of the page also changes, to show which fields you can<br />

edit to configure the selected item. See the Configure Business Host Settings section for details.<br />

You can select any individual item by clicking it. To select the entire production, click anywhere in the neutral background<br />

of the diagram.<br />

The following figures provide a close view of one entry in each column on the page.<br />

Figure 5–2: Configuration Page Left Column — Business Service<br />

Figure 5–3: Configuration Page Center Column — Business Process<br />

46 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Configuration Diagram<br />

Figure 5–4: Configuration Page Right Column — Business Operation<br />

When not selected, shapes in the diagram have the following background colors:<br />

Color<br />

White<br />

Gray<br />

Orange<br />

Business host status<br />

The item has been added to the production configuration and is enabled.<br />

The item has been added but is disabled. Compare the enabled FindRateFileService with<br />

the disabled FindRateEmailService in the full-size Configuration Page diagram in the previous<br />

section.<br />

The item is referenced by another item within the production, but is not yet added to the<br />

production. The background color changes to white or gray after you add the referenced<br />

item.<br />

5.1.2 Configuration Names<br />

The most important characteristic of any item in a production configuration is its name.<br />

By default, the name of a configuration item is the name of its underlying host class. When this is the case, the package<br />

name displays at the top of the shape. The host class name appears below the package name. For examples, see the business<br />

operations FindRateEmailOperation, FindRateFileOperation, and FindRateTCPOperation in the previous figures.<br />

You can assign the item a name that is different from its host class name. If so, the configured name displays in the item<br />

shape and no package name displays. This is true of the My Terminal Output business operation in the full-size configuration<br />

diagram at the beginning of this chapter.<br />

5.1.2.1 Different Configuration Names, Same Host Class<br />

Naming configuration items independently of their host class names provides flexibility in configuring your production.<br />

For example, if you want to use the same business service host class to communicate with various external sources, but<br />

you want to use slightly different runtime settings in each case, you can do so by assigning a different name to each configuration<br />

of the host class. A change to the underlying class code changes the behavior of all of the items of that class.<br />

Figure 5–5: Different Configuration Names, Same Host Class<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 47


Configuration<br />

The Copy command is useful when you need to create multiple items with different configuration names, but the same host<br />

class. Select a configuration item in the diagram, then click Copy. A dialog prompts you to enter the new item name. Once<br />

you click OK to accept the copy, it has no relationship to the original item; you can configure, enable, and disable each item<br />

independently. There is more information about the Copy command in the Configure Business Host Settings section.<br />

Note:<br />

The Copy command works only within the same production. You cannot copy a configuration item from one<br />

production to another.<br />

5.1.2.2 Same Configuration Name, Different Host Classes<br />

You can assign the same configuration name to more than one item in the production; however, only one of the configuration<br />

items with the same name can be enabled at any one time. Usually you set this up because you want to use a different host<br />

class to fulfill the same role within your production at different stages of developing or maintaining it.<br />

For example, when testing or troubleshooting the production you might want to send messages by typing them at the console<br />

command line, or by reading data from files, but when running the production you might intend for these messages to arrive<br />

from an external application via a TCP connection. Each means of obtaining input for the production requires a different<br />

business service host class.<br />

Figure 5–6: Same Configuration Name, Different Host Classes<br />

If there are multiple items with the same configuration name, with one item enabled, only the enabled item is visible in the<br />

configuration diagram. Disabled configuration items with the same name as an enabled item are not visible. However, if<br />

you click on the enabled edition of the item, an Item list box appears in the configuration page at the boundary between the<br />

diagram and the data display, as shown (circled) in the following figure.<br />

Figure 5–7: Item List Box for Same-Named Configuration Items<br />

All of the host classes with the same configuration name as the currently selected item appear in the Item list box. The<br />

currently enabled host class appears in the list with an asterisk (*) beside its name, as shown for<br />

EnsLib.HL7.Service.TCPService in the figure.<br />

You can select the various host classes in the Item list box by clicking them. This displays the General Settings and Specific<br />

Settings for each edition of the item, but it does not control which of the host classes is enabled for the item.<br />

To enable a different host class out of the available choices in the Item list box, you must:<br />

1. Click the enabled item in the diagram. Its General Settings and Specific Settings display in the bottom half of the screen.<br />

48 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Configuration Diagram<br />

2. Use the Item list box to choose another host class for the item. The General Settings and Specific Settings for this host<br />

class display in the bottom half of the screen.<br />

3. Select the Enabled check box and click Apply. This action enables the item whose settings you are now viewing and<br />

disables the previously enabled edition of the same-named item.<br />

5.1.2.3 Changing the Host Class of a Configured Item<br />

It is possible to change the host class for a configuration item permanently; that is, without switching between different<br />

host classes using the Item list box as described above. To do this use the Change Class command in the configuration page.<br />

5.1.2.4 Adapter Names in the Configuration Diagram<br />

For business services and business operations, the configuration diagram displays the name of the incoming or outgoing<br />

adapter class associated with the item. The choice of specific adapter is made in the host class for the service or operation<br />

and cannot be changed using the configuration page.<br />

5.1.3 Configuration Icons<br />

As described in the Working with Configuration Items section of the “What to Manage” chapter, there are regular configuration<br />

items and special cases of each type. Shapes on the configuration page indicate special cases with an icon, as shown<br />

in the following table.<br />

Table 5–1: Icons on Configuration Diagram Shapes<br />

Column<br />

Icon<br />

Meaning<br />

Reference<br />

(None)<br />

Business service<br />

Developing <strong>Ensemble</strong> <strong>Productions</strong><br />

Business Service<br />

Business metric<br />

Using Dashboards with <strong>Ensemble</strong><br />

(None)<br />

Business process created<br />

with custom code<br />

Developing <strong>Ensemble</strong> <strong>Productions</strong><br />

BPL business process<br />

Developing <strong>Ensemble</strong> <strong>Productions</strong><br />

Business Process<br />

BPL business process<br />

(reusable component)<br />

Developing <strong>Ensemble</strong> <strong>Productions</strong><br />

Routing process<br />

<strong>Ensemble</strong> HL7 Version 2 Development Guide<br />

(None)<br />

Business operation<br />

Developing <strong>Ensemble</strong> <strong>Productions</strong><br />

Business Operation<br />

Workflow operation<br />

Using Workflow with <strong>Ensemble</strong><br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 49


Configuration<br />

5.1.4 Status Indicators<br />

Each configuration item has a circular status indicator in its upper left corner. This indicator changes color with the status<br />

of the configuration item it represents. Business services and business operations have the regular circle indicator, plus an<br />

arrowhead whose color represents the status of the associated inbound or outbound adapter.<br />

The status values for any indicator are as follows:<br />

• Green — OK.<br />

• Yellow — The item has experienced no activity within its configured Inactivity Timeout.<br />

• Red — The item has reported an error.<br />

• Orange — The item could not complete its current activity and is retrying it, as configured.<br />

• Blue — The item is in the process of starting up.<br />

• Gray — The configuration item is disabled.<br />

• (Any color, dimmed) — The production is not currently running.<br />

5.1.5 Pool Size<br />

Below the status indicator, each business host displays its private Pool Size — the number of jobs allocated for its own,<br />

private use in the current configuration. A business process shows no pool size if its private pool size is 0 (zero), meaning<br />

that it gets its jobs from the public actor pool shared by all business processes in the production.<br />

For an overview of pool sizes, see Working with Jobs in the “What to Manage” chapter. For a full discussion of appropriate<br />

pool sizes for different types of production, see the Pool Size section in the “Production Concepts” chapter in Developing<br />

<strong>Ensemble</strong> <strong>Productions</strong>.<br />

5.1.6 Context Menu<br />

You can right-click anywhere on the diagram in the top display to reveal the configuration context menu. The following<br />

menu options are available:<br />

• Show Category — Choose a category name. The diagram changes to reveal only those configuration items that match<br />

the category you have just selected. Select All (the first option) to reveal all configuration items, regardless of category.<br />

• Sort — Choose the order in which the configuration items display (the default is by name):<br />

– By Position — Items display in the order they appear in the production class; by default, this is the order you add<br />

them to the configuration.<br />

For details, see the How a Production Stores the Values of its Settings section in the “Creating a New Production”<br />

chapter of Developing <strong>Ensemble</strong> <strong>Productions</strong>.<br />

– By Name — Items display in alphabetical order.<br />

– By Status — Items display by status in the following order: error, missing, OK, disabled.<br />

• Add — Choose to add a Business Service, Business Process, or Business Operation to the production.<br />

• Production Settings — Edit production settings in the bottom display.<br />

• Zoom — Choose a zoom factor for the BPL diagram. Choose a large factor to view details, a small factor to gain an<br />

overview.<br />

50 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Configuration Settings<br />

• Show Components — This option toggles between a production diagram that shows all types of BPL business processes,<br />

and a view that hides any BPL business processes that are reusable components.<br />

• Toggle Enabled — Enable a disabled configuration item, or disable an enabled configuration item.<br />

• Run-time — Choose one of two [<strong>Ensemble</strong>] > [Host Monitor] pages for this configuration item: Display a list of Instances,<br />

or display a graphical History of the item’s activity over time.<br />

• Show Message Queue — Display the [<strong>Ensemble</strong>] > [Queues] page for this configuration item only.<br />

• Show Event Log — Display the [<strong>Ensemble</strong>] > [Event Log] entries relating to this configuration item only.<br />

• Find, Find Again — Search for a text string in the underlying XML document. When found, the corresponding string<br />

is highlighted in the configuration diagram.<br />

• View Source, Original View — Switch between the diagram and the SVG code that displays the diagram.<br />

• About SVG Viewer — Display version and copyright information about the SVG Viewer used to display the production<br />

diagram.<br />

5.2 Configuration Settings<br />

The [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page allows you to configure the operational settings for an <strong>Ensemble</strong><br />

production and its items. The text in the bar under the configuration diagram indicates the item for which you are configuring<br />

settings: the production, a business service, a business process, or a business operation. Your selection in the diagram<br />

controls which settings appear in the lower portion of the page for configuration:<br />

• To configure production settings, select the production by clicking in the neutral background of the configuration diagram.<br />

• To configure business host settings, select a particular business service, process, or operation by clicking on its shape<br />

in the configuration diagram.<br />

The following table describes the significance of the color of the setting name displayed on the lower portion of the configuration<br />

page.<br />

Color<br />

Black<br />

Green<br />

Blue<br />

Source<br />

Setting value comes from the production definition — the value you enter and apply in the<br />

configuration page.<br />

Setting value comes from the class definition; it is the default value for the property as defined<br />

in the class implementing the configuration item through the use of the InitialExpression attribute.<br />

Setting value comes from the default settings you enter in the Default Settings page for the<br />

namespace in the <strong>Ensemble</strong> instance that contains the production. See the Default Settings<br />

section in the “Maintenance” chapter of this guide for details.<br />

5.2.1 Configure Production Settings<br />

If Production Settings are not visible in the lower portion of the configuration display, click on the neutral background of<br />

the configuration diagram to display them.<br />

Under the name of the production is a row of commands, from left to right:<br />

• Apply — Activate the changes highlighted in yellow on the configuration page.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 51


Configuration<br />

When you click Apply to save changes made in the configuration form, <strong>Ensemble</strong> outputs your settings to the production<br />

class in the form of an XML document embedded in the XData ProductionDefinition section of the class.<br />

• Cancel — Undo the changes highlighted in yellow on the configuration page.<br />

• Help — View context-sensitive information about this page.<br />

• Start Production — Start the production whose configuration you are viewing.<br />

• Stop Production — Stop the production that is running in the active namespace.<br />

The next three commands allow you to add new configuration items to the production. Clicking one of these commands<br />

does not generate any new host classes. Any item that you add at this step must already have a corresponding host class<br />

that has been written and compiled in <strong>Ensemble</strong> Studio. These commands simply tell the production which items you want<br />

it to contain:<br />

• Add Service — Add a business service to the production.<br />

• Add Process — Add a business process to the production.<br />

• Add Operation — Add a business operation to the production.<br />

Beneath the row of commands are the settings you can configure for a production; they are grouped into the following three<br />

categories:<br />

• Production Settings<br />

• Additional Production Settings<br />

• Defaults for Additional Production Settings<br />

5.2.1.1 Production Settings<br />

The configuration page allows you to configure the following Production Settings common to all productions:<br />

Name<br />

Description<br />

The production name. This field has a gray background, which means you can view it, but you cannot edit it.<br />

Comments that describe the production.<br />

Actor Pool Size<br />

Number of system jobs available in a public pool of jobs for use by business processes that have no private pool<br />

of jobs. Allow enough for requests to keep moving through the message queues, but no more.<br />

For a full discussion of appropriate pool sizes for different types of production, see the Pool Size section in the<br />

“Production Concepts” chapter of Developing <strong>Ensemble</strong> <strong>Productions</strong>.<br />

Testing Enabled<br />

Select this check box to enable use of the <strong>Ensemble</strong> Testing Service pages to test this production. Clear this check<br />

box to disable the testing service.<br />

Log Unassigned Trace Events<br />

Trace messages are informational text messages that <strong>Ensemble</strong> can deliver to the Terminal window and, optionally,<br />

to the <strong>Ensemble</strong> event log. Trace messages are unrelated to Visual Trace, which provides a graphical view of<br />

<strong>Ensemble</strong> message objects as they travel through a production.<br />

52 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Configuration Settings<br />

By default, the Log Unassigned Trace Events check box is clear. When selected, it enables logging of all trace<br />

messages issued by production elements that are not configuration items. Logging means that <strong>Ensemble</strong> automatically<br />

stores copies of these trace messages in the event log.<br />

Each business service, business process, and business operation in the production has its own Log Trace Events<br />

setting, which controls logging of trace messages from that configuration item. There is no overlap or interaction<br />

between these settings. Log Unassigned Trace Events does not override or provide a default value for Log Trace<br />

Events.<br />

5.2.1.2 Additional Production Settings<br />

The right lower portion of the configuration page allows you to configure Additional Production Settings:<br />

Shutdown Timeout<br />

How long to wait while attempting to shut down a production before forcing the shutdown. The class default is<br />

120 seconds.<br />

Update Timeout<br />

How long to wait while attempting to update the configuration for a production that is busy, before abandoning<br />

the update. The class default is 10 seconds.<br />

(custom settings)<br />

Any custom settings added to the underlying production class. For details, see the Adding Configuration Settings<br />

section of the “Creating a New Production” chapter of Developing <strong>Ensemble</strong> <strong>Productions</strong>.<br />

Next to the Additional Production Settings title is a red arrow icon. Click this arrow to view and update the defaults for<br />

additional production settings. This feature makes it easier to move productions from one <strong>Ensemble</strong> instance to another.<br />

5.2.1.3 Defaults for Additional Production Settings<br />

When you click the default setting icon on the configuration page for the production, the Select Defaults for Additional<br />

Production Settings dialog box displays a table where you can view the setting values and, if appropriate, select to use the<br />

default values for the production settings. The table contains the following information.<br />

Column<br />

Default command<br />

Property<br />

Target<br />

Type<br />

Value<br />

Default<br />

Default Source<br />

Description<br />

Command displays only if the source of the current value is not a default.<br />

Name of the property setting.<br />

N/A at the production level.<br />

Data type of the property. See %Library.DataType for a list of types.<br />

Current value for the setting.<br />

Default value for this setting.<br />

Source of the default value:<br />

• class definition<br />

• default setting<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 53


Configuration<br />

Column<br />

Value Source<br />

Description<br />

Source of the current value:<br />

• class definition<br />

• default setting<br />

• production definition<br />

If a setting row does not have a Default command in the first column, either the value is already set to the default or a default<br />

value does not exist.<br />

1. To update a production setting to a default value, click Default in the left column to initiate the following actions:<br />

• The Default value as defined in the production class or by a default setting is placed in Value.<br />

• Default command becomes disabled.<br />

• The property field background becomes yellow to indicate that you have modified the field.<br />

• The property label becomes either green or blue depending on the Default Source.<br />

2. If you make a mistake and want to return to the original values, click Reset; the table settings refresh to the setting<br />

values before you made any changes.<br />

3. Once you verify your changes, click OK to update the settings to the default values and transfer back to the Production<br />

Configuration page with your new settings. The color of the setting labels now reflect any changes you made using the<br />

defaults and any value that has been updated has a yellow background.<br />

The yellow background color for a field means that this field has been modified, whether you type in a new value, or<br />

click Default in the Select Defaults for Additional Production Settings dialog box.<br />

4. Click Apply to save all your setting updates.<br />

Important:<br />

Updates to default values only take effect when you click Apply on the Production Configuration page.<br />

5.2.2 Configure Business Host Settings<br />

When you select a business host in the diagram on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page, the runtime settings<br />

for this business host display in the lower portion of the page.<br />

Note:<br />

If you cannot find a particular business host in the configuration diagram, check that you have used the scroll bars<br />

to see the entire screen. Then refresh the display. If you still do not see the item, add it to the production using<br />

the appropriate Add command from the production configuration display and then configure it.<br />

At the boundary between the diagram and settings is a row of commands. From left to right:<br />

• Apply — Activate the changes highlighted in yellow on the configuration page. Even if the production is running, any<br />

changes that you Apply take effect immediately.<br />

• Cancel — Undo the changes highlighted in yellow on the configuration page.<br />

• Copy — Create a copy of the currently selected configuration item. When you click Copy, a dialog box prompts you<br />

to enter a configuration name. Enter a unique name and click OK. When first created, the copy has the same host class<br />

and settings as the original; only the name is different. Generally your next step is to configure the copy to make it<br />

unique. For example:<br />

54 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Configuration Settings<br />

– If you have an incoming TCP business service that receives messages from a client application, and you want to<br />

receive messages from a similar application on a different application server, you can copy the first TCP service<br />

and configure the copy with the other server address.<br />

– If you have a business process for one message routing interface, and you want a similar one but with slight<br />

alterations for another interface, you can copy the first routing process and configure the copy to route messages<br />

between different sets of business services and business operations.<br />

– If you have an outgoing email business operation that alerts a user, but you want to alert another user at different<br />

times of day, you can copy the first outgoing email operation and configure the copy with the other email address.<br />

• Remove — Remove this item from the production configuration. This action does not delete the business host class<br />

from the source code. It only removes the item — identified by Name — from the list of items included in the production.<br />

• Change Class — Change the Class field under General Settings for this item. If you change the host class, the General<br />

Settings retain their values, but you must reconfigure the Specific Settings, as these may be entirely different for the<br />

new host class.<br />

When you click Change Class, a prompt displays asking you to confirm your action. To accept the warning, click OK.<br />

The data display title becomes Change Business Class with the name of the business service, for example Change<br />

Business Class for Demo.Loan.FindRateFileService. You can view or edit the following settings. These are similar to<br />

your choices when you first added the business service to the production:<br />

– Class — Select a business service class from the drop-down list.<br />

– Name — By default, this field takes the value of the business service class name from the class definition in the<br />

source code. However, you can give a business service a name for any management purpose you wish.<br />

– Category — Optionally, you may enter a text label in the Category field. Category names are case-sensitive, and<br />

space characters are allowed within them. To place an item in multiple categories, list them in the Category field,<br />

separated by commas. Do not allow spaces around these commas. For details, see the “Assigning Configuration<br />

Items to Categories” section in the chapter “What to Manage.”<br />

– Comment — Enter a text description of the business service.<br />

Click Apply to activate your changes, Cancel to undo your changes and return to the settings display.<br />

• Instances — View detailed information about instances of the business host in the running production. This command<br />

displays only if Pool Size is > 0, but appears dimmed if the production is not running.<br />

• History — View information about the level of activity for this business service over time.<br />

• View Definition — Display the [<strong>Ensemble</strong>] > [Business Processes] > [BPL Viewer] diagram for the business process in<br />

the top half of the page. Details appear in the lower portion. This view of the BPL diagram is read-only. To edit the<br />

diagram you must open the business process host class in <strong>Ensemble</strong> Studio. Appears only if you select a BPL business<br />

process.<br />

• View Rules — Navigate to the <strong>Ensemble</strong> Message Routing Rule Editor. Appears only if you select a message routing<br />

business process.<br />

• Queue — Display the contents of the [<strong>Ensemble</strong>] > [Queues] > [Contents] page for this configuration item only in the<br />

lower portion of the page. Appears only if you select a business process or a business operation.<br />

• Test — Navigate to the <strong>Ensemble</strong>, Testing Service pages. The Test command works only when the production that<br />

contains this business host is running with testing enabled. Appears only if you select a business process or a business<br />

operation.<br />

• Help — View context-sensitive information about this page.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 55


Configuration<br />

Beneath the row of commands are the settings you can configure for a business service, process, or operation. They are<br />

grouped into the following three categories:<br />

• General Settings<br />

• Specific Settings<br />

• Defaults for Specific Settings<br />

5.2.2.1 General Settings<br />

The configuration page permits you to view or edit the following General Settings for a business host:<br />

Name<br />

Comment<br />

Schedule<br />

Category<br />

Class<br />

By default, the Name field takes the value of the business host class name from the class definition in the source<br />

code. However, you can give a business host a name for any purpose.<br />

For example, if you have a business service class that communicates with a specific type of server, and you use<br />

to communicate with the same type of server in different enterprise locations, you must configure the business<br />

service with different settings to communicate with each enterprise location, even though the type of server is the<br />

same. Each different configuration of the business service must have a different Name in the diagram, while the<br />

Class actually remains the same. All of the configuration settings listed in this topic apply to the business host<br />

identified by Name.<br />

An optional text description.<br />

An optional command string that schedules the business host to be stopped and started at specific times and on<br />

specific days of the week, month, or year. The string is a comma-separated list of event specifications, each of<br />

which has the following format:<br />

action:YYYY-MM-DDThh:mm:ss<br />

Where action is either START or STOP to indicate the desired event. For full details of the Schedule string, see<br />

the “Scheduling Configuration Items” section in the “What to Manage” chapter.<br />

An optional text label. When you are viewing the production configuration diagram, you can right-click on the<br />

background of the diagram, then choose Show Category and a category name from the context menu. The diagram<br />

changes to reveal only those configuration items that match the Category name you have just selected. Category<br />

names are case-sensitive, and space characters are allowed. To place an item in multiple categories, list them in<br />

the Category field, separated by commas. Do not put spaces around these commas. For details, see the “Assigning<br />

Configuration Items to Categories” section in the “What to Manage” chapter.<br />

The business host class name. This field has a gray background, which means it is read-only. If you want to change<br />

this field, click Change Class and choose a different host class name.<br />

For example, you might change the class of a business service that you have already configured if an enterprise<br />

that you communicate with upgrades to a different type of server. This could happen even if the purpose of the<br />

business service remains unchanged, such as Our Data Feed from Client X. A change in server on the<br />

56 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Configuration Settings<br />

Description<br />

Enabled<br />

Foreground<br />

external side might mean that the business service now needs a different class of adapter to communicate with the<br />

other enterprise. This would indicate a change to the Class field. The Name field allows continuity across this<br />

change.<br />

If you change the host class, the General Settings retain their values, but you must configure the Specific Settings,<br />

as these may be entirely different for the new host class.<br />

Comments that describe the business host class. This read-only field displays the first line of the class annotation<br />

in the code. If there is no annotation in the code, the Description field contains the text N/A.<br />

By default, the Enabled check box is selected for every business host. When you select Enabled, the business host<br />

— identified by Name — is enabled. When a business host is enabled, it is registered with the production, and<br />

instances of the business host accepts and processes messages whenever the production runs. You can clear the<br />

Enabled check box, if needed.<br />

For example, if there is a communications breakdown on the external side, an email server goes down, or something<br />

similar happens, you can disable the associated business service until throughput is restored. When the Enabled<br />

check box is clear, the business service is still present in the configuration, and its queue continues to accept<br />

messages, but none of these messages are processed until the business service is enabled again.<br />

By default, this check box is clear. Select it for debugging or diagnostic purposes only. Jobs in operational systems<br />

almost never run in the foreground. When the Foreground check box is selected, any system jobs used by the<br />

business service run in a Caché Terminal window at the front of the console display. This allows debugging or<br />

trace messages to be displayed in the Terminal window. See the section “Testing and Debugging <strong>Productions</strong>”<br />

in the “Creating a New Production” chapter of Developing <strong>Ensemble</strong> <strong>Productions</strong>.<br />

Log Trace Events<br />

Trace messages are informational text messages that <strong>Ensemble</strong> can deliver to the Terminal window and, optionally,<br />

to the <strong>Ensemble</strong> event log. Trace messages are unrelated to Visual Trace, which provides a graphical view of<br />

<strong>Ensemble</strong> message objects as they travel through a production.<br />

By default, the Log Trace Events check box is clear. When selected, it enables logging of all trace messages issued<br />

by this business host. Logging means that <strong>Ensemble</strong> will write the trace messages to the console Terminal window<br />

(as usual) but it will also automatically store copies of these messages in the event log.<br />

Inactivity Timeout<br />

Pool Size<br />

A business host has an Inactive status after it has not received any messages within the number of seconds specified<br />

by the Inactivity Timeout field. The <strong>Ensemble</strong> Monitor Service periodically reviews the status of business services<br />

and business operations within the production, and marks the item as Inactive if it has not done anything within<br />

the Inactivity Timeout period. The business host status (OK, Error, Inactive) can be seen on the [<strong>Ensemble</strong>] > [Host<br />

Monitor] page. The default value is 0 (zero). If a business host has an Inactivity Timeout setting of 0, it will never<br />

be marked Inactive, no matter how long it stands idle.<br />

Specifies how many system jobs to allocate to run this business host; the default is 1. Other values are appropriate<br />

in specialized circumstances as described in the General Settings notes for the particular business host type.<br />

For a full discussion of appropriate pool sizes for different types of production, see the Pool Size section in the<br />

“Production Concepts” chapter of Developing <strong>Ensemble</strong> <strong>Productions</strong>.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 57


Configuration<br />

From the Production Configuration page, click Apply to save all your setting updates.<br />

5.2.2.2 Specific Settings<br />

Each type of business host has specific settings depending whether it is a service, process, or operation. When you hover<br />

the cursor over a field name, if there is a description of this field in the class code, its description displays. Validation for<br />

the data you enter is performed using the data types in the class code.<br />

Under Specific Settings, the additional fields you can configure depend on the details of the business host class. Most<br />

business hosts have the following settings:<br />

Alert On Error<br />

Archive IO<br />

When Alert On Error is set to True, as soon as the business host encounters any type of error condition it automatically<br />

triggers an alert. An alert writes a message to the <strong>Ensemble</strong> event log and can also send notification to a<br />

user via email or pager. For details, see the Alerts section in the “Creating a New Production” chapter of Developing<br />

<strong>Ensemble</strong> <strong>Productions</strong>.<br />

If True, the adapter associated with this business service or operation logs in the <strong>Ensemble</strong> I/O archive each input<br />

and output communication it shares with the external system. See the Working with the I/O Archive section in<br />

the “What to Manage” chapter.<br />

The following sections provide details for the specific business host type:<br />

• Business Service Settings<br />

• Business Process Settings<br />

• Business Operation Settings<br />

5.2.2.3 Defaults for Specific Settings<br />

When you click the default setting icon on the configuration page for a specific business service, process, or operation,<br />

the Select Defaults for Specific Settings dialog box displays a table where you can view the setting values and, if appropriate,<br />

select to use the default values for the settings. The table contains the following information.<br />

Column<br />

Default command<br />

Property<br />

Target<br />

Type<br />

Value<br />

Default<br />

Default Source<br />

Description<br />

Command displays only if the source of the current value is not a default.<br />

Name of the property setting.<br />

Indicates if the property is for a host or adapter.<br />

Data type of the property.<br />

Current value for the setting.<br />

Default value for this setting.<br />

Source of the default value:<br />

• class definition<br />

• default setting<br />

58 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Configuration Settings<br />

Column<br />

Value Source<br />

Description<br />

Source of the current value:<br />

• class definition<br />

• default setting<br />

• production definition<br />

If a setting row does not have a Default command in the first column, either the value is already set to the default or a default<br />

value does not exist.<br />

1. To update a business host setting to a default value, click Default in the left column to initiate the following actions:<br />

• The Default value as defined in the production class or by a default setting is placed in Value.<br />

• Default command becomes disabled.<br />

• The property field background becomes yellow to indicate that you have modified the field.<br />

• The property label becomes either green or blue depending on the Default Source.<br />

2. If you make a mistake and want to return to the original values, click Reset; the table settings refresh to the setting<br />

values before you made any changes.<br />

3. Once you verify your changes, click OK to update the settings to the default values and transfer back to the Production<br />

Configuration page with your new settings. The color of the setting labels now reflect any changes you made using the<br />

defaults and any value that has been updated has a yellow background.<br />

The yellow background color for a field means that this field has been modified, whether you type in a new value, or<br />

click Default in the Select Defaults for Specific Settings dialog box.<br />

4. Click Apply to save all your setting updates.<br />

Important:<br />

Updates to default values only take effect when you click Apply on the Production Configuration page.<br />

5.2.3 Business Service Settings<br />

When you select a business service in the configuration diagram on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page,<br />

the runtime settings for this business service display in the lower portion of the page. For the most part, these settings<br />

describe how the service communicates with the specific external entity from which it receives requests.<br />

General Settings<br />

The configuration page permits you to view or edit the General Settings described in a previous section with the following<br />

additional notes that apply specifically to business services:<br />

Pool Size<br />

You must use a value of 0 if the business service is being invoked via the Ens.Director method CreateBusinessService;<br />

this is called an adapterless business service.<br />

You may use a value greater than 1 with File or FTP inbound adapters if you want multiple jobs competing to pull<br />

files from the same input directory, or if you have a TCP Service configured with an exclamation point (!) to<br />

make it initiate the connection.<br />

Specific Settings<br />

The configuration page permits you to view or edit Specific Settings for the inbound adapter associated with a business<br />

service:<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 59


Configuration<br />

Adapter Class<br />

The class name for the inbound adapter associated with this business service, or if there is no associated<br />

adapter class. This field has a gray background because it is read-only. Its value is determined by the business<br />

service class definition in the source code.<br />

Adapter SETTINGS<br />

Below the Adapter Class, various other fields display. The exact fields vary depending on the adapter class.<br />

Whatever is listed in the SETTINGS parameter for the business service class or its associated adapter class appears<br />

in the Specific Settings. When you hover the cursor over a field name, if there is a description of this field in the<br />

class code, its description displays. Validation for the data you enter is performed using the data types in the class<br />

code.<br />

Alert Grace Period<br />

Call Interval<br />

Credentials<br />

Business services can be configured with an Alert Grace Period during which errors relating to external connections<br />

do not trigger alerts, even if Alert On Error is True. The Alert Grace Period is allowed to elapse, giving the business<br />

service and the external source time to reestablish their connection. If the error condition still exists after the Alert<br />

Grace Period, the business service triggers an alert; otherwise no alert is triggered.<br />

Setting Alert Grace Period to 0 disables this feature for the business service.<br />

Many inbound adapters have a configurable setting called Call Interval. This integer determines how frequently<br />

the business service invokes the associated inbound adapter to obtain new input. Call Interval has a minimum of<br />

0.1 seconds. The default is 5 seconds.<br />

Some inbound adapters make remote connections that require a username and password. <strong>Ensemble</strong> stores these<br />

login credentials in a centralized table that can be viewed and edited only by users with access to the [<strong>Ensemble</strong>]<br />

> [Maintenance] > [Credentials] page. Each entry in the Credentials table has an ID by which you can refer to it<br />

when configuring adapters for the production.<br />

If an inbound adapter requires credentials, the Specific Settings include a Credentials field. If this field is present,<br />

it must contain an ID from the table on the [<strong>Ensemble</strong>] > [Maintenance] > [Credentials] page. If there is no current<br />

Credentials entry for the remote system that this business service needs to connect to, you must create it. After<br />

creating the new entry in the [<strong>Ensemble</strong>] > [Maintenance] > [Credentials] page, go back to the configuration page<br />

and enter the new ID in the Credentials field.<br />

5.2.4 Business Process Settings<br />

When you select a business process in the configuration diagram on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page,<br />

the runtime settings for this business process display in the lower portion of the page. For the most part, these settings<br />

describe how the process communicates with other items within <strong>Ensemble</strong>.<br />

General Settings<br />

The configuration page permits you to view or edit the General Settings described in the previous section with the following<br />

additional notes that apply specifically to business processes:<br />

• Enabled — When you clear this check box, the Ens.Actor queue continues to accept messages addressed to it, but none<br />

of these messages are processed until you enable the business process again.<br />

• Pool Size — This number could be larger to allow higher throughput in some circumstances. If this number is 0, the<br />

business process has no private pool of jobs, and uses jobs from the public actor pool for the production.<br />

60 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Configuration Settings<br />

Larger numbers are not necessarily helpful; while the potential pool sizes actually range from 0–100, most pool sizes<br />

are best set to either 0 or 1, and there can be serious consequences when sizes are set to a number greater than 1.<br />

Important:<br />

When you disable a business process, it must have a Pool Size = 1 or greater if you want all instances of<br />

only this business process to stop. If the business process has a Pool Size = 0, the action disables all business<br />

processes that share the actor pool. See the Pool Size section in the “Production Concepts” chapter of<br />

Developing <strong>Ensemble</strong> <strong>Productions</strong> for details.<br />

Specific Settings<br />

Under Specific Settings, there may be additional fields you can configure. This depends on the details of the business process<br />

class. Most business processes have the following settings:<br />

Reply Code Actions<br />

Retry Interval<br />

Comma-separated list of code-action pairs, specifying which action the business process takes on receipt of various<br />

reply status conditions.<br />

See Reply Code Actions Setting for details.<br />

Number of seconds to wait between attempts to connect to the output system.<br />

Alert Retry Grace Period<br />

You can configure business processes with an Alert Retry Grace Period during which errors do not trigger alerts,<br />

even if Alert On Error is True. This grace period accommodates a business process that attempts a connection with<br />

a configured Retry Interval and Failure Timeout. During its retry sequence, the business process may encounter<br />

failures that become unimportant after one of its retry attempts succeeds. Thus, if a business process first<br />

encounters an error, but later achieves success within the time allotted by the Alert Retry Grace Period, no alert is<br />

triggered even though an error occurred.<br />

Failure Timeout<br />

Total number of seconds to keep trying to connect with the output system. After this number of seconds has<br />

elapsed, the business process returns an error code.<br />

5.2.5 Business Operation Settings<br />

When you select a business operation in the configuration diagram on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration]<br />

page, the runtime settings for this business operation display in the lower portion of the page. For the most part, these settings<br />

describe how the operation communicates with the specific external entities to which it sends requests.<br />

Specific Settings<br />

The configuration page permits you to view or edit the following Specific Settings for the outbound adapter associated with<br />

a business operation:<br />

Adapter Class<br />

The class name for the outbound adapter associated with this business operation, or if there is no associated<br />

adapter class. This field has a gray background because it is read-only. Its value is determined by the business<br />

operation class definition.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 61


Configuration<br />

Adapter SETTINGS<br />

Below the Adapter Class, various other fields display. The exact fields vary depending on the adapter class.<br />

Whatever is listed in the SETTINGS parameter for the business operation class or its associated adapter class<br />

appears in the Specific Settings. When you hover the cursor over a field name, if there is a description of this field<br />

in the class code, its description displays. Validation for the data you enter is performed using the data types in<br />

the class code.<br />

Reply Code Actions<br />

Retry Interval<br />

Comma-separated list of code-action pairs, specifying which action the business operation takes on receipt of<br />

various reply status conditions.<br />

See Reply Code Actions Setting for details.<br />

Number of seconds to wait between attempts to connect with a destination outside <strong>Ensemble</strong>.<br />

Alert Retry Grace Period<br />

Business operations can be configured with an Alert Retry Grace Period during which errors relating to external<br />

connections do not trigger alerts, even if Alert On Error is True. This grace period accommodates a business<br />

operation that attempts an external connection with a configured Retry Interval and Failure Timeout. During its<br />

retry sequence, the business operation may encounter connection failures that become unimportant after one of<br />

its retry attempts succeeds. Thus, if a business operation first encounters an error, but later achieves success within<br />

the time allotted by the Alert Retry Grace Period, no alert is triggered even though an error occurred.<br />

Setting Alert Retry Grace Period to 0 disables this feature for the business operation.<br />

Failure Timeout<br />

Credentials<br />

Total number of seconds to keep trying to connect with a destination outside <strong>Ensemble</strong>. After this number of<br />

seconds has elapsed, the business operation discards the message data and returns an error code. To ensure that<br />

no message is ever skipped, enter a Failure Timeout value of –1, which means “never time out.” Use a setting of<br />

–1 when complete data delivery is critical, for example in health care applications.<br />

Some outbound adapters make remote connections that require a username and password. <strong>Ensemble</strong> stores these<br />

login credentials in a centralized table that can be viewed and edited only by users with access to the [<strong>Ensemble</strong>]<br />

> [Maintenance] > [Credentials] page. Each entry in the Credentials table has an ID by which you can refer to it<br />

when configuring adapters for the production.<br />

If an outbound adapter requires credentials, the Specific Settings include a Credentials field. If this field is present,<br />

it must contain an ID from the table on the [<strong>Ensemble</strong>] > [Maintenance] > [Credentials] page. If there is no current<br />

Credentials entry for the remote system that this business operation needs to connect to, you must create it. After<br />

creating the new entry in the [<strong>Ensemble</strong>] > [Maintenance] > [Credentials] page, go back to the configuration page<br />

and enter the new ID in the Credentials field.<br />

5.2.6 Reply Code Actions Setting<br />

The Reply Code Actions setting allows you to supply a comma-separated list of code-action pairs, specifying which action<br />

the business host takes on receipt of various reply status conditions. The format of the list is:<br />

code=actions,(code,code)=actions, ... code=action<br />

The following table lists the types of reply status condition identified by code.<br />

62 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Configuration Settings<br />

Table 5–2: Code Values for Reply Code Actions<br />

Code<br />

E<br />

E#statuscode<br />

E*text<br />

X<br />

Meaning<br />

Error status returned from message handler.<br />

Error status returned from message handler has status code equal to statuscode.<br />

Error status returned from message handler contains text string text.<br />

There is no reply message object at all.<br />

The following values for action may be used alone or combined to form strings.<br />

Table 5–3: Action Values for Reply Code Actions<br />

Action<br />

C<br />

W<br />

R<br />

S<br />

D<br />

F<br />

Meaning<br />

Treat the document as Completed OK.<br />

Log a warning but treat the document as Completed OK.<br />

Retry the message according to the configured Retry Interval and Failure Timeout settings; finally Fail,<br />

unless a different action is also specified.<br />

Suspend the message, log an error, and move on to try the next message (the default).<br />

Disable the business process or operation, log an error, and restore the outbound message to the<br />

front of the business host queue.<br />

When you choose the disable action for a business process, you must configure the business with<br />

a Pool Size = 1 or greater if you want all instances of only this business process to stop. If the business<br />

process has a Pool Size = 0, the disable action disables all business processes that share the actor<br />

pool. See the Pool Size section in the “Production Concepts” chapter of Developing <strong>Ensemble</strong><br />

<strong>Productions</strong> for details.<br />

Fail with an error and move on to try the next message.<br />

For example:<br />

E#6301=R,E#ErrGeneral=R,E=F<br />

The default value for the Reply Code Actions string is:<br />

E=F<br />

Which means when there is an error, fail and move on to try the next message.<br />

All codes where the actions consists of only W (log a Warning) are evaluated and warnings generated if they trigger. Other<br />

codes are evaluated in left-to-right order, executing the first one that triggers that has a non-warning actions value.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 63


6<br />

System Monitor<br />

The [<strong>Ensemble</strong>] > [System Monitor] page displays real-time status information about the currently running production in a<br />

condensed, one page format.<br />

You can display the System Monitor page by choosing System Monitor from the <strong>Ensemble</strong> Management Portal main menu.<br />

You can return to the <strong>Ensemble</strong> home page by clicking [<strong>Ensemble</strong>] in the title bar navigation path.<br />

The main display area of the [<strong>Ensemble</strong>] > [System Monitor] page is laid out as a grid containing the following tables:<br />

• Input Connections (upper left) lists all incoming connections from external systems.<br />

• Output Connections (upper right) lists all outgoing connections to external systems.<br />

• Queues (lower left) lists the status of <strong>Ensemble</strong> internal message queues and how many messages are currently waiting<br />

in each queue.<br />

• Event Log (lower right) summarizes recent entries in the event log.<br />

Each entry provides an icon and color to indicate the item’s status. For connections and queues:<br />

•<br />

•<br />

Green dot — Active and OK.<br />

Yellow dash — Currently inactive, but otherwise OK.<br />

For the event log:<br />

•<br />

•<br />

•<br />

Red ! — Error.<br />

Orange W — Warning.<br />

Yellow A — Alert.<br />

For any entry displayed in a table on this grid, you can click its name to display useful details and links to more information.<br />

These links appear in the vertical display area at left, under the Auto update check box. Clear the Auto update check box<br />

to disable frequent real-time updates of the information on the System Monitor page.<br />

You can extend the System Monitor page to show information from user-defined business metric classes. These are the<br />

same business metric classes that support <strong>Ensemble</strong> dashboards. Perform the following steps to add entries to the System<br />

Monitor page:<br />

1. Define a business metric class and add it to your production. For background information, see the “Business Metrics”<br />

chapter in Using Dashboards with <strong>Ensemble</strong>.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 65


System Monitor<br />

2. Set the ^Ens.Monitor.Settings global in your namespace. This global indicates which business metrics are<br />

supplying additional data to the System Monitor page. For each business metric, supply three ObjectScript statements,<br />

similar to the following:<br />

Set ^Ens.Monitor.Settings("MetricClasses",1,"Metric") = "MetricConfigName"<br />

Set ^Ens.Monitor.Settings("MetricClasses",1,"Title") = "Title for Display"<br />

Set ^Ens.Monitor.Settings("MetricClasses",1,"Instance") = "MetricInstanceName"<br />

Where:<br />

• These statements are appropriate for the first business metric you add. For additional business metrics, in place<br />

of the number 1, use an integer n where n is the same for all three statements. Increase n by 1 for each additional<br />

business metric class that you want to display on the System Monitor page.<br />

• In place of "MetricConfigName" provide the configured name of the business metric component. (If you do<br />

not enter a name when you add the metric to the production, the component name defaults to the class name.)<br />

• If you do not supply the statement that sets the "Title" value, the value of "Metric" is used as a default<br />

"Title".<br />

• In place of "MetricInstanceName" provide the metric instance name. If the metric does not have instances,<br />

you may omit the statement that sets the "Instance" value. If it does have instances and you do not supply a<br />

value, the first instance is used.<br />

For each business metric that you add, the System Monitor page indicates when it last updated the metric information, if<br />

there is any data for the given metric or instance, and whether or not the given metric is currently running. As with any<br />

entry on the System Monitor page, click the metric name to display useful details and links to more information.<br />

66 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


7<br />

Event Log<br />

The [<strong>Ensemble</strong>] > [Event Log] page displays the event log entries for the currently running production. You can display this<br />

page from the <strong>Ensemble</strong> Management Portal as follows:<br />

• From the <strong>Ensemble</strong> Menu — Click Event Log<br />

• From the [<strong>Ensemble</strong>] > [Maintenance] > [Purge] page — Click Show Event Log<br />

There is a Purge command to purge outdated entries from the event log. at the top of the Event Log page.<br />

The <strong>Ensemble</strong> Event Log page has two display areas, one above the other. The top display lists the event log entries recorded<br />

since the production was last started. The bottom display permits you to enter search criteria to filter the list of events. If<br />

the top display is empty when you first open it, click the Search command in the bottom display.<br />

7.1 Event Log Entries<br />

The Event Log top display contains a table. Each row in the table provides the following columns of information about an<br />

event:<br />

• # — An incremental count of the number of entries in the table.<br />

• ID — The unique identifier for the message that comprises this event log entry.<br />

• Time Logged — The date and time when this entry was logged.<br />

• Type — Indicates the type of entry: Alert, Assert, Error, Info, Status, Trace, or Warning.<br />

• Job — The system job that hosted the event.<br />

• Session — The unique identifier for the session that is (or was) associated with this message. A session marks the<br />

beginning and end of all the activities prompted by a primary request message from outside <strong>Ensemble</strong>. The primary<br />

request message has an ID value that is identical to the Session. Several additional messages may be instantiated within<br />

<strong>Ensemble</strong> during the session, in order to fulfill the primary request. All of these messages share the same Session, but<br />

each has a different ID value.<br />

The Session number is a link; click on it to view a visual trace of the session.<br />

• Source — The configuration item (service, process, or operation) that sent the message.<br />

• Method — The host class method that was in progress when the event was logged.<br />

• Text — The text string associated with the event log entry.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 67


Event Log<br />

7.2 Event Log Filter<br />

If you do not see the message you want to view in the Event Log page, you can filter the list of entries. To do so, enter<br />

values in the fields in the lower portion of the page to search for a particular class of event log entries, as follows:<br />

• SortOrder — Select a value from the list: Oldest First or Newest First.<br />

• TimeFormat — Select a value from the list: Time Only or Complete (time with date).<br />

• Source — Enter a value in this field to list all the events logged by a specific host class.<br />

• Method — Enter a value in this field to list all the events logged by a specific method.<br />

• Text — Enter a value in this field to list all the events whose text contains this string.<br />

• Job — Enter a value in this field to find events hosted by a specific system job.<br />

• Color By — Choose a criterion from the list: TimeLogged, Type, Job, Session, Source, Method, Text, or none (blank).<br />

The background color of rows in the Event Log table changes according to your choice.<br />

If the Color By selection is blank, the default background color indicates the event Type as follows:<br />

Color<br />

Yellow, with bold red text<br />

Silver, with red text<br />

Pink, with bold red text<br />

Green, with bold yellow text<br />

Blue, with bold yellow text<br />

Light blue<br />

Orange<br />

White<br />

Indication<br />

Alert<br />

Assert<br />

Error<br />

Production start<br />

Production stop<br />

Trace<br />

Warning<br />

(all others)<br />

• MaxRows — The maximum number of event log entries to display as a result of the search. If more matches are found,<br />

a message displays at the bottom of the table: There is more data. To display the additional data, change the<br />

MaxRows value and click Search again.<br />

• StartId — Enter the lower limit of a range of ID values.<br />

• EndId — Enter the upper limit of a range of ID values.<br />

• StartTime — Enter the lower limit of a range of TimeLogged values.<br />

• End Time — Enter the upper limit of a range of TimeLogged values.<br />

• Session Id — Find all the event log entries associated with a particular session.<br />

• At right, a column of check boxes allows you to limit the display to specific types of event: Assert, Error, Warning,<br />

Info, Trace, or Alert.<br />

Note: Most of these fields support the use of the SQL Like wildcard character (%).<br />

After you have edited these fields, you can click one of the commands at the bottom of the screen:<br />

• Click Search to sort the list of event log entries in the top display using the criteria shown in the bottom display.<br />

68 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Event Log Purge<br />

• Click Reset to redisplay the entries in their default order and return the fields in the bottom display to their default<br />

values.<br />

After you click Search or Reset, the Event Log page refreshes.<br />

7.3 Event Log Purge<br />

You can purge outdated records from the <strong>Ensemble</strong> event log by clicking the Purge command at the top of the Event Log<br />

display. A dialog appears in the bottom half of the screen.<br />

The fields in this form allow to you purge event log entries as follows:<br />

• Type of Record — You are purging the Event Log.<br />

• Current Count — The number in this column reflects the total number of event log entries that are now in the persistent<br />

store for this production. Use the Current Count to decide whether or not it is worthwhile to purge the event log at this<br />

time.<br />

• Do not purge most recent — This is the parameter for the purge operation. It tells <strong>Ensemble</strong> how many days’ worth of<br />

event log entries to keep. The number can be 0 (zero), which keeps nothing and delete all entries that exist at the time<br />

of the purge operation. The default value for Do not purge most recent is 7, which keeps entries for the last seven days.<br />

The count of days includes “today,” so keeping messages for 1 day keeps the messages generated on the current day,<br />

according to local server time.<br />

At the bottom of the display area is the Start Purge command. If you click this command, <strong>Ensemble</strong> immediately purges<br />

the event log according to the parameters you have entered in the dialog.<br />

CAUTION:<br />

You cannot undo the Start Purge operation.<br />

Note: You can also purge event log entries along with other management data using the [<strong>Ensemble</strong>] > [Maintenance] ><br />

[Purge] page.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 69


8<br />

Message Browser<br />

The <strong>Ensemble</strong> Message Browser allows you to find and view information about the messages that your <strong>Ensemble</strong> production<br />

has sent or queued. You can navigate to this page in the <strong>Ensemble</strong> Management Portal in one of the following ways:<br />

• Click Message Browser on the <strong>Ensemble</strong> menu.<br />

• Click Show Messages at the top of the [<strong>Ensemble</strong>] > [Maintenance] > [Purge] page.<br />

There is no menu on the <strong>Ensemble</strong> Message Browser page. You can return to the <strong>Ensemble</strong> home page by clicking<br />

[<strong>Ensemble</strong>] in the navigation path.<br />

The Message Browser features two display areas, one above the other:<br />

• Message List — The upper display lists messages in the persistent message store for the selected namespace.<br />

• Message Filter — The lower display permits you to enter search criteria to filter the list of messages.<br />

If the upper display is empty, click Search in the lower display. If the lower display is empty, click [Messages] in the navigation<br />

path.<br />

The <strong>Ensemble</strong> Message Browser also contains two commands above the message list:<br />

• Compare Messages — Click to display the message contents of two messages side by side; choose them by selecting<br />

the check box next to exactly two messages in the list. (To return to the Message Browser page from the contents display,<br />

click the browser’s Back command.)<br />

• Resend Messages — Click after selecting the check box of one or more messages to navigate to the Resend Messages<br />

page.<br />

8.1 Message List<br />

The Message Browser upper display contains a table. Each row in the table provides the following columns of information<br />

about a message:<br />

• Check box — Mechanism for selecting messages for the compare and resend commands.<br />

• # — An incremental count of the number of entries in the table.<br />

• ID — The unique identifier for the instantiated message; the object identifier () of the message header.<br />

• TimeCreated — The date and time when this message was instantiated.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 71


Message Browser<br />

• Session — The unique identifier for the session that is (or was) associated with this message. A session marks the<br />

beginning and end of all the activities prompted by a primary request message from outside <strong>Ensemble</strong>. The primary<br />

request message has an ID value that is identical to the Session. Several additional messages may be instantiated within<br />

<strong>Ensemble</strong> during the session to fulfill the primary request. All of these messages share the same Session, but each has<br />

a different ID value.<br />

You can click the Session number in any row of the table to see a visual trace of the message object through the production.<br />

• Status — Indicates the status of the message within its normal life cycle: Created, Queued, Delivered, Deferred,<br />

Completed, Discarded, or Suspended. If there is a request-response pair, the value does not indicate an overall status<br />

for the pair; a request may end up with a different Status from its corresponding response.<br />

A message in transit has a Status of Created, until it finds its place on a queue, when it becomes Queued. A message<br />

that reaches its destination is at first Delivered, then finally Completed. An asynchronous response is Discarded if it<br />

arrives after the timeout period for the corresponding request expired. A message response can been Deferred by a<br />

business operation to be sent later on; when a Deferred message is finally sent, it has a Status of Completed.<br />

Some business operations are designed to set the status of any failed messages to Suspended. Alternatively, an<br />

administrator can suspend a message from the Instances display on the [<strong>Ensemble</strong>] > [Host Monitor] page. In either<br />

case, such a message goes on a special queue where <strong>Ensemble</strong> keeps all Suspended messages. An administrator can<br />

use the [<strong>Ensemble</strong>] > [Maintenance] > [Suspended] page to examine Suspended messages, diagnose the problem, and<br />

if possible resend the Suspended messages after the problem is fixed.<br />

• Error — A quick overview of the results returned by the message to the configuration item that sent it, the Error field<br />

can have the values OK, Error, Retry, or Inactive.<br />

OK means normal behavior; Retry means the message experienced a failure but the item that sent it is configured to<br />

retry the failed message. Error means an error was reported somewhere in the activity. Inactive means that the item<br />

that sent the message has been idle for longer than its Inactivity Timeout setting, and may require diagnostic action.<br />

When you filter messages for diagnostic purposes, you can use the Error field to quickly select only those messages<br />

with errors.<br />

• Source — The configuration item (service, process, or operation) that sent the message.<br />

To the right of each row are four commands which you can click to display additional message information:<br />

• Details — Display the fields in the message object in the bottom half of the Message Browser display.<br />

• Contents — View the contents of the message body in an appropriate format.<br />

• Trace — Visually trace the path of the message object through the production.<br />

• Report — Display all the fields in the message header and message body in XML format.<br />

The default background color of rows in the Message Browser table indicates the message’s Status as shown in the following<br />

table.<br />

Color<br />

Red<br />

Orange<br />

Green<br />

Silver<br />

Orange<br />

Indication<br />

The message encountered an Error.<br />

The message is Queued.<br />

The message marks the start of a session.<br />

The message arrived after a timeout expired and is marked as Discarded.<br />

The message is Suspended.<br />

72 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Message List<br />

Color<br />

White and pale blue,<br />

in alternating rows<br />

Indication<br />

These messages are OK.<br />

8.1.1 Message Details<br />

If you select a message in an <strong>Ensemble</strong> Management Portal page and click Details, additional message information displays<br />

in the lower portion of the screen.<br />

You can display message details by clicking Details next to the message displayed on the following pages of the <strong>Ensemble</strong><br />

Management Portal:<br />

• [<strong>Ensemble</strong>] > [Messages]<br />

• [<strong>Ensemble</strong>] > [Messages] > [Visual Trace] (click on a specific message in the trace)<br />

• [<strong>Ensemble</strong>] > [Queues] > [Contents]<br />

• [<strong>Ensemble</strong>] > [Maintenance] > [Suspended]<br />

Details of the selected message display in the lower portion of the page. The left side of the display shows the entire contents<br />

of the Message Header. Fields include:<br />

• Type — The message type, Request or Response.<br />

• — The object identifier for the message header. Whenever a message header and message body are combined<br />

together as a message, the ObjectId value in the header is used to identify the combined message object. As a result,<br />

this value is the same as the message ID listed in the Message Browser and other pages in the <strong>Ensemble</strong> Management<br />

Portal.<br />

• Priority — The priority of the message relative to others in the queue: RealTime (1), High (2), Normal (3), or Low (4).<br />

The <strong>Ensemble</strong> messaging engine assigns priority values to messages automatically, in the course of normal processing,<br />

for its own use. Message priority cannot be programmed into a message class or configured in any way. Priority values<br />

are based in part on whether the message is synchronous (High) or asynchronous (Normal). Also, messages that start<br />

or stop a production are assigned greater priority than other types of message.<br />

• Invocation — The style of invocation for message: Queue or Inproc.<br />

Inproc means the message is formulated, sent, and delivered in the same process in which it was created. The job is<br />

not released to the sender’s pool until the message is delivered to the target.<br />

Queue means the message is created in one job, then placed on a queue, at which time the original job is released.<br />

Later, when the message is processed, a different job is allocated for the task.<br />

• TimeCreated — The message creation time stamp. For Queue messages, this is the time when <strong>Ensemble</strong> placed this<br />

message on the queue. For Inproc messages, this is the time when <strong>Ensemble</strong> called the Send method.<br />

• TimeProcessed — The message usage time stamp. For Queue messages, this is the time when <strong>Ensemble</strong> took the<br />

message off the queue to be processed. For Inproc messages, this is the time when <strong>Ensemble</strong> began processing the<br />

message. For Inproc messages, TimeProcessed will be very close to TimeCreated.<br />

• Status — Indicates the status of the message within its normal life-cycle: Created, Queued, Delivered, Deferred,<br />

Completed, Discarded, or Suspended. If there is a request-response pair, the value does not indicate an overall status<br />

for the pair; a request may end up with a different Status from its corresponding response.<br />

A message in transit has a Status of Created, until it finds its place on a queue, when it becomes Queued. A message<br />

that reaches its destination is at first Delivered, then finally Completed. An asynchronous response is Discarded if it<br />

arrives after the timeout period for the corresponding request expired. A message response can been Deferred by a<br />

business operation to be sent later on; when a Deferred message is finally sent, it has a Status of Completed.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 73


Message Browser<br />

Some business operations are designed to set the status of any failed messages to Suspended. Alternatively, an<br />

administrator can suspend a message from the Instances display on the [<strong>Ensemble</strong>] > [Host Monitor] page. In either<br />

case, such a message goes on a special queue where <strong>Ensemble</strong> keeps all Suspended messages. An administrator can<br />

use the [<strong>Ensemble</strong>] > [Maintenance] > [Suspended] page to examine Suspended messages, diagnose the problem, and<br />

if possible resend the Suspended messages after the problem is fixed.<br />

• IsError — An integer value of 1 means that IsError is true; the message encountered an error. A value of 0 means<br />

IsError is false; the message did not encounter any errors.<br />

• ErrorStatus — If IsError is 1, then this is the text associated with the error. When IsError is 0, ErrorStatus is the string<br />

“OK”.<br />

• CorrespondingMessageId — If the message Type is a Response, this field contains the ObjectId of the corresponding<br />

request. If the message Type is a Request, this field contains the ObjectId of the corresponding response (if any) or it<br />

is blank.<br />

• SessionId — The unique identifier for the session that is (or was) associated with this message. A session marks the<br />

beginning and end of all the activities prompted by a primary request message from outside <strong>Ensemble</strong>. The primary<br />

request message has an ID value that is identical to the SessionId. Several additional messages may be instantiated<br />

within <strong>Ensemble</strong> during the session, in order to fulfill the primary request. All of these messages share the same SessionId,<br />

but each has a different ID value.<br />

• SourceConfigName — The name of the configuration item that sent the message.<br />

• TargetConfigName — The name of the configuration item that was intended to receive the message.<br />

• SourceBusinessType — BusinessService, BusinessProcess, BusinessOperation, or Unknown.<br />

• TargetBusinessType — BusinessService, BusinessProcess, BusinessOperation, or Unknown.<br />

• BusinessProcessId — Every business process that gets executed has an instance and this is the object ID of that instance.<br />

If the message is a request, this field identifies the business process in whose context the message was created (sender).<br />

If the message is a response, this field identifies the business process to which it is being returned (receiver). This field<br />

is empty in various circumstances, for example if an error occurred.<br />

• TargetQueueName — The destination “address” for the message: Where is it going The TargetQueueName may be a<br />

name or a number. A name identifies a public queue, such as Ens.Actor. A number is the job ID associated with the<br />

private queue of a business host.<br />

• ReturnQueueName — The return “address” for the message: Where did it come from The ReturnQueueName may<br />

be a name or a number. A name identifies a public queue, such as Ens.Actor. A number is the job ID associated with<br />

the private queue of a business host. The ReturnQueueId value is listed even if there is no response expected or needed<br />

for a particular request message type.<br />

• MessageBodyClassName — The class name for the message body.<br />

• MessageBodyId — The object identifier for the message body. This field matches the field in the Message<br />

Body table.<br />

The right side displays the Message Body information. Fields include:<br />

• Message Body: Message Type — The message body class name.<br />

• If the message body is a standard <strong>Ensemble</strong> message body object, a table displays the following information:<br />

– — The object identifier for the message body. This field matches the MessageBodyId field in the<br />

Message Header table.<br />

– The name and value of each property in the Message Type class.<br />

If the message body is any other type, there are no additional fields in the display.<br />

74 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Message List<br />

• Contents — Click to view the message contents.<br />

8.1.2 Message Contents<br />

If you select a specific message in an <strong>Ensemble</strong> Management Portal page and request to view its contents, the information<br />

displays in the lower half of the screen.<br />

You can display message contents from various locations in the <strong>Ensemble</strong> Management Portal, as follows:<br />

• [<strong>Ensemble</strong>] > [Messages]:<br />

– Select a message and click Contents<br />

– Select two check boxes in the column at far left, and click Compare Messages. This displays the contents of two<br />

messages side by side. To return to the [<strong>Ensemble</strong>] > [Messages] page, click the browser’s Back command.<br />

– While viewing message Details, click Contents.<br />

• [<strong>Ensemble</strong>] > [Messages] > [Visual Trace] — Select a message and click Contents.<br />

The standard <strong>Ensemble</strong> message body appears in colorized XML format, as shown in the following example:<br />

Figure 8–1: Standard <strong>Ensemble</strong> Message Body Contents in XML Format<br />

A virtual document, such as an HL7 message, appears in segments, with one segment visible per line, as shown in the following<br />

figure:<br />

Figure 8–2: HL7 Virtual Document Contents in Message Segment Format<br />

For HL7 messages, from left to right, each line displays:<br />

• The segment number on a white background: 1, 2, 3, etc.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 75


Message Browser<br />

• The segment name on a shaded background: MSH, PID, etc. If you hover the cursor over a segment name in the shaded<br />

column, a tooltip describes the purpose of the message segment.<br />

• The field contents and separator characters as provided in the message. If you hover the cursor over a field in this display,<br />

a tooltip provides syntax information that a developer can use to access fields within the message body from <strong>Ensemble</strong><br />

data transformations and routing rules.<br />

To view the contents of an entire virtual document, it may be necessary to drag the bottom scroll bar far to the right,<br />

depending on the amount of data in the message. For more about working with HL7 messages in the <strong>Ensemble</strong> Management<br />

Portal, see the “Viewing and Transforming HL7 Messages” chapter in the <strong>Ensemble</strong> HL7 Version 2 Development Guide.<br />

For more about virtual documents, see <strong>Ensemble</strong> Virtual Documents.<br />

8.1.3 Visual Trace<br />

Click Trace next to a message in the <strong>Ensemble</strong> Management Portal to display the [<strong>Ensemble</strong>] > [Messages] > [Visual Trace]<br />

page. The <strong>Ensemble</strong> Visual Trace page visually traces a specific message instance as it travels (or as it did travel) through<br />

the currently running production. You can also optionally display any relevant entries logged within the <strong>Ensemble</strong> event<br />

log among the messages in the trace.<br />

You can display the Visual Trace page by clicking Trace from the following pages in the <strong>Ensemble</strong> Management Portal:<br />

• [<strong>Ensemble</strong>] > [Messages]<br />

• [<strong>Ensemble</strong>] > [Queues] > [Contents]<br />

• [<strong>Ensemble</strong>] > [Maintenance] > [Suspended]<br />

• [<strong>Ensemble</strong>] > [Testing Service - 4 of 4] results page, after a testing session<br />

There is no menu on the Visual Trace page. You can return to the home page by clicking [<strong>Ensemble</strong>] in the navigation path.<br />

Under the Visual Trace page title bar are two display areas, one above the other. The top display contains a visual representation<br />

of message activity. The bottom display contains fields that permit you to select messages for visual display. You<br />

can drag the boundary between the displays to resize them as needed. In some cases you must use the scroll bars to see the<br />

full contents of either display.<br />

The Visual Trace page top display has three columns. Each column represents an <strong>Ensemble</strong> configuration item that can<br />

exchange messages with the other <strong>Ensemble</strong> configuration items shown on the page. These are:<br />

• Business Services (the column at left)<br />

• Business Processes (the column at center)<br />

• Business Operations (the column at right)<br />

76 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Message List<br />

Figure 8–3:The Visual Trace Page<br />

When a message has traveled from one item to the next, an arrow connects the two items. The arrow is a horizontal line<br />

across the vertical columns that represent the items: Services, Processes, or Operations. The direction of the arrow indicates<br />

the path of the message, as follows:<br />

• The source item, marked with a circle, is the item that sends the message. The arrow points away from the source item.<br />

• The target item, marked with a rounded rectangle, is the item that receives the message. The arrow points toward the<br />

destination item.<br />

Each arrow in the Visual Trace page carries three fields of information:<br />

• A number in square brackets at left is the message identifier — the ID field displayed in the Message Browser display.<br />

If there are multiple messages in the Visual Trace display you can distinguish between them easily using this number.<br />

• A date and time above the arrow identifies TimeCreated — the date and time when this message was instantiated.<br />

• The name below the arrow is the message name. The configuration item that sent the message is identified at the top<br />

of the column. Items are grouped from left to right, as follows: Services, Processes, and Operations.<br />

Normal request message arrows are blue; responses are green. If a message encountered an error, its arrow is red.<br />

If there are more than 100 messages in the Visual Trace display, the list is displayed in groups of 100. At the bottom of the<br />

page is a row of commands that you can click to choose which group of messages to view: 0–100, 101–200, 201–300, and<br />

so on.<br />

If you click on an arrow in the Visual Trace page, the definition of that specific message is displayed in the bottom half of<br />

the screen. This is the same display that you see when you click Details in the [<strong>Ensemble</strong>] > [Messages] page.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 77


Message Browser<br />

When you have selected a message in the Visual Trace page, you can click Contents to view the contents of the message<br />

in an appropriate format.<br />

You can right-click anywhere on the diagram in the top display to reveal the Visual Trace page context menu. The following<br />

menu options are available:<br />

• Zoom — Choose a zoom factor for the Visual Trace diagram. Choose a large factor to view details, a small factor to<br />

gain an overview.<br />

• Search — Search for a message according to the search criteria entered in the bottom half of the display.<br />

• Find, Find Again — Search for a text string in the underlying XML document. When found, the corresponding string<br />

is highlighted in the Visual Trace page top display.<br />

• Left-click on a segment in the Visual Trace page top display to select it. Right-click and choose Show Details. The<br />

bottom display provides detailed information about that segment of the message’s path through the production.<br />

• Left-click on a segment in the Visual Trace page top display to select it. Right-click and choose Show Contents. The<br />

bottom display shows the message contents that were transmitted on this segment of the message’s path through the<br />

production.<br />

• Legend — Reveal a popup guide to the conventions used for message arrows. This guide is the Visual Trace Legend,<br />

shown in the following figure:<br />

• View Source — Display the SVG code that displays the diagram.<br />

• About SVG Viewer — Display version and copyright information about the SVG Viewer used by the Visual Trace page.<br />

Note:<br />

When you view calls in the Visual Trace, synchronous calls from business processes are portrayed as if they were<br />

asynchronous. This does not change the fact that the calls are actually synchronous. It is a side effect of the<br />

internal tracking mechanism that <strong>Ensemble</strong> uses to free system resources while it is waiting for a synchronous<br />

call to return.<br />

When you are done viewing the top half of the Visual Trace page, there are fields in the bottom half of the Visual Trace<br />

page that allow you to select further messages for viewing. If these selection fields are not currently displayed, you can<br />

display them by clicking [Visual Trace] in the navigation bar. This action empties the top display and refreshes the bottom<br />

display with the following fields:<br />

• SessionId — Enter a session identifier, if you know a specific session by number. A session marks the beginning and<br />

end of all the activities prompted by a primary request message from outside <strong>Ensemble</strong>. The primary request message<br />

78 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Message Filter<br />

has an ID value that is identical to the SessionId. Several additional messages may be instantiated within <strong>Ensemble</strong><br />

during the session, in order to fulfill the primary request. All of these messages share the same SessionId, but each has<br />

a different ID value.<br />

• StartId — Enter the lower limit of a range of message ID values.<br />

• EndId — Enter the upper limit of a range of message ID values.<br />

• StartTime — Enter the lower limit of a range of TimeCreated values.<br />

• EndTime — Enter the upper limit of a range of TimeCreated values.<br />

• MaxMessages — The maximum number of messages to display as a result of the search. If more matches are found,<br />

they will not be displayed. Enter a number. The default is 50.<br />

Enter information in these fields and click Search. The Visual Trace top display changes accordingly.<br />

If you do not know the Search details, you cannot continue to use the Visual Trace page. You must first return to the<br />

[<strong>Ensemble</strong>] > [Messages] page to get an idea of what you need, then click Trace next to an entry in the Message Browser<br />

table.<br />

8.2 Message Filter<br />

If you do not see the message you want to view in the Message Browser page, you can filter and search the list of messages<br />

using fields that appears in the bottom half of the screen. There are many options for the filtering task; this topic explains<br />

them in detail.<br />

You can archive a specific set of filter criteria and retrieve it for later use. If you are using an archived filter of this kind,<br />

its name appears at the top of the Message Browser filter display. Below this is a row of commands:<br />

• Search — Sort the message list using the criteria in the bottom display.<br />

• Reset — Redisplay the message list using the default filter criteria.<br />

• Open — Retrieve a previously archived search. <strong>Ensemble</strong> displays a list of the saved searches in this namespace.<br />

Choose one and click OK.<br />

• Save — Save the current search to an archive so that you can retrieve it during a later session. If you are using a previously<br />

archived search, the Save operation overwrites it.<br />

• Save As — Save the current search to a new archive. <strong>Ensemble</strong> displays a dialog in which to enter the name of the<br />

search. Type a name and click OK.<br />

8.2.1 Basic Filter Terms<br />

To refine search criteria, you can edit the following fields in the Message Browser page:<br />

• Type — Choose a value from the list: Session Start, Request, Response, or All (the default).<br />

• Time Format — Select a value from the list: Time Only or Complete (time with date).<br />

• Start Time — Enter the lower limit of a range of Time Created values.<br />

• End Time — Enter the upper limit of a range of Time Created values.<br />

• Sort Order — Select Oldest First or Newest First.<br />

• Color By — Choose a criterion from the list: TimeCreated, SessionId, Status, Error, Source, or none (blank). The<br />

background color of rows in the Message Browser table changes according to your choice.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 79


Message Browser<br />

If the Color By selection is blank, the default background color indicates the message’s Status as described in the<br />

Message List section.<br />

• StartId — Enter the lower limit of a range of message ID values.<br />

• EndId — Enter the upper limit of a range of message ID values.<br />

• MaxRows — The maximum number of messages to display as a result of the search. If more matches are found, a<br />

message displays at the bottom of the table: “There is more data.” To display the additional data, change the MaxRows<br />

value and click Search again.<br />

• Is Error — Select a value from the drop-down list:<br />

– Select true to list only messages that encountered errors.<br />

– Select false to list only messages without errors.<br />

• Status — Choose a value from the list: Created, Queued, Delivered, Deferred, Completed, Discarded, or Suspended.<br />

• Source — The configuration item that sent the message. Enter a name in the text box. If the configuration name contains<br />

spaces, do not use single or double quotation marks around the string. Simply enter the configuration name, including<br />

any space characters.<br />

8.2.2 Detailed Filter Terms<br />

The Message Browser filter display also offers Detailed Filter Terms. This panel of the filter display allows you to select<br />

extremely specific criteria based on the message header or message body contents. The interface is similar to the Rules<br />

Editor interface. You can add rules and define conditions. You can build statements using comparison operators, and<br />

organize statements using the logical operators AND and OR.<br />

From left to right, the columns in each row of the Detailed Filter Terms interface are:<br />

1. Type — Choose a value from the drop-down list.<br />

2. Class Name — Click the More command (...) to choose from a list of classes.<br />

3. Conditions — Allows you to specify fields and values for your logical statement.<br />

The following topics describe how to construct a filter using the Detailed Filter Terms interface.<br />

8.2.2.1 Logical Statements<br />

Each row in the Detailed Filter Terms interface represents a logical statement. To add a statement, click Add. To delete a<br />

statement, click X. After you add multiple rows to the Detailed Filter Terms, you can click the up-arrow and down-arrow<br />

icons to adjust the order of statements.<br />

If you add multiple rows, they are implicitly joined by AND, so that if you have three statements visible:<br />

Logical Statement 1<br />

Logical Statement 2<br />

Logical Statement 3<br />

Your filter actually works like this:<br />

Logical Statement 1<br />

AND<br />

Logical Statement 2<br />

AND<br />

Logical Statement 3<br />

You can vary this convention by adding a row and choosing OR in the Type field, then adding a row with another logical<br />

statement. When you do this, it inserts a logical OR between rows. The row with OR in it has no other details, just the OR<br />

80 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Message Filter<br />

selection in the Type field. Suppose you added an OR row and a fourth logical statement to the list shown above. The<br />

Detailed Filter Terms panel now looks like this:<br />

Logical Statement 1<br />

Logical Statement 2<br />

Logical Statement 3<br />

OR<br />

Logical Statement 4<br />

And the resulting logic is now:<br />

Logical Statement 1<br />

AND<br />

Logical Statement 2<br />

AND<br />

Logical Statement 3<br />

OR<br />

Logical Statement 4<br />

The operator AND binds more tightly than OR, so the effect of the above sequence is actually:<br />

(1 AND 2 AND 3) OR 4<br />

8.2.2.2 Filter Type<br />

In the Type column, choose a value from the drop-down list. The following table lists the Type choices and how they affect<br />

your subsequent choices in the Class Name and Conditions fields.<br />

Table 8–1: Options for Filter Type<br />

Type<br />

Body Property<br />

Header Field<br />

OR<br />

VDoc SearchTable Field<br />

VDoc Segment Field<br />

VDoc Property Path<br />

Class Name and Conditions refer to...<br />

Properties of a standard <strong>Ensemble</strong> message body object.<br />

Fields in a standard <strong>Ensemble</strong> message header object.<br />

(used to logical OR two filter terms)<br />

Entries in a search table class that you have defined in this <strong>Ensemble</strong> namespace.<br />

A search table class is a specialized tool that you create to work with virtual<br />

documents, a convention for representing Electronic Data Interchange (EDI)<br />

formats like HL7 Version 2 or X12.<br />

Fields in a virtual document message segment. Identify the standard (HL7 Version<br />

2 or X12) and the segment of interest. <strong>Ensemble</strong> then prompts you to choose<br />

from a list of fields in that segment.<br />

Fields in a virtual document message segment. Identify the standard (HL7 Version<br />

2 or X12) and then enter a virtual property path that identifies a message segment<br />

and field that is valid for that standard.<br />

Note:<br />

For background information about the VDoc fields in the Detailed Filter Terms interface, see <strong>Ensemble</strong> Virtual<br />

Documents. You do not need to use these fields unless your production routes HL7 Version 2 or X12 messages.<br />

8.2.2.3 Filter Class<br />

In the Class Name column, click ... (the More command). <strong>Ensemble</strong> displays a list of all the classes appropriate for the Type<br />

of message that you have chosen. For example:<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 81


Message Browser<br />

Table 8–2: Options for Filter Class<br />

Type<br />

Body Property<br />

Header Field<br />

OR<br />

VDoc SearchTable Field<br />

VDoc Segment Field<br />

VDoc Property Path<br />

Class Name<br />

Click ... and choose from all the message classes in the <strong>Ensemble</strong> namespace.<br />

—<br />

—<br />

Click ... and choose from all the search table classes in the <strong>Ensemble</strong> namespace.<br />

Click ... and choose from all the virtual document classes in the <strong>Ensemble</strong><br />

namespace.<br />

Click ... and choose from all the virtual document classes in the <strong>Ensemble</strong><br />

namespace.<br />

8.2.2.4 Filter Conditions<br />

In the Conditions column, specify fields and values for your logical statement, from left to right, as follows:<br />

1. Click .... <strong>Ensemble</strong> displays a list of choices appropriate for the Type and Class Name that you have chosen in this row.<br />

For further instructions, see the first table below.<br />

2. Choose a comparison operator from the drop-down list. See the second table below.<br />

3. Type an expression that you intend to match using the selected operator.<br />

Choices in the Conditions panel vary according to your choice of Type. The following table describes the choices.<br />

Table 8–3: Fields and Properties for Message Filter Conditions<br />

Type<br />

Body Property<br />

Header Field<br />

OR<br />

VDoc<br />

SearchTable<br />

Field<br />

Conditions<br />

Click ... and choose from a list of all the properties in the Class Name message class.<br />

—<br />

—<br />

Click ... and choose from a list of all the search table entries defined in the Class Name<br />

search table class.<br />

82 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Message Filter<br />

Type<br />

VDoc Segment<br />

Field<br />

Conditions<br />

You may use the Conditions panel as follows:<br />

1. Ensure that the left-hand Conditions field is empty.<br />

2. Click ... and when prompted, click OK.<br />

3. Choose a schema category and segment name from a list of supported schema<br />

categories and segment names. The contents of this list depend on your Class Name<br />

choice of virtual document type. Click OK to save your selections.<br />

4. A list of fields in the chosen segment displays. Choose a field and click OK.<br />

5. The resulting entry in the left-hand Conditions field looks something like this. This is<br />

an HL7 example. Different specific syntax is offered for X12, but the idea is the same:<br />

2.3.1:[PID:PatientAddress().city]<br />

Instead of selecting options to fill the left-hand Conditions field, you can type a string into<br />

the field, as long as you are careful to use the correct syntax. For HL7, you can type a<br />

numeric references if you prefer them to names, for example [5], [18.1], or 2.3.1:[3().1].<br />

You may edit out the category reference and colon prefix, but keep the square brackets<br />

and their contents intact.<br />

Square brackets differ from curly brackets in that square brackets enclose a segment:field<br />

combination that does not require you to identify its containing message structure. In the<br />

example above, <strong>Ensemble</strong> matches any message structure in the 2.3.1 schema category<br />

that contains a PID segment with a PatientAddress().city field .<br />

VDoc Property<br />

Path<br />

You may use the Conditions panel as follows:<br />

1. Ensure that the left-hand Conditions field is empty.<br />

2. Click ... and when prompted, click OK.<br />

3. Choose a schema category and message structure from a list of supported schema<br />

categories and message structures. The contents of this list depend on your Class<br />

Name choice of virtual document type. Click OK to save your selections.<br />

4. A list of segments and fields in the chosen message structure displays. Choose a<br />

segment:field combination and click OK.<br />

5. The resulting entry in the left-hand Conditions field looks something like this. This is<br />

an HL7 example. Different specific syntax is offered for X12, but the idea is the same:<br />

2.3:ADT_A06:{MSH:SendingFacility.namespaceID}<br />

Instead of selecting options to fill the left-hand Conditions field, you can type a virtual<br />

property path into the field, as long as you are careful to use the correct syntax. Curly<br />

bracket syntax requires a specific message structure, such as ADT_A06, to be identified.<br />

The comparison operator between the two values in a Conditions statement can be any one of the following.<br />

Table 8–4: Comparison Operators for Message Filter Conditions<br />

Operator<br />

=<br />

!=<br />

The condition is true when the value at left is...<br />

Equal to the value on the right.<br />

Not equal to the value on the right.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 83


Message Browser<br />

Operator<br />

><br />

>=<br />

<<br />

, >=,


Resend Messages<br />

8.3 Resend Messages<br />

Your production may have circumstances when something goes wrong with a message and you wish to resend it, or you<br />

want to edit the content of the message before resending it. Select one or more check boxes in the column at the far left of<br />

each message you want to resend on the <strong>Ensemble</strong> Message Browser page and click Resend Messages. The [<strong>Ensemble</strong>] ><br />

[Messages] > [Resend] page displays a table of information about the selected messages. The list displays message information<br />

as described in the following table.<br />

Column<br />

Session<br />

Header<br />

Msg Body<br />

Created<br />

Source<br />

Target<br />

Description<br />

The unique identifier of the session to which this message belongs. Click to view the visual<br />

trace of the primary message object through the production.<br />

The unique identifier for the message header object. The Header number is the same as the<br />

Session number only if this message is the primary request message. Otherwise, it may be<br />

one of the subsequent messages that fulfills the original request. Click to view the visual trace<br />

of this specific message.<br />

The unique identifier for the message body object. Click to view the message contents.<br />

The message time stamp. For Queue messages, this is the time when <strong>Ensemble</strong> placed this<br />

message on the queue. For Inproc messages, this is the time when <strong>Ensemble</strong> called the<br />

Send method.<br />

The name of the configuration item that sent the message.<br />

The name of the configuration item that is the intended recipient of the message; this field<br />

also indicates if the production target is not running.* Click to see the contents of the target’s<br />

message queue.<br />

* You cannot resend a message if the intended target is not running.<br />

Above the list of selected messages next to Resend these messages is a choice of commands to perform on these messages:<br />

• No — Cancel the resend operation and empty the list of messages on the Resend page. Click [Messages] in the navigation<br />

path to return to the <strong>Ensemble</strong> Message Browser page.<br />

• Yes — Resend the messages, either to the original Target, or to the item you identify in the Set New Target field. When<br />

you click Yes, the message table displays with an additional Resend Status column on the left. Any status other than<br />

OK indicates that the resend operation failed.<br />

Any message that you resend retains the same Session identifier and transmits the same Msg Body object, but it acquires<br />

a new Header object with a new identifier to mark its additional trip through the production. Click the Header identifier<br />

to see a visual trace, including both the original message transmission and any resend operations that involve the same<br />

Session and Msg Body. The description in the new message header contains text including the original Header object<br />

identifier indicating that this message has been resent.<br />

• Edit then Resend — Edit a single message before resending; this command is only available if you select exactly one<br />

message on the <strong>Ensemble</strong> Message Browser page. See the Resend Editor section for details.<br />

• Set New Target — You may choose a different Target destination for the message. This must be the name of a configuration<br />

item within the same production. The Set New Target field offers a list of business hosts.<br />

You also have the option to select a check box to Insert resubmitted messages at head of Queue.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 85


Message Browser<br />

8.3.1 Resend Editor<br />

When you select one message to resend from the <strong>Ensemble</strong> Message Browser page, you have the option to edit the body<br />

of the message before resending it.<br />

1. Click Edit then Resend to display the <strong>Ensemble</strong> Resend Editor page.<br />

2. Use the entry fields to update the message body data. The fields vary depending on the method signature of the message.<br />

If the method has no properties, none are displayed.<br />

If you are editing a virtual document message (HL7, X12), you can edit data in the message content and also edit object<br />

properties in the box below the content box.<br />

3. Click Resend to send a new copy of the message header with your edited message body contents to the target.<br />

4. After a successful resend, the page refreshes with text indicating the new Header and Msg Body identifiers. Click Trace<br />

to see the visual trace of the resent message.<br />

Any message that you edit and then resend retains the same Session identifier, but acquires a new Header object with a<br />

new identifier to mark its additional trip through the production and transmits a new Msg Body object with the updated<br />

data. The visual trace includes both the original message transmission and any resend operations that involve the same<br />

message. The description in the message header contains text indicating this message has been resent; the description<br />

includes the original along with any subsequent header object identifiers.<br />

86 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


9<br />

Business Processes<br />

The [<strong>Ensemble</strong>] > [Business Processes] page allows you to view information about business processes in the currently<br />

running production. Some of the information describes the underlying host classes; other information shows current instances<br />

of configured business processes that are active within the production.<br />

You can display the Business Processes page from the <strong>Ensemble</strong> Management Portal as follows:<br />

• Main menu — Choose the Business Processes option.<br />

• [<strong>Ensemble</strong>] > [Maintenance] > [Purge] — Click the Show Business Processes command at the top of the page.<br />

There is no menu on the Business Processes page. You can return to the home page by clicking [<strong>Ensemble</strong>] in the title bar<br />

navigation path.<br />

At far right, the title bar provides a Namespace list that you can use to switch to a different <strong>Ensemble</strong> namespace. There is<br />

also a Go to list that you can use to return to previously visited pages in the <strong>Ensemble</strong> Management Portal or System<br />

Management Portal.<br />

9.1 Business Process List<br />

Under the Business Processes page title bar is a table called Defined Business Processes. Each row of the table lists one<br />

of the business processes known to the currently selected <strong>Ensemble</strong> namespace. All items are listed. Some may be instantiated<br />

by the currently running <strong>Ensemble</strong> production, some may not. Each row of the table begins with the following column:<br />

• Name — The configured name of the business process.<br />

To the right of each row in the table are three commands that you can click to display detailed information about the business<br />

process:<br />

• Click Definition to display a BPL diagram of the underlying host class for the business process.<br />

• Click Instances to list any current instances of the business process in the currently running production. If a business<br />

process has completed its work, there is no entry for it on this page.<br />

• Click RuleLog to view a record of business rules invoked by this business process.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 87


Business Processes<br />

9.2 BPL Viewer<br />

The [<strong>Ensemble</strong>] > [Business Processes] > [BPL Viewer] page displays a BPL diagram of the underlying host class for the<br />

business process, if a diagram is available. You can display this page from various locations in the <strong>Ensemble</strong> Management<br />

Portal, as follows:<br />

• [<strong>Ensemble</strong>] > [Business Processes] — Click Definition next to the business process name.<br />

• From the configuration diagram on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] page — While configuring a business process, click<br />

the BPL Definition command.<br />

There is no menu on the BPL Viewer page. You can return to the home page by clicking [<strong>Ensemble</strong>] in the title bar navigation<br />

path.<br />

Figure 9–1:The BPL Viewer Page<br />

Under the BPL Viewer page title bar are two display areas, one above the other. The top display shows the graphical view<br />

of the underlying host class for the currently selected business process. This is the same BPL diagram that you can create,<br />

edit, or view in the <strong>Ensemble</strong> Studio environment. The bottom display provides read-only information about the class and<br />

about the BPL diagram. You can drag the boundary between the displays to resize them as needed. In some cases you must<br />

use the scroll bars to see the full contents of either display. If there is no BPL diagram of the class available, the page reports<br />

this and nothing is shown in either display.<br />

When there is a BPL diagram available in the top display, you can click on the diagram and then right-click to reveal the<br />

BPL Visual Editor context menu. This is the same menu that is available when you are working in the BPL Visual Editor<br />

in the Studio tool. In the BPL Viewer page, the following view-only options are enabled for the context menu:<br />

• Zoom — Choose a zoom factor for the BPL diagram. Choose a large factor to view details, a small factor to gain an<br />

overview.<br />

88 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


BPL Viewer<br />

• Show Annotation — When this option is selected, reveal the text notes that explain each shape; otherwise, conceal<br />

them. When you reveal annotations, they appear to the upper right of each shape that has an element in<br />

the BPL document.<br />

• Arrange Layout — Auto-arrange the position of shapes in the diagram.<br />

• Validate Activity — You can select one of the items in the diagram and choose the context menu Validate Activity<br />

command to make sure it is properly defined.<br />

• Rules Editor — If you select a element in the diagram you can choose the Rules Editor command to open the<br />

associated rule set on the [<strong>Ensemble</strong>] > [Business Rules] > [Business Rule Editor] page.<br />

• Drill Down, Drill Up — An activity that consists of several sub-activities displays an square icon that contains a plus<br />

sign or a circular arrow. Click on this icon to drill down for details about the activity. Alternatively, you can select the<br />

activity, right-click, then choose Drill Down from the context menu. In either case, a BPL diagram of activity details<br />

displays. To return to the higher level, right-click and choose Drill Up.<br />

• Find, Find Again — Find and Find Again let you search for a text string in the underlying BPL document. When found,<br />

the corresponding string is highlighted in the BPL diagram.<br />

• View Source — Display the SVG code that displays the diagram.<br />

• About SVG Viewer — Displays version and copyright information about the SVG Viewer used by the BPL Visual<br />

Editor.<br />

When there is a BPL diagram available, several data fields appear in the bottom display. You cannot edit these fields in<br />

the <strong>Ensemble</strong> Management Portal, but you can view them. If you want to change them, you must enter the <strong>Ensemble</strong> Studio<br />

environment and edit them there. The following read-only data fields appear on the BPL Viewer page when the diagram<br />

first displays. For details about any of these fields, see documentation of the BPL element in the <strong>Ensemble</strong><br />

Business Process Language Reference:<br />

• On the left:<br />

– Type — The type of BPL element: for the business process as a whole.<br />

– Name — The business process class name.<br />

– Component — An integer value of 1 means that the business process has been designated as a reusable component.<br />

A value of 0 means it has not.<br />

– Annotation — If an annotation was added in the Studio environment, it appears here.<br />

– Show Annotation — An integer value of 1 means that Show Annotation is true; display any BPL annotations in<br />

the BPL Viewer top display. A value of 0 means Show Annotation is false; do not display annotations.<br />

– Width — Width of the BPL diagram in logical units.<br />

– Height — Height of the BPL diagram in logical units.<br />

• On the right:<br />

– Layout — automatic or manual<br />

– Language — basic or objectscript<br />

– Request — The primary request class for the business process.<br />

– Response — The primary response method for the business process, if a response was defined.<br />

– Context — A list of the properties in the general-purpose, persistent variable context, which is defined using the<br />

and elements in BPL.<br />

– ContextSuperClass — The superclass for the business process context object, if a unique one was defined<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 89


Business Processes<br />

– Includes — A comma-delimited list of include file names, if any were supplied.<br />

– Version — An integer that expresses a version number for the business process.<br />

If you select an element in the BPL diagram, different fields display in the lower half of the BPL Viewer page. For details<br />

about any of these fields, see documentation of the corresponding BPL element in the <strong>Ensemble</strong> Business Process Language<br />

Reference:<br />

• For all element types, the following fields display:<br />

– Type — The type of BPL element, such as , , , etc.<br />

– xPos — Horizontal position of the element in the BPL diagram, relative to the origin (0,0) at top left. Numbers<br />

increase as the element moves to the right.<br />

– yPos — Vertical position of the element in the BPL diagram, relative to the origin (0,0) at top left. Numbers<br />

increase as the element moves down.<br />

• For most elements, the following fields also display:<br />

– Name — The element name, if it has one.<br />

– Annotation — If an annotation is available in the BPL file, it appears here.<br />

– Disabled — An integer value of 1 means that the business process has been disabled. A value of 0 means it is<br />

enabled (not disabled).<br />

• Other fields may appear as appropriate for the element type. For example:<br />

– <br />

• Property — The property to be manipulated.<br />

• Value — The value to be given to the property.<br />

• Action — Whether the value is to be set, appended (for a collection), or other.<br />

• Key — A key for finding a member of a collection property.<br />

– <br />

• Target — The queue that is the target of a message sent by a element.<br />

• Async — An integer value of 1 means that Async is true; the element sends a message asynchronously.<br />

A value of 0 means Async is false; the element sends the message synchronously.<br />

• Request — The name and parameters of the request that is sent by this element.<br />

• Response — The name and parameters of the response that is expected by this element. If no response<br />

is defined, the field is blank.<br />

– <br />

• Property — The property to be iterated over.<br />

• Key — The index that controls the iteration.<br />

– <br />

• Calls — A list of the elements that this element waits for.<br />

• Type — Wait for “all” calls to finish, or simply “any” call.<br />

• Timeout — The number of seconds to wait.<br />

90 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Business Process Instances<br />

– <br />

• Value — The text string to be output by this element.<br />

You can close the BPL Viewer page and return to the [<strong>Ensemble</strong>] > [Business Processes] page by clicking [Business Processes]<br />

in the navigation path at the top of the BPL Viewer page.<br />

9.3 Business Process Instances<br />

The [<strong>Ensemble</strong>] > [Business Processes] > [Business Process Instances] page displays any current instances of a business<br />

process in the currently running production. If a business process has completed its work, there is no entry for it on this<br />

page.<br />

You can display the Business Process Instances page by clicking Instances next to the name of a business process name<br />

on the [<strong>Ensemble</strong>] > [Business Processes] page.<br />

There is no menu on the Business Process Instances page. You can return to the home page by clicking [<strong>Ensemble</strong>] in the<br />

title bar navigation path. You can return to the [<strong>Ensemble</strong>] > [Business Processes] page by clicking your browser’s Back<br />

command one or more times.<br />

There are three commands at the top of the Business Process Instances page, below the title bar:<br />

• Click the Home command to return to the home page and the main menu.<br />

• Click the Filter Instances command to find instances of special interest.<br />

• Click the Purge command to purge instance records.<br />

Under the row of commands are two display areas, one above the other:<br />

• The top display lists the instances.<br />

• When you click an underlined ClassName in the top half of the screen, the corresponding BPL diagram displays in the<br />

top half of the screen.<br />

• When you click the Filter Instances command in the top half of the screen, the bottom display permits you to enter<br />

search criteria to filter the list of instances.<br />

• When you click an underlined PrimaryRequest number in the top half of the screen, the corresponding message contents<br />

display in XML format in the bottom half of the screen.<br />

The following topics provide details.<br />

9.3.1 Business Process Instance Entries<br />

The Business Process Instances table displays the start time for the currently running production, followed by a list of<br />

business process instances. Several columns of information are provided for each instance in the table:<br />

• ID — The unique identifier for the instantiated business process.<br />

• IsCompleted — An integer value of 1 means that IsCompleted is true; the primary request that initiated this business<br />

process has been completed. A value of 0 means IsCompleted is false; the primary request has not yet been completed.<br />

• ClassName — The configured name of the business process host class.<br />

When the ClassName is underlined, it means that the host class is a BPL business process. You can click on the<br />

underlined ClassName to display the BPL diagram for the host class.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 91


Business Processes<br />

• SessionId — The unique identifier for the session that is (or was) associated with this business process. A session<br />

marks the beginning and end of all the activities prompted by a primary request message from outside <strong>Ensemble</strong>. One<br />

or more business processes may be instantiated within <strong>Ensemble</strong> during the session, in order to fulfill the primary<br />

request. All of these business processes share the same SessionId, but each has a different ID value.<br />

• PrimaryRequest — The message ID number of the request that caused this business process to be instantiated. The<br />

PrimaryRequest number is distinct from the object ID number of the business process. The PrimaryRequest may or may<br />

not be the same as the SessionId. If the numbers are different, it means that the request message that started the session<br />

triggered subsequent requests within <strong>Ensemble</strong>, and one of these later messages is the one that actually instantiated<br />

the business process.<br />

When the PrimaryRequest number is underlined, it means that the primary request message can be displayed as a set<br />

of properties in XML format. You can click on the underlined PrimaryRequest number to display the message properties<br />

in colorized XML format in the bottom half of the screen. For example:<br />

• TimeCreated — The date and time when this business process was instantiated.<br />

• TimeCompleted — The date and time when this business process completed the primary request that instantiated it. If<br />

this request has not been completed, this field is blank.<br />

• ContextId — The unique identifier for the general-purpose, persistent variable context, which is defined using the<br />

and elements in BPL to hold persistent properties for this business process instance. This column<br />

is available for BPL business processes only.<br />

The ContextId is underlined to indicate that you can click on it to display the context properties in colorized XML<br />

format in the bottom half of the screen. For example:<br />

• RuleLog — Click this command to display a history of business rule activity for this business process instance.<br />

Note:<br />

The bottom half of the screen contains a search form that you can use to filter the list of business process instances.<br />

When you are done viewing the primary message content or the context properties, you can click the browser<br />

Refresh command to redisplay the search form in the bottom of the screen.<br />

In each row, background color indicates the status of the business process instance:<br />

• Gray — Completed.<br />

• White — These items are in progress.<br />

92 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Business Process Instances<br />

9.3.2 Business Process Instance Filter<br />

When you click the Filter Instances command in the Business Process Instances top display, the bottom display offers a<br />

collection of data fields that you can use to further expand or refine the Business Process Instances table:<br />

• Sort Order — Select a value from the drop-down list: Oldest First or Newest First.<br />

• Business Process Class — Enter the name of a business process class to find all instances of that class.<br />

• Time Format — Select a value from the drop-down list: Time Only or Complete (time with date).<br />

• Max Rows — The maximum number of business process instances to display as a result of the search. If more matches<br />

are found, they will not be displayed. Enter a number. The default is 50.<br />

• Start Time — Enter the lower limit of a range of TimeCreated values.<br />

• End Time — Enter the upper limit of a range of TimeCreated values.<br />

After you have edited these fields, you can click one of the commands at the bottom of the screen:<br />

• Click Search to sort the list of entries in the top display using the criteria shown in the bottom display.<br />

• Click Reset to redisplay the entries in their default order and return the fields in the bottom display to their default<br />

values.<br />

After you click Search or Reset, the Business Process Instances page redisplays.<br />

9.3.3 Business Process Instance Purge<br />

You can purge outdated records from the <strong>Ensemble</strong> business process archives by clicking the Purge command at the top<br />

of the Business Process Instances display. A dialog appears in the bottom half of the screen.<br />

The fields in this dialog allow to you purge business process instance data as follows:<br />

• Type of Record — You are purging Business Processes.<br />

• Current Count — The number in this column reflects the total number of instances that are now in the persistent store<br />

for this production. Use the Current Count to decide whether or not it is worthwhile to purge these records at this time.<br />

• Do not purge most recent — This is the parameter for the purge operation. It tells <strong>Ensemble</strong> how many days’ worth of<br />

records to keep. The number can be 0 (zero), which keeps nothing and delete all business process instance records that<br />

exist at the time of the purge operation. The default value for Do not purge most recent is 7, which keeps records for<br />

the last seven days.<br />

The count of days includes “today,” so keeping messages for 1 day keeps the messages generated on the current day,<br />

according to local server time.<br />

At the bottom of the display area is the Start Purge command. If you click this command, <strong>Ensemble</strong> immediately purges<br />

instances according to the parameters you have entered in the dialog.<br />

CAUTION:<br />

You cannot undo the Start Purge operation.<br />

Note:<br />

You can also purge business process instances along with other management data using the [<strong>Ensemble</strong>] > [Maintenance]<br />

> [Purge] page.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 93


10<br />

Host Monitor<br />

The [<strong>Ensemble</strong>] > [Host Monitor] page is your interface to the runtime statistics provided by the Monitor Service. The<br />

Monitor Service is a business service that is implicitly included in every <strong>Ensemble</strong> production. The Monitor Service continually<br />

monitors the activities of <strong>Ensemble</strong> items while a production is running, and records data about them at frequent<br />

intervals.<br />

You can use the Monitor page to monitor the general health of the system. If you detect a change on the page that indicates<br />

a problem has occurred or is developing, you can go to other pages in the <strong>Ensemble</strong> Management Portal to find out more<br />

about the troubled item.<br />

You can display the Host Monitor page in any of the following ways:<br />

• Click Host Monitor in the <strong>Ensemble</strong> Management Portal main menu.<br />

• Click the Service, Process, or Operation link in the home page statistics display.<br />

There is no menu on the Host Monitor page. You can return to the <strong>Ensemble</strong> home page by clicking [<strong>Ensemble</strong>] in the title<br />

bar navigation path.<br />

At far right, the title bar provides a Namespace drop-down list that you can use to switch to a different <strong>Ensemble</strong> namespace.<br />

There is also a Go to drop-down list that you can use to return to previously visited pages in the <strong>Ensemble</strong> Management<br />

Portal or System Management Portal.<br />

Under the Host Monitor page title bar are two display areas, one above the other. The top display lists all the <strong>Ensemble</strong><br />

items — business services, business processes, and business operations — that you can monitor using this page. Only the<br />

items included in the configuration for the currently running production are shown.<br />

The bottom display contains a graph or table with detailed information about the item that is currently selected in the top<br />

display. If nothing is selected, the bottom display is empty. You can drag the boundary between the displays to resize them<br />

as needed. In some cases you must use the scroll bars to see the full contents of either display.<br />

10.1 Monitor Items<br />

The top display on the [<strong>Ensemble</strong>] > [Host Monitor] page contains a table. Each row of the table lists one of the <strong>Ensemble</strong><br />

items — business services, business processes, or business operations — that the currently running production can instantiate.<br />

Some of these items may be instantiated at the present time, others might not. Each row in the table has the following<br />

columns:<br />

• Name — The item name, by default the same as the host class name.<br />

• Type — Service, process, operation, or actor.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 95


Host Monitor<br />

• Status — A summary of the more detailed fields provided in the bottom half of the Host Monitor page. The Status<br />

field can have the values OK, Error, Retry, or Inactive.<br />

OK means normal behavior; Retry means the item encountered a failure but is set up to retry the failed message. Error<br />

means an error was reported somewhere in the activity. Inactive means that the item has been idle for longer than its<br />

Inactivity Timeout setting, and may require diagnostic action.<br />

The Status value is a snapshot, as of the present moment. If the item had an OK status but is now Inactive, only the<br />

Inactive status is shown.<br />

• Adapter State — Special information about the adapter associated with this item.<br />

• Last Action — The date and time of the last action performed by this item.<br />

• Elapsed Time — The number of seconds since this item last performed an activity.<br />

• Queue — The number of items waiting on this item’s queue, at the current time. If the item does not have its own<br />

queue, the field is blank.<br />

• Count — The number of actions currently in the queue for this item. Count is the total number of messages queued<br />

minus the total number of messages processed, all since the object was first instantiated. Count can become larger or<br />

smaller from time to time, depending on how fast the actions are dequeued. The real significance of this number is that<br />

you can check how busy the system is or determine if anything has clogged the dequeue process. Problems exist if the<br />

number is large.<br />

Actions are counted differently depending on the item:<br />

Item<br />

Actor<br />

Business<br />

Service<br />

Business<br />

Process<br />

Business<br />

Operation<br />

Actions in Count<br />

The number of new business processes<br />

(using the actor pool) that have been started.<br />

The number of request messages received<br />

by the service from external systems.<br />

The number of new business processes<br />

(using private job pools) that have been<br />

started.<br />

The number of response messages received<br />

by the operation from external systems.<br />

Actions Not Counted<br />

How many messages the process has sent<br />

or received from items inside <strong>Ensemble</strong>.<br />

How many request messages the service<br />

has sent to items inside <strong>Ensemble</strong>.<br />

How many messages the process has sent<br />

or received from items inside <strong>Ensemble</strong>.<br />

How many external responses have been<br />

relayed back to items inside <strong>Ensemble</strong>.<br />

In each row, the background color indicates the item’s Status as follows:<br />

• Red — Error<br />

• Yellow — Inactive<br />

• Light gray — Stopped<br />

• Orange — There are more than 100 messages waiting in this item’s queue<br />

• White, with regular text — These items are OK<br />

• White, with bold text — These items are OK and have been active within the last minute<br />

Text style indicates the item’s Status as follows:<br />

• Bold text — Items with ElapsedTime less than one minute.<br />

• Dimmed text — Items with ElapsedTime greater than one hour.<br />

96 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Monitor Instances<br />

To the right of each entry in the table are two commands: Instances and History. You can click either command to display<br />

detailed information about the entry in the bottom half of the Host Monitor page:<br />

• Click Instances to view detailed information about items of the selected type that are currently instantiated.<br />

• Click History to view information about the level of activity for this type of item over time.<br />

10.2 Monitor Instances<br />

The Instances display on the [<strong>Ensemble</strong>] > [Host Monitor] page allows you to view information about objects that are currently<br />

instantiated in the production. You can reveal this information in the bottom half of the Host Monitor page as follows:<br />

• From the [<strong>Ensemble</strong>] > [Host Monitor] page, click Instances next to the name of a configuration item.<br />

• From the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page, click the configuration item and then click Instances.<br />

The Monitor Instances table is a snapshot of all of the objects of the selected type that are currently instantiated in the production.<br />

Table entries can include business process instances or jobs that are doing work on behalf of business hosts. Several<br />

columns of information are provided for each instance in the table:<br />

• Name — The item name. By default this is the same as the host class name.<br />

• Job — Identifies the job in which this item is running.<br />

• Status — A summary of the more detailed fields provided in the bottom half of the Host Monitor page. The Status<br />

field can have the values OK, Error, Retry, or Inactive. OK means normal behavior; Retry means the item encountered<br />

a failure but is set up to retry the failed message. Error means an error was reported somewhere in the activity. Inactive<br />

means that the item has been idle for longer than its Inactivity Timeout setting, and may require diagnostic action.<br />

• Adapter State — Special information about the adapter associated with this item.<br />

• Last Action — The date and time of the last action begun by this item.<br />

• Count — The number of actions that this item has performed, from instantiation up until the current time.<br />

• Method — The name of the host class method invoked to perform the most recent action begun by this item.<br />

• Retry — The number of retries attempted, so far, in pursuit of the current action.<br />

• Abort — The Abort and Suspend links are available only when a configuration item is currently in a Retry state. Click<br />

Abort to abandon attempts to retry messages.<br />

• Suspend — Click Suspend to suspend a message that is in a Retry state. You can later resubmit the message from the<br />

[<strong>Ensemble</strong>] > [Maintenance] > [Suspended] page or resend the message by clicking Resend Messages on the [<strong>Ensemble</strong>]<br />

> [Messages] page.<br />

In each row, the background color indicates the item’s Status, as follows:<br />

• Red — Error<br />

• Yellow — Inactive<br />

• Orange — Retry<br />

• White — These items are OK<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 97


Host Monitor<br />

10.3 Monitor History<br />

The <strong>Ensemble</strong> Host Monitor allows you to view detailed information about the level of activity, over time, for configuration<br />

items of a particular type. You can reveal this information in the bottom half of the Host Monitor page as follows:<br />

• From the [<strong>Ensemble</strong>] > [Host Monitor] page, click History next to the name of a configuration item.<br />

• From the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page, click the configuration item and then click History.<br />

The Activity History graph is a simple line-chart with two axes as follows:<br />

• The graph has a vertical axis that represents the number of activities. The vertical axis begins at 0 (zero) at the bottom<br />

left of the display, and extends up to the top left.<br />

• The graph has a horizontal axis that represents time. The horizontal axis begins at 0 (zero) at the bottom right of the<br />

display. The 0 (zero) starting point is the beginning of the time period you select using the Time options at the bottom<br />

of the graph.<br />

You can chose 1 hour, 8 hours, 1 day, or 1 week. The default is 1 hour. The horizontal axis extends up to the end of the<br />

chosen time period at the bottom left of the display.<br />

Data for the History graph is drawn from the Count field for the configuration item. The Monitor Service archives the Count<br />

field for each item every 5 seconds.<br />

When you request a History graph, the Host Monitor page displays this data for the chosen item, distributed over the chosen<br />

period of time. At left is a list of items in the Host Monitor page, highlighting the name of the item you are currently<br />

viewing. You can click on a different item in this list to view its History graph.<br />

The <strong>Ensemble</strong> Host Monitor shows the information for the running production in your chosen namespace. If for any reason<br />

you restart the <strong>Ensemble</strong> instance containing the production, you lose all previous data and the history starts over.<br />

98 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


11<br />

Queues<br />

The [<strong>Ensemble</strong>] > [Queues] page allows you to monitor the activities of <strong>Ensemble</strong> message queues in detail. To display this<br />

page, click Queues in the <strong>Ensemble</strong> Management Portal main menu.<br />

There is no menu on the Queues page. You can return to the home page by clicking [<strong>Ensemble</strong>] in the title bar navigation<br />

path.<br />

At far right, the title bar provides a Namespace drop-down list that you can use to switch to a different <strong>Ensemble</strong> namespace.<br />

There is also a Go to drop-down list that you can use to return to previously visited pages in the <strong>Ensemble</strong> Management<br />

Portal or System Management Portal.<br />

Under the Queues page title bar is a table called Current <strong>Ensemble</strong> Message Queues. Each row of the table lists one of the<br />

message queues being used by the currently running <strong>Ensemble</strong> production. Each row has the following columns:<br />

• Name — The name of the configuration item that has the queue. This is the name assigned to the business service,<br />

business process, or business operation using the configuration display on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] page. It may<br />

be different from the host class name.<br />

• Count — How many messages are on the queue. This value is a snapshot and may change when you refresh the page.<br />

• Created — The date and time when the queue was first created.<br />

To the right of each row in the Queues table is a Contents command that you can click to display detailed information about<br />

the messages on the queue. The Contents command displays only if the number of messages waiting on that queue is greater<br />

than 0.<br />

In each row, the background color indicates the Count of messages on the queue:<br />

• Red — More than 10 messages.<br />

• Orange — From 4–9 messages.<br />

• Pink — From 1–3 messages.<br />

• White or pale blue, in alternating rows — There are no messages on these queues.<br />

11.1 Queue Contents<br />

The [<strong>Ensemble</strong>] > [Queues] > [Contents] page displays a list of messages that are currently waiting on a specific queue. To<br />

display this page, click Contents next to the name of a queue in the [<strong>Ensemble</strong>] > [Queues] page.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 99


Queues<br />

There is no menu on the Queue Contents page. You can return to the <strong>Ensemble</strong> home page by clicking [<strong>Ensemble</strong>] in the<br />

title bar navigation path.<br />

Under the Queue Contents page title bar are two display areas, one above the other. The top display lists messages. The<br />

bottom display provides detailed information about the message that is currently selected in the list. If nothing is selected,<br />

the bottom display is empty. You can drag the boundary between the displays to resize them as needed. In some cases you<br />

must use the scroll bars to see the full contents of either display.<br />

In the top display is a table called Message Queue Contents. Each row of the table lists one of the messages currently<br />

waiting on the queue that you selected in the [<strong>Ensemble</strong>] > [Queues] page. Each row of the table has the following columns:<br />

• Priority — The priority of the message relative to others in the queue: RealTime (1), High (2), Normal (3), or Low (4).<br />

The <strong>Ensemble</strong> messaging engine assigns priority values to messages automatically, in the course of normal processing,<br />

for its own use. Message priority cannot be programmed into a message class or configured in any way. Priority values<br />

are based in part on whether the message is synchronous (High) or asynchronous (Normal). Also, messages that start<br />

or stop a production are assigned greater priority than other types of message.<br />

• Index — This integer value starts at 1 for the first message placed on the queue after the production starts, and increments<br />

by 1 for each successive message. A message has the same Index value for the entire time it is on the queue. Index<br />

values are never reused.<br />

• MessageId — The object identifier for the message.<br />

In each row, the background color indicates the message’s overall status, as follows:<br />

• Red — The message encountered an Error.<br />

• Orange — The message is Queued.<br />

• Green — The message marks the start of a session.<br />

• Silver — The message arrived after a timeout expired. It has been marked as Discarded.<br />

• Orange — The message is Suspended.<br />

• White or pale blue, in alternating rows — These messages are OK.<br />

To the right of each row in the Queue Contents table are two commands:<br />

• Details — Click this command to display detailed information about the message in that row.<br />

• Abort — Click this command to abandon any ongoing attempts to send the message.<br />

At the top of the display is an Abort All command. If clicked, a confirmation dialog displays. If you confirm the operation,<br />

all queued messages shown on this page are deleted, and the display returns to the [<strong>Ensemble</strong>] > [Queues] page.<br />

11.2 Message Details<br />

If you select a message in the [<strong>Ensemble</strong>] > [Queues] > [Contents] page and request further details, message details display<br />

in the bottom half of the screen. Message details provide full information about every data field in the currently selected<br />

message.<br />

Two tables display the contents of the message header and message body, left and right respectively.<br />

On the left is the Message Header, which displays the entire contents of the message header. Fields include:<br />

• — The object identifier for the message header. Whenever a message header and message body are combined<br />

together as a message, the ObjectId value in the header is used to identify the combined message object. As a result,<br />

100 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Message Details<br />

this value is the same as the message ID listed in the [<strong>Ensemble</strong>] > [Messages] page and other pages in the <strong>Ensemble</strong><br />

Management Portal.<br />

• Type — The message type, Request or Response.<br />

• Priority — The priority of the message relative to others in the queue: RealTime (1), High (2), Normal (3), or Low (4).<br />

The <strong>Ensemble</strong> messaging engine assigns priority values to messages automatically, in the course of normal processing,<br />

for its own use. Message priority cannot be programmed into a message class or configured in any way. Priority values<br />

are based in part on whether the message is synchronous (High) or asynchronous (Normal). Also, messages that start<br />

or stop a production are assigned greater priority than other types of message.<br />

• Invocation — The style of invocation for message: Queue or Inproc.<br />

Inproc means the message will be formulated, sent, and delivered in the same job in which it was created. The job will<br />

not be released to the sender’s pool until the message is delivered to the target.<br />

Queue means the message is created in one job, then placed on a queue, at which time the original job is released.<br />

Later, when the message is processed, a different job will be allocated for the task.<br />

• TimeCreated — A Queue message lists the time the message was placed on the queue. An Inproc message lists the<br />

time the Send method was called.<br />

• TimeProcessed — A Queue message lists the time the message was taken off the queue to be processed. An Inproc<br />

message lists when processing of the message began; for Inproc messages, TimeProcessed will be very close to Time-<br />

Created.<br />

• Status — Indicates the status of the message within its normal life-cycle: Created, Queued, Delivered, Deferred,<br />

Completed, Discarded, or Suspended. If there is a request-response pair, the value does not indicate an overall status<br />

for the pair; a request may end up with a different Status from its corresponding response.<br />

A message in transit has a Status of Created, until it finds its place on a queue, when it becomes Queued. A message<br />

that reaches its destination is at first Delivered, then finally Completed. An asynchronous response is Discarded if it<br />

arrives after the timeout period for the corresponding request expired. A message response can been Deferred by a<br />

business operation to be sent later on; when a Deferred message is finally sent, it has a Status of Completed.<br />

Some business operations are designed to set the status of any failed messages to Suspended. Alternatively, an<br />

administrator can suspend a message from the Instances display on the [<strong>Ensemble</strong>] > [Host Monitor] page. In either<br />

case, such a message goes on a special queue where <strong>Ensemble</strong> keeps all Suspended messages. An administrator can<br />

use the [<strong>Ensemble</strong>] > [Maintenance] > [Suspended] page to examine Suspended messages, diagnose the problem, and<br />

if possible resend the Suspended messages after the problem is fixed.<br />

• IsError — An integer value of 1 means that IsError is true; the message encountered an error. A value of 0 means<br />

IsError is false; the message did not encounter any errors.<br />

• ErrorStatus — If IsError is 1, then this is the text associated with the error. When IsError is 0, ErrorStatus is the string<br />

“OK”.<br />

• CorrespondingMessageId — If the message Type is a Response, this field contains the ObjectId of the corresponding<br />

request. If the message Type is a Request, this field contains the ObjectId of the corresponding response (if any) or it<br />

is blank.<br />

• SessionId — The unique identifier for the session that is (or was) associated with this message. A session marks the<br />

beginning and end of all the activities prompted by a primary request message from outside <strong>Ensemble</strong>. The primary<br />

request message has an ID value that is identical to the SessionId. Several additional messages may be instantiated<br />

within <strong>Ensemble</strong> during the session, in order to fulfill the primary request. All of these messages share the same SessionId,<br />

but each has a different ID value.<br />

• SourceConfigName — The name of the configuration item that sent the message.<br />

• TargetConfigName — The name of the configuration item that was intended to receive the message.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 101


Queues<br />

• SourceBusinessType — BusinessService, BusinessProcess, BusinessOperation, or Unknown.<br />

• TargetBusinessType — BusinessService, BusinessProcess, BusinessOperation, or Unknown.<br />

• BusinessProcessId — Every business process that gets executed has an instance and this is the object ID of that instance.<br />

If the message is a request, this field identifies the business process in whose context the message was created (sender).<br />

If the message is a response, this field identifies the business process to which it is being returned (receiver). This field<br />

is empty in various circumstances, for example if an error occurred.<br />

• TargetQueueName — The destination “address” for the message: Where is it going The TargetQueueName may be a<br />

name or a number. A name identifies a public queue, such as Ens.Actor. A number is the job ID associated with the<br />

private queue of a business host.<br />

• ReturnQueueName — The return “address” for the message: Where did it come from The ReturnQueueName may be<br />

a name or a number. A name identifies a public queue, such as Ens.Actor. A number is the job ID associated with the<br />

private queue of a business host. The ReturnQueueId value is listed even if there is no response expected or needed for<br />

a particular request message type.<br />

• MessageBodyClassName — The class name for the message body.<br />

• MessageBodyId — The object identifier for the message body. This field matches the field in the Message<br />

Body table.<br />

On the right side of the message details display is the Message Body information. Fields include:<br />

• Message Body: Message Type — The message body class name.<br />

• If the message body is:<br />

– A standard <strong>Ensemble</strong> message body object, a table displays the following information:<br />

• — The object identifier for the message body. This field matches the MessageBodyId field in the<br />

Message Header table.<br />

• The name and value of each property in the Message Type class.<br />

– Any other type, there are no additional fields in the Message Body display.<br />

• Contents — Click this command to view the message body contents in an appropriate format.<br />

After viewing message details from the [<strong>Ensemble</strong>] > [Queues] > [Contents] page, you can:<br />

• Find another message in the list. Click Details to study it.<br />

• Close the [<strong>Ensemble</strong>] > [Queues] > [Contents] page and return to the [<strong>Ensemble</strong>] > [Queues] page, by clicking your<br />

browser’s Back command one or more times.<br />

• Return to the home page, by clicking [<strong>Ensemble</strong>] in the navigation path.<br />

102 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


12<br />

Maintenance<br />

The [<strong>Ensemble</strong>] > [Maintenance] page allows you to select cleanup operations such as resending suspended messages or<br />

purging outdated records from the persistent store. You can also indicate production configuration default settings, set user<br />

credentials for remote connections, and configure an automatic startup for a specific production. Click Maintenance on the<br />

<strong>Ensemble</strong> menu to navigate to the page.<br />

At far right, the title bar provides a Namespace list that you can use to switch to a different <strong>Ensemble</strong> namespace and return<br />

to the <strong>Ensemble</strong> home page.<br />

Under the Maintenance page title bar is a display area. The Maintenance menu displays at the top left corner of this display.<br />

You can click on selections in this menu to navigate to portal pages to perform the functions as described in the following<br />

table.<br />

Menu item<br />

Home<br />

Suspended Messages<br />

Purge Management Data<br />

Credentials<br />

Local Archive Manager<br />

Lookup Settings<br />

DICOM Settings<br />

Default Settings<br />

Enterprise Message Bank<br />

Function<br />

Return to the [<strong>Ensemble</strong>] home page.<br />

View all messages that are in a Suspended state.<br />

Purge entries from the event log, rule log, message warehouse, business process<br />

archives, and business rule log.<br />

Create a table of usernames and passwords that business operations can use<br />

to establish remote connections.<br />

Periodically save older messages to a separate archive for long term storage.<br />

Create and configure data tables to support the Lookup and Exists utility functions.<br />

Create and manage associations between modalities and an <strong>Ensemble</strong><br />

namespace for use in productions. See the “DICOM Associations in <strong>Ensemble</strong>”<br />

chapter in the <strong>Ensemble</strong> DICOM Development Guide for details<br />

Create and edit default values for production and business host configuration<br />

settings for a namespace.<br />

Monitor messages from multiple productions on multiple machines from a central<br />

location.<br />

The Maintenance page display area provides the following information and options:<br />

• Current <strong>Ensemble</strong> Version — The <strong>InterSystems</strong> release number associated with the <strong>Ensemble</strong> software that is installed<br />

on this machine.<br />

• Auto-Refresh Rate — This is a number of elapsed seconds, after which the <strong>Ensemble</strong> Management Portal will refresh<br />

the portal page you are currently viewing. The default duration is 23 seconds.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 103


Maintenance<br />

A refresh operation as frequent as every 5 seconds might be helpful or distracting, depending on how you are using<br />

the portal. To change the rate, enter a new value in this field. If you never want an automatic refresh to occur, set the<br />

value to 0 (zero).<br />

• Auto-Start Production — You can configure <strong>Ensemble</strong> so that a specific production starts automatically at system<br />

startup, and stops automatically at system shutdown. In the Production list, click a production name. To disable automatic<br />

production start, click the blank entry; this is the default.<br />

For more details, see the Production Life Cycle section of the “Production Concepts” chapter of Developing <strong>Ensemble</strong><br />

<strong>Productions</strong>.<br />

When you are finished making changes in the Maintenance page, click Save to apply the changes.<br />

12.1 Suspended Messages<br />

The [<strong>Ensemble</strong>] > [Maintenance] > [Suspended] page allows you to study and resubmit messages that have entered a suspended<br />

state. Some business operations are designed to set the status of any failed messages to suspended. Alternatively, you can<br />

suspend a message from the Instances display on the [<strong>Ensemble</strong>] > [Host Monitor] page.<br />

In either case, such a message goes on a special queue where <strong>Ensemble</strong> keeps all suspended messages. You can use the<br />

Suspended Messages page to find and examine these messages. An inspection of the routing information or contents of a<br />

specific message might reveal the reason why the message failed. For example, if the problem is that an external destination<br />

went out of service, you can make a change to reestablish communication with that server. Then you can resubmit the<br />

suspended messages to the external server from this page.<br />

You can display the Suspended Messages page by clicking Maintenance on the <strong>Ensemble</strong> menu and then clicking Suspended<br />

Messages from the Maintenance menu.<br />

If some messages in the currently running production are suspended, the page lists them. If no messages are suspended,<br />

the list is empty. The list displays message information as described in the following table.<br />

Column<br />

Check box<br />

#<br />

ID<br />

Time Created<br />

Session<br />

Error<br />

Source<br />

Target<br />

Description<br />

Mechanism for selecting messages for the Resubmit, Edit & Resubmit, Discard, and Delete<br />

commands.<br />

An incremental count of the number of entries in the table.<br />

The unique identifier for the instantiated message.<br />

The date and time when this message was instantiated.<br />

The unique identifier of the session to which this message belongs. A session marks the<br />

beginning and end of all the activities prompted by a primary request message from outside<br />

<strong>Ensemble</strong>.<br />

A quick overview of the results returned by the message to the configuration item that sent<br />

it, the Error field can have the values OK, Error, Retry, or Inactive. OK means normal behavior;<br />

Retry means the message experienced a failure but the item that sent it is configured to retry<br />

the failed message. Error means an error was reported somewhere in the activity. Inactive<br />

means that the item that sent the message has been idle for longer than its Inactivity Timeout<br />

setting, and may require diagnostic action.<br />

The name of the configuration item that sent the message.<br />

The name of the configuration item that is the intended recipient of the message.<br />

104 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Purge Management Data<br />

To the right of each row are two commands which you can click to display additional message information:<br />

• Click Details to display the message details in the lower portion of the page.<br />

• Click Trace to display a visual trace of the path of the message object through the production on the <strong>Ensemble</strong> Visual<br />

Trace page.<br />

Above the list of suspended messages is a choice of commands to perform on these messages:<br />

• Resubmit — Select one or more check boxes in the column at the left of each message you want to resubmit and click<br />

to resubmit the messages. As message similar to the following displays for each successfully resubmitted message:<br />

Resubmit suspended message ID '7' completed.<br />

Any message that you resubmit retains the same Session identifier and transmits the same Header object. The<br />

description in the message header contains text indicating this is a Resubmitted message.<br />

• Edit & Resubmit — Edit a single message before resubmitting; this command is only valid if you select exactly one<br />

message. See the Resend Editor for Resubmitting Messages section for details.<br />

• Discard — Remove the message from list on the Suspended Messages page. The message is still accessible from the<br />

<strong>Ensemble</strong> Message Browser.<br />

• Delete — Remove all record of the message from the <strong>Ensemble</strong> database.<br />

CAUTION:<br />

You cannot undo the Discard or Delete operations.<br />

12.1.1 Resend Editor for Resubmitting Messages<br />

When you select one message to resubmit from the [<strong>Ensemble</strong>] > [Maintenance] > [Suspended] page, you have the option<br />

to edit the body of the message before resubmitting it.<br />

1. Click Edit & Resubmit to display the <strong>Ensemble</strong> Resend Editor page.<br />

2. Use the entry fields to update the message body data. The fields vary depending on the method signature of the message.<br />

If the method has no properties, none are displayed.<br />

If you are editing a virtual document message (HL7, X12), you can edit data in the message content and also edit object<br />

properties in the box below the content box.<br />

3. Click Resubmit to resubmit the original message header with your edited message body contents to the target.<br />

4. After a successful resubmit, the page refreshes with text indicating the Header and Msg Body identifiers. Click Trace<br />

to see the visual trace of the resubmitted message.<br />

Any message that you edit and resubmit retains the same Session identifier and transmits the same Header object, but it<br />

contains an updated Msg Body object with a new identifier. The description in the original message header contains text<br />

indicating that this message has been resubmitted and includes the original Msg Body object identifier.<br />

12.2 Purge Management Data<br />

The [<strong>Ensemble</strong>] > [Maintenance] > [Purge] page allows you to delete outdated entries from the event log, message warehouse,<br />

business process archives, and business rule log. You can only purge entries associated with the currently running production.<br />

You can display the Purge page as follows:<br />

1. From the <strong>Ensemble</strong> menu, click Maintenance.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 105


Maintenance<br />

2. From the Maintenance menu click Purge Management Data.<br />

3. The Purge Management Data page displays.<br />

Under the Purge page title bar is a display area; the Maintenance menu is at the top left corner of this display. Under the<br />

title bar and to the right of the menu is a row of commands, as follows:<br />

• Show Event Log displays the [<strong>Ensemble</strong>] > [Event Log] page. You can use this page to get information about event log<br />

entries that you might want to purge or avoid purging.<br />

• Show Messages displays the [<strong>Ensemble</strong>] > [Messages] page. You can use this page to get information about messages<br />

that you might want to purge or avoid purging.<br />

• Show Business Processes displays the [<strong>Ensemble</strong>] > [Business Processes] page. You can use this page to get information<br />

about business process instances that you might want to purge or avoid purging.<br />

• Show Business Rule Log displays the [<strong>Ensemble</strong>] > [Business Rule Log] page. You can use this page to get information<br />

about rule log entries that you might want to purge or avoid purging.<br />

If you click one of these commands to view information, you can return to the Purge page by navigating back to the Purge<br />

Management Data page described at the beginning of this section or by using the Back command on your browser.<br />

Below the row of commands on the Purge page is a dialog box that contains the following fields:<br />

• Type of Record — Identifies the purpose of each row in the table. Each row contains one type of artifact that the currently<br />

running production is producing on an ongoing basis: Event Log, Messages, Business Processes, Business Rule Log,<br />

or I/O Archive.<br />

• Current Count — Total number of entries of this type that are now in the persistent store for this production. Use the<br />

Current Count to decide whether or not it is worthwhile to purge the records and if so, how many days’ worth of records<br />

you want to keep.<br />

• Include message bodies — If selected, this check box indicates that when <strong>Ensemble</strong> purges message headers, it should<br />

also purge the associated message bodies. <strong>Ensemble</strong> verifies that body classes exist and are persistent, before purging<br />

them. If this check box is clear (the default) message header data is purged, but message body data is retained.<br />

Important:<br />

When <strong>Ensemble</strong> purges a message body object, it does not automatically delete any embedded persistent<br />

object your code references as a property in your message body class. As a developer, you must<br />

appropriately handle the deletion of these referenced objects using a mechanism such as a delete trigger,<br />

a %OnDelete() method, or through relationships.<br />

• Keep data integrity — If selected (the default) this check box indicates that when <strong>Ensemble</strong> purges message headers,<br />

even if a message meets the age criterion for purging, it is not deleted unless its status is complete. <strong>Ensemble</strong> considers<br />

messages to be complete if they are marked Complete, Error, Aborted, or Discarded. This is to keep session-level<br />

integrity.<br />

The query that identifies the messages to delete checks all the messages (including business process instances) in a<br />

session to see whether any of them are not complete. The purge only performs the delete if all the messages are complete.<br />

The scope of this query, therefore, has an impact on the time taken to do the purge.<br />

This option is important to support long-running business processes. Usually this is the desired behavior. However, if<br />

you know there are old messages in the system whose incomplete status is not significant, you can purge them by<br />

clearing the Keep data integrity check box.<br />

Important:<br />

The purge criteria for using Keep data integrity also includes <strong>Ensemble</strong> system processes such as the<br />

Scheduler. Before clearing this check box, carefully consider the value for the Do not purge most<br />

recent setting.<br />

106 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Credentials<br />

• Do not purge most recent — This tells <strong>Ensemble</strong> how many days’ worth of records to keep. The number can be 0<br />

(zero), which keeps nothing and deletes all entries that exist at the time of the purge operation. The default value for<br />

Do not purge most recent is 7, which keeps entries for the last seven days.<br />

The count of days includes today, so keeping messages for 1 day keeps the messages generated on the current day,<br />

according to local server time.<br />

At the bottom of the dialog is the Start Purge command. If you click it, <strong>Ensemble</strong> immediately purges the persistent store<br />

according to the parameters you have entered in the Purge page. The page uses a background job to do purges, and reports<br />

the results of the last-run purge, including a status code, or a notice if the background job is running or has failed to run.<br />

CAUTION:<br />

You cannot undo the Start Purge operation.<br />

12.3 Credentials<br />

Some remote systems require a username and password to log into that system. A username-and-password pair is a login<br />

credential. <strong>Ensemble</strong> permits you to store login credentials in a centralized table that can be viewed and edited only by<br />

users with access to the <strong>Ensemble</strong> Management Portal.<br />

Each entry in the Credentials table has an ID by which you can refer to it when configuring business services or business<br />

operations for the production. Adding an entry to the Credentials table for a production consists of assigning an ID to a<br />

username-and-password pair.<br />

The [<strong>Ensemble</strong>] > [Maintenance] > [Credentials] page displays the Credentials table for the currently running production.<br />

You can display the Credentials page as follows:<br />

1. From the [<strong>Ensemble</strong>] home page menu, choose Maintenance.<br />

2. From the Maintenance menu choose Credentials.<br />

3. The Credentials page displays.<br />

There is no menu on the Credentials page. Under the title bar is a row of commands, as follows:<br />

• Home — Click to return to the <strong>Ensemble</strong> home page.<br />

• Create New Credentials — If you click this command, a dialog displays in the bottom half of the Credentials page. You<br />

can enter information in this dialog to create a new entry for the Credentials table.<br />

Below these commands, the Credentials page displays text — The following Credentials are currently defined — and a table.<br />

The table lists all the credentials associated with the currently running production. Each row in the table has the following<br />

columns:<br />

• ID — The configured name of the username-and-password pair. This is the name to be used when configuring a business<br />

service or business operation to establish a remote connection.<br />

• User — The username.<br />

• Password — The password.<br />

To the right of each entry in the Credentials page table are two commands:<br />

• Edit displays a dialog in which you can edit the Username or Password for an entry. You cannot change the ID of an<br />

entry. To use a different ID, you must create a new entry by clicking Create New Credentials. Then, if you want, you<br />

can delete the old entry.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 107


Maintenance<br />

• Delete deletes the entry in that row.<br />

CAUTION:<br />

You cannot undo the Delete operation.<br />

12.4 Local Archive Manager<br />

The [<strong>Ensemble</strong>] > [Maintenance] > [Archive Manager] page allows you to periodically save older messages to a separate<br />

archive for long term storage.<br />

The Archive Manager requires you to identify a namespace in which to keep the archive. <strong>InterSystems</strong> strongly recommends<br />

that you keep this archive in a namespace that meets both of the following criteria:<br />

• A separate namespace from those in which you run <strong>Ensemble</strong> productions. If you are running productions in more<br />

than one namespace, be aware that multiple namespaces can archive their messages into one shared target namespace.<br />

• An <strong>Ensemble</strong>-enabled namespace, so that you can use <strong>Ensemble</strong> Management Portal features such as the Message<br />

Browser and Visual Trace whenever you have a reason to examine the archived messages. For details about <strong>Ensemble</strong>enabled<br />

namespaces, see “Working with Namespaces” in the chapter “What to Manage.”<br />

You can display the Archive Manager page as follows:<br />

1. From the [<strong>Ensemble</strong>] home page menu, choose Maintenance.<br />

2. From the Maintenance menu choose Archive Manager.<br />

3. The Archive Manager page displays.<br />

There is no menu on the Archive Manager page.<br />

At the top of the page is an Run Archive command. This command is enabled only if there is data in all three fields in the<br />

form and there is no previous archive operation still in progress.<br />

Next, the page displays text — Current archive manager settings for namespace — and the name of the currently selected<br />

namespace. The following fields display information about the Archive Manager:<br />

• Archive to namespace — The namespace to which <strong>Ensemble</strong> saves archived messages.<br />

• Archive manager class name — The class that acts as the Archive Manager. Generally you will keep the default of<br />

Ens.Archive.Manager, but if you wish to customize the archive operation you can subclass Ens.Archive.Manager and<br />

write your own code. If so, choose your subclass for this field.<br />

• Number of days before archiving — Messages older than this number of days are automatically archived when you run<br />

the archive operation.<br />

To edit any of these settings in this part of the page, click Edit at right. A form displays. Change the information in the<br />

fields and then click Save. If the save is successful, the page is refreshed with the new settings displayed. If the save failed,<br />

the form displays the error message from the server.<br />

The Archive history display provides information about the last or current archive. For example:<br />

Archive start time 2008-06-04 16:52:55<br />

Archive stop time 2008-06-04 16:52:55<br />

Total messages processed 3002 - 100% finished<br />

Total messages archived 0<br />

Total message headers deleted 0<br />

Total message bodies deleted 0<br />

Archive status idle<br />

108 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Lookup Settings<br />

When the Run Archive command is enabled, and you click it, a confirmation dialog asks if you want to begin the archive<br />

operation. Click OK if you want to begin; a message displays to confirm that the archive has been started. If not, click<br />

Cancel.<br />

CAUTION:<br />

You cannot stop the Run Archive operation.<br />

After you click Run Archive, the archive operation runs in the background and displays progress statistics while it is running.<br />

The numbers in the display update continuously, with count and percentage continuing to change until the result reaches<br />

100%, status becomes idle, and a final stop time appears:<br />

Archive start time: 2008-05-14 18:19:02<br />

Archive stop time:<br />

Total messages processed 100 - 10% finished<br />

Total messages archived 3<br />

Total message headers deleted 1<br />

Total message bodies deleted 1<br />

Archive status running<br />

For each message to be archived, <strong>Ensemble</strong>:<br />

• Copies the message header to the target namespace.<br />

• Copies the serialized message body (not the message body object) to the target namespace.<br />

• Deletes the message header and message body objects from the original namespace.<br />

If errors occur during the archive operation, you will see the following display.<br />

Total number of errors XX [show error log]<br />

[show error log] is a link that toggles with [hide error log]. You can click this link to show or hide the error log. The maximum<br />

number of errors displayed in the table is 1000.<br />

Each time you run an archive operation, the previous archive error log is deleted.<br />

12.5 Lookup Settings<br />

The [<strong>Ensemble</strong>] > [Maintenance] > [Lookup Settings] page allows you to create and configure data tables to support the<br />

Lookup and Exists utility functions. The Lookup utility function is provided so that you can easily perform a table lookup<br />

from a business rule or DTL data transformation.<br />

For details, see the sections “Utility Functions” and “Lookup Tables” in the “Creating a New Production” chapter of<br />

Developing <strong>Ensemble</strong> <strong>Productions</strong>.<br />

The Lookup function works only after you have created a lookup table and have populated it with data. You can do this<br />

using the [<strong>Ensemble</strong>] > [Maintenance] > [Lookup Settings] page. You can display the page as follows:<br />

1. From the [<strong>Ensemble</strong>] home page menu, choose Maintenance.<br />

2. From the Maintenance menu choose Lookup Settings.<br />

3. The Lookup Settings page displays.<br />

There is no menu on the Lookup Settings page.<br />

At the top of the page is an Add New Table command. When you click this command, the page refreshes with the cursor in<br />

the Lookup Table field and hint text below each of the three fields for entering a key: Lookup Table, Key, and Value.<br />

Next, the page displays text — View and edit <strong>Ensemble</strong> lookup tables for namespace — and the name of the currently<br />

selected namespace. Below the introductory text is a list of lookup tables in the namespace.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 109


Maintenance<br />

To create a new table, type the new table name in the Lookup Table field. Provide the first entry in the table by entering a<br />

Key, with or without a Value. Click Insert to save your changes. Continue adding Key and Value pairs as needed to populate<br />

the table. After the first Insert, your table becomes available as a choice in the list at the top of the form. If you ever click<br />

the Insert command while the required fields Lookup Table and Key are empty, the hint text changes color to indicate an<br />

error.<br />

When you select a table from the list, its full set of Key and Value pairs display in a grid below. Each row in the grid offers<br />

Edit and Delete commands that apply to the Key listed in that row. Click Edit to edit the value of a key. If you make any<br />

changes, click Insert to save them.<br />

A Delete Table command is available at the bottom of the Lookup Settings form. If you click this command while a specific<br />

lookup table is selected, a confirmation dialog displays, asking if you want to delete all keys for that table. Click OK to<br />

delete the table and all of its keys; click Cancel to continue without deleting anything.<br />

CAUTION:<br />

You cannot undo the Delete Table operation.<br />

12.6 Default Settings<br />

The [<strong>Ensemble</strong>] > [Maintenance] > [Default Settings] page allows you to create and edit default values for production and<br />

business host configuration settings by namespace. The following table describes the properties listed on the page for each<br />

existing default setting.<br />

Table 12–1: Default Setting Properties<br />

Column<br />

Production Name<br />

Item Name<br />

Host Class Name<br />

Setting Name<br />

Setting Value<br />

Edit<br />

Delete<br />

Description<br />

Name of the production within the current namespace to which this setting applies; an<br />

* indicates in all productions.<br />

Name of the configuration item; an * indicates for all items.<br />

Name of the host class; an * indicates for all classes.<br />

Name of the configuration setting.<br />

Default value of the setting.<br />

Click to edit the default setting properties on the Edit Default Setting page.<br />

Click to delete this default setting from the namespace. Click OK to confirm the delete<br />

action.<br />

When you click Edit or Create New Setting at the top of the page you navigate to a form to enter the following values:<br />

• Production Name (required) — Choose from the list of existing production definitions in the namespace or enter a<br />

production name where the default setting should be used. Use * to use the setting in all productions.<br />

• Item Name (required)— Enter the name of the configuration item that should use the default setting. Use * to use the<br />

value in all configuration items with the setting.<br />

• Host Class Name (required) — Enter the class name of the business service, process, or operation that should use the<br />

default setting. Use * to match all classes.<br />

• Setting Name (required) — Enter the name of the default setting.<br />

• Setting Value — Enter the value for the default setting.<br />

• Description — Enter an optional description for your default setting.<br />

110 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Enterprise Message Bank<br />

Click Save to update or create the default setting and return to the updated list on the Default Settings page. Click Cancel<br />

to return to the Default Settings page without saving any of your edits.<br />

See the entry for Ens.Config.DefaultSettings in the Class Reference for programming details.<br />

12.7 Enterprise Message Bank<br />

The Enterprise Message Bank is a remote archiving facility where you can collect messages, event log items, and search<br />

table entries from multiple <strong>Ensemble</strong> client productions. It is made up of the following components:<br />

• A client operation you add to an <strong>Ensemble</strong> production and configure with the address of a Message Bank server.<br />

• The Message Bank server which is a simple <strong>Ensemble</strong> production consisting exclusively of a Message Bank service<br />

that listens for submissions from any number of client productions.<br />

The Message Bank is part of the Enterprise Monitor. You access it using the Enterprise Message Bank option on the<br />

[<strong>Ensemble</strong>] > [Maintenance] menu of the <strong>Ensemble</strong> Management Portal. The <strong>Ensemble</strong> Enterprise Monitor also provides<br />

pages for you to monitor the status of client productions, browse the message bank, and perform a search of HL7 messages<br />

from the monitored clients. You can also access the Enterprise Monitor directly using the following default URI:<br />

http://localhost:57772/csp/ensemble/Ens.Enterprise.Portal.MonitorStatus.cls<br />

To use the Message Bank facility, perform the following steps:<br />

1. Message Bank Server — Set up the Message Bank in one <strong>Ensemble</strong>-enabled namespace by subclassing the<br />

Ens.Enterprise.MsgBank.Production abstract class, copying its ProductionDefinition XData block, and then<br />

compiling your new class in that namespace. For example:<br />

Class My<strong>Ensemble</strong>.MyMessageBank Extends Ens.Enterprise.MsgBank.Production<br />

{<br />

XData ProductionDefinition<br />

{<br />

<br />

Production for receiving and collating message bank submissions from one or more<br />

client<br />

<strong>Ensemble</strong> namespaces and for maintaining a local repository of production status information<br />

about each<br />

client namespace, for display on the Enterprise Monitor page. Open the the Monitor page on the<br />

same<br />

machine that that is hosting this Production.<br />

0<br />

120<br />

10<br />

<br />

0<br />

0<br />

0<br />

10<br />

<br />

<br />

0<br />

0<br />

0<br />

Big<br />

0<br />

1<br />

<br />

100<br />

5<br />

9192<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 111


Maintenance<br />

-1<br />

10<br />

<br />

<br />

<br />

}<br />

}<br />

This is the production for receiving and collating message bank submissions from one or more client <strong>Ensemble</strong><br />

namespaces and for maintaining a local repository of production status information about each client namespace. You<br />

can view the gathered information on the Enterprise Monitor page on the same machine that is hosting this production.<br />

For testing purposes, you can put the message bank production on the same machine and instance as your regular<br />

productions, but it should be in a separate namespace from any production you plan to monitor. The Message Bank<br />

production uses the following services:<br />

• Ens.Enterprise.MsgBank.TCPService — to accept inbound data from the client productions<br />

• Ens.Enterprise.MonitorService — to gather status of client productions<br />

2. Message Clients — In each regular production for which you want to collect messages, add a new business operation<br />

using the Ens.Enterprise.MsgBankOperation class. This operation and its configuration control archiving of events via<br />

TCP to a near real-time <strong>Ensemble</strong> server running the Message Bank production. See Adding a Message Bank Business<br />

Operation for the detailed procedure.<br />

3. Navigate to the [<strong>Ensemble</strong>] > [Maintenance] > [Enterprise Message Bank] page to view the collected messages in the<br />

message bank. The first time you enter the Enterprise Message Bank page from the Maintenance menu, it requires you<br />

to enter the following information about the Message Bank:<br />

• Enterprise Message Bank Webserver IP Address<br />

• Enterprise Message Bank Webserver IP Port number<br />

• Enterprise Message Bank Webserver execution Namespace<br />

• Use SSL to connect to the Enterprise Message Bank Webserver<br />

<strong>Ensemble</strong> caches the information and does not display it again unless you clear this cache by performing a Kill on the<br />

^Ens.MsgBank global.<br />

4. Once you enter the proper information, you see the <strong>Ensemble</strong> Enterprise Monitor: Client Systems List page. From here<br />

you can click Message Bank Browser to display a list of archived messages.<br />

Important characteristics of the Message Bank:<br />

• The Message Bank has no synchronization dependencies for message body classes with the contributing productions;<br />

therefore, it receives a serialized form of each message. For virtual document message bodies (HL7, for example) it<br />

reparses the serialized document into an object, and receives and stores the search table entries from the contributing<br />

production as well. You can perform almost the same search for HL7 messages as on the original machine; however,<br />

the same is not true for other types of message bodies.<br />

To search by HL7 custom schema properties in the Message Bank, the custom schema definition must be in the Message<br />

Bank production namespace.<br />

• For uniqueness, the Message Bank production prepends the numeric identifier of client productions to the message<br />

IDs.<br />

• The Message Bank page also serves as a portal for viewing the state of multiple client productions and for invoking a<br />

resend service on them. For these extra features to work the Message Bank needs to know the web addresses of the<br />

client productions.<br />

112 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Enterprise Message Bank<br />

• The Message Bank mechanisms do not delete the messages from the originating production, you should handle that<br />

function with a separate purge process.<br />

• It is possible to replay messages from the Message Bank back into the originating production or another client production.<br />

12.7.1 Adding a Message Bank Business Operation<br />

In each regular production for which you want to collect messages, add a new business operation using the<br />

Ens.Enterprise.MsgBankOperation class. This operation and its configuration control archiving of events via TCP to a near<br />

real-time <strong>Ensemble</strong> server running the Message Bank production.<br />

You can add a Message Bank business operation to any <strong>Ensemble</strong> production from the <strong>Ensemble</strong> Management Portal using<br />

the following procedure:<br />

1. Start the Business Operation Wizard from the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] > [Configuration] page in one of the following<br />

ways:<br />

• Click in the diagram background and then click Add Operation.<br />

• Right-click in the diagram, point to Add on the context menu, and then click Business Operation.<br />

2. Click All Operations and then choose the Ens.Enterprise.MsgBankOperation class from the Operation Class list.<br />

The class already exists and requires no programming. You can see the details of the class in its entry in the Class<br />

Reference.<br />

3. You must make the Operation Name of this configuration item the Message Bank operation class name. Either leave<br />

this blank to use the default class name or enter Ens.Enterprise.MsgBankOperation.<br />

4. You can configure the optional Display Category and Comment fields later.<br />

5. Click OK to save your changes and finish the wizard.<br />

The Message Bank business operation is now part of the production and ready to configure as described in the following<br />

section.<br />

12.7.2 Configuring a Message Bank Business Operation<br />

You can configure a Message Bank business operation by clicking it in the diagram on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] ><br />

[Configuration] page. The following settings display below the diagram; you can edit these values to configure the business<br />

operation. When you are finished editing, click Apply to save your changes, or Cancel to ignore them.<br />

• General Settings — The general settings on the left configure the business operation as a production item. These settings<br />

are common to all business hosts. For descriptions, see the General Settings section in the “Configuration” chapter<br />

of <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>.<br />

Important:<br />

Verify that the Name setting value is Ens.Enterprise.MsgBankOperation. This is a requirement<br />

for running an <strong>Ensemble</strong> Message Bank operation.<br />

• Specific Settings — The specific settings on the right configure properties particular to this business operation and its<br />

associated adapter.<br />

The setting names are, in many cases, localized descriptions of the class property names. You can hover the cursor over<br />

any setting name to display its help text as it appears in the Class Reference or click the setting name to display the help<br />

text in a separate pop-up window.<br />

Configure the following settings specifically for the Message Bank:<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 113


Maintenance<br />

Adapter Class<br />

Archive Items<br />

Verify that this read-only setting lists the client adapter Ens.Enterprise.MsgBank.ClientTCPAdapter class.<br />

Controls which messages to send to the Message Bank. The default behavior is to archive everything except<br />

scheduler messages as shown by the value:<br />

*[*],-Ens.ScheduleService[*],-Ens.ScheduleHandler[*]<br />

See Configure Archive Items for details.<br />

Enable Archiving<br />

Set to True. This starts messages queuing from all configuration items in the client production. Note that this<br />

queueing continues even if you disable the operation and while it is not able to connect to the Message Bank. The<br />

operation forwards any queued messages to the Message Bank server whenever it is enabled.<br />

If set to False, the operation does not queue any messages for the Message Bank.<br />

Event Log Interval<br />

How frequently should we check for conforming Event Log events that may need to be forwarded to the Message<br />

Bank server. 0 means check only when messages are being forwarded.<br />

Force Keepalives<br />

IP Address<br />

Port<br />

If set to True, send empty event submissions periodically if no conforming events need to be submitted.<br />

IP address of the Message Bank production.<br />

TCP port number for the Message Bank production input service (9192 is the default).<br />

The remaining entries in the Specific Settings column are determined by the more general business operation, business<br />

host, and TCP adapter classes from which this class inherits. See the following appropriate references for details on these<br />

adapter settings:<br />

• Configure Business Host Settings in the “Configuration” chapter.<br />

• Business Operation Settings in the “Configuration” chapter.<br />

• Adapter Settings in the “TCP Outbound Adapter” chapter of Using TCP Adapters with <strong>Ensemble</strong>.<br />

After configuring these settings, your production becomes a client of the Message Bank. Enable this business operation to<br />

see it connect to the Message Bank.<br />

12.7.2.1 Configure Archive Items<br />

This setting controls which messages the production sends to the message bank. It is a comma-separated list of configuration<br />

names of items whose messages are to be archived to the Message Bank server.<br />

Archive log events for each item using the following colon-separated syntax:<br />

item[evtype1:evtype2:Trace_cat]<br />

Within the event type brackets, you can use the following characters in your selection list:<br />

114 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Enterprise Message Bank<br />

Pattern<br />

character<br />

*<br />

-<br />

!<br />

$<br />

-<br />

_<br />

Placement<br />

at the front of an item<br />

at the end of an item<br />

at the end of an item<br />

at the end of an item<br />

for events of type Trace<br />

Resulting action<br />

include all event types<br />

exclude the type from archiving entirely<br />

exclude message bodies from archiving<br />

exclude search table entries from archiving<br />

exclude message headers from archiving<br />

optionally used to select a particular category of trace event.<br />

Event type Trace without a suffix means Trace events of all<br />

categories.<br />

For example:<br />

• *[*] — Archive everything<br />

• *$[*],Ens.Alert![-*] — Archive all events, headers, and bodies but not SearchTable entries; but do not archive<br />

bodies or events from item Ens.Alert.<br />

Note:<br />

<strong>Ensemble</strong> only archives trace events if it has logged them. You can only use these settings to restrict which logged<br />

events get archived, not to archive any events that you did not configure to be logged.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 115


13<br />

Testing Service<br />

The <strong>Ensemble</strong> Testing Service allows you to test a business process or business operation of a running <strong>Ensemble</strong> production<br />

in the active namespace. You can navigate to the Testing Service from the following locations in the <strong>Ensemble</strong> Management<br />

Portal:<br />

• From the <strong>Ensemble</strong> menu, click Testing Service.<br />

• From the <strong>Ensemble</strong> Configuration display on the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] page, click a business process or business<br />

operation in the top pane and click Test in the bottom pane. This brings you to the second page of the testing service<br />

with the business host preselected.<br />

The Testing Service offers a series of pages that enable you to formulate and send test messages through your production:<br />

• Testing Service - 1 of 4, Select Target<br />

• Testing Service - 2 of 4, Select Message Type<br />

• Testing Service - 3 of 4, Submit Test Data<br />

• Testing Service - 4 of 4, View Results<br />

Throughout the process you can use the following commands that appear at the bottom of the page:<br />

• Click Back to return to the previous Testing Service page (unavailable on the first Testing Service page).<br />

• Click Next to continue with the next testing service page (does not appear on the last two Testing Service pages).<br />

• Click Cancel to return to the [<strong>Ensemble</strong>] home page (does not appear on the last page).<br />

13.1 Testing Service - 1 of 4, Select Target<br />

The first page of the <strong>Ensemble</strong> Testing Service provides a greeting and the name of the currently running production. The<br />

Testing Service requires that the production you want to test is running and has testing enabled.<br />

Ensure the Production is Running<br />

If the production you want to test is not the one indicated as the current production or there is no production running, perform<br />

the following procedure:<br />

1. From the <strong>Ensemble</strong> menu, click <strong>Productions</strong> to display the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] page.<br />

2. Stop the running production (if any) and Start the one you want to test.<br />

3. From the <strong>Ensemble</strong> menu, click Testing Service to display the first testing service page.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 117


Testing Service<br />

Enable Testing<br />

If testing is disabled for the running production, the first Testing Service page notifies you. Click the link to the Production<br />

Configuration page, or click <strong>Productions</strong> from the <strong>Ensemble</strong> menu to enable testing for this production:<br />

1. On the [<strong>Ensemble</strong>] > [<strong>Productions</strong>] page, click Configure next to the production you are testing.<br />

2. Under the Production Settings column at the bottom left of the page, select the Testing Enabled check box, click Apply<br />

and then OK.<br />

3. From the <strong>Ensemble</strong> menu, click Testing Service to display the first testing service page.<br />

Select Testing Target<br />

From the first page of the Testing Service, choose the testing target:<br />

1. When testing is enabled, this page offers options that let you select either a Business Process or Business Operation<br />

as the target of your testing. Choose one, then select the appropriate business host from the list to the right of your<br />

selection.<br />

2. Click Next to continue testing and move to page two of the Testing Service.<br />

13.2 Testing Service - 2 of 4, Select Message Type<br />

The second Testing Service page allows you to choose the message type you want to send. It displays the following fields:<br />

• Current Production — The name of the currently running production (view-only).<br />

• Target — The business process or business operation that you selected in the previous Testing Service page (viewonly).<br />

• Request Type — Select from a list of request messages. Only the request types that are valid for the Target are listed,<br />

including subclasses of supported types.<br />

Click Next to continue testing and move to page three of the Testing Service.<br />

13.3 Testing Service - 3 of 4, Submit Test Data<br />

The third Testing Service page provides data fields that you can use to set properties for the specific request. The fields<br />

vary depending on the method signature of the request. If the method has no properties, none are displayed.<br />

If you are testing a virtual document message (HL7, X12), there is a free-form box where you can paste test message content.<br />

Below this box you can enter object properties for the message.<br />

Click Invoke to submit the request with the values you entered and move to page four of the Testing Service.<br />

13.4 Testing Service - 4 of 4, View Results<br />

If time elapses while the Testing Service attempts the request, a Waiting page displays the following view-only information:<br />

• Target — The session ID associated with the request.<br />

118 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Testing Service - 4 of 4, View Results<br />

• Request Type — The request type of the selected target.<br />

• Session Id — The session ID associated with the request.<br />

• Request Sent — The date and time when the request was sent.<br />

• Response received — The status Waiting and a graphical progress bar, indicating that work is being done.<br />

Finally, the Results page displays any output values from the response generated by your request, including any errors with<br />

the full error message text.<br />

You can perform one of the following commands when the test completes:<br />

• Click Done to return to the <strong>Ensemble</strong> home page.<br />

• Click Trace to navigate to the Visual Trace page to visually follow the path of the message through the production.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 119


14<br />

EDI / HL7 Manager<br />

The [<strong>Ensemble</strong>] > [EDI and HL7 Manager] page allows you to view and transform Electronic Data Interchange (EDI) messages<br />

to determine how you want your <strong>Ensemble</strong> production to handle them. To display the page, click EDI / HL7 Manager in the<br />

<strong>Ensemble</strong> menu.<br />

Under the title bar is a display area with a table of links. Each row in the table corresponds to a family of Electronic Data<br />

Interchange (EDI) document types. The available links are:<br />

• ASC X12 — Display the Web site for the Accredited Standards Committee (ASC) X12, founded by the American<br />

National Standards Institute (ANSI) as a cross-industry forum to build and support electronic data exchange standards,<br />

related documents and products intended for worldwide use. The URI is http://www.x12.org/<br />

For details about X12, see the “Viewing and Transforming Documents” chapter in the <strong>Ensemble</strong> X12 Development<br />

Guide.<br />

• ASTM — Display the Web site for ASTM International Standards Worldwide. The URI is http://www.astm.org/.<br />

For details, see the “Viewing and Transforming Documents” chapter in the <strong>Ensemble</strong> ASTM Development Guide.<br />

• HL7 Version 2 — Display the Web site for the American National Standards Institute (ANSI) standards developing<br />

organization Health Level Seven (HL7). The URI is http://www.hl7.org/<br />

For details about HL7 Version 2, see the “Viewing and Transforming Messages” chapter in the <strong>Ensemble</strong> HL7 Version<br />

2 Development Guide.<br />

• UN/EDIFACT — Display the Web site for United Nations Directories for Electronic Data Interchange for Administration,<br />

Commerce and Transport. The URI is http://www.unece.org/trade/untdid/welcome.htm<br />

For details, see the “Viewing and Transforming Documents” chapter in the <strong>Ensemble</strong> EDIFACT Development Guide.<br />

Each choice has a link for Schema Structures and a Document or Message Viewer.<br />

14.1 Schema Structures<br />

• ASC X12 — Displays a list of the supported X12 schema specifications. You can click on any link in the display to<br />

drill down for details.<br />

• ASTM — Displays a list of the supported ASTM schema specifications. You can click on any link in the display to<br />

drill down for details.<br />

• HL7 Version 2 — Displays a list of the supported HL7 Version 2.x schema specifications. You can click on any link<br />

in the display to drill down for details.<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 121


EDI / HL7 Manager<br />

• UN/EDIFACT — Displays a list of the supported EDIFACT schema categories and implementation guides and the<br />

transaction set implementation names they define. You can import schema categories from SEF and XML files.<br />

14.2 Document/Message Viewer<br />

When you click Document Viewer or Message Viewer next to one of the EDI document types, the [<strong>Ensemble</strong>] > [EDI and<br />

HL7 Manager] > [EDI Document Viewer] page displays with the following specific information depending on the type:<br />

• ASC X12 — Options on this page allow you to retrieve X12 message data from external files or the <strong>Ensemble</strong> message<br />

archives to preview the results of applying various parsing schemes or data transformations to the message data.<br />

• ASTM — Options on this page allow you to retrieve ASTM message data from external files or the <strong>Ensemble</strong> message<br />

archives to preview the results of applying various parsing schemes or data transformations to the message data.<br />

• HL7 Version 2 — Options on this page allow you to retrieve HL7 message data from external files or the <strong>Ensemble</strong><br />

message archives to preview the results of applying various parsing schemes or data transformations to the message<br />

data<br />

• UN/EDIFACT — Options on this page allow you to retrieve EDIFACT message data from external files or the <strong>Ensemble</strong><br />

message archives to preview the results of applying various parsing schemes or data transformations to the message<br />

data.<br />

122 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


Index<br />

A<br />

actor pool<br />

and jobs, 35<br />

and queues, 38<br />

size of, 52, 57, 59, 60<br />

Actor Pool Size field, 52<br />

Adapter Class field, 60, 61<br />

adapters<br />

inbound, 59<br />

outbound, 61<br />

adding<br />

business operations, 52<br />

business processes, 52<br />

business rules, 33<br />

business services, 52<br />

items to a production, 16<br />

login credentials, 107<br />

portal user accounts, 5<br />

Alert Grace Period field, 60<br />

Alert log entry type, 67<br />

Alert On Error field, 58<br />

Alert Retry Grace Period field, 61, 62<br />

Archive IO field, 58<br />

Archive Manager page, 108<br />

archives<br />

see log entries<br />

Assert log entry type, 67<br />

Auto-Start Production field, 104<br />

B<br />

BPL Viewer page, 88<br />

browsers, Web, 3<br />

business activity monitoring, 29<br />

business hosts<br />

configuring, 54<br />

scheduling start and stop, 56<br />

Business Host Settings<br />

Alert On Error, 58<br />

Archive IO, 58<br />

Category, 56<br />

Change Class, 55<br />

Class, 56<br />

Comment, 56<br />

Enabled, 57<br />

Foreground, 57<br />

Inactivity Timeout, 57<br />

Log Trace Events, 57<br />

Name, 56<br />

Pool Size, 57<br />

business metrics, 24<br />

and dashboards, 29<br />

viewing properties, 31<br />

Business Metrics page, 31<br />

business operations, 23<br />

adding, 52<br />

configuring, 61<br />

Error, 96<br />

host class, 23<br />

Inactive, 96<br />

in productions, 25, 46<br />

listing instantiated objects, 95<br />

monitoring, 95<br />

OK, 96<br />

production diagram, 46<br />

Retry, 96<br />

status of, 96<br />

BusinessOperation Settings<br />

Reply Code Actions, 62<br />

Business Operation Settings<br />

Adapter Class, 61<br />

Alert Retry Grace Period, 62<br />

Credentials, 62<br />

Failure Timeout, 62<br />

Retry Interval, 62<br />

business processes, 23<br />

adding, 52<br />

BPL diagram, 88<br />

configuring, 60<br />

Error, 96<br />

host class, 23<br />

Inactive, 96<br />

in productions, 24, 46<br />

instances, 91<br />

listing instantiated objects, 95<br />

monitoring, 91, 95<br />

OK, 96<br />

production diagram, 46<br />

Retry, 96<br />

status of, 96<br />

viewing a list of, 87<br />

Business Processes page, 87<br />

BPL Viewer, 88<br />

color indicators on, 92<br />

Definition, 88<br />

Instances, 91<br />

SessionId, 76<br />

Business Process Instance page<br />

Purge, 93<br />

Business Process Instances page, 91<br />

Business Process Settings<br />

Alert Retry Grace Period, 61<br />

Enabled field, 60<br />

Failure Timeout, 61<br />

Pool Size, 60<br />

Reply Code Actions, 61<br />

Retry Interval, 61<br />

Business Rule Editor page<br />

Rule List, 33<br />

Business Rule Log page<br />

Filter Rule Log, 93<br />

SessionId, 76<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 123


usiness rules, 32<br />

adding, 33<br />

list of rule definitions, 33<br />

Business Rules page, 33<br />

business services, 22<br />

adding, 52<br />

configuring, 59<br />

Error, 96<br />

host class, 22<br />

Inactive, 96<br />

in productions, 24, 46<br />

listing instantiated objects, 95<br />

monitoring, 95<br />

OK, 96<br />

production diagram, 46<br />

Retry, 96<br />

status of, 96<br />

Business Service Settings<br />

Adapter Class, 60<br />

Alert Grace Period, 60<br />

Call Interval, 60<br />

Class, 56<br />

Credentials, 60<br />

Enabled, 57<br />

Pool Size, 59<br />

C<br />

Call Interval field, 29, 60<br />

Category field, 56<br />

Change Class command, 55<br />

classes<br />

see host classes<br />

Class field, 56, 56<br />

color<br />

in XML syntax displays, 75, 92<br />

color as a status indicator<br />

Business Processes page, 92<br />

Configuration page, 50<br />

Event Log page, 68<br />

Host Monitor page, 96, 97<br />

Jobs page, 36<br />

Message Browser page, 80<br />

Queues page, 99, 100<br />

System Monitor page, 65<br />

Comment field, 56<br />

Compare Messages, 75<br />

Completed status, 37<br />

configuration items, 23<br />

Configuration page, 45<br />

Add Operation, 52<br />

Add Process, 52<br />

Add Service, 52<br />

BPL Definition, 88<br />

Business Host Settings, 54<br />

Business Operations, 46<br />

Business Operation Settings, 61<br />

Business Processes, 46<br />

Business Process Settings, 60<br />

Business Services, 46<br />

Business Service Settings, 59<br />

Production Settings, 51<br />

Specific Settings, 59, 61<br />

Start Production, 42<br />

Stop Production, 43<br />

configuring, 16<br />

business hosts, 54<br />

business operations, 61<br />

business processes, 60<br />

business rules, 33<br />

business services, 59<br />

inbound adapters, 59<br />

login credentials, 107<br />

outbound adapters, 61<br />

productions, 51<br />

remote connections, 107<br />

workflow, 40<br />

Created status, 37<br />

credentials, login, 29<br />

configuring, 107<br />

for inbound adapters, 60<br />

for outbound adapters, 62<br />

portal user accounts, 5<br />

Credentials field, 60, 62<br />

Credentials page, 107<br />

ID, 107<br />

Password, 107<br />

Username, 107<br />

D<br />

Dashboard page, 30<br />

View, 30<br />

dashboards, 29<br />

viewing a list, 30<br />

viewing individually, 30<br />

Default Settings page, 110<br />

Deferred status, 37<br />

Delivered status, 37<br />

Dequeuing status, 36<br />

diagnostics<br />

see testing<br />

diagrams<br />

BPL business process, 88<br />

production, 45<br />

Discarded status, 37<br />

documentation<br />

production, 44<br />

E<br />

Enabled field, 57, 57, 60<br />

Ens.Actor, 36, 38, 60, 74, 102<br />

Ens.BusinessOperation, 23<br />

Ens.BusinessProcess, 23<br />

Ens.BusinessService, 22<br />

Ens.Host, 22<br />

Ens.Item, 23<br />

Ens.Request, 36<br />

Ens.Response, 36<br />

<strong>Ensemble</strong> Management Portal, 3<br />

commands, 10<br />

items to manage, 21<br />

login credentials, 5<br />

124 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


starting, 4<br />

tasks to perform, 15<br />

<strong>Ensemble</strong> version, 103<br />

Enterprise Message Bank page, 111<br />

errors<br />

Error log entry type, 67<br />

Error status, 36, 96<br />

IsError status, 74, 101<br />

Log Trace Events, 57<br />

event log, 33<br />

filtering, 68<br />

monitoring, 65<br />

purging, 69<br />

types of entries, 67<br />

viewing, 67<br />

Event Log page, 67<br />

color indicators on, 68<br />

Filter Event Log, 68<br />

Purge, 69<br />

execution context<br />

viewing, in XML format, 92<br />

Explorer, Internet, 3<br />

external connections<br />

monitoring, 65<br />

F<br />

Failure Timeout field, 61, 62<br />

Filter Event Log command, 68<br />

filtering lists, 17<br />

business process instances, 93<br />

event log, 68<br />

message log, 79<br />

Finished status, 43, 43<br />

Foreground field, 57<br />

G<br />

graphics<br />

see color; diagrams<br />

H<br />

History command, 98<br />

Home page, 6<br />

Start Production, 42<br />

Stop Production, 43<br />

host classes, 22<br />

Host Monitor page, 95<br />

color indicators on, 96, 97<br />

History, 98<br />

Instances, 97<br />

I<br />

I/O archive, 34<br />

ID field, 29, 60, 62, 107<br />

Inactive status, 8, 57, 96<br />

Inactivity Timeout field, 57, 96<br />

inbound adapters, 59<br />

Info log entry type, 67<br />

Instances command, 97<br />

Internet Explorer, 3<br />

IsError status, 74, 101<br />

items<br />

see configuration items<br />

J<br />

jobs, system, 35<br />

Dequeuing, 36<br />

Error, 36, 96<br />

Inactive, 8, 96<br />

monitoring, 35<br />

OK, 8, 96<br />

pool size, 52, 57, 59, 60<br />

Quiescent, 36<br />

Retry, 96<br />

Running, 36<br />

status of, 8, 35<br />

Jobs page, 35<br />

color indicators on, 36<br />

L<br />

listing<br />

see viewing<br />

log, business rule<br />

see business rule log<br />

log, event<br />

see event log<br />

log, message<br />

see message log<br />

login credentials, 29<br />

configuring, 107<br />

for inbound adapters, 60<br />

for outbound adapters, 62<br />

portal user accounts, 5<br />

Login page, 5<br />

Logout page, 10<br />

Log Trace Events field, 57<br />

Log Unassigned Trace Events field, 52<br />

Lookup Settings page, 109<br />

M<br />

Maintenance page, 103<br />

Archive Manager, 108<br />

Auto-Start Production, 104<br />

Credentials, 107<br />

Default Settings, 110<br />

Enterprise Message Bank, 111<br />

Lookup Settings, 109<br />

Purge Management Data, 105<br />

Suspended Messages, 104<br />

management<br />

see <strong>Ensemble</strong> Management Portal<br />

Message Bank, 111<br />

Message Browser page, 71<br />

color indicators on, 80<br />

Compare Messages, 75<br />

Contents, 75<br />

Details, 73<br />

filtering, 79<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 125


Trace, 76<br />

message log<br />

and XML, 75, 92<br />

filtering, 79<br />

message details, 73<br />

viewing, 71<br />

messages, 36, 37<br />

and XML, 75<br />

Completed, 37<br />

Created, 37<br />

Deferred, 37<br />

Delivered, 37<br />

Discarded, 37<br />

IsError, 74, 101<br />

on specific queues, 99<br />

Queued, 37<br />

sending test messages, 117<br />

status of, 72<br />

Suspended, 37, 104<br />

visual trace of, 76<br />

Waiting, 118<br />

metrics, business<br />

see business metrics<br />

monitoring, 17<br />

business operations, 95<br />

business processes, 91, 95<br />

business services, 95<br />

dashboards, 30<br />

event log, 65<br />

external connections, 65<br />

instantiated objects, 97<br />

jobs, 35<br />

levels of activity over time, 98<br />

messages on specific queues, 99<br />

productions, 65, 95<br />

queues, 65, 99<br />

N<br />

Name field, 56<br />

namespace, 6<br />

navigation path, 6<br />

O<br />

OK status, 8, 96<br />

operations, business<br />

see business operations<br />

outbound adapters, 61<br />

P<br />

Password field, 107<br />

passwords, 29<br />

configuring, 107<br />

for inbound adapters, 60<br />

for outbound adapters, 62<br />

portal user accounts, 5<br />

pool, actor<br />

and jobs, 35<br />

and queues, 38<br />

size of, 52, 57, 59, 60<br />

Pool Size field, 52, 57, 59, 60<br />

portal<br />

see <strong>Ensemble</strong> Management Portal<br />

processes, business<br />

see business processes<br />

productions, 21<br />

Actor Pool Size, 52<br />

and XML, 52<br />

automatic start or stop, 104<br />

configuring, 51<br />

dashboards for, 30<br />

diagram, 45<br />

documentation, 44<br />

instantiated objects, 97<br />

listing instantiated objects, 95<br />

login credentials for, 107<br />

Log Unassigned Trace Events, 52<br />

long term archives, 108<br />

lookup tables, 109<br />

maintenance of, 103<br />

monitoring, 65, 95<br />

purging management data, 105<br />

Running, 42<br />

settings, 51<br />

starting, 42<br />

status of, 41<br />

Stopped, 42<br />

stopping, 43<br />

storing, 19<br />

Suspended, 42<br />

testing, 19, 117<br />

Testing Enabled, 52<br />

Troubled, 42<br />

viewing a list of, 41<br />

<strong>Productions</strong> page, 41<br />

Configure, 45<br />

<strong>Documentation</strong>, 44<br />

Finished, 43, 43<br />

Start, 42<br />

Stop, 43<br />

Purge Management Data page, 105<br />

Show Business Processes, 87, 91<br />

purging, 18<br />

all management data, 105<br />

business process instances, 93<br />

event log, 69<br />

Q<br />

Queue Contents page, 99<br />

Details, 73, 100<br />

Trace, 76<br />

Queued status, 37<br />

queues, 38<br />

monitoring, 65<br />

status of, 38<br />

viewing a list of messages, 99<br />

viewing message contents, 99<br />

Queues page, 99<br />

color indicators on, 99, 100<br />

Contents, 99<br />

Quiescent status, 36<br />

126 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>


R<br />

Reply Code Actions field, 61, 62<br />

resubmitting suspended messages, 105, 105<br />

Retry Interval field, 61, 62<br />

Retry status, 96<br />

routing process, 25<br />

rules, business<br />

see business rules<br />

Running status, 36, 42<br />

S<br />

Schedule field, 56<br />

searching<br />

log entries, 17<br />

selecting<br />

items to configure, 45<br />

main menu commands, 6<br />

maintenance tasks, 103<br />

management data to purge, 105<br />

services, business<br />

see business services<br />

SessionId<br />

and Visual Trace, 76<br />

sessions, 39<br />

recorded in the message log, 71<br />

visual trace of, 76<br />

settings<br />

business host, 54<br />

business operation, 61<br />

business process, 60<br />

business service, 59<br />

inbound adapter, 59<br />

outbound adapter, 61<br />

production, 51<br />

Show Business Processes, 91<br />

starting, 18<br />

automatic start and stop, 56<br />

automatic start or stop, 104<br />

<strong>Ensemble</strong> Management Portal, 4<br />

production, 42<br />

resubmitting suspended messages, 104<br />

status<br />

business hosts, 57<br />

business operations, 96<br />

business processes, 91, 96<br />

business services, 96<br />

configuration items, 50, 97<br />

event log entries, 67<br />

jobs, 8, 35, 36, 96<br />

messages, 37, 72, 74, 101<br />

messages on specific queues, 99<br />

productions, 41<br />

queues, 38, 99<br />

suspended messages, 104<br />

test messages, 118<br />

status, color indicators for<br />

Business Processes page, 92<br />

Configuration page, 50<br />

Event Log page, 68<br />

Host Monitor page, 96, 97<br />

Jobs page, 36<br />

Message Browser page, 80<br />

Queues page, 99, 100<br />

System Monitor page, 65<br />

Status log entry type, 67<br />

Stopped status, 42<br />

stopping, 18<br />

automatic start and stop, 56<br />

automatic start or stop, 104<br />

<strong>Ensemble</strong> Management Portal, 10<br />

production, 43<br />

resubmitting suspended messages, 104<br />

storing, 19<br />

long term archives, 108<br />

lookup tables, 109<br />

suspended messages, 104<br />

Suspended Messages page, 104<br />

Details, 73<br />

Resend Editor, 105<br />

Resubmit, 105<br />

Trace, 76<br />

Suspended status, 37, 42, 104<br />

SVG Viewer, 4<br />

System Monitor page, 65<br />

color indicators on, 65<br />

T<br />

testing, 19, 117<br />

Testing Enabled field, 52<br />

Testing Service page, 117<br />

Trace, 76<br />

Waiting, 118<br />

timeouts, 57<br />

trace, visual, of messages, 76<br />

Trace log entry type, 67<br />

Troubled status, 42<br />

U<br />

Username field, 107<br />

usernames, 29<br />

configuring, 107<br />

for inbound adapters, 60<br />

for outbound adapters, 62<br />

portal user accounts, 5<br />

V<br />

versions<br />

<strong>Ensemble</strong>, 103<br />

Internet Explorer, 3<br />

SVG Viewer, 4<br />

Viewer, BPL, 88<br />

Viewer, SVG, 4<br />

viewing, 20<br />

business host setting, 54<br />

business operation settings, 61<br />

business process BPL diagram, 88<br />

business processes, 91<br />

business process settings, 60<br />

business service setting, 59<br />

<strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong> 127


dashboards, 30<br />

event log entries, 67<br />

list of business processes, 87<br />

list of productions, 41<br />

list of rule definitions, 33<br />

login credentials, 107<br />

message contents, 75<br />

message log, 71, 73<br />

message trace, 76<br />

production settings, 51<br />

suspended messages, 104<br />

Visual Trace page, 76<br />

W<br />

Waiting status, 118<br />

Warning log entry type, 67<br />

workflow, 39<br />

configuring, 40<br />

operations, 25<br />

Workflow Portal page, 40<br />

X<br />

XML<br />

message contents, 75, 92<br />

production settings, 52<br />

viewing the execution context, 92<br />

128 <strong>Managing</strong> <strong>Ensemble</strong> <strong>Productions</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!