You are on page 1of 16

The value of WebSphere Message Broker V6 on z/OS

The Enterprise Service Bus

The value of WebSphere Message Broker V6 on z/OS The Enterprise Service Bus WebSphere Message Broker

WebSphere Message Broker features and functions

IBM® WebSphere® Message Broker for z/OS®, V6 (hereafter called Message Broker V6) enables you to connect a wide range of applications using different interaction patterns, protocols, and message formats.

Supported interaction patterns include:

One-way messaging

Request/response Aggregation

Publish/subscribe (pub/sub)

Message Broker V6 supports the following protocols:

WebSphere MQ

HTTP

Java™ Messaging Service(JMS)

Real-time and multicast

File

User-defined

Message Broker V6 enables you to model and transform a comprehensive set of message formats:

Record-based (COBOL, C)

Industry standard string-based (SWIFT, TLOG, EDIFACT)

XML, including all schema artifacts

User-defined

Messages that pass through Message Broker V6 are potentially routed and transformed between different formats on the way to their destination. Message Broker V6 provides a range of technologies for transforming messages, which can be used in accordance with the skill set of the integration developer:

ESQL for users with relational database skills who prefer declarative rather than algorithmic forms to specify message transformation

Java for programmers skilled in Java

Graphical mapping for straightforward transformations that do not require programming

XSLT for XML-based transformations based on an open standard

Using these features, Message Broker V6 can take messages from a wide variety of sources in a wide range of formats and route and transform them as needed, so that they can be sent to destinations to be consumed by applications in the formats and protocols that the applications expect. This multi-step process is what message brokering is all about – end-to-end connections between all parts of an enterprise.

Message Broker V6 development artifacts Message Broker V6 functions are made available through three objects specific to the broker:

Message flows

Message flows represent the processing required to connect applications to each other. An input message from a source application serves as input to the flow, which generates zero or more messages, some of which are transformed and routed to target applications. A message flow consists of one or more processing nodes.

Processing nodes

Processing nodes are the specialized building blocks from which message flows are constructed. Nodes represent the individual operations that occur on a message as it passes through a message flow. Nodes are customized to perform actions, such as getting a message from a specified queue, storing a message in a database, or transforming the message from, for example, an XML to a COBOL form. If the nodes available with the broker are not sufficient, you can write your own and integrate them easily.

Parsers

Parsers are provided by Message Broker V6 to read and write messages in a broad range of message formats. For message formats that can't be interpreted by the built-in Message Broker V6 message parsers, you can write your own parsers, but you rarely need to to so because of the flexibility of the built-in parsers.

Message Broker V6 components

There are four components of Message Broker V6:

Toolkit

In the Development Perspective, Message Broker V6 provides user-friendly, Eclipse- based tools that help you develop broker artifacts such as message flows and message sets. Message Flows, message definitions, and any other associated files are packaged into deployment containers called broker archive (BAR) files ready for deployment to the broker runtime.

An Administration Perspective lets operations staff deploy BAR files to any broker within the administrative domain. In addition, the full operational state of each broker is visible and can be controlled from this perspective. The Administrative Perspective uses the Configuration Manager (described below) to effect changes and report status. The Eclipse toolkit runs on Linux® and Windows®. Each developer requires a broker toolkit with a Development Perspective, and each administrator may use a broker toolkit for graphical administration as required. A full suite of command-line tools and programming interfaces is also available for operations management.

The Eclipse toolkit runs on Linux and Windows. Each developer requires a broker toolkit with a Development Perspective, and each administrator may use a broker toolkit for graphical administration as required. A full suite of command-line tools and programming interfaces is also available for operations management.

Broker

The Broker is the run time where deployed flows execute within containers called execution groups, which appear as z/OS address spaces. Execution groups provide an excellent opportunity for vertical scaling and isolation.

Operational personnel have a full range of commands, both JCL and console-based, that let them view and control the operational state of a broker.

Configuration Manager

The Configuration Manager is the single management and administration component for a collection of brokers in a domain. The configuration manager controls all operational actions via access control lists. It also monitors broker state and holds topology information related to deployments and inter-broker connectivity.

