Considerations for IBM MQ on z/OS


Security on z/OS

APF-authorization

MainView Middleware Monitor(TMTM) includes features which require APF authorization. These include discovering queue managers available on the system, activating SMF monitoring by TMTM Monitoring Extension for IBM MQ, and performing MQ actions via the TMTM Conifguration Extension for IBM MQ. MQ actions may be performed using the Perl automation scripts or when using the mqtool CLI

TMTM does not function correctly without proper APF authorization, therefore the load library must be APF-authorized.

TMTM determines if the load library is APF-authorized. If it is not, TMTM returns an information message that the TMTM Extensible Agent or TMTM Monitoring Extension for IBM MQ is not authorized.

External security

This section applies to installations with an external security manager (for example, RACF or ACF2) that have the security class active for IBM MQ. This section discusses security in RACF terms, so some of the details might be different for other security managers.

The agent and extensions run as started tasks or as z/OS batch applications. They connect to IBM MQ objects and issue IBM MQ commands. As such, the agent and extensions require certain authorization in the security manager.

When implementing security, it is important to remember that a set of profiles is required for each queue manager to which TMTM and the TMTM Monitoring Extension for IBM MQ connects. Also, it is possible to implement a different security strategy for each queue manager. In the following explanation, ssid should be replaced with the subsystem names of your queue managers. 

Execute the TMTM Extensible Agent and extensions under the same or a comparable profile/group used by the queue managers.

If you are not using one of the preferred profiles listed below, any change to the agent environment, such as adding a new queue to be monitored, might require a change to the security profiles.

If a more granular level of security checking is required, the agent and extension must be given access to several profiles. The exact setup depends upon the level of security checking in place. For more details on IBM MQ security, refer to IBM MQ for MVS/ESA System Management documentation.

  • Connection security
  • API security profiles
  • Command resource security profiles
  • Command security profiles
  • Queue security profiles

Connection security

This profile is required if connection security is active.

Connection Security Profiles - RACF Class: MQADMIN

Preferred profile

Alternative profile

Access required

ssid.BATCH

 

READ

API security profiles

This profile must be defined if context security is active. It is required so that the command server can open the reply to queues on behalf of the TMTM Extensible Agent and extension.

API Security Profiles - RACF Class: MQADMIN

Preferred profile

Alternative profile

Access required

ssid.CONTEXT

 

CONTROL

Command resource security profiles

These profiles are required if command resource security is active. If the preferred profiles are used then it is also recommended that an UACC of NONE is specified on these profiles.

Command Resource Security Profiles - RACF Class: MQADMIN

Preferred profile

Alternative profile

Access required

ssid.CHANNEL.**

ssid.CHANNEL.xxxx.**

ALTER

ssid.PROCESS.**

ssid.PROCESS.xxxx.**

ALTER

ssid.QUEUE.**

ssid.QUEUE.xxxx.**

ALTER

Command security profiles

These profiles are required if command resource is active. If the preferred profiles are used then it is also recommended that an UACC of NONE is specified on these profiles.

Command security profiles - RACF Class: MQCMDS

Preferred profile

Alternative profile

Access required

ssid.ALTER.**

ssid.ALTER.CHANNEL.xxxx.**

ALTER

 

ssid.ALTER.PROCESS.xxxx.**

ALTER

 

ssid.ALTER.QALIAS.xxxx.**

ALTER

 

ssid.ALTER.QLOCAL.xxxx.**

ALTER

 

ssid.ALTER.QMGR

ALTER

 

ssid.ALTER.QMODEL.xxxx.**

ALTER

 

ssid.ALTER.QREMOTE.xxxx.**

ALTER

ssid.DEFINE.**

ssid.DEFINE.CHANNEL.xxxx.**

ALTER

 

ssid.DEFINE.PROCESS.xxxx.**

ALTER

 

ssid.DEFINE.QALIAS.xxxx.**

ALTER

 

ssid.DEFINE.QLOCAL.xxxx.**

ALTER

 

ssid.DEFINE.QMODEL.xxxx.**

ALTER

 

ssid.DEFINE.QREMOTE.xxxx.**

ALTER

ssid.DISPLAY.**

ssid.DISPLAY.CHANNEL.xxxx.**

READ

 

ssid.DISPLAY.CHSTATUS.xxxx.**

READ

 

