SlideShare a Scribd company logo
1 of 52
Download to read offline
AME-2284 IBM MQ for z/OS
Shared Queues
Pete Siddall
STSM – IBM MQ for z/OS
N
O
T
E
S
● In this presentation we will take a deep dive in to the new features of MQ for z/OS V8.
MQ for z/OS V8 New Features Deep Dive
Agenda
●
What are Shared Queues
●
SMDS
●
CF Flash
●
Structures – Persistence and recovery
●
Client Channels
Shared
QueueCoupling Facility (CF)
Application Application
QMgr QMgr
Same sysplex
Shared Queues
N
O
T
E
S
Chart shows an application put to a shared target queue -- that is, the target
queue is local to more than one queue manager. This put does not use the
mover:
1. Application puts to shared target queue
2. Remote application can now get the message.
The remote application can put a message to the reply-to queue using the
same method.
Note that applications connected to any queue manager with access to the
shared queue can get the message. To access the same shared queues,
queue managers must be:
In the same z/OS sysplex
In the same queue-sharing group (QSG) -- we will explain QSGs later.
There are restrictions on shared queues, for example:
CF capacity is limited (compared to DASD).
Shared Queues
DB2 Data Sharing Group
MQ Queue Sharing Group
Mover
QMGR
Private
Queues
Private
Objects
Mover
QMGR
Private
Queues
Private
Objects
Mover
QMGR
Private
Queues
Private
Objects
Shared
Queues
Shared
Objects
Data for
msg
> 63KB
Queue Sharing Groups (QSGs)
N
O
T
E
S
Chart shows how queue managers are organized into queue-sharing groups (QSGs) and the
relationship to DB2 data-sharing groups.
A queue-sharing group can contain one or more queue managers:
•Each queue manager has its own private (not shared) queues and object definitions.
•All queue managers in a QSG share the same set of shared queues and shared object
definitions
•A queue manager cannot belong to more than one QSG.
Shared object definitions for a QSG are maintained for IBMÂŽ MQ by DB2. Shared access to
these definitions is by DB2 data sharing:
•You must have DB2
•You can have more than one data-sharing group, but all members of one QSG must be
members of the same data-sharing group
•Shared object definitions are cached in the queue managers.
•A DB2 outage does not bring down the QSG (but you cannot add or change shared objects if
DB2 is down).
You do not have to define any queue-sharing groups if you do not run a sysplex (or if you just
don't want to).
If using shared messages > 63KB then a small portion for the message is stored in the CF, and
the rest is stored in DB2 or with V7.1 or higher there is the option of using Shared Message Data
Sets (SMDS) for storing the rest of the message data.
Queue-Sharing Groups (QSGs)
{
Administration
structure
Application
structures
Queue Queue Queue
(Information for unit-of-work recovery and so on)
Coupling facility
Administration
structure
Application
structures
Queue Queue Queue
(Information for unit-of-work recovery and so on)
{
Structures
for QSG 1
Structures
for QSG 2
CF Structures for shared-queues
N
O
T
E
S
Chart shows organization of MQ data in coupling facility (CF) structures
(actually list structures).
For clarity the chart shows:
•All structures in one CF -- actually they can be spread arbitrarily over
many CFs
•Only MQ structures -- actually other subsystems and applications can
have structures in the same CF as MQ.
Each queue-sharing group needs:
•One administration structure -- this is used for information that MQ itself
needs, for example to manage unit-of-work recovery
•One or more (up to a maximum of 63) application structures -- these are
used to hold the shared queues.
Each application structure can hold up to 512 shared queues.
CF Structures for shared-queues
Creating CF structures and shared queues
●
Define a structure to z/OS (not to MQ) by updating the CFRM policy
(see System Setup Guide):
– Structure is known to MQ by its 12-character str-name.
– Structure is known to z/OS by the 16-character name formed
by:
• qsg-name || str-name (Application structures)
• qsg-name || CSQ_ADMIN (Administration structure)
●
Define a shared queue using the DEFINE QLOCAL command on
any queue manager in the QSG:
– DEFINE QLOCAL(queue-name) QSGDISP(SHARED)
CFSTRUCT(str-name)
●
z/OS creates the structure when required (first use).
●
MQ creates the queue when required (first use).
N
O
T
E
S
Chart shows the processes for creating CF list structures for use by MQ
QSGs and for creating shared queues in these structures.
The z/OS CFRM policy for the sysplex specifies how z/OS should allocate
resources for each structure:
•What type of CF (for example, CF must have battery back-up)
•How big to make the structure.
z/OS does not actually allocate any resource for the structure until first use
-- in our case, the first time a queue manager connects to the structure:
•At startup for the administration structure
•At first queue open for application structures.
As with private queues, defining the queue to MQ does not create the
queue. The queue is created when it is first used.
It is best to allocate queues so that (as far as possible) all the queues
accessed by any one unit-of-work are in the same structure.
Creating CF structures and shared queues
QM1 Shared Queue
Message
100K (ptr)
QM1
SMDS
QM2
SMDS
QM2
APP
MQPUT
APP
MQGET
1
2 3
4
V7.1
Large Shared Queue Messages (using
SMDS)
N
O
T
E
S
Shared message data set concepts
Offloaded message data for shared messages is stored in data sets.
Each application structure has an associated group of shared message data
sets, with one data set per queue manager.
Named using DSGROUP parameter on CFSTRUCT definition.
Each queue manager owns a data set for each structure, opened for
read/write access, which it uses to write new large messages.
Each queue manager opens the data sets for the other queue managers for
read-only access, so it can read their message data.
When a message with offloaded data needs to be deleted, it is passed back
to the queue manager which originally wrote it, so that the queue manager
can free the data set space when it deletes the message.
SMDS Performance Improvement
●
Tests show comparable CPU savings making SMDS a more usable
feature for managing your CF storage
●
SMDS per CF structure provides better scaling than DB2 BLOB
storage
1 2 3 4 5 6 7 8 9 10
0
50
100
150
200
250
300
350
400
•3 LPAR Test - DB2
64KB Non-Persistent Messages In-Syncpoint - DB2
NP SIS Scaling –
3 qmgr
NP SIS Scaling –
6 qmgr
NP SIS Scaling –
9 qmgr
Queue Pairs
Transactions/Second
1 2 3 4 5 6 7 8 9 10
0
1000
2000
3000
4000
5000
6000
7000
•3 LPAR Test - SMDS
64KB Non-Persistent Messages In-Syncpoint - SMDS
NP SIS Scaling –
3 qmgr
NP SIS Scaling –
6 qmgr
NP SIS Scaling –
9 qmgr
Queue Pairs
Transactions/Second
V7.1Selecting which messages to offload
●
Messages too large for CF entry (> 63K bytes) are always
offloaded.
●
Other messages may be selectively offloaded using offload rules.
– Each structure has three offload rules, specified on the
CFSTRUCT definition.
– Each rule specifies message size in Kbytes and structure usage
threshold, using two parameters:
• OFFLDnSZ(size) and OFFLDnTH(percentage), where n = 1, 2, 3.
– Data for new messages exceeding the specified size is offloaded
(as for a large message) when structure usage exceeds the
specified threshold.
– Default rules are provided which should be useful in most cases.
– Rules can be set to dummy values if not required.
●
Without offloading data, it is possible to store 1.25M messages of
63KB on a 100GB structure
●
When offloading all messages, possible to store approx 140M
messages on the same structure, irrespective of message size
N
O
T
E
S
Selecting which messages to offload
As with previous releases of MQ, the amount of data that can be stored in the CF for
a single message is limited to 63KB. This means that if the message is over 63KB in
size then it must be “offloaded”. With V7.1 there are two offload methods, already
seen, for offloading the data, using either DB2 or SMDS.
In addition to offloading all messages over 63KB, it is possible to specify that
messages smaller than this size should also be offloaded. There are three sets of
rules that are used to control this, and each set is made up of two parameters, the
size of the message and how full the CF structure is when the message is put. These
offload rules enable a balancing to be performed between performance and CF
capacity. For example, you might use a rule that says that when the CF structure is
70% full then all messages over 32KB will be offloaded, and then another rule that
says that when the CF structure is over 80% full, all messages over 4KB will be
offloaded. When migrating a structure from CFLEVEL 4 to CFLEVEL 5 (required to
use these rules), the defaults will be set to mimic the CFLEVEL 4 behavior. When
defining a new structure at CFLEVEL 5, the default rules will be set as follows:
OFFLD1SZ = 32K OFFLD1TH = 70
OFFLD2SZ = 4K OFFLD2TH = 80
OFFLD3SZ = 0K OFFLD3TH = 90
Typical use of offload rules
●
The three offload rules have no fixed order but are typically
intended to be used as follows:
– Rule 1 is used to save space for fairly large messages by
offloading them, with little performance impact, even when
plenty of space left.
• SMDS defaults: OFFLD1SZ(32K), OFFLD1TH(70)
– Rule 2 is used as an intermediate step between rules 1 and 3,
to start saving more space as the structure usage increases,
in exchange for a minor performance impact.
• SMDS defaults: OFFLD2SZ(4K), OFFLD2TH(80)
– Rule 3 is used to maximize the remaining space when the
structure is nearly full, by offloading everything possible.
• SMDS defaults: OFFLD3SZ(0K), OFFLD3TH(90)
~ 35000 msgs in CF
Storage benefits of offloading
~5000msgsinCF
~140000offloadedmsgs
~140000offloadedmsgs
70%
80%
90%
100%
~ 320000 msgs using offloading vs ~ 50000 without offloading
> 32KB > 4KB > 0KB> 63KB
1GB structure using 20KB messages
Creating a shared message data set
●
SMDS is defined as a VSAM linear data set using DEFINE CLUSTER.
– Requires LINEAR option.
– Control interval size must be 4096, which is the default for linear.
– Requires SHAREOPTIONS(2 3), allowing one queue manager to
write and other queue managers to read at the same time.
– If maximum size may need to exceed 4GB, requires SMS data class
which has VSAM extended addressability attribute.
– If automatic expansion is to be supported, requires an appropriate
secondary space allocation (although a default of 20% will be used if
an expansion attempt fails because of no secondary allocation).
●
Can optionally be pre-formatted, for example using CSQJUFMT.
– Otherwise formatted automatically when first opened.
Creating a shared message data set
●
The DSGROUP parameter on the CFSTRUCT definition specifies the
group of data sets associated with the application structure.
– It is specified as a generic data set name with a single asterisk as
the point where the owning queue manager name is to be inserted.
– It is required when the option OFFLOAD(SMDS) is specified.
●
CSQ4SMDS in SCSQPROC provides JCL to define and format a
single dataset
DEFINE CLUSTER -
(NAME(++HLQ++.++QMGR++.++CFSTRUCT++.SMDS) -
MEGABYTES(++PRI++ ++SEC++) -
LINEAR -
DATACLAS(EXTENDED) -
SHAREOPTIONS(2 3) ) -
DATA -
(NAME(++HLQ++.++QMGR++.++CFSTRUCT++.SMDS.DATA) )
Access to shared message data sets
●
Shared message data sets must be on shared direct access
storage accessible to all queue managers within the QSG.
●
Normal running:
– Queue manager opens own data set read/write.
• Requires UPDATE access to own data set.
– Queue manager opens other data sets read-only.
• Requires READ access to all other data sets.
●
Media recovery processing:
– Queue manager performing recovery opens own data set and
all other data sets for read/write access.
• Requires UPDATE access to all data sets.
Shared message data set capacity
considerations
●
Each shared message data set only contains data for large
messages written via its owning queue manager.
●
Message size calculation:
– Each stored message includes standard headers (usually 352
bytes).
– Each message is stored as one or more message blocks.
– Each message block is stored in a range of consecutive 4K
pages on the data set, with a very small header (32 bytes).
– Approximate data set space required per large message, in
bytes, is given by size of message plus header rounded up to
next 4K.
●
Multiply by maximum anticipated backlog of messages written
via that queue manager (plus some safety margin) to estimate
size needed for data set.
SMDS capacity considerations – expansion
●
Data set can be automatically expanded when necessary.
– Normally set by DSEXPAND(YES|NO) option on CFSTRUCT,
which specifies default option for data set group.
– Can also be overridden for individual data sets using
DSEXPAND option on ALTER SMDS.
●
Expansion attempt is automatically triggered when 90% full.
– If no secondary allocation was specified, VSAM error message
will appear, but queue manager will retry using a default
secondary allocation of 20% of the existing size.
– If expansion fails (not enough space available), queue
manager sets DSEXPAND(NO) to prevent further attempts.
Operator can use ALTER SMDS to set DSEXPAND(YES)
again after problem is fixed.
Flash
CFStruct
CF Flash: Scenarios Planned Emergency
Storage
70%
80%
90%
offload >32kB
offload > 0kB
offload > 4kB
SMDS
ALL
CFSTRUCT OFFLOAD rules
cause progressively smaller
messages to be written to
SMDS as the structure starts
to fill.
Once 90% threshold is
reached, the QMGR is storing
the minimum data per
message to squeeze as many
message references as
possible into the remaining
storage.
CF Flash algorithm also starts
moving the middle of the
queue out to flash storage,
keeping the faster 'real'
storage for messages most
likely to be got next.
Flash
CFStruct
CF Flash: Scenarios Maximum Speed
20%
80%
90%
offload threshold 64kB(*)
offload 64kB => disabled
offload disabled
SMDSlarge msgs
We want to keep high performance
messages in the CF for most rapid
access.
CFSTRUCT OFFLOAD are
configured with special value '64k'
to turn them off.
(*) you might choose to use one rule
to alter the 'large data' threshold
from 63kB down
Once 90% threshold is reached, the
CF Flash algorithm starts moving
the middle of the queue out to flash
storage, keeping the faster 'real'
storage for messages most likely to
be gotten next.
As messages are got and deleted,
the CF flash algorithm attempts to
pre-stage the next messages from
flash into the CFSTRUCT so they
are rapidly available for MQGET.
In this scenario the flash storage
acts like an extension to 'real'
CFSTRUCT storage. However it
will be consumed more rapidly since
all small message data is stored in
it.
N
O
T
E
S
CF Flash: Storage (using 4GB structure)
Scenario
Offload
reason
(Rule)
Msg Size Total
Msgs # in 'real' SMDS
space
# in 200 GB
flash
Augmented
(limit 30GB)
No SMDS
No Flash n/a 1kB 3M 3M
n/a 4kB 900,000 900,000
n/a 16kB 250,000 250,000
SMDS
No Flash MQ 90% 1kB 3.2M 3.2M 800MB
MQ 80% 4kB 1.8M 1.8M 5GB
MQ 80% 16kB 1.3M 1.3M 20GB
“Emergency
”
Scenario
MQ 90% 1kB 190M 2M 270GB 190M 30GB
MQ 80% 4kB 190M 600,000 850GB 190M 30GB
MQ 80% 16kB 190M 150,000 3TB 190M 30GB
“Speed”
Scenario CF 90% 1kB 150M 2M 150M 26GB
CF 90% 4kB 48M 600,000 48M 8GB
CF 90% 16kB 12M 150,000 12M 2GB
N
O
T
E
S
Notes
Example: we define a CFSTRUCT with SIZE 4GB. We have a maximum of 200GB flash memory available, but we
decide not to use more than an additional 30GB of augmented storage.
Table Considers 4 scenarios, and shows the effect of message size in each.
# in real: estimates how many in CF real storage
First scenario has no flash nor SMDS. Entire structure is available to store messages.
Second scenario introduces SMDS offload with default rules. The 1k messages don't got to SMDS til 90% full, but
the 4k and 16k cases both start offloading at 80%. The CF space released by offloading data can hold more
message pointers, so the 1k case doesn't increase number of messages greatly, but 4k number doubles, and 16k
gets 5x as many.
Third scenario is our chart#1 “Emergency Flash”.
Because flash is configured, there is less 'real' storage for storing data, I've assumed 1GB less for 200GB flash.
Here flash only holds the message references. This means the message size in flash is small. Our experiments
show about 175 bytes of Augmented storage per message in flash. We have chosen to limit Augmented storage to
30GB, so message numbers are limited by augmented storage. SMDS holds data.
Fourth scenario is our chart#2 “Max Speed”.
All message sizes are below SMDS threshold, so SMDS not used.
Limit is now how many messages will fit in 200GB flash. We show approximate size of augmented storage needed
to support these volumes of messages in flash.
CAVEAT: Estimates only, based on our limited test scenarios.
CFLEVEL(4) using 8KB Messages
●
Saw-tooth effect occurs when capture task goes into retry mode due to “storage medium
full” reason code.
●
Even with these 5 second pauses, the non-SCM capable workload completes in 90% of
the time of the SCM capable workload.
●
Cost of workload in MVS differs by less than 2%.
●
Get rate once the capture task has completed:
No SCM: 21100 messages / second ~ 164MB/sec
SCM: 19000 messages / second ~ 148MB/sec
1
4
7
10
13
16
19
22
25
28
31
34
37
40
43
46
49
52
55
58
61
64
67
70
73
76
79
82
85
88
91
94
0
1 0 0 0 0 0
2 0 0 0 0 0
3 0 0 0 0 0
4 0 0 0 0 0
5 0 0 0 0 0
6 0 0 0 0 0
7 0 0 0 0 0
8 0 0 0 0 0
9 0 0 0 0 0
1 0 0 0 0 0 0
C F L E V E L ( 4 ) 8 K M e s s a g e s - X M I T Q u e u e d e p t h
N o S C M a v a i l a b l e S C M a v a i l a b l e D e p t h t h a t S C M u s e d
T i m e ( s e c o n d s )
QueueDepth
N
O
T
E
S
Notes
Chart demonstrates that put and get rates do not significantly alter as CF 'real' storage overflows
and data is offloaded to, or read back from, CF flash. This is demonstrated by comparing the slopes
of the red and blue lines and noticing no significant kink in red line as we overflow CF 'real' 90%
threshold.
NOTE: SCM = Storage Class Memory, alternative terminology for flash storage.
The scenario being tested uses CFLEVEL(4) so SMDS config was not required. However, it
corresponds identically with our “Max Speed” scenario above.
The test case has a message generator task putting 8kB messages on to a transmission queue. A
channel is getting these in FIFO order. The message generator pauses for a few seconds when it
hits storage media full leading to the saw-tooth shape of the blue line where no Flash memory is
available.
The red dotted line indicates the threshold at which messages in the red line test, started to be
written to flash storage. Notice that it is significantly lower than 90% of the 'media full' blue peaks,
because some of the structure storage has gone to control flash, and the threshold is 90% of the
remainder.
Final point is that cpu costs are not significantly different whether flash is being used or not.
From performance perspective, using sequential queues, flash memory behaves like CF real.
Queue
manager
Private
queues
Queue
manager
Private
queues
Queue
manager
Private
queues
Shared
queues
Coupling facility failure
Messages on
shared queues
OK (kept)
Nonpersistent
messages on
shared queues
lost (deleted)
Queue
manager
Private
queues
Queue
manager
Private
queues
Queue
manager
Private
queues
Shared
queues
Nonpersistent
messages on
private queues
OK (kept)
Messages on
shared queues
OK (kept)
Nonpersistent
messages on
private queues
lost (deleted)
Queue manager failure
Persistent
messages on
shared queues
restored from log
Failure and persistence
N
O
T
E
S
Chart shows implications of failures in a queue-sharing group.
Left side of chart shows queue manager failure. If one or more queue managers in a
queue-sharing group fail, or are stopped normally:
•Nonpersistent messages on queues private to the failing queue manager or
managers are lost -- in fact they are deleted when a queue manager restarts
•Messages on shared queues are not lost, they are kept -- even if all queue
managers in the queue-sharing group fail.
Right side of chart shows coupling facility structure failure (for simplicity the chart
shows an entire CF failing). If one or more CF structures fail:
•Messages on queues in other CF structures are not lost
•Nonpersistent messages on queues in failing CF structures are lost
•Persistent messages on queues in failing CF structures must be restored from
backup and log information on the logs
•Restoring queue manager accesses logs of all queue managers in the QSG.
If the administration structure fails, all the queue managers in the QSG fail.
Failure and persistence
Admin Structure Recovery
●
Prior to V7.0.1 each queue manager would
rebuild own admin structure entries
– Particularly an issue in a DR situation.
• Need to start all queue managers to rebuild admin
structure
• Once recovered, application structures could be
recovered
●
At V7.0.1 active queue managers notice if
other queue managers don’t have entries,
and initiate rebuild on their behalf
N
O
T
E
S
If the Admin Structure was lost for some reason (DR situation, loss of power to the CF
etc), then prior to V7.0.1 each queue manager had to rebuild its own Admin Structure
entries. As the admin structure needs to be complete for application structure
recovery to take place, it was necessary in a DR situation to start up all the queue
managers in a QSG before application structure recover could take place.
In V7.0.1 an enhancement has been made to admin structure recovery so that a
single queue manager is able to recover the admin structure entries for all the other
queue managers in the QSG. If a V7.0.1 (or higher) queue manager notices that the
admin structure entries are missing for another queue manager then it will attempt to
recover them on behalf of the other queue manager. It can only do this if the other
queue manager is not running at the time. In a DR situation this means that it is only
necessary to start a single queue manager at V7.0.1 (or higher) before being able to
recover the application structures.
A V7.0.1 queue manager can recover the entries on behalf of any version of queue
manager, so you don’t need to have all queue managers in the QSG to be running at
V7.0.1 before this functionality will take place.
Admin Structure Recovery
CF
QM2
QM1
QM3
CF Loss of Connectivity
Pre V7.1 Queue Managers
A failure of the Coupling
Facility is most likely
going to be presented
to connectors as a Loss
of Connectivity
Prior to V7.1, if a queue
manager receives a
loss of connectivity, it
will terminate.
In the case of a
Coupling Facility failure,
this would mean a QSG
wide outage (unless
protected by CF
Duplexing)
CF2With V7.1 the queue
managers will not
terminate. They will
automatically attempt to
re-establish access to
the structures affected.
CF1
QM2
QM1
QM3
CF Loss of Connectivity Tolerance
V7.1
V7.1+ Queue Managers
In the case of a total loss
of connectivity the queue
managers can
automatically recover
(RECOVER CFSTRUCT)
the structures that were
on the failed CF into an
alternative CF
(if available)
N
O
T
E
S
Queue managers will tolerate loss of connectivity to the admin structure without
terminating if:
the QMGR CFCONLOS attribute is set to TOLERATE
all the queue managers in the QSG are at V7.1
All queue managers in the QSG will disconnect from the admin structure, then
attempt to reconnect and rebuild their own admin structure data.
If a queue manager cannot reconnect to the admin structure, for example because
there is no CF available with better connectivity, some shared queue operations will
remain unavailable until the queue manager can successfully reconnect to the admin
structure and rebuild its admin structure data.
The queue manager will automatically reconnect to the admin structure when a
suitable CF becomes available on the system.
Failure to connect to the admin structure during queue manager startup is not
tolerated, regardless of the value of CFCONLOS.
Admin structure loss of connectivity
V7.1
N
O
T
E
S
Queue managers will tolerate loss of connectivity to application structures if:
they are at CFLEVEL(5)
the CFCONLOS attribute is set to TOLERATE
All queue managers that lose connectivity to an application structure will disconnect
from the structure.
The next action depends on whether it is a partial or total loss of connectivity
(according to MQ’s definition).
loss of connectivity is partial if there is at least one system in the sysplex that still
has connectivity to the CF that the structure is allocated in.
loss of connectivity is total if all systems in the sysplex have lost connectivity to the
CF that the structure is allocated in.
In the case of total loss of connectivity
the structure will (probably) need to be recovered using the RECOVER CFSTRUCT
command.
non-persistent messages will be lost.
V7.1
Application structure loss of connectivity
CF2CF1
QM2
QM1
QM3
CF Loss of Connectivity Tolerance
V7.1
V7.1+ Queue Managers
In the case of a partial
loss of connectivity, a
System Managed Rebuild
will be automatically
initiated by the QMGRs to
rebuild the structures into
a more available CF. This
will mean that both
persistent and non-
persistent messages will
be retained.
N
O
T
E
S
In the case of partial loss of connectivity
queue managers that lost connectivity to the structure will attempt to initiate a
system-managed rebuild in order to move the structure to another CF with better
connectivity.
if the rebuild is successful, both persistent and non-persistent messages will be
copied to the other CF.
queue managers that didn’t lose connectivity to the structure may experience a slight
delay during system-managed rebuild processing, but shared queues will remain
available.
If an application structure cannot be reallocated in another CF with better
connectivity, queues on the structure will remain unavailable until connectivity is
restored to the CF that the structure is currently allocated in.
Queue managers will automatically reconnect to the structure when it becomes
available.
V7.1
Application structure loss of connectivity
CF Loss of Connectivity Tolerance
●
QMGR CFCONLOS(TERMINATE|TOLERATE)
– Specifies whether loss of connectivity to the admin structure should be tolerated
– Default is TERMINATE
– Can only be altered to TOLERATE when all QSG members are at 7.1
●
CFSTRUCT CFCONLOS(TERMINATE|TOLERATE|ASQMGR)
– Specifies whether loss of connectivity to application structures should be
tolerated
– Only available at CFLEVEL(5)
– Default is ASQMGR for new CFLEVEL(5) structures, and TERMINATE for
structures altered to CFLEVEL(5)
●
CFSTRUCT RECAUTO(YES|NO)
– Specifies whether application structures should be automatically recovered
– Only available at CFLEVEL(5)
– Default is YES for new CFLEVEL(5) structure, and NO for structures altered to
CFLEVEL(5)
V7.1
CFRM Policy Considerations
CFSTRUCT(TEST1) STRUCTURE NAME(SQ27TEST1)
CFLEVEL(5) SIZE(50000)
CFCONLOS(TOLERATE) INITSIZE(20000)
RECAUTO(YES) DUPLEX(ALLOWED)
OFFLOAD(SMDS) ALLOWAUTOALT(YES)
PREFLIST(P5CF01,P5CF02)
ENFORCEORDER(NO)
●
If using CFCONLOS(TOLERATE)
– also need to consider multiple CFs in PREFLIST
– Use ENFORCEORDER(NO) so that XCF algorithms can
choose the best place to re-allocate after failure.
●
ALLOWAUTOALT(YES) enables CF to adjust entry/element ratio,
and also automatically resize structure up to SIZE value (can also
adjust down to MINSIZE!!)
●
MQ structures can be duplexed… this will make most types of
failures transparent to the queue manager
Client Channels
●
Client channels are stateless, so don’t use synchronization
queues
– Only benefit of using a shared channel is the shared status
– Can cause performance issues if using shared channel
• Needs to update DB2 status for each connect/disconnect
●
Can configure a generic port to point at INDISP(QMGR) listener
on each queue manager
– Can still benefit from failover and balancing of client
connections without using a shared channel, and can still use
QSG name on the MQCONN
●
Will not work for Extended Transactional Client (including WAS
2-Phase Commit over client conn) until at V7.0.1
N
O
T
E
S
As client channels are stateless, they don’t use a synchronization
queue. The only benefit of using a shared channel for client
channels is the shared status information. However, the use of a
shared server-connection channel has drawbacks as it means each
connection/disconnect will cause the queue manager to update the
shared channel status, which is held in DB2. This could lead to
performance issues if there are lots of clients connecting.
It is still possible to use a generic port to provide workload
distribution and failover in the QSG, but rather than targeting an
INDISP(SHARED) listener on each queue manager, the
INDISP(QMGR) listener should targeted.
When using client channels into a QSG it is not possible to use the
Extended Transactional Client (or client connections from WAS) if
you are using 2-phase commit, unless you are connecting into a
V7.0.1 queue manager
Client Channels
2-Phase Commit Client Connections
●
When setting up the connection, specify the QSG name rather
than QMGR name
– In MQConnectionFactory if using JMS under WAS, you must
ensure that you are only using shared resources
– This causes a UR with GROUP disposition to be created,
rather than QMGR
– A GROUP UR can be inquired and resolved via any member
of the QSG
• If there is a failure, the transaction manager will reconnect
to the QSG and request a list of in-doubt transactions.
GROUP URs will be reported back no matter what QMGR
they were started on
N
O
T
E
S
When using the Extended Transactional Client, or the JMS
transactional client (under WAS), it is possible to use 2-phase
commit applications in a QSG. When specifying the connection
options to the Transaction Manager it is necessary to provide the
QSG name rather than the QMGR name, and also configure the
client channel to be routed to a suitable (V7.0.1 or higher qmgr) in
the QSG. When using this configuration, any Unit Of Recovery (UR)
that is created will have a GROUP disposition. This means that it
can be inquired and resolved on any qmgr in the QSG.
If a connection fails for some reason, and the TM reconnects to the
QSG, it can inquire and resolve the transactions no matter which
qmgr it is now connected to, and where the transactions were
originally started.
2-Phase Commit Client Connections
GROUPUR – The Problem
QM2QM1
Client
APP
Generic
Port
TM
Client App
connects via
generic port and
starts UOW
If TM reconnects to
QM2 it only be told
what is in-doubt on
QM2, meaning that
it will throw away
any information
about in-doubts on
QM1
If there is a failure,
TM will reconnect
via generic port to
inquire what
transactions need
resolving
GROUPUR – The Solution
QM2QM1
Client
APP
Generic
Port
TM
Client App
connects via
generic port and
starts UOW
If TM reconnects to
QM2, QM2 will inquire
all the in-doubts that
have a GROUP
disposition, whatever
QMGR that were
running on.
If there is a failure,
TM will reconnect
via generic port to
inquire what
transactions need
resolving
xa_open string needs to
be specified with the
QSG name rather than
QMGR name, this means
a GROUPUR is created
Questions?
Notices and Disclaimers
Copyright Š 2015 by International Business Machines Corporation (IBM). No part of this document may be reproduced or
transmitted in any form without written permission from IBM.
U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract
with IBM.
Information in these presentations (including information relating to products that have not yet been announced by IBM) has
been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors.
IBM shall have no responsibility to update this information. THIS document is distributed "AS IS" without any warranty, either
express or implied. In no event shall IBM be liable for any damage arising from the use of this information, including but not
limited to, loss of data, business interruption, loss of profit or loss of opportunity. IBM products and services are warranted
according to the terms and conditions of the agreements under which they are provided.
Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without
notice.
Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are
presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual
performance, cost, savings or other results in other operating environments may vary.
References in this document to IBM products, programs, or services does not imply that IBM intends to make such products,
programs or services available in all countries in which IBM operates or does business.
Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not
necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither
intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation.
It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal
counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the
customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal
advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law.
Notices and Disclaimers (con’t)
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products in connection with this
publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.
IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to
interoperate with IBM’s products. IBM expressly disclaims all warranties, expressed or implied, including but not
limited to, the implied warranties of merchantability and fitness for a particular purpose.
The provision of the information contained herein is not intended to, and does not, grant any right or license under any
IBM patents, copyrights, trademarks or other intellectual property right.
•IBM, the IBM logo, ibm.com, Bluemix, Blueworks Live, CICS, Clearcase, DOORS®, Enterprise Document
Management System™, Global Business Services ®, Global Technology Services ®, Information on Demand, ILOG,
Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®,
pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®,
QRadarÂŽ, RationalÂŽ, RhapsodyÂŽ, SoDA, SPSS, StoredIQ, TivoliÂŽ, TrusteerÂŽ, urban{code}ÂŽ, Watson, WebSphereÂŽ,
WorklightÂŽ, X-ForceÂŽ and System zÂŽ Z/OS, are trademarks of International Business Machines Corporation,
registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other
companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at:
www.ibm.com/legal/copytrade.shtml.
Thank You
Your Feedback is
Important!
Access the InterConnect 2015
Conference CONNECT
Attendee Portal to complete
your session surveys from your
smartphone,
laptop or conference kiosk.

More Related Content

What's hot

Communication model of parallel platforms
Communication model of parallel platformsCommunication model of parallel platforms
Communication model of parallel platformsSyed Zaid Irshad
 
A Parallel Packed Memory Array to Store Dynamic Graphs
A Parallel Packed Memory Array to Store Dynamic GraphsA Parallel Packed Memory Array to Store Dynamic Graphs
A Parallel Packed Memory Array to Store Dynamic GraphsSubhajit Sahu
 
Hb3512341239
Hb3512341239Hb3512341239
Hb3512341239IJERA Editor
 
ORCHESTRATING BULK DATA TRANSFERS ACROSS GEO-DISTRIBUTED DATACENTERS
ORCHESTRATING BULK DATA TRANSFERS ACROSS GEO-DISTRIBUTED DATACENTERSORCHESTRATING BULK DATA TRANSFERS ACROSS GEO-DISTRIBUTED DATACENTERS
ORCHESTRATING BULK DATA TRANSFERS ACROSS GEO-DISTRIBUTED DATACENTERSNexgen Technology
 
Scheduling and Resource allocation in 802.11ax (WIFI 6)
Scheduling and Resource allocation in 802.11ax (WIFI 6)Scheduling and Resource allocation in 802.11ax (WIFI 6)
Scheduling and Resource allocation in 802.11ax (WIFI 6)RESHAN FARAZ
 
Optimized Design of 2D Mesh NOC Router using Custom SRAM & Common Buffer Util...
Optimized Design of 2D Mesh NOC Router using Custom SRAM & Common Buffer Util...Optimized Design of 2D Mesh NOC Router using Custom SRAM & Common Buffer Util...
Optimized Design of 2D Mesh NOC Router using Custom SRAM & Common Buffer Util...VLSICS Design
 
An Adaptive Routing Algorithm for Communication Networks using Back Pressure...
An Adaptive Routing Algorithm for Communication Networks  using Back Pressure...An Adaptive Routing Algorithm for Communication Networks  using Back Pressure...
An Adaptive Routing Algorithm for Communication Networks using Back Pressure...IJMER
 
Integrating lock free and combining techniques for a practical and scalable f...
Integrating lock free and combining techniques for a practical and scalable f...Integrating lock free and combining techniques for a practical and scalable f...
Integrating lock free and combining techniques for a practical and scalable f...jpstudcorner
 
Physical organization of parallel platforms
Physical organization of parallel platformsPhysical organization of parallel platforms
Physical organization of parallel platformsSyed Zaid Irshad
 
The Apache Cassandra ecosystem
The Apache Cassandra ecosystemThe Apache Cassandra ecosystem
The Apache Cassandra ecosystemAlex Thompson
 
Sc13 comex poster
Sc13 comex posterSc13 comex poster
Sc13 comex posterhjjvandam
 
Tdt4260 miniproject report_group_3
Tdt4260 miniproject report_group_3Tdt4260 miniproject report_group_3
Tdt4260 miniproject report_group_3Yulong Bai
 
High performance nb-ldpc decoder with reduction of message exchange
High performance nb-ldpc decoder with reduction of message exchange High performance nb-ldpc decoder with reduction of message exchange
High performance nb-ldpc decoder with reduction of message exchange Ieee Xpert
 
RTH-RSS Mac: Path loss exponent estimation with received signal strength loca...
RTH-RSS Mac: Path loss exponent estimation with received signal strength loca...RTH-RSS Mac: Path loss exponent estimation with received signal strength loca...
RTH-RSS Mac: Path loss exponent estimation with received signal strength loca...IOSR Journals
 

What's hot (15)

Communication model of parallel platforms
Communication model of parallel platformsCommunication model of parallel platforms
Communication model of parallel platforms
 
A Parallel Packed Memory Array to Store Dynamic Graphs
A Parallel Packed Memory Array to Store Dynamic GraphsA Parallel Packed Memory Array to Store Dynamic Graphs
A Parallel Packed Memory Array to Store Dynamic Graphs
 
Hb3512341239
Hb3512341239Hb3512341239
Hb3512341239
 
ORCHESTRATING BULK DATA TRANSFERS ACROSS GEO-DISTRIBUTED DATACENTERS
ORCHESTRATING BULK DATA TRANSFERS ACROSS GEO-DISTRIBUTED DATACENTERSORCHESTRATING BULK DATA TRANSFERS ACROSS GEO-DISTRIBUTED DATACENTERS
ORCHESTRATING BULK DATA TRANSFERS ACROSS GEO-DISTRIBUTED DATACENTERS
 
Scheduling and Resource allocation in 802.11ax (WIFI 6)
Scheduling and Resource allocation in 802.11ax (WIFI 6)Scheduling and Resource allocation in 802.11ax (WIFI 6)
Scheduling and Resource allocation in 802.11ax (WIFI 6)
 
Optimized Design of 2D Mesh NOC Router using Custom SRAM & Common Buffer Util...
Optimized Design of 2D Mesh NOC Router using Custom SRAM & Common Buffer Util...Optimized Design of 2D Mesh NOC Router using Custom SRAM & Common Buffer Util...
Optimized Design of 2D Mesh NOC Router using Custom SRAM & Common Buffer Util...
 
An Adaptive Routing Algorithm for Communication Networks using Back Pressure...
An Adaptive Routing Algorithm for Communication Networks  using Back Pressure...An Adaptive Routing Algorithm for Communication Networks  using Back Pressure...
An Adaptive Routing Algorithm for Communication Networks using Back Pressure...
 
Integrating lock free and combining techniques for a practical and scalable f...
Integrating lock free and combining techniques for a practical and scalable f...Integrating lock free and combining techniques for a practical and scalable f...
Integrating lock free and combining techniques for a practical and scalable f...
 
Physical organization of parallel platforms
Physical organization of parallel platformsPhysical organization of parallel platforms
Physical organization of parallel platforms
 
SPROJReport (1)
SPROJReport (1)SPROJReport (1)
SPROJReport (1)
 
The Apache Cassandra ecosystem
The Apache Cassandra ecosystemThe Apache Cassandra ecosystem
The Apache Cassandra ecosystem
 
Sc13 comex poster
Sc13 comex posterSc13 comex poster
Sc13 comex poster
 
Tdt4260 miniproject report_group_3
Tdt4260 miniproject report_group_3Tdt4260 miniproject report_group_3
Tdt4260 miniproject report_group_3
 
High performance nb-ldpc decoder with reduction of message exchange
High performance nb-ldpc decoder with reduction of message exchange High performance nb-ldpc decoder with reduction of message exchange
High performance nb-ldpc decoder with reduction of message exchange
 
RTH-RSS Mac: Path loss exponent estimation with received signal strength loca...
RTH-RSS Mac: Path loss exponent estimation with received signal strength loca...RTH-RSS Mac: Path loss exponent estimation with received signal strength loca...
RTH-RSS Mac: Path loss exponent estimation with received signal strength loca...
 

Viewers also liked

Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...Pete Siddall
 
Hhm 3479 mq clustering and shared queues for high availability
Hhm 3479 mq clustering and shared queues for high availabilityHhm 3479 mq clustering and shared queues for high availability
Hhm 3479 mq clustering and shared queues for high availabilityPete Siddall
 
InterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQInterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQDavid Ware
 
IBM MQ Disaster Recovery
IBM MQ Disaster RecoveryIBM MQ Disaster Recovery
IBM MQ Disaster RecoveryMarkTaylorIBM
 
Ame 2269 ibm mq high availability
Ame 2269 ibm mq high availabilityAme 2269 ibm mq high availability
Ame 2269 ibm mq high availabilityAndrew Schofield
 
IBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ ClustersIBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ ClustersDavid Ware
 
IBM Integration Bus High Availability Overview
IBM Integration Bus High Availability OverviewIBM Integration Bus High Availability Overview
IBM Integration Bus High Availability OverviewPeter Broadhurst
 
IBM Integration Bus & WebSphere MQ - High Availability & Disaster Recovery
IBM Integration Bus & WebSphere MQ - High Availability & Disaster RecoveryIBM Integration Bus & WebSphere MQ - High Availability & Disaster Recovery
IBM Integration Bus & WebSphere MQ - High Availability & Disaster RecoveryRob Convery
 

Viewers also liked (8)

Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...
 
Hhm 3479 mq clustering and shared queues for high availability
Hhm 3479 mq clustering and shared queues for high availabilityHhm 3479 mq clustering and shared queues for high availability
Hhm 3479 mq clustering and shared queues for high availability
 
InterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQInterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQ
 
IBM MQ Disaster Recovery
IBM MQ Disaster RecoveryIBM MQ Disaster Recovery
IBM MQ Disaster Recovery
 
Ame 2269 ibm mq high availability
Ame 2269 ibm mq high availabilityAme 2269 ibm mq high availability
Ame 2269 ibm mq high availability
 
IBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ ClustersIBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
 
IBM Integration Bus High Availability Overview
IBM Integration Bus High Availability OverviewIBM Integration Bus High Availability Overview
IBM Integration Bus High Availability Overview
 
IBM Integration Bus & WebSphere MQ - High Availability & Disaster Recovery
IBM Integration Bus & WebSphere MQ - High Availability & Disaster RecoveryIBM Integration Bus & WebSphere MQ - High Availability & Disaster Recovery
IBM Integration Bus & WebSphere MQ - High Availability & Disaster Recovery
 

Similar to Ame 2284 mq shared queues

Wtu 2014 ibm web sphere mq for zos - shared queues
Wtu 2014   ibm web sphere mq for zos - shared queuesWtu 2014   ibm web sphere mq for zos - shared queues
Wtu 2014 ibm web sphere mq for zos - shared queuesAlexander Ross
 
Design and Implementation of a Cache Hierarchy-Aware Task Scheduling for Para...
Design and Implementation of a Cache Hierarchy-Aware Task Scheduling for Para...Design and Implementation of a Cache Hierarchy-Aware Task Scheduling for Para...
Design and Implementation of a Cache Hierarchy-Aware Task Scheduling for Para...csandit
 
Rhel cluster basics 1
Rhel cluster basics   1Rhel cluster basics   1
Rhel cluster basics 1Manoj Singh
 
Mosix Cluster
Mosix ClusterMosix Cluster
Mosix ClusterAbhay Pai
 
MQ Cluster - covered by Murali Krishna Nookella
MQ Cluster - covered by Murali Krishna NookellaMQ Cluster - covered by Murali Krishna Nookella
MQ Cluster - covered by Murali Krishna Nookellamuralikrishnanookella
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionMiloĹĄ Zubal
 
Nosql databases
Nosql databasesNosql databases
Nosql databasesateeq ateeq
 
Zero Downtime Schema Changes - Galera Cluster - Best Practices
Zero Downtime Schema Changes - Galera Cluster - Best PracticesZero Downtime Schema Changes - Galera Cluster - Best Practices
Zero Downtime Schema Changes - Galera Cluster - Best PracticesSeveralnines
 
JPJ1403 A Stochastic Model To Investigate Data Center Performance And QoS I...
JPJ1403   A Stochastic Model To Investigate Data Center Performance And QoS I...JPJ1403   A Stochastic Model To Investigate Data Center Performance And QoS I...
JPJ1403 A Stochastic Model To Investigate Data Center Performance And QoS I...chennaijp
 
Highly available (ha) kubernetes
Highly available (ha) kubernetesHighly available (ha) kubernetes
Highly available (ha) kubernetesTarek Ali
 
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS A stochastic model to investigate dat...
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS A stochastic model to investigate dat...IEEE 2014 JAVA CLOUD COMPUTING PROJECTS A stochastic model to investigate dat...
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS A stochastic model to investigate dat...IEEEGLOBALSOFTSTUDENTPROJECTS
 
2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...
2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...
2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...IEEEFINALYEARSTUDENTPROJECT
 
Cache performance-x86-2009
Cache performance-x86-2009Cache performance-x86-2009
Cache performance-x86-2009LĂŠia de Sousa
 
2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...
2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...
2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...IEEEFINALSEMSTUDENTPROJECTS
 
Parallelization of Coupled Cluster Code with OpenMP
Parallelization of Coupled Cluster Code with OpenMPParallelization of Coupled Cluster Code with OpenMP
Parallelization of Coupled Cluster Code with OpenMPAnil Bohare
 

Similar to Ame 2284 mq shared queues (20)

Wtu 2014 ibm web sphere mq for zos - shared queues
Wtu 2014   ibm web sphere mq for zos - shared queuesWtu 2014   ibm web sphere mq for zos - shared queues
Wtu 2014 ibm web sphere mq for zos - shared queues
 
GDPS and System Complex
GDPS and System ComplexGDPS and System Complex
GDPS and System Complex
 
Design and Implementation of a Cache Hierarchy-Aware Task Scheduling for Para...
Design and Implementation of a Cache Hierarchy-Aware Task Scheduling for Para...Design and Implementation of a Cache Hierarchy-Aware Task Scheduling for Para...
Design and Implementation of a Cache Hierarchy-Aware Task Scheduling for Para...
 
Rhel cluster basics 1
Rhel cluster basics   1Rhel cluster basics   1
Rhel cluster basics 1
 
Mosix Cluster
Mosix ClusterMosix Cluster
Mosix Cluster
 
Clustering & nlb
Clustering & nlbClustering & nlb
Clustering & nlb
 
No sql
No sqlNo sql
No sql
 
MQ Cluster - covered by Murali Krishna Nookella
MQ Cluster - covered by Murali Krishna NookellaMQ Cluster - covered by Murali Krishna Nookella
MQ Cluster - covered by Murali Krishna Nookella
 
Embedded C
Embedded CEmbedded C
Embedded C
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Nosql databases
Nosql databasesNosql databases
Nosql databases
 
Zero Downtime Schema Changes in Galera Cluster
Zero Downtime Schema Changes in Galera ClusterZero Downtime Schema Changes in Galera Cluster
Zero Downtime Schema Changes in Galera Cluster
 
Zero Downtime Schema Changes - Galera Cluster - Best Practices
Zero Downtime Schema Changes - Galera Cluster - Best PracticesZero Downtime Schema Changes - Galera Cluster - Best Practices
Zero Downtime Schema Changes - Galera Cluster - Best Practices
 
JPJ1403 A Stochastic Model To Investigate Data Center Performance And QoS I...
JPJ1403   A Stochastic Model To Investigate Data Center Performance And QoS I...JPJ1403   A Stochastic Model To Investigate Data Center Performance And QoS I...
JPJ1403 A Stochastic Model To Investigate Data Center Performance And QoS I...
 
Highly available (ha) kubernetes
Highly available (ha) kubernetesHighly available (ha) kubernetes
Highly available (ha) kubernetes
 
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS A stochastic model to investigate dat...
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS A stochastic model to investigate dat...IEEE 2014 JAVA CLOUD COMPUTING PROJECTS A stochastic model to investigate dat...
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS A stochastic model to investigate dat...
 
2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...
2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...
2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...
 
Cache performance-x86-2009
Cache performance-x86-2009Cache performance-x86-2009
Cache performance-x86-2009
 
2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...
2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...
2014 IEEE JAVA CLOUD COMPUTING PROJECT A stochastic model to investigate data...
 
Parallelization of Coupled Cluster Code with OpenMP
Parallelization of Coupled Cluster Code with OpenMPParallelization of Coupled Cluster Code with OpenMP
Parallelization of Coupled Cluster Code with OpenMP
 

Recently uploaded

The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 

Recently uploaded (20)

The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 

Ame 2284 mq shared queues

  • 1. AME-2284 IBM MQ for z/OS Shared Queues Pete Siddall STSM – IBM MQ for z/OS
  • 2. N O T E S ● In this presentation we will take a deep dive in to the new features of MQ for z/OS V8. MQ for z/OS V8 New Features Deep Dive
  • 3. Agenda ● What are Shared Queues ● SMDS ● CF Flash ● Structures – Persistence and recovery ● Client Channels
  • 4. Shared QueueCoupling Facility (CF) Application Application QMgr QMgr Same sysplex Shared Queues
  • 5. N O T E S Chart shows an application put to a shared target queue -- that is, the target queue is local to more than one queue manager. This put does not use the mover: 1. Application puts to shared target queue 2. Remote application can now get the message. The remote application can put a message to the reply-to queue using the same method. Note that applications connected to any queue manager with access to the shared queue can get the message. To access the same shared queues, queue managers must be: In the same z/OS sysplex In the same queue-sharing group (QSG) -- we will explain QSGs later. There are restrictions on shared queues, for example: CF capacity is limited (compared to DASD). Shared Queues
  • 6. DB2 Data Sharing Group MQ Queue Sharing Group Mover QMGR Private Queues Private Objects Mover QMGR Private Queues Private Objects Mover QMGR Private Queues Private Objects Shared Queues Shared Objects Data for msg > 63KB Queue Sharing Groups (QSGs)
  • 7. N O T E S Chart shows how queue managers are organized into queue-sharing groups (QSGs) and the relationship to DB2 data-sharing groups. A queue-sharing group can contain one or more queue managers: •Each queue manager has its own private (not shared) queues and object definitions. •All queue managers in a QSG share the same set of shared queues and shared object definitions •A queue manager cannot belong to more than one QSG. Shared object definitions for a QSG are maintained for IBMÂŽ MQ by DB2. Shared access to these definitions is by DB2 data sharing: •You must have DB2 •You can have more than one data-sharing group, but all members of one QSG must be members of the same data-sharing group •Shared object definitions are cached in the queue managers. •A DB2 outage does not bring down the QSG (but you cannot add or change shared objects if DB2 is down). You do not have to define any queue-sharing groups if you do not run a sysplex (or if you just don't want to). If using shared messages > 63KB then a small portion for the message is stored in the CF, and the rest is stored in DB2 or with V7.1 or higher there is the option of using Shared Message Data Sets (SMDS) for storing the rest of the message data. Queue-Sharing Groups (QSGs)
  • 8. { Administration structure Application structures Queue Queue Queue (Information for unit-of-work recovery and so on) Coupling facility Administration structure Application structures Queue Queue Queue (Information for unit-of-work recovery and so on) { Structures for QSG 1 Structures for QSG 2 CF Structures for shared-queues
  • 9. N O T E S Chart shows organization of MQ data in coupling facility (CF) structures (actually list structures). For clarity the chart shows: •All structures in one CF -- actually they can be spread arbitrarily over many CFs •Only MQ structures -- actually other subsystems and applications can have structures in the same CF as MQ. Each queue-sharing group needs: •One administration structure -- this is used for information that MQ itself needs, for example to manage unit-of-work recovery •One or more (up to a maximum of 63) application structures -- these are used to hold the shared queues. Each application structure can hold up to 512 shared queues. CF Structures for shared-queues
  • 10. Creating CF structures and shared queues ● Define a structure to z/OS (not to MQ) by updating the CFRM policy (see System Setup Guide): – Structure is known to MQ by its 12-character str-name. – Structure is known to z/OS by the 16-character name formed by: • qsg-name || str-name (Application structures) • qsg-name || CSQ_ADMIN (Administration structure) ● Define a shared queue using the DEFINE QLOCAL command on any queue manager in the QSG: – DEFINE QLOCAL(queue-name) QSGDISP(SHARED) CFSTRUCT(str-name) ● z/OS creates the structure when required (first use). ● MQ creates the queue when required (first use).
  • 11. N O T E S Chart shows the processes for creating CF list structures for use by MQ QSGs and for creating shared queues in these structures. The z/OS CFRM policy for the sysplex specifies how z/OS should allocate resources for each structure: •What type of CF (for example, CF must have battery back-up) •How big to make the structure. z/OS does not actually allocate any resource for the structure until first use -- in our case, the first time a queue manager connects to the structure: •At startup for the administration structure •At first queue open for application structures. As with private queues, defining the queue to MQ does not create the queue. The queue is created when it is first used. It is best to allocate queues so that (as far as possible) all the queues accessed by any one unit-of-work are in the same structure. Creating CF structures and shared queues
  • 12. QM1 Shared Queue Message 100K (ptr) QM1 SMDS QM2 SMDS QM2 APP MQPUT APP MQGET 1 2 3 4 V7.1 Large Shared Queue Messages (using SMDS)
  • 13. N O T E S Shared message data set concepts Offloaded message data for shared messages is stored in data sets. Each application structure has an associated group of shared message data sets, with one data set per queue manager. Named using DSGROUP parameter on CFSTRUCT definition. Each queue manager owns a data set for each structure, opened for read/write access, which it uses to write new large messages. Each queue manager opens the data sets for the other queue managers for read-only access, so it can read their message data. When a message with offloaded data needs to be deleted, it is passed back to the queue manager which originally wrote it, so that the queue manager can free the data set space when it deletes the message.
  • 14. SMDS Performance Improvement ● Tests show comparable CPU savings making SMDS a more usable feature for managing your CF storage ● SMDS per CF structure provides better scaling than DB2 BLOB storage 1 2 3 4 5 6 7 8 9 10 0 50 100 150 200 250 300 350 400 •3 LPAR Test - DB2 64KB Non-Persistent Messages In-Syncpoint - DB2 NP SIS Scaling – 3 qmgr NP SIS Scaling – 6 qmgr NP SIS Scaling – 9 qmgr Queue Pairs Transactions/Second 1 2 3 4 5 6 7 8 9 10 0 1000 2000 3000 4000 5000 6000 7000 •3 LPAR Test - SMDS 64KB Non-Persistent Messages In-Syncpoint - SMDS NP SIS Scaling – 3 qmgr NP SIS Scaling – 6 qmgr NP SIS Scaling – 9 qmgr Queue Pairs Transactions/Second
  • 15. V7.1Selecting which messages to offload ● Messages too large for CF entry (> 63K bytes) are always offloaded. ● Other messages may be selectively offloaded using offload rules. – Each structure has three offload rules, specified on the CFSTRUCT definition. – Each rule specifies message size in Kbytes and structure usage threshold, using two parameters: • OFFLDnSZ(size) and OFFLDnTH(percentage), where n = 1, 2, 3. – Data for new messages exceeding the specified size is offloaded (as for a large message) when structure usage exceeds the specified threshold. – Default rules are provided which should be useful in most cases. – Rules can be set to dummy values if not required. ● Without offloading data, it is possible to store 1.25M messages of 63KB on a 100GB structure ● When offloading all messages, possible to store approx 140M messages on the same structure, irrespective of message size
  • 16. N O T E S Selecting which messages to offload As with previous releases of MQ, the amount of data that can be stored in the CF for a single message is limited to 63KB. This means that if the message is over 63KB in size then it must be “offloaded”. With V7.1 there are two offload methods, already seen, for offloading the data, using either DB2 or SMDS. In addition to offloading all messages over 63KB, it is possible to specify that messages smaller than this size should also be offloaded. There are three sets of rules that are used to control this, and each set is made up of two parameters, the size of the message and how full the CF structure is when the message is put. These offload rules enable a balancing to be performed between performance and CF capacity. For example, you might use a rule that says that when the CF structure is 70% full then all messages over 32KB will be offloaded, and then another rule that says that when the CF structure is over 80% full, all messages over 4KB will be offloaded. When migrating a structure from CFLEVEL 4 to CFLEVEL 5 (required to use these rules), the defaults will be set to mimic the CFLEVEL 4 behavior. When defining a new structure at CFLEVEL 5, the default rules will be set as follows: OFFLD1SZ = 32K OFFLD1TH = 70 OFFLD2SZ = 4K OFFLD2TH = 80 OFFLD3SZ = 0K OFFLD3TH = 90
  • 17. Typical use of offload rules ● The three offload rules have no fixed order but are typically intended to be used as follows: – Rule 1 is used to save space for fairly large messages by offloading them, with little performance impact, even when plenty of space left. • SMDS defaults: OFFLD1SZ(32K), OFFLD1TH(70) – Rule 2 is used as an intermediate step between rules 1 and 3, to start saving more space as the structure usage increases, in exchange for a minor performance impact. • SMDS defaults: OFFLD2SZ(4K), OFFLD2TH(80) – Rule 3 is used to maximize the remaining space when the structure is nearly full, by offloading everything possible. • SMDS defaults: OFFLD3SZ(0K), OFFLD3TH(90)
  • 18. ~ 35000 msgs in CF Storage benefits of offloading ~5000msgsinCF ~140000offloadedmsgs ~140000offloadedmsgs 70% 80% 90% 100% ~ 320000 msgs using offloading vs ~ 50000 without offloading > 32KB > 4KB > 0KB> 63KB 1GB structure using 20KB messages
  • 19. Creating a shared message data set ● SMDS is defined as a VSAM linear data set using DEFINE CLUSTER. – Requires LINEAR option. – Control interval size must be 4096, which is the default for linear. – Requires SHAREOPTIONS(2 3), allowing one queue manager to write and other queue managers to read at the same time. – If maximum size may need to exceed 4GB, requires SMS data class which has VSAM extended addressability attribute. – If automatic expansion is to be supported, requires an appropriate secondary space allocation (although a default of 20% will be used if an expansion attempt fails because of no secondary allocation). ● Can optionally be pre-formatted, for example using CSQJUFMT. – Otherwise formatted automatically when first opened.
  • 20. Creating a shared message data set ● The DSGROUP parameter on the CFSTRUCT definition specifies the group of data sets associated with the application structure. – It is specified as a generic data set name with a single asterisk as the point where the owning queue manager name is to be inserted. – It is required when the option OFFLOAD(SMDS) is specified. ● CSQ4SMDS in SCSQPROC provides JCL to define and format a single dataset DEFINE CLUSTER - (NAME(++HLQ++.++QMGR++.++CFSTRUCT++.SMDS) - MEGABYTES(++PRI++ ++SEC++) - LINEAR - DATACLAS(EXTENDED) - SHAREOPTIONS(2 3) ) - DATA - (NAME(++HLQ++.++QMGR++.++CFSTRUCT++.SMDS.DATA) )
  • 21. Access to shared message data sets ● Shared message data sets must be on shared direct access storage accessible to all queue managers within the QSG. ● Normal running: – Queue manager opens own data set read/write. • Requires UPDATE access to own data set. – Queue manager opens other data sets read-only. • Requires READ access to all other data sets. ● Media recovery processing: – Queue manager performing recovery opens own data set and all other data sets for read/write access. • Requires UPDATE access to all data sets.
  • 22. Shared message data set capacity considerations ● Each shared message data set only contains data for large messages written via its owning queue manager. ● Message size calculation: – Each stored message includes standard headers (usually 352 bytes). – Each message is stored as one or more message blocks. – Each message block is stored in a range of consecutive 4K pages on the data set, with a very small header (32 bytes). – Approximate data set space required per large message, in bytes, is given by size of message plus header rounded up to next 4K. ● Multiply by maximum anticipated backlog of messages written via that queue manager (plus some safety margin) to estimate size needed for data set.
  • 23. SMDS capacity considerations – expansion ● Data set can be automatically expanded when necessary. – Normally set by DSEXPAND(YES|NO) option on CFSTRUCT, which specifies default option for data set group. – Can also be overridden for individual data sets using DSEXPAND option on ALTER SMDS. ● Expansion attempt is automatically triggered when 90% full. – If no secondary allocation was specified, VSAM error message will appear, but queue manager will retry using a default secondary allocation of 20% of the existing size. – If expansion fails (not enough space available), queue manager sets DSEXPAND(NO) to prevent further attempts. Operator can use ALTER SMDS to set DSEXPAND(YES) again after problem is fixed.
  • 24. Flash CFStruct CF Flash: Scenarios Planned Emergency Storage 70% 80% 90% offload >32kB offload > 0kB offload > 4kB SMDS ALL CFSTRUCT OFFLOAD rules cause progressively smaller messages to be written to SMDS as the structure starts to fill. Once 90% threshold is reached, the QMGR is storing the minimum data per message to squeeze as many message references as possible into the remaining storage. CF Flash algorithm also starts moving the middle of the queue out to flash storage, keeping the faster 'real' storage for messages most likely to be got next.
  • 25. Flash CFStruct CF Flash: Scenarios Maximum Speed 20% 80% 90% offload threshold 64kB(*) offload 64kB => disabled offload disabled SMDSlarge msgs We want to keep high performance messages in the CF for most rapid access. CFSTRUCT OFFLOAD are configured with special value '64k' to turn them off. (*) you might choose to use one rule to alter the 'large data' threshold from 63kB down Once 90% threshold is reached, the CF Flash algorithm starts moving the middle of the queue out to flash storage, keeping the faster 'real' storage for messages most likely to be gotten next. As messages are got and deleted, the CF flash algorithm attempts to pre-stage the next messages from flash into the CFSTRUCT so they are rapidly available for MQGET. In this scenario the flash storage acts like an extension to 'real' CFSTRUCT storage. However it will be consumed more rapidly since all small message data is stored in it.
  • 26. N O T E S CF Flash: Storage (using 4GB structure) Scenario Offload reason (Rule) Msg Size Total Msgs # in 'real' SMDS space # in 200 GB flash Augmented (limit 30GB) No SMDS No Flash n/a 1kB 3M 3M n/a 4kB 900,000 900,000 n/a 16kB 250,000 250,000 SMDS No Flash MQ 90% 1kB 3.2M 3.2M 800MB MQ 80% 4kB 1.8M 1.8M 5GB MQ 80% 16kB 1.3M 1.3M 20GB “Emergency ” Scenario MQ 90% 1kB 190M 2M 270GB 190M 30GB MQ 80% 4kB 190M 600,000 850GB 190M 30GB MQ 80% 16kB 190M 150,000 3TB 190M 30GB “Speed” Scenario CF 90% 1kB 150M 2M 150M 26GB CF 90% 4kB 48M 600,000 48M 8GB CF 90% 16kB 12M 150,000 12M 2GB
  • 27. N O T E S Notes Example: we define a CFSTRUCT with SIZE 4GB. We have a maximum of 200GB flash memory available, but we decide not to use more than an additional 30GB of augmented storage. Table Considers 4 scenarios, and shows the effect of message size in each. # in real: estimates how many in CF real storage First scenario has no flash nor SMDS. Entire structure is available to store messages. Second scenario introduces SMDS offload with default rules. The 1k messages don't got to SMDS til 90% full, but the 4k and 16k cases both start offloading at 80%. The CF space released by offloading data can hold more message pointers, so the 1k case doesn't increase number of messages greatly, but 4k number doubles, and 16k gets 5x as many. Third scenario is our chart#1 “Emergency Flash”. Because flash is configured, there is less 'real' storage for storing data, I've assumed 1GB less for 200GB flash. Here flash only holds the message references. This means the message size in flash is small. Our experiments show about 175 bytes of Augmented storage per message in flash. We have chosen to limit Augmented storage to 30GB, so message numbers are limited by augmented storage. SMDS holds data. Fourth scenario is our chart#2 “Max Speed”. All message sizes are below SMDS threshold, so SMDS not used. Limit is now how many messages will fit in 200GB flash. We show approximate size of augmented storage needed to support these volumes of messages in flash. CAVEAT: Estimates only, based on our limited test scenarios.
  • 28. CFLEVEL(4) using 8KB Messages ● Saw-tooth effect occurs when capture task goes into retry mode due to “storage medium full” reason code. ● Even with these 5 second pauses, the non-SCM capable workload completes in 90% of the time of the SCM capable workload. ● Cost of workload in MVS differs by less than 2%. ● Get rate once the capture task has completed: No SCM: 21100 messages / second ~ 164MB/sec SCM: 19000 messages / second ~ 148MB/sec 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 0 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 5 0 0 0 0 0 6 0 0 0 0 0 7 0 0 0 0 0 8 0 0 0 0 0 9 0 0 0 0 0 1 0 0 0 0 0 0 C F L E V E L ( 4 ) 8 K M e s s a g e s - X M I T Q u e u e d e p t h N o S C M a v a i l a b l e S C M a v a i l a b l e D e p t h t h a t S C M u s e d T i m e ( s e c o n d s ) QueueDepth
  • 29. N O T E S Notes Chart demonstrates that put and get rates do not significantly alter as CF 'real' storage overflows and data is offloaded to, or read back from, CF flash. This is demonstrated by comparing the slopes of the red and blue lines and noticing no significant kink in red line as we overflow CF 'real' 90% threshold. NOTE: SCM = Storage Class Memory, alternative terminology for flash storage. The scenario being tested uses CFLEVEL(4) so SMDS config was not required. However, it corresponds identically with our “Max Speed” scenario above. The test case has a message generator task putting 8kB messages on to a transmission queue. A channel is getting these in FIFO order. The message generator pauses for a few seconds when it hits storage media full leading to the saw-tooth shape of the blue line where no Flash memory is available. The red dotted line indicates the threshold at which messages in the red line test, started to be written to flash storage. Notice that it is significantly lower than 90% of the 'media full' blue peaks, because some of the structure storage has gone to control flash, and the threshold is 90% of the remainder. Final point is that cpu costs are not significantly different whether flash is being used or not. From performance perspective, using sequential queues, flash memory behaves like CF real.
  • 30. Queue manager Private queues Queue manager Private queues Queue manager Private queues Shared queues Coupling facility failure Messages on shared queues OK (kept) Nonpersistent messages on shared queues lost (deleted) Queue manager Private queues Queue manager Private queues Queue manager Private queues Shared queues Nonpersistent messages on private queues OK (kept) Messages on shared queues OK (kept) Nonpersistent messages on private queues lost (deleted) Queue manager failure Persistent messages on shared queues restored from log Failure and persistence
  • 31. N O T E S Chart shows implications of failures in a queue-sharing group. Left side of chart shows queue manager failure. If one or more queue managers in a queue-sharing group fail, or are stopped normally: •Nonpersistent messages on queues private to the failing queue manager or managers are lost -- in fact they are deleted when a queue manager restarts •Messages on shared queues are not lost, they are kept -- even if all queue managers in the queue-sharing group fail. Right side of chart shows coupling facility structure failure (for simplicity the chart shows an entire CF failing). If one or more CF structures fail: •Messages on queues in other CF structures are not lost •Nonpersistent messages on queues in failing CF structures are lost •Persistent messages on queues in failing CF structures must be restored from backup and log information on the logs •Restoring queue manager accesses logs of all queue managers in the QSG. If the administration structure fails, all the queue managers in the QSG fail. Failure and persistence
  • 32. Admin Structure Recovery ● Prior to V7.0.1 each queue manager would rebuild own admin structure entries – Particularly an issue in a DR situation. • Need to start all queue managers to rebuild admin structure • Once recovered, application structures could be recovered ● At V7.0.1 active queue managers notice if other queue managers don’t have entries, and initiate rebuild on their behalf
  • 33. N O T E S If the Admin Structure was lost for some reason (DR situation, loss of power to the CF etc), then prior to V7.0.1 each queue manager had to rebuild its own Admin Structure entries. As the admin structure needs to be complete for application structure recovery to take place, it was necessary in a DR situation to start up all the queue managers in a QSG before application structure recover could take place. In V7.0.1 an enhancement has been made to admin structure recovery so that a single queue manager is able to recover the admin structure entries for all the other queue managers in the QSG. If a V7.0.1 (or higher) queue manager notices that the admin structure entries are missing for another queue manager then it will attempt to recover them on behalf of the other queue manager. It can only do this if the other queue manager is not running at the time. In a DR situation this means that it is only necessary to start a single queue manager at V7.0.1 (or higher) before being able to recover the application structures. A V7.0.1 queue manager can recover the entries on behalf of any version of queue manager, so you don’t need to have all queue managers in the QSG to be running at V7.0.1 before this functionality will take place. Admin Structure Recovery
  • 34. CF QM2 QM1 QM3 CF Loss of Connectivity Pre V7.1 Queue Managers A failure of the Coupling Facility is most likely going to be presented to connectors as a Loss of Connectivity Prior to V7.1, if a queue manager receives a loss of connectivity, it will terminate. In the case of a Coupling Facility failure, this would mean a QSG wide outage (unless protected by CF Duplexing)
  • 35. CF2With V7.1 the queue managers will not terminate. They will automatically attempt to re-establish access to the structures affected. CF1 QM2 QM1 QM3 CF Loss of Connectivity Tolerance V7.1 V7.1+ Queue Managers In the case of a total loss of connectivity the queue managers can automatically recover (RECOVER CFSTRUCT) the structures that were on the failed CF into an alternative CF (if available)
  • 36. N O T E S Queue managers will tolerate loss of connectivity to the admin structure without terminating if: the QMGR CFCONLOS attribute is set to TOLERATE all the queue managers in the QSG are at V7.1 All queue managers in the QSG will disconnect from the admin structure, then attempt to reconnect and rebuild their own admin structure data. If a queue manager cannot reconnect to the admin structure, for example because there is no CF available with better connectivity, some shared queue operations will remain unavailable until the queue manager can successfully reconnect to the admin structure and rebuild its admin structure data. The queue manager will automatically reconnect to the admin structure when a suitable CF becomes available on the system. Failure to connect to the admin structure during queue manager startup is not tolerated, regardless of the value of CFCONLOS. Admin structure loss of connectivity V7.1
  • 37. N O T E S Queue managers will tolerate loss of connectivity to application structures if: they are at CFLEVEL(5) the CFCONLOS attribute is set to TOLERATE All queue managers that lose connectivity to an application structure will disconnect from the structure. The next action depends on whether it is a partial or total loss of connectivity (according to MQ’s definition). loss of connectivity is partial if there is at least one system in the sysplex that still has connectivity to the CF that the structure is allocated in. loss of connectivity is total if all systems in the sysplex have lost connectivity to the CF that the structure is allocated in. In the case of total loss of connectivity the structure will (probably) need to be recovered using the RECOVER CFSTRUCT command. non-persistent messages will be lost. V7.1 Application structure loss of connectivity
  • 38. CF2CF1 QM2 QM1 QM3 CF Loss of Connectivity Tolerance V7.1 V7.1+ Queue Managers In the case of a partial loss of connectivity, a System Managed Rebuild will be automatically initiated by the QMGRs to rebuild the structures into a more available CF. This will mean that both persistent and non- persistent messages will be retained.
  • 39. N O T E S In the case of partial loss of connectivity queue managers that lost connectivity to the structure will attempt to initiate a system-managed rebuild in order to move the structure to another CF with better connectivity. if the rebuild is successful, both persistent and non-persistent messages will be copied to the other CF. queue managers that didn’t lose connectivity to the structure may experience a slight delay during system-managed rebuild processing, but shared queues will remain available. If an application structure cannot be reallocated in another CF with better connectivity, queues on the structure will remain unavailable until connectivity is restored to the CF that the structure is currently allocated in. Queue managers will automatically reconnect to the structure when it becomes available. V7.1 Application structure loss of connectivity
  • 40. CF Loss of Connectivity Tolerance ● QMGR CFCONLOS(TERMINATE|TOLERATE) – Specifies whether loss of connectivity to the admin structure should be tolerated – Default is TERMINATE – Can only be altered to TOLERATE when all QSG members are at 7.1 ● CFSTRUCT CFCONLOS(TERMINATE|TOLERATE|ASQMGR) – Specifies whether loss of connectivity to application structures should be tolerated – Only available at CFLEVEL(5) – Default is ASQMGR for new CFLEVEL(5) structures, and TERMINATE for structures altered to CFLEVEL(5) ● CFSTRUCT RECAUTO(YES|NO) – Specifies whether application structures should be automatically recovered – Only available at CFLEVEL(5) – Default is YES for new CFLEVEL(5) structure, and NO for structures altered to CFLEVEL(5) V7.1
  • 41. CFRM Policy Considerations CFSTRUCT(TEST1) STRUCTURE NAME(SQ27TEST1) CFLEVEL(5) SIZE(50000) CFCONLOS(TOLERATE) INITSIZE(20000) RECAUTO(YES) DUPLEX(ALLOWED) OFFLOAD(SMDS) ALLOWAUTOALT(YES) PREFLIST(P5CF01,P5CF02) ENFORCEORDER(NO) ● If using CFCONLOS(TOLERATE) – also need to consider multiple CFs in PREFLIST – Use ENFORCEORDER(NO) so that XCF algorithms can choose the best place to re-allocate after failure. ● ALLOWAUTOALT(YES) enables CF to adjust entry/element ratio, and also automatically resize structure up to SIZE value (can also adjust down to MINSIZE!!) ● MQ structures can be duplexed… this will make most types of failures transparent to the queue manager
  • 42. Client Channels ● Client channels are stateless, so don’t use synchronization queues – Only benefit of using a shared channel is the shared status – Can cause performance issues if using shared channel • Needs to update DB2 status for each connect/disconnect ● Can configure a generic port to point at INDISP(QMGR) listener on each queue manager – Can still benefit from failover and balancing of client connections without using a shared channel, and can still use QSG name on the MQCONN ● Will not work for Extended Transactional Client (including WAS 2-Phase Commit over client conn) until at V7.0.1
  • 43. N O T E S As client channels are stateless, they don’t use a synchronization queue. The only benefit of using a shared channel for client channels is the shared status information. However, the use of a shared server-connection channel has drawbacks as it means each connection/disconnect will cause the queue manager to update the shared channel status, which is held in DB2. This could lead to performance issues if there are lots of clients connecting. It is still possible to use a generic port to provide workload distribution and failover in the QSG, but rather than targeting an INDISP(SHARED) listener on each queue manager, the INDISP(QMGR) listener should targeted. When using client channels into a QSG it is not possible to use the Extended Transactional Client (or client connections from WAS) if you are using 2-phase commit, unless you are connecting into a V7.0.1 queue manager Client Channels
  • 44. 2-Phase Commit Client Connections ● When setting up the connection, specify the QSG name rather than QMGR name – In MQConnectionFactory if using JMS under WAS, you must ensure that you are only using shared resources – This causes a UR with GROUP disposition to be created, rather than QMGR – A GROUP UR can be inquired and resolved via any member of the QSG • If there is a failure, the transaction manager will reconnect to the QSG and request a list of in-doubt transactions. GROUP URs will be reported back no matter what QMGR they were started on
  • 45. N O T E S When using the Extended Transactional Client, or the JMS transactional client (under WAS), it is possible to use 2-phase commit applications in a QSG. When specifying the connection options to the Transaction Manager it is necessary to provide the QSG name rather than the QMGR name, and also configure the client channel to be routed to a suitable (V7.0.1 or higher qmgr) in the QSG. When using this configuration, any Unit Of Recovery (UR) that is created will have a GROUP disposition. This means that it can be inquired and resolved on any qmgr in the QSG. If a connection fails for some reason, and the TM reconnects to the QSG, it can inquire and resolve the transactions no matter which qmgr it is now connected to, and where the transactions were originally started. 2-Phase Commit Client Connections
  • 46. GROUPUR – The Problem QM2QM1 Client APP Generic Port TM Client App connects via generic port and starts UOW If TM reconnects to QM2 it only be told what is in-doubt on QM2, meaning that it will throw away any information about in-doubts on QM1 If there is a failure, TM will reconnect via generic port to inquire what transactions need resolving
  • 47. GROUPUR – The Solution QM2QM1 Client APP Generic Port TM Client App connects via generic port and starts UOW If TM reconnects to QM2, QM2 will inquire all the in-doubts that have a GROUP disposition, whatever QMGR that were running on. If there is a failure, TM will reconnect via generic port to inquire what transactions need resolving xa_open string needs to be specified with the QSG name rather than QMGR name, this means a GROUPUR is created
  • 49.
  • 50. Notices and Disclaimers Copyright Š 2015 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM. U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM. Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS document is distributed "AS IS" without any warranty, either express or implied. In no event shall IBM be liable for any damage arising from the use of this information, including but not limited to, loss of data, business interruption, loss of profit or loss of opportunity. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided. Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice. Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary. References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business. Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation. It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law.
  • 51. Notices and Disclaimers (con’t) Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM expressly disclaims all warranties, expressed or implied, including but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right. •IBM, the IBM logo, ibm.com, Bluemix, Blueworks Live, CICS, Clearcase, DOORSÂŽ, Enterprise Document Management System™, Global Business Services ÂŽ, Global Technology Services ÂŽ, Information on Demand, ILOG, MaximoÂŽ, MQIntegratorÂŽ, MQSeriesÂŽ, NetcoolÂŽ, OMEGAMON, OpenPower, PureAnalytics™, PureApplicationÂŽ, pureCluster™, PureCoverageÂŽ, PureDataÂŽ, PureExperienceÂŽ, PureFlexÂŽ, pureQueryÂŽ, pureScaleÂŽ, PureSystemsÂŽ, QRadarÂŽ, RationalÂŽ, RhapsodyÂŽ, SoDA, SPSS, StoredIQ, TivoliÂŽ, TrusteerÂŽ, urban{code}ÂŽ, Watson, WebSphereÂŽ, WorklightÂŽ, X-ForceÂŽ and System zÂŽ Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.
  • 52. Thank You Your Feedback is Important! Access the InterConnect 2015 Conference CONNECT Attendee Portal to complete your session surveys from your smartphone, laptop or conference kiosk.