All users’ toolkits are connected to a configuration manager.

User Name Server

The User Name Server component is used in pub/sub networks to determine the set of user and groups used for pub/sub security checking. This set can be either the users

defined to the z/OS operating system, or those defined with a user-created program or file. These values are sent to both the configuration manager and the broker for subsequent administrative and run-time processing.

A typical configuration is shown below in Figure 1. The diagram represents a broker domain containing three brokers under the administrative control of the Configuration Manager. You can perform development and administrative tasks using the Message Brokers toolkit (in this configuration, a user name server is not shown.) The Message Broker run-time component is responsible for routing and transforming messages between applications using message flows, nodes, and parsers.

Figure 1. WebSphere Message Broker domain

defined to the z/OS operating system, or those defined with a user-created program or file. These

Platform choice for components

The toolkit component runs on Linux and Windows under the Eclipse environment using Rational Application Developer. The other components such as Broker, Configuration Manager, and User Name Server may be placed on your chosen platform. For z/OS, you can deploy brokers, the Configuration Manager, and the User Name Server components to this platform.

A broker domain should contain the appropriate mix of platforms to meet the message processing needs of connected applications. If transformed messages need to be sent to applications that reside on z/OS, or information needed to route and transform messages requires data on z/OS, then it usually makes sense to place a broker on z/OS. As explained

below, operational characteristics of the z/OS broker components mean that users who need a highly available and scalable technology close to their enterprise data and applications will select z/OS as a natural platform for these components.

Moving from development to production

In most enterprises, the needs of developers are different to those of production staff. Developers tend to prefer their own systems under their own control with the ability to share resources with their co-workers as appropriate, so that they can minimize the time required for the compile-test-fix cycle. Production environments have different criteria for success:

operational personnel tend to require characteristics such as stability and control.

In development environments, developers usually have their own Toolkit, Configuration Manager, and Broker running on Windows or Linux workstations. Developers have full control over creating, deploying, and managing broker domains in this environment. In many cases, teams of developers will share development resources such as transformation logic or message definitions using one of the library systems supported by Eclipse, such as CVS or Rational ClearCase.

When a project has finished its development phase, artifacts required for the production rollout are packaged into BAR files (see above), so you can send then through quality assurance procedures and prepare them for deployment to live systems.

Moving towards production rollout, project focus turns to proving that functional, performance, and stability criteria are met. The platforms for test and quality assurance tend to be close to those used for production environment, and for many large enterprises this means z/OS. Since all broker capabilities are available on all platforms, projects developed on Windows or Linux can be seamlessly transitioned to z/OS knowing that behaviour is maintained. You can move from project development through test and quality assurance to production by deploying the same project BAR files successively into these environments and verifying that project goals continue to be met. Support for deployment descriptors within BAR files lets you change configuration parameters such as queue names and database table and schema names without changing transformation or message modelling logic.

Once a project is ready for production deployment, operational staff can deploy using the a graphical tool, but are more likely to use JCL or z/OS console commands to deploy BAR file artifacts into the broker run time, and similar commands to verify and report deployment status. Deployment, monitoring, report, and control can be handled completely by z/OS production personnel.

In summary, Message Broker's strong platform support, uniformity of behaviour, flexible deployment capabilities, and range of tools support (graphical, command-line, and programmable) support the demanding needs of z/OS development and operational staff.

Message Broker V6 topologies

Message Brokers can either be deployed individually as standalone processing engines or in connected topologies to create highly available and scalable architectures. Whether a hub, bus, or arbitrary graph topology is employed is a decision based on the architectural or business needs of a project rather than functional characteristics. Message flows and their associated artifacts can be deployed to one, many, or all of the brokers within a domain topology. Applications connected to a message broker node can interoperate with other applications connected to any other broker node within the topology, using any protocol or message format combination. Figure 2 below shows how brokers may be arbitrarily connected

together to create a topology that meets the scalability and availability needs required. For example, applications can communicate with other applications connected to the same or to different brokers within a domain.

Figure 2. WebSphere Message Broker topologies

together to create a topology that meets the scalability and availability needs required. For example, applications