ssid.DISPLAY.PROCESS.xxxx.**

READ

 

ssid.DISPLAY.QALIAS.xxxx.**

READ

 

ssid.DISPLAY.QLOCAL.xxxx.**

READ

 

ssid.DISPLAY.QMODEL.xxxx.**

READ

 

ssid.DISPLAY.QREMOTE.xxxx.**

READ

ssid.DELETE.**

ssid.DELETE.CHANNEL.xxxx.**

ALTER

 

ssid.DELETE.PROCESS.xxxx.**

ALTER

 

ssid.DELETE.QALIAS.xxxx.**

ALTER

 

ssid.DELETE.QLOCAL.xxxx.**

ALTER

 

ssid.DELETE.QMODEL.xxxx.**

ALTER

 

ssid.DELETE.QREMOTE.xxxx.**

ALTER

ssid.PING.**

ssid.PING.CHANNEL

CONTROL

ssid.RESET.**

ssid.RESET.CHANNEL

CONTROL

ssid.RESOLVE.**

ssid.RESOLVE.CHANNEL

CONTROL

 

ssid.RESOLVE.INDOUBT

CONTROL

ssid.START.**

ssid.START.CHANNEL

CONTROL

ssid.STOP.**

ssid.STOP.CHANNEL

CONTROL

 

ssid.STOP.CHINIT

CONTROL

Queue security profiles

These profiles are required if command resource is active. The queues beginning with ssid.QPASA are dynamic queues created by the TMTM Extensible Agent and extension. If the preferred profiles are used then it is also recommended that an UACC of NONE is specified on these profiles.

Queue Security Profiles- RACF Class: MQQUEUE

Preferred profile

Alternative profile

Access required

ssid.**

ssid.SYSTEM.COMMAND.INPUT

UPDATE

 

ssid.COMMAND.REPLY.MODEL

UPDATE

 

ssid.QPASA.**

UPDATE

 

ssid.xxxx.**

UPDATE

Page sets

Page sets are formatted data sets that store messages and object definitions for a queue manager. Each page set is identified by an identifier (PSID), ranging from 00 through 99. (Page set 00 is an object definition repository and reserved by IBM and should not be used.) A queue manager can have up to 100 page sets.

Queues are mapped to storage classes. Storage classes map queues to page sets. A buffer pool is associated with a page set. For complete information about z/OS page sets and IBM MQ, see the IBM MQ for z/OS System Management Guide.

Before being stored in page sets, messages are stored temporarily in buffers. Buffers are organized into buffer pools. For more information about buffer pools and buffer manager statistics, see your z/OS documentation. For more information, see Buffer manager statistics below.

z/OS systems programmers or IBM MQ administrators can use the page set statistics to group queues with similar characteristics together, which can significantly enhance performance.

Page sets are monitored when either a queue or channel is selected for monitoring by MainView Middleware Monitor. Page set statistics are displayed in the MainView Middleware MonitorManagement Console. It is not possible to disable page set monitoring or to configure which page sets are monitored. (All page sets associated with a queue manager are monitored.)

