Configuring SNMP
Changing the IBM i SNMP Attributes
CCSS products have the ability to send information via SNMP traps. Before the facility can be used, you need to configure SNMP on the IBM i. To do this, you need to enter the CHGSNMPA command and prompt it:



For more information and explanation concerning the parameters within the CHGSNMPA command, see the IBM Knowledge Center.
If SNMP is not already active on your system, after you run the CHGSNMPA command, you need to run the command, STRTCPSVR *SNMP. The SNMP agent will start at the next IPL. If you need it to start sooner than that, you must first start your IBM i agent. Otherwise, the MM.SNMP job will fail.
Customer Registration MIB File
We supply a company registration MIB file (ccssreg.mi2) which will register CCSS as a valid provider of SNMP traps to the host. This file needs to be loaded and incorporated onto the customer’s host SNMP system.
A copy of this file can be found under Appendix 1 – Registration MIB below.
Using SNMP Traps with QMessage Monitor
To send a message as a trap within QMessage Monitor, you must first change the EMC Forwarding Mode parameter to contain the value *TRAP as follows:

This changes the way the EMC software performs in that it will run the MMTRAP command instead of sending an FTP record (no EMC record needs be selected for this to work).
The MMSTRMTR command will now submit a new job to run in the QSYSWRK subsystem.
This job, MM.SNMP, controls and manages the sending of all SNMP traps on each system.

Now all you have to do is to set up auto-reply records to ‘Forward to Management Console’ and an SNMP trap will be sent to the previously entered IP Address. See below for an example:

QMessage Monitor Definition MIB File
We supply a QMM MIB definition file (ccssmm.mi2) which defines the layout of the fields we are sending. There are twenty-six fields in total. This file needs to be loaded and incorporated onto your host SNMP system.
A copy of this file can be found under Appendix 2 – QMM MIB below.
Using SNMP Traps with QSystem Monitor
QSystem Monitor works in a different way, instead of sending information from the IBM i as with QMessage Monitor, it requires an SNMP host to ‘pull’ information.
The base product has been changed so that the last collection made by MON020C is stored in a user space MONSNMP in library MSMTEMP on all systems (overwritten each time a collection is made).
The MONBCK command submits a job to run in the QSYSWRK subsystem. This job, MON.SNMP, controls and manages the sending of all SNMP traps on each system.

Now all you have to do is to set up your enterprise system to ‘pull’ the information from the required IBM i system.
QSystem Monitor Supplied Definition MIB File
We supply a QSM MIB definition file (ccssmsm.mi2), which defines the layout of the fields we are sending. There are fifty-seven fields in total. This needs to be loaded and incorporated onto your host SNMP system.
A copy of this file can be found under Appendix 3 – QSM MIB below.
QSystem Monitor User-Defined MIB File
When you create new or modify definitions via the Online Monitor, you also need to notify your EMC system of these changes. You can do this by utilizing the Export as MIB option from the Tools menu on the Online Monitor.