An initial deployment on z/OS will probably involve a single Message Broker, because a relatively simple pilot will help you gain familiarity with Message Broker V6 concepts and technology. As you roll out more deployments, you may want to scale horizontally onto multiple zSeries machines to increase both capacity and availability.

On z/OS, you can use SYSPLEX technology to scale horizontally and still maintain a single system view from an operational perspective. Because broker domains are designed to support multiple brokers, the single operational SYSPLEX view is consistent with the architectural construct of a broker domain. Therefore you can easily deploy highly available and scalable broker architectures using SYSPLEX technology.

It’s also natural to create combinations of brokers on different operating systems. Your enterprise may have applications running on a variety of platforms in order to meet business needs, including AIX®, HP-UX, Linux, Solaris, and Windows. Message Broker V6 lets you connect the applications throughout your enterprise, regardless of the platform they run on.

Message Broker V6 capability comparison

All Message Broker V6 capabilities are available on z/OS in a consistent and complete fashion compared to WebSphere Message Broker on other platforms. Therefore, you can develop and test solutions on your platform of choice, put them through your quality assurance procedures, and deploy packaged solutions (BAR files) on z/OS. Deployment

descriptors let you reconfigure the parameters that control detailed behaviour of a message flow, such as queue names or database schemas, without changing the message flow.

Message Broker V6 also has platform-specific capabilities and advantages. While some capabilities are available only on z/OS (see below), most are built-in to the broker, so that your applications benefit from the increased performance, manageability, and resilience without design changes.

High availability

Parallel SYSPLEX

Message flows deployed to brokers on z/OS can benefit from using resource managers such as WebSphere MQ and DB2 that are Parallel SYSPLEX aware. Objects including WebSphere MQ queues and DB2 databases are available as shared resources within a SYSPLEX, making them simultaneously available to all applications within the SYSPLEX. As long as one z/OS image is available, these resources are available. What’s really powerful is that this is a truly shared resource. In the event of failure, the remaining images will make the failed work available immediately, without a restart -- availability in its highest sense.

For example, a message flow deployed to brokers in a WebSphere MQ Queue Sharing Group and transforming XML messages from a shared input queue may perform that processing anywhere in the SYSPLEX. As long as one queue manager in the group remains available, messages can continue to be transformed. What differentiates this arrangement from "shared nothing" solutions is that after a failure, rolled back messages are immediately available within the SYSPLEX, and can be processed by other flow instances servicing the shared input queue.

Message flows also exploit a special mode of operations with shared queues that preserves message order in the event of a failure. Messages rolled back after a failure are delivered to another message flow in the SYSPLEX in the same message order. This capability is vital when in-order delivery of messages is critical, as with financial deposits and withdrawals. This capability goes beyond message replication to true resource sharing.

Similar capabilities exist for DB2 resources when using DB2 Data Sharing Groups.

Automatic Restart Manager (ARM)

ARM is a z/OS subsystem that ensures that you can restart appropriately registered applications and subsystems after a failure. Applications and subsystems can either be restarted on the image on which they failed, or in the case of image failure, on another available image in the SYSPLEX. ARM also covers application restart dependencies where applications require other applications or subsystems to be present before they restart. Message Broker V6 is fully ARM-enabled, and it is simple for an operator to assign an ARM classification and name to the broker. When the broker is started or stopped, it performs the necessary registration with ARM, enabling it to be restarted as defined in the ARM policy by the z/OS systems programmer.

The Configuration Manager and User Name Server components are also ARM enabled.

WebSphere MQ clustering

For z/OS users not using Parallel SYSPLEX, MQ clustering provides an excellent way to exploit high availability for new messages in the event of failure. In this mode of operation, brokers in a domain have a partitioned copy of the input queue, and clustering ensures that in

the event of a failure, new messages are sent only to queues that are still available. Although MQ clustering is a "shared nothing "solution, in many scenarios it can be good enough to enable the availability of new work, especially when combined with ARM.

Workload management

Goal-oriented resource allocation

When a Message Broker V6 execution group address space starts, you can assign to it a Workload Manager (WLM) service class. Systems programmers can assign different goals (typically response time) to this service class through WLM configuration choices.