MainView Middleware Monitorgathers the following information at every sample interval (the default is every 60 seconds): 

  • Page Sets
  • Total data pages (obtained from IBM MQ)
  • Unused Pages (obtained from IBM MQ)
  • Number of pages holding persistent data (obtained from IBM MQ)
  • Number of pages holding non persistent data (obtained from IBM MQ)
  • Extents at restart (obtained from IBM MQ)
  • Percentage of total pages in use (calculated by MainView Middleware Monitor)
  • Percentage of pages holding persistent data (calculated by MainView Middleware Monitor)
  • Percentage of pages holding non persistent data (calculated by MainView Middleware Monitor)
  • Buffer Pool (obtained from the system)
  • Queue manager name (obtained from IBM MQ)
  • Queues (in addition to other IBM MQ monitoring
  • Storage Class (obtained from IBM MQ)
  • Page set ID (obtained from IBM MQ)
  • Buffer Pool (obtained from the system)

Changing the storage class for a queue

Knowing how queues are handling the message load and how page sets are affected allows you to change the storage class for a queue. By changing the storage class the z/OS system functions more efficiently. See your IBM MQ documentation for details about tuning your IBM MQ environment on z/OS. 

Before you begin

Before you can change the storage class for a queue the queue must be empty and closed.

To change the storage class for a queue

  1. In the MainView Middleware Monitorexplorer pane, expand the node until the queue appears that you want to view or change.
  2. Right-click the queue and select Properties.
  3. Select new storage class from the attribute list and click Change queue.

To view page set information

In the MainView Middleware MonitorManagement Console explorer pane, expand the node to Page Sets under the queue manager.

The view lists all of the pertinent page set statistics and, in the explorer pane, the page set attributes. You can collect history on these attributes and create reports or charts. For more information, see Recommendations for collecting history for page sets.

Recommendations for collecting history for page sets

BMC recommends using the settings shown in the table below for collecting history on page sets.

Attribute

Last

Count

Average

Min

Max

Total

BufferPool

 

 

 

 

 

X

ExtentsSinceRestart

 

 

 

 

 

X

PageswNonPersist

 

 

X

X

X

 

PageswPersistent

 

 

X

X

X

 

PctPagesInUse

 

 

X

X

X

 

PctwNonPersistent

 

 

X

X

X

 

PctwPersistent

 

 

X

X

X

 

TotalExtents

 

 

 

 

 

X

TotalPages

 

 

X

X

X

X

UnusedPages

 

 

X

X

X

X

Buffer manager statistics

z/OS buffer manager statistics are monitored by MainView Middleware Monitor. A buffer pool is an area of main storage used for z/OS IBM MQ queues, messages, and object definitions.

Buffer manager statistics provide MainView Middleware Monitorusers with statistical data related to buffer pools. Using the statistics, you can optimize your environment and see the results in the Management Console z/OS Buffer Manager view.

To receive buffer manager statistics, you must have monitoring set on the queue manager.

In addition to the data received from the SMF record, MainView Middleware Monitorprovides calculated values. They are as follows.

Buffer Pool Hit Ratio:

buffer-pool.png

Page Retrieval Efficiency:

buffer-page-retrieval.png

Empty Page Request Ratio:

buffer-empty-page.png

Asynchronous Writer Processor Efficiency:

buffer-asychronous.png

BMC recommends using the settings shown in the table below for collecting history on z/OS buffer pools.

Real name

Attribute

Last

Count

Average

Min

Max

Total

Buffer Pool Hit Ratio

QPSTBPHR

 

 

X

X

X

 

Page Retrieval Efficiency

QPSTPRE

 

 

X

X

X

 

Empty Page Request Ratio

QPSTEPRR

 

 

X

X

X

 

Asynchronous Writer Processor Efficiency

QPSTAWPE

 

 

X

X

X

 

Monitor queues in a queue sharing group

Note

This setting has been deprecated as of 

MainView Middleware Monitor

v8.0, and might be removed in a future release.

To reduce the amount of coupling facility and Db2 resources used while monitoring queue sharing groups, MainView Middleware Monitordetermines whether a queue is private or shared. Private queues include queues defined with QSGDISP(QMGR) or QSGDISP(COPY). Shared queues include queues defined with QSGDISP(SHARED).

If you want to prevent monitoring of shared queues, then modify the EAAXML file and set QSGMonitoringMode to QSGDISP_Always_PRIVATE. You might need to add the stanza to your EAAXML file. See the list below.

QSGMonitoringMode section

<ExtensionName>WebSphere MQ Monitor</ExtensionName>
<Preferences>
<PreferenceAttribute>
<PreferenceName>SampleInterval</PreferenceName>
<PreferenceValue>30</PreferenceValue>
</PreferenceAttribute>
<PreferenceAttribute>
<PreferenceName>ServicePort</PreferenceName>
<PreferenceValue>6001</PreferenceValue>
</PreferenceAttribute>
:
:
<PreferenceAttribute>
<PreferenceName>QSGMonitoringMode</PreferenceName> 
<PreferenceValue>QSGDISP_Always_PRIVATE</PreferenceValue>
</PreferenceAttribute>
</Preferences>

The valid options for QSGMonitoringMode are:

  • QSGDISP_DYNAMIC - If QSGMonitoringMode does not appear in the EAAXML file, then MainView Middleware Monitoruses this setting. All private and shared queues are monitored specifying QSGDISP.
  • QSGDISP_Always_PRIVATE - Only private queues are monitored. This reduces the load on the Db2 database.
  • QSGDISP_Dont_Specify - All private and shared queues are monitored without specifying QSGDISP.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*