The saved file needs to then be loaded and incorporated onto the your host SNMP system.
An extract from this file can be found under Appendix 4 – QSM MIB User Defined (extract) below.
Appendix 1 – Registration MIB
CCSS-GLOBAL-REG DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-IDENTITY,
enterprises
FROM SNMPv2-SMI;
ccssGlobalRegModule MODULE-IDENTITY
LAST-UPDATED "011010103000Z"
ORGANIZATION "HelpSystems"
CONTACT-INFO
"HelpSystems Support"
email: [email protected]"
DESCRIPTION
"HelpSystems central registration module"
::= { ccssModules 1 }
-- CCSS's Enterprise ID
ccssRoot OBJECT IDENTIFIER ::= { enterprises 10996 }
-- Sub-tree for registrations, including modules
ccssReg OBJECT IDENTIFIER ::= { ccssRoot 1 }
ccssModules OBJECT IDENTIFIER ::= { ccssReg 1 }
-- sub-tree for company-wide objects and events
ccssGeneric OBJECT IDENTIFIER ::= { ccssRoot 2 }
-- for Product Specific objects and events
ccssProduct OBJECT IDENTIFIER ::= { ccssRoot 3 }
-- for agent profiles
ccssCaps OBJECT IDENTIFIER ::= { ccssRoot 4 }
-- for requirement specifications
ccssReq OBJECT IDENTIFIER ::= { ccssRoot 5 }
-- for experiments
ccssExpr OBJECT IDENTIFIER ::= { ccssRoot 6 }
-- CCSS's products
ccssQmm OBJECT IDENTIFIER ::= { ccssProduct 1 }
ccssQmsm OBJECT IDENTIFIER ::= { ccssProduct 2 }
ccssQrc OBJECT IDENTIFIER ::= { ccssProduct 3 }
END
Appendix 2 – QMM MIB
CCSS-QMM-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE,
NOTIFICATION-TYPE, Integer32
FROM SNMPv2-SMI
TEXTUAL-CONVENTION, DisplayString
FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP
FROM SNMPv2-CONF
ccssModules, ccssProduct, ccssQmm
FROM CCSS-GLOBAL-REG;
ccssQmmMibModule MODULE-IDENTITY
LAST-UPDATED "011010103500Z"
ORGANIZATION "HelpSystems"
CONTACT-INFO
HelpSystems Support
email: [email protected]"
DESCRIPTION
"QMessage Monitor V8 message management
Copyright HelpSystems, LLC"
::= { ccssModules 2 }
-- Subtree for message fields
ccssMsgFld OBJECT IDENTIFIER ::= { ccssQmm 1 }
-- and one for events
ccssTrap OBJECT IDENTIFIER ::= { ccssQmm 2 }
-- And for groups
ccssMsgGroup OBJECT IDENTIFIER ::= {ccssQmm 3}
-- The message fields used in the event notifications for a message
ccssMsgSystem OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The system on which the message was issued"
::= { ccssMsgFld 1 }
ccssMsgText OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..255))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The first level text of the message"
::= {ccssMsgFld 2}
ccssMsgHandle OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The internal message reference, or handle"
::= { ccssMsgFld 3 }
ccssMsgSeverity OBJECT-TYPE
SYNTAX Integer32(0..99)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The severity of the message, 0 being informational only"
::= { ccssMsgFld 4 }
ccssMsgType OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..2))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The message type:
01 Completion
02 Diagnostic
04 Informational
05 Inquiry
R5 Pseudo-Inquiry
14 Notify
15 Escape
I1 Manual Reply
I2 Manual Reply
I3 Default Reply
I4 System Dflt Reply
I5 System Reply List
I9 Auto Reply
R1 Acknowledged
R2 Deferred
R3 Deferred"
::= { ccssMsgFld 5 }
ccssMsgAcgCde OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..15))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Accounting Code of the job that issued the message"
::= { ccssMsgFld 6 }
ccssMsgAckUser OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The User who Acknowledged the Message"
::= { ccssMsgFld 7 }
ccssMsgAutLst OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The QMM Authority List for this message"
::= { ccssMsgFld 8 }
ccssMsgDftRpy OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..20))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Default Reply from the message description"
::= { ccssMsgFld 9 }
ccssMsgGrpPrf OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Group Profile of the job that issued this message"
::= { ccssMsgFld 10 }
ccssMsgJobName OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Name of the Job that issued this message"
::= { ccssMsgFld 11 }
ccssMsgUser OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Name of the User for the Job that issued this message"
::= { ccssMsgFld 12 }
ccssMsgJobNbr OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..6))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Number of the Job that issued this message"
::= { ccssMsgFld 13 }
ccssMsgJobType OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Type of the Job that issued this message
I - Interactive
B - Batch
X - System"
::= { ccssMsgFld 14 }
ccssMsgDate OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Date the message was issued (YYMMDD)"
::= { ccssMsgFld 15 }
ccssMsgTime OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Time the message was issued (HHMMSS)"
::= { ccssMsgFld 16 }
ccssMsgID OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..7))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The ID of the message"
::= { ccssMsgFld 17 }
ccssMsgFile OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Name of the message file for this message"
::= { ccssMsgFld 18 }
ccssMsgFileLib OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Message File Library for this message"
::= {ccssMsgFld 19}
ccssMsgQueue OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Message Queue to which this message was issued"
::= { ccssMsgFld 20 }
ccssMsgQueueLib OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Library in which the Message Queue resides"
::= { ccssMsgFld 21 }
ccssMsgReplyDate OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Date on which the reply was entered (YYMMDD), or 0"
::= { ccssMsgFld 22 }
ccssMsgReplyTime OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Time at which the reply was entered (HHMMSS), or 0"
::= { ccssMsgFld 23 }
ccssMsgReplyUser OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The User who replied to the message"
::= { ccssMsgFld 24 }
ccssMsgReply OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..80))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Reply to this Message"
::= { ccssMsgFld 25 }
ccssMsgSptGrp OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Name of the Support Group assigned to this Message"
::= { ccssMsgFld 26 }
ccssMsgNotes OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..100))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Free format note attached to this message"
::= { ccssMsgFld 27 }
-- The fields which make up a message
ccssGroupMsg OBJECT-GROUP
OBJECTS {
ccssMsgSystem,
ccssMsgText,
ccssMsgHandle,
ccssMsgSeverity,
ccssMsgType,
ccssMsgAcgCde,
ccssMsgAckUser,
ccssMsgAutLst,
ccssMsgDftRpy,
ccssMsgGrpPrf,
ccssMsgJobName,
ccssMsgUser,
ccssMsgJobNbr,
ccssMsgJobType,
ccssMsgDate,
ccssMsgTime,
ccssMsgID,
ccssMsgFile,
ccssMsgFileLib,
ccssMsgQueue,
ccssMsgQueueLib,
ccssMsgReplyDate,
ccssMsgReplyTime,
ccssMsgReplyUser,
ccssMsgReply,
ccssMsgSptGrp
ccssMsgNotes
}
STATUS current
DESCRIPTION
"Fields giving information about an iSeries Message"
::= { ccssMsgGroup 1 }
-- And these fields are used on this trap when issued by the MMTRAP command
ccssNewMsg TRAP-TYPE
ENTERPRISE ccssTrap
VARIABLES {
ccssMsgSystem,
ccssMsgText,
ccssMsgHandle,
ccssMsgSeverity,
ccssMsgType,
ccssMsgAcgCde,
ccssMsgAckUser,
ccssMsgAutLst,
ccssMsgDftRpy,
ccssMsgGrpPrf,
ccssMsgJobName,
ccssMsgUser,
ccssMsgJobNbr,
ccssMsgJobType,
ccssMsgDate,
ccssMsgTime,
ccssMsgID,
ccssMsgFile,
ccssMsgFileLib,
ccssMsgQueue,
ccssMsgQueueLib,
ccssMsgReplyDate,
ccssMsgReplyTime,
ccssMsgReplyUser,
ccssMsgReply,
ccssMsgSptGrp
}
DESCRIPTION
"A new message has been forwarded by QMessageMonitor"
::=
{ ccssMsgAction 1 }
ccssMsgReplyEntry OBJECT-TYPE
SYNTAXCcssMsgReplyEntry
MAX-ACCESSnot-accessible
STATUS current
DESCRIPTION
"An entry in the table. This is a sparse table, and the
apparent index is in fact the message handle"
INDEX{ ccssMsgHandle }
::= { ccssMsgReplyTable 1 }
CcssMsgReplyEntry::= SEQUENCE {
ccssMsgReplyValue DisplayString(SIZE(0..80))
}
ccssMsgReplyValue OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..80))
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The only column in this table is the reply value. Common
replies would be C (Cancel), G (Resume at *GETIN),
I (Ignore), R (Retry). The allowed replies will often be
found in the message text in brackets, or in the valid
replies field on the message record."
::= {ccssMsgReplyEntry 1}
END
Appendix 3 – QSM MIB
CCSS-QMSM-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE,
NOTIFICATION-TYPE, Integer32
FROM SNMPv2-SMI
TEXTUAL-CONVENTION, DisplayString
FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP
FROM SNMPv2-CONF
ccssModules, ccssProduct, ccssQmsm
FROM CCSS-GLOBAL-REG;
ccssQmmMibModule MODULE-IDENTITY
LAST-UPDATED "011022124600Z"
ORGANIZATION "CCSS (Europe) Ltd"
CONTACT-INFO
CCSS Support
email: [email protected]"
DESCRIPTION
"Initial Creation"
::= { ccssModules 1 }
-- Subtree for message fields
ccssMsmPerf OBJECT IDENTIFIER ::= { ccssQmsm 1 }
-- and one for events
ccssMsmTrap OBJECT IDENTIFIER ::= { ccssQmsm 2 }
-- And for groups
ccssMsmGroup OBJECT IDENTIFIER ::= {ccssQmsm 3}
ccssMsmMSCPU OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"CPU %age, 2 Decimals"
::= { ccssMsmPerf 1 }
ccssMsmMSDISK OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"System ASP Disk Used (%)"
::= { ccssMsmPerf 2 }
ccssMsmMSACT OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Active to Wait Transitions per second, 1 Decimal"
::= { ccssMsmPerf 3 }
ccssMsmMSWTIN OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Wait to Inel Transitions per second, 1 Decimal"
::= { ccssMsmPerf 4 }
ccssMsmMSACIN OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Active to Inel Transitions per second, 1 Decimal"
::= { ccssMsmPerf 5 }
ccssMsmMSMCH OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Machine Pool Faults per second, 1 Decimal"
::= { ccssMsmPerf 6 }
ccssMsmMSFLT OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Non-Database Faults per second, 1 Decimal"
::= { ccssMsmPerf 7 }
ccssMsmMSBSY OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Disk Busy %"
::= { ccssMsmPerf 8 }
ccssMsmMSREQ OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Disk Requests per second, 1 Decimal"
::= { ccssMsmPerf 9 }
ccssMsmMSRSP OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Average Response Time in seconds, 1 Decimal"
::= { ccssMsmPerf 10 }
ccssMsmMSTRAN OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Transactions processed per hour"
::= { ccssMsmPerf 11 }
ccssMsmMSTTRN OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total Interactive Transactions this interval"
::= { ccssMsmPerf 12 }
ccssMsmMSSECS OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Length of this interval in seconds"
::= { ccssMsmPerf 13 }
ccssMsmMSIJBS OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Count of interactive jobs"
::= { ccssMsmPerf 14 }
ccssMsmMSAIJ OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Count of Active Interactive jobs"
::= { ccssMsmPerf 15 }
ccssMsmMSICP OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"% of CPU used by Interactive Jobs, 2 Decimals"
::= { ccssMsmPerf 16 }
ccssMsmMSCPT OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Average CPU Seconds per Transaction, 1 Decimal"
::= { ccssMsmPerf 17 }
ccssMsmMSJBS OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Count of Active Jobs in the system"
::= { ccssMsmPerf 18 }
ccssMsmMSABJ OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Count of active Batch Jobs"
::= { ccssMsmPerf 19 }
ccssMsmMSUS1 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"User Data element 1, 2 Decimals"
::= { ccssMsmPerf 20 }
ccssMsmMSUS2 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"User Data element 2, 2 Decimals"
::= { ccssMsmPerf 21 }
ccssMsmMSUS3 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"User Data element 3, 2 Decimals"
::= { ccssMsmPerf 22 }
ccssMsmMSUS4 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"User Data element 4, 2 Decimals"
::= { ccssMsmPerf 23 }
ccssMsmMSUS5 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"User Data element 5, 2 Decimals"
::= { ccssMsmPerf 24 }
ccssMsmMSUS6 OBJECT-TYPE
<