The ability to assign WLM service classes to message processing workload has two significant benefits:

As work passes through subsystems that are WLM enabled, the service class can be maintained. Resources such as CPU and IO "follow" users’ work requests to make sure these requests meet, if possible, the goals set by WLM.

WLM classification means that in the event of resource constraint (at peak time for example), high priority workloads can receive appropriate resource to ensure that critical workloads are completed at the expense of less important work.

It is possible to assign different Execution Group address spaces to different WLM classes so that CPU and IO resource allocation can be prioritized appropriately for different classes of work performed with a single message broker.

Workload scaling

z/OS z/OS SYSPLEX brings vast potential processing capacity to Message Broker V6. Not only are z9 processors extremely powerful on their own, but up to 32 can be configured in a single z/OS image. Moreover, up to 32 z/OS images can participate in a SYSPLEX configuration. Message Broker V6 is designed to exploit all of these capabilities without any design changes to message flows.

Message flows have a built-in multiprocessing capability. Each instance of a message flow can execute on a separate thread (z/OS TCB), letting the broker easily exploit multiple CPUs. If a flow is not able to process enough messages due to a CPU constraint, it is simple to assign more instances to the message flow to dynamically increase the number of eligible CPUs for processing. No outages or changes in flow design are needed.

When you need to deploy flows across multiple execution groups, for example, to overcome the 2 GB virtual storage limit on z/OS address spaces, it is easy to assign a message flow (including its additional instances, if necessary) to these new address spaces. Again, no design changes are needed -- the flow is just assigned and becomes active automatically and without broker restart.

As described above, it’s simple to scale message flows across the SYSPLEX by deploying to multiple brokers within the SYSPLEX broker domain. Again, this reconfiguration process is dynamic and does not require restart. Similarly, you can remove brokers, execution groups, and message flow instances as needed.

Workload isolation

In some scenarios, message processing workloads must be separate from each other. For example, regulatory requirements may mandate that infrastructure groups that are processing workloads from third parties must keep those workloads separate. While you can assign a new broker to each party, it is simpler and just as effective to assign separate execution group address spaces to different types of work. From a storage isolation perspective, these execution groups are completely separate, and storage in one address space is not visible to another execution group. In the event of a failure, an execution group is restarted without affecting any execution groups owned by the broker -- failures are isolated to execution groups.

Reporting and chargeback

System Management Facilities (SMF)

SMF collects and records performance and accounting information generated by z/OS subsystems. This information is generally used for two purposes:

Enable efficient and effective tuning of message flows.

Enable infrastructure departments to charge users for their use of broker facilities, in accordance with agreed metrics, to help recover the cost of the infrastructure.

Message Broker V6 lets operational staff gather SMF data per message flow. Message flow developers do not need to instrument their designs in any way. Once the operator enables statistics for a message flow, the broker measures a broad range of flow- and node-related metrics, including CPU, IO, and user-relevant metrics such as number of messages processed, maximum message size, and average elapsed time. Common usage scenarios include using the number of messages processed by a flow to chargeback, and measuring the CPU, IO, and elapsed time averages for a node within a flow for hotspot analysis.

In some situations, message flow designers may wish to influence data by determining the source of messages processed by the broker, when a single message flow is processing requests on behalf of many disparate users. The flow designer might, for example, extract an application identifier from an MQ Message Descriptor field, or they might extract a department code from a message body. Once the flow designer determines the accounting origin, Message Broker V6 will partition performance and accounting information for this origin and record it separately to SMF, which lets you detail exact usage by a particular user or department.

Coordinated reporting

SMF also lets subsystems report performance and accounting information at the same time for a given processing interval, which lets you correlate statistics between Message Broker V6, WebSphere MQ, and DB2 subsystems and artifacts. This capability provides a powerful performance analysis tool for understanding relationships between subsystems.

Event Notification Flag 37 (ENF37) is signaled by SMF when it wishes subsystems to write performance and accounting information. Message Broker V6 is enabled for coordinated SMF reporting using ENF 37.

Reduced cost of ownership

These improvements mean that existing users will see significant benefit from moving to Message Broker V6. Similarly, new users can be confident that z/OS broker-based solutions deliver a high-performance solution with excellent value for the money.

