Professional Documents
Culture Documents
V6 on z/OS
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
o XML Toolkit