Using zSeries Application Assist Processor (zAAP)

You can now offload machine instructions generated by the Java Virtual Machine to dedicated processors called zAAPs. A zAAP costs significantly less than a regular central processor, and zAAP capacity is not included in MSU capacity. Therefore you can offload Java-based applications without any increase in software costs. zAAP is available with z/OS V1.6 or later.

Message Broker V6 has several features that directly exploit zAAP technology, namely the Java Compute node, XLST node, and JMS Real-time and Multicast nodes. Therefore message transformations in Java and XSLT may be able to offload a significant percentage of their workload. Message distribution using JMS real-time and Multicast transports will similarly benefit.

The Java Compute node has been designed to cater for the needs of integration developers who wish to use Java as a transformation and routing language. All transformation logic written in these nodes is eligible for offload to zAAP. (However, parsing operations are still performed by non-Java components and are not eligible for offload). The exact offload amount depends on the amount of transformation logic compared to the amount of parsing. For simple messages that don't require too much parsing, or relatively complex message transformations, the zAAP offload should be significant.

XSLT processing, while requiring an XML input message, is increasingly significant. Because processing is entirely in Java, offload ratios as high as 80% have been observed in lab tests using this node. JMS Real-Time and Multicast components can be fully offloaded to zAAP, which means that non-queue-based pub/sub messaging involving a z/OS broker can benefit significantly. Also, the Configuration Manager is implemented in Java, so on z/OS, all of its CPU processing can be offloaded to zAAP.

50% Performance Improvement with V6

Message Broker V6 is an industry leader in high-performance transformation and routing. But the CPU cost associated with these functions is significantly higher than with traditional data processing. For example, parsing large XML documents requires lots of processor cycles. To dramatically reduce cost of ownership, IBM has made significant performance improvements in Message Broker V6 compared to previous versions.

Message Broker V5 and V6 were compared using a comprehensive range of tests involving different messaging styles, protocols, and message formats. In customer-oriented end-to-end messaging scenarios, messaging throughput increased by 50% with Message Broker V6. These reductions in processing costs are in addition to benefits from zAAP offloading when using broker Java components. The improvements were achieved without external product interface changes, so if you migrate from a previous release, you should see these performance improvements for existing message flows without changes to integration logic.

These improvements have been achieved without external product interface changes, meaning that users migrating from previous releases will see an improvement for existing message flows without having to change their integration logic. These performance improvements result from work in the following areas:

Parser improvements: Industry based (e.g. SWIFT) and record based (COBOL/C) parsers have seen improvements by up to a factor of four

ESQL improvements: Implementation has been thoroughly analysed and their implementation improved by an average factor of two

Locking and scalability: A significant reduction in CPU cost and wait times in multiprocessing environments

Aggregation implementation: MQ based implementation rather than database to give up to four times improvement in throughput

zSeries and z/OS technology exploitation XML Toolkit

o

Exploitation of Unicode conversion services and native hardware features

o

IEE754

Exploitation of native hardware IEE754 floating point operations

o

New Compiler algorithms

Generation of machine instructions for latest hardware ARCH(3) and

above Aggressive compiler optimization OPT(3)

64 bit multiply and divide algorithm enhancements

Native Unicode string generation

o

z/OS 1.5 or above

Complete XPLINK exploitation of LE, Broker, JVM and ODBC

New features New features in Message Broker V6 let you perform existing processes more effectively:

Java Compute Node to enable zAAP offload

DATETIME and field formatting enhancements to simplify the most common transformation operations and reduce their CPU cost

Semi-persistent environment to improve message routing and counting scenarios

MQGET node to maintain, where appropriate, processing context; and improve request response processing performance

Compact parsers for XML to reduce the CPU to read, write and navigate XML documents

Unicode database support to efficiently store data from worldwide sources without loss

New pricing

IBM has reduced the price of Message Broker V6 compared to V5. In addition, V6 is available in a "start-small-and-grow" edition at a reduced cost. This edition includes all Message Broker V6 capabilities, and you can scale vertically by exploiting multiple CPUs, including zAAPs. The only limitation is a capacity restriction of a single execution group per broker, limiting processing to a single z/OS address space, which is sufficient for typical initial deployments of Message Broker V6.

Operational characteristics

Using Message Broker V6 is a familiar experience for z/OS users. Whether you are dealing with installation, customization, command and console support, problem determination, coexistence, or security, Message Broker V6 looks and feels like a z/OS product. So you can use all of your existing z/OS skills when creating and managing your Message Broker V6 infrastructure on z/OS.

Installation and customization

Message Broker V6 is installed using SMP/E, which makes it a familiar experience for z/OS systems programmers. Fixes are delivered at PTFs and can be applied as necessary using SMP/E. Collections of fixes delivered as fix packs supersede any installed PTFs, which gives you a seamless upgrade path to the latest level of code.

Creating brokers, configuration managers, and user name servers is all JCL-based. Since most z/OS users know JCL, they can integrate z/OS customization procedures for broker components with existing procedures.

Command and console support

Broker component commands are available as JCL commands and via the MVS console. All JCL command output is written to the JES SPOOL as expected. All MVS console output appears on the MVS LOG.

Problem determination

Message Broker V6 writes informational, warning, and error messages to z/OS JOBLOGs for each execution group, which gives operators a time-stamped record of all events in a broker execution group. Messages for z/OS brokers and configuration managers also include a JOBLOG audit trail to detail all changes and operations. Examples of these operations include new and changed deployments, and actions on message flows such as starting and stopping them. Combined with message flow and message set versioning, this lets operators quickly determine the source of changes to their broker environment on z/OS.

If Message Broker V6 detects an internal error during processing, it produces a system dump with code S2C1. This dump is written to a regular MVS dump dataset and can be used by IBM Support to determine the reason for the error, and if necessary, provide a fix or temporary workaround for the problem.

Coexistence and migration

Message Broker V6 is typically installed alongside previous versions, and you can have multiple versions installed and operational. Therefore you can take a piecemeal rather than big-bang approach to migration, moving artifacts to V6 on a schedule that fits your business needs. You can also migrate Message Broker V6 components forwards and backwards between versions, which is useful if the rollout of a migrated broker needs to be backed off, or if business readiness requires it.

Security

You can secure all Message Broker V6 components using SAF-compliant security manager. Broker, Configuration Manager, and User Name Servers all run as started tasks and are assigned an appropriate z/OS user ID. Their access to z/OS resources nay be controlled according to this user’s rights by a SAF-compliant security manager. The Configuration Manager provides access control lists based on RACF users and groups to determine which users are allowed to interact with the broker domain, and the level of command support to which they are entitled.

Resource Recovery Services (RSS)

RRS is the transaction coordinator for Message Broker V6. Most z/OS subsystems are now RRS enabled (MQ, DB2, CICS, VSAM), and hence any work performed by the broker is by default within a fully transactional unit of work. Any node within a message flow that interacts with an RRS-enabled resource manager is automatically enlisted in a transaction, including user-developed and third-party nodes.

The Message Broker V6 transaction model is extremely powerful, enabling arbitrary nodes within a message flow to participate within a transaction. In most cases, all resources are updated as a single unit of work, but there can be cases where the ability to commit work independently of a larger transaction is desirable, such as in logging successful and unsuccessful transactions.

Disaster recovery

All key broker components needed for production systems are available on z/OS, providing a solid platform for building a disaster recovery solution. Message Broker V6 is not a resource manager like WebSphere MQ or DB2, so it does not have any transaction logs or page sets to manage, which simplifies disaster recovery solutions. An effective disaster recovery procedure requires all components and resources to be considered, and this article discusses only Message Broker V6 aspects.

Message Broker V6 resources under consideration fall into three categories:

Topology information such as brokers and any inter-broker domain connections, execution groups within these brokers, and assignment of message flows within execution groups.

Development Artifacts such as message flows, message sets, JAR files and style sheets.

Run-time state information such as durable subscriber details, retained publications, and in-flight aggregation state, which is held in WebSphere MQ queues and DB2 database tables.

In a disaster, all of these resources may be lost on the active system and may need to be restored on a backup system at a state as close as possible to the state at time of failure.

First, all topology information must be restored. Whenever a change to a production configuration is made, a record of the change needs to be made. Re-creation of topology information can performed using JCL command scripts or the Configuration Manager programming interface, as preferred. The record of the topology information is used to re- create the environment from the last deployment change.

The vast majority of development artifacts are contained in BAR files. At the time of deployment to a production system, a copy of the deployed BAR file should be made available on the backup system. Any development resources deployed by hand should also be made on the backup system. In the event of a failure, JCL command scripts or programming interfaces are used to redeploy resources to brokers and execution groups as necessary.

Finally, run-time state is either restored from disaster recovery of WebSphere MQ or DB2 resources, or manually by end user applications if this is not possible. If this failed state is not recovered, end users will have to remake the lost state. For infrequently changing information such as durable and retained publications, it is relatively easy to make this information, but restoring in-flight aggregation states is more difficult.

Message Broker V6 lets you create a fully scripted disaster recovery procedure that can be rehearsed and followed by operational staff in the event of a disaster.

z/OS Specific nodes

Message Broker V6 contains all components and capabilities available with the family of platform offerings, as well as significant design enhancements to support z/OS, as described above. However, some nodes are available only on z/OS for interaction with unique z/OS datasources and subsystems.

VSAM nodes

Message Broker V6 can process VSAM records in the same way as it processes messages from or to other data sources. Message Broker V6 support for VSAM consists of a suite of five nodes that let you perform record-oriented processing on VSAM files, including input, read, write, update, and delete operations. You can combine these nodes for VSAM access with other nodes to integrate VSAM processing into message flows, or use VSAM files to drive message flow processing. Consider the following scenarios:

Batch input processing

Read a specified number of records from a VSAM data set and propagate each record to subsequent nodes in your message flow

With update processing allows record locking for update later in a message flow

Data Enrichment and Routing from VSAM

Use VSAM as a database to perform data enrichment or message routing

Data logging to VSAM

Record interesting events to a VSAM file

Deletion of VSAM data

Remove VSAM file records on the basis of message processing

These nodes are delivered as a category 3 fully supported SupportPac -- IA13. For details, see Resources below.

QSAM nodes

A set of z/OS-specific nodes is also available for QSAM processing. These are similar in concept and usage to the VSAM nodes, but oriented around sequential files, rather than record-oriented files. These nodes are delivered as a category 3 fully supported SupportPac -- IA11. Details on where to get the node are are provided in the resources section.

CICS node

It has always been possible to drive CICS transactions using MQ messages generated by the broker, either directly, if the CICS transaction program is MQ enabled, or via the CICS DPL or 3270 bridge. However, there are disadvantages with this approach from a broker perspective:

The flow is broken into several legs, which means that processing is more complex.

More transactions are required to achieve processing.

The requesting context needs to be re-established when the response from CICS is returned, which may involve expensive operations such as reparsing the original input message.

The CICS request node lets a CICS program be driven synchronously within a message flow, simplifying the flow structure, reducing the number of transactions, and maintaining the processing context while the request is being handled by CICS.

Message Broker V6 processing using the CICS node is greatly simplified and improves performance up to 3X (for details, see Support Pac IA12). The CICS node extracts a COMMAREA from a node-defined portion of the input message and uses the EXCI interface to execute the appropriate transaction program. The resulting COMMAREA is added back to the message tree upon completion of the transaction. The CICS transaction program may operate within the RRS coordinated unit of work, or be committed immediately according to a node attribute.

The CICS node is delivered as a category 3 fully supported SupportPac -- IA12. For details, see Resources below.

Conclusion

This article has described how Message Broker for z/OS, V6 offers a high performance, highly available, scalable and manageable enterprise messaging backbone for a diverse range of messaging styles, protocols and formats.

Message Broker V6 provides a first class z/OS subsystem implementation. It is very well integrated with the key characteristics of the z/OS platform, which its users expect for their business processing. These include:

Availability

Reliability

Scalability

Workload management

Operational control

Comprehensive reporting

Security

Disaster recovery

Message Broker V6 and z/OS combine to form a powerful integration platform for messaging.