CA LMP and CAIRIM

CA LMP (License Management Program) is a subcomponent of CAIRIM that provides a standardized and automated approach to the tracking of licensed software. CA LMP uses enforcement software to validate the configuration and to report on activities regarding the licensing, usage, and financial aspects of CA software.
ccsfzos15
CA LMP (License Management Program) is a subcomponent of CAIRIM that provides a standardized and automated approach to the tracking of licensed software. CA LMP uses enforcement software to validate the configuration and to report on activities regarding the licensing, usage, and financial aspects of CA software.
 
 
3
 
2
 
 
How CA LMP Works
CA LMP is designed to operate smoothly and efficiently, whether you are using one CA solution on one central processing unit (CPU) or multiple CA solutions on several CPUs.
Each computer that is running one or more CA products that by CA LMP maintains uses common enforcement software and a common KEYS data set member. The KEYS member contains the CA LMP execution keys that are required to run the associated CA solutions on each of the specified CPUs. During product installation, you transfer the execution keys from the CA LMP Product Key Certificates to control statements in the KEYS member.
CA LMP is executed as part of the CAIRIM service. The KEYS DD statement in the CAS9 procedure points to the KEYS member. When CAIRIM is started, CA LMP reads and verifies each statement in sequential order, as found in the KEYS member.
During the operation of each CA solution, the CA LMP enforcement software is invoked periodically. This software compares the execution keys with the execution environment. If there is a discrepancy between the execution keys and the environment, it issues messages so that you can resolve the situation and can avoid any interruption in the operation of the solution. If after 24 hours no violations occur for a CA solution, the messages cease.
The messages are written to the system console, the Event Console, a batch job log, or a TSO terminal, providing a history of the warnings.
After the messages are issued, the solution continues operation. The enforcement software ensures that a solution under the control of CA LMP is not interrupted because of expiration dates, improper execution keys, or changes in the CPU on which it is running.
 
Example: Verification of Execution Keys at CAIRIM Startup
 
Each control statement is displayed as it is read, as shown in the following sample:
CAS9075I - SERVICE(CA-RIM/BASE ) VERS(1200) GENLVL(0808AW000) CAS9115I - INPUT: * CAS9115I - INPUT: * KEY PARAMETERS FOR LMP CAS9115I - INPUT: * CAS9115I - INPUT: PROD(CH) CPU(3090-600 /000000) DATE(19JUL11) 1 LMPCODE(XXXXXXXXXXXXXXXX) CAS9190I - PRODUCT CH KEY ACCEPTED FOR THIS CPU 2 CAS9115I - INPUT: PROD(SO) CPU(3090-600 /000000) DATE(31OCT10) 3 LMPCODE(YYYYYYYYYYYYYYYY) CAS9125E - INVALID DATA: KEY ALREADY EXPIRED 4 CAS9115I - INPUT: PROD(SO) CPU(3090-600 /111111) DATE(30DEC12) 5 LMPCODE(ZZZZZZZZZZZZZZZZ)
The statements give the following results:
  • The execution key in 
    1
     is valid. The message in 
    2
     indicates that the key is accepted.
  • The execution key in 
    3
     has expired. The message in 
    4
     displays the fact. A similar situation would exist if the key is invalid or has been tampered with.
  • The execution key in 
    5
     is for a CPU other than the one for which CAIRIM is attempting to initialize solutions. The key is displayed, but no message follows and no action is taken. This outcome can occur if you are sharing a common member to define the execution keys for multiple CPUs.
Product Execution Key Control Statements
Depending on the type of license, a product execution key statement can have the following formats:
PROD(
pp
) DATE(
ddmmmyy
) CPU(
tttt-mmmm/ssssss
) LMPCODE(
kkkkkkkkkkkkkkkk
) PROD (
pp
) CPU (
tttt-mmmm/ssssss
) EXPIRES (
ddmmmyyyy
) LMPCODE (
kkkkkkkkkkkkkkkk
) [DELETE | REMOVE]
  •  
    PROD
    Specifies the two-character product code.
  •  
    DATE
    Specifies the expiration date of the CA LMP licensing agreement. Date supports the 21st century date format, and only requires the last two digits of the year. For example, January 1, 2010 is 01JAN10, with 10 representing the year 2010.
  •  
    CPU
    Specifies the type, model, and serial number of the CPU (for example, 9672-R83 /447276) on which the software solution is to run. If the type and model require fewer than four characters, blank spaces are inserted at the end of each field for the unused characters.
  •  
    LMPCODE
    Specifies the execution key to run the software solution.
  •  
    EXPIRES
    Specifies the expiration date of the CA LMP licensing agreement. Use four digits to identify years.
  •  
    DELETE | REMOVE
    Causes the product key to be marked for bypass and therefore skipped on subsequent scans of the Product Descriptor Table (PDT). The product key entry is not physically removed from the PDT, simply rendered inactive with the raising of the bypass semaphore.
    This keyword is valid for existing product keys only. A DELETE keyword on a new product definition statement for which a PDT entry does not exist is rejected, and CAIRIM immediately terminates in error.
     The key deletion (removal) is effective only if there are no subsequent license checks (#FLOID) issued against the product. If a #FLOID request is issued against a previously removed key, it preempts any previous DELETE action and LMP key violation warnings and alerts are resumed for the product.
Add Product Execution Keys
If a CA product uses CA LMP, you receive a Key Certificate with the product installation or maintenance media. The certificate contains the product execution key. To ensure the proper initialization of the product, add the key to CAIRIM.
To add an execution key to CAIRIM, add its control statement to the CAW0OPTN(KEYS) data set member.
 
Example: Control Statement
 
PROD(SO) DATE(01JAN10) CPU(9672-R83 /447276) LMPCODE(52H2K06130Z7RZD6)
SITEID Type LMP Keys
SITEID type LMP keys are for sites that have selected Audit Governance to manage and control the use of CA software in their organizations.
CAIRIM KEYS dd File Record Coding Conventions
The CAIRIM KEYS dd is a file that is comprised of 80-byte records. The records can be broken into four logical fields:
  • The first is in position 1. If an "*" is found in this field, then the record is treated as a comment.
  • The second field is located in positions 2 through 71 of the record, and contains the CALMP Control Statement data.
  • The third field is in position 72. If a "-" is found here, the Control Statement is continued on the next record.
  • The fourth field is in positions 73 through 80 and can be used for numbering the records.
With the introduction of SITEID processing, it is necessary to allow Control Statements to be broken in the middle of a verb. This is accomplished by coding a " +" (blank space and the plus sign) at the point in the verb data that you want to break the verb and by adding a "-" (minus sign) in position 72. The data is then continued on the next record.
If you are attempting to break the data in a verb at a space, then the space must be included followed by the " +" so that the last 3 characters of the verb look like "  +" (2 spaces and a plus) followed by a "-" in position 72.
The Control Statements are not case-sensitive. They can be all upper case, all lower case, or a combination of both.
To simplify the process of defining of the SITEID control statement, we recommend that you to specify the SITEID and SITECODE on one line and the NAME on the next line. Remember to add the “-“ in column position 72 on the first line. 
Example:
********************************* Top of Data ********************************** ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 * 00010000 * CALMP KEYS FOR CAIRIM 00020000 * 00030000 *EKG(35575167) 00040000 * 00050000 SITEID(98765432) SITECODE(AFM3XC43BPASTBG0FUUY8) -00060000 NAME(THIS IS A CUSTOMER SITE NAME) 00070000 * SITEID(00123456) SITEID(0123456789ABCDEFGHIJKL) NAME(SPLITCOMPANY + -00080000 * NAMEONTWOLINES) 00090000 * 00100000 * SITEID(00123456) SITECODE(ETH2PHQZTXQPXGXRK7ZPT) -00110000 * NAME(SUPER DUPER LONG CLIENT NAME AND THIS ONE IS BIG + -00120000 * ENOUGH) 00130000 PRODUCT(SO) DATE(19JUL12) -00170000 CPU(3090-****/ + -00180000 071966) LMPCODE(42E2LZA66ZC7RZDD) 00190000 PRODUCT(L0) DATE(12DEC12) -00200000 CPU(3090-****/071966) LMPCode(HHGHP8DRRC81T8LG) 00210000 * 00220000 PROD(L0) DATE(25DEC11) CPU(3090-312 /456789) LMPCODE(8HGHERW1DC91T8L6) 00230000 * 00240000 * PROD(KO) DATE(05MAR10) -00250000 * CPU(SITE-****/123456) LMPCODE(HEETFYCEP4QED75B) 00260000 PROD(KO) DATE(11NOV12) CPU(SITE-****/123456) LMPCODE(9EE5CYCEPBB8D75T) 00270000 PROD(XY) DATE(20NOV15) CPU(*SITE*-/00123456) LMPCODE(D1MCDKM4T066GYCZ) 00280000 ****************************** Bottom of Data **********************************
Example Key:
  • Record 00040000 illustrates an example of an EKG code. If used, an EKG code is the first uncommented statement in the KEYS file.
  • Records 00060000 and 00070000 illustrate is a basic example of how to define a SITEID control statement.
  • Records 00080000 and 00180000 illustrate that the operand was continued on another record by coding the character " +" (blank followed by a plus sign) as the last two characters of the operand on the record to be continued, and by adding a "-" in column 72.
  • Record 00120000 illustrates that to break at a blank, code the blank with the character " +" (blank followed by a plus sign) so that in the Control Statement there is a "  +" (two blanks followed by a plus sign) at the end of the verb data followed by the character "-" in position 72.
  • Records 00040000, 00080000-00130000, and 00250000-00260000 illustrate examples of commented out Control Statements.
  • Records 00270000 and 00280000 illustrate a Product Execution Key using SITEID processing. Each record illustrates a variation of the CPU definition. In the first example, only a six character SITEID can be defined. In the second example, eight characters must be defined.
Proper Ordering of Control Statements within the KEYS dd File
The SITEID control statement must be the first non-commented record in the KEYS dd file. You can define only one SITEID control statement in a KEYS member. The rest of the records in the KEYS file can be any mixture of Product Execution keys and optionally one EKG Control Statement.
If more than one Product Execution Key for the same product is found and they are valid, then the one with the greatest expiration date is used. For example, if your KEYS dd has two Product Execution Keys for the same product and they are both valid, if the current year is 2008 and one KEY expires in 2009 and the other in 2010, then the 2010 KEY is used.
SITEID Control Statement Format
 
Note: 
Format can be either N for numeric data (0-9) or AN for alphanumeric (0-9, A-Z, or a-z).
Verb
Format
Length
Comments
SITEID
N
8
Contains your CA SITEID (as shown in your SITEID Control Statement).
SITECODE
AN
21
Must appear exactly as shown on your SITEID Control Statement.
NAME
AN
80
Customer Name. Must appear exactly as shown in your SITEID Control Statement.
Product Execution Keys Format
 
Note: 
When a Product Execution Key is SITEID-specific, the data that is contained in "CPU" is of the format "(*SITE*-****/
nnnnnnnn
)". 
nnnnnnnn
 is the Site ID which must match what appears in the SITEID Control Statement without leading zeros. For CPU-specific keys, the format of this field is "(
mmmmmmmmm/ssssss
)" where 
mmmmmmmmm 
is the CPU model and 
ssssss 
is the serial number.
Verb
Format
Length
Comments
PROD
AN
2
Contains the 2-digit product code for which this key is used.
DATE
AN
7
Clear text date of the earliest possible expiration date of this key.
CPU
AN
16
Contains either the clear text model and serial number (for CPU specific keys) or the Customer SITEID that must appear in the SITEID Control Statement for this key to be valid.
LMPcode
AN
16
Contains data used by CA-LMP.
Load Product Execution Keys
After you add or update a product execution key control statement, you can load it immediately.
To load new keys, execute the CAS9 procedure.
You can create a different CAS9 procedure specifically for loading new keys.
Create a Customized CAS9 Procedure for Loading Product Execution Keys
Create a customized CAS9 procedure to load product execution keys to avoid getting messages about CA products that were previously initialized using CAIRIM. We recommend that the CARIMPRM member is not read when you execute the CAS9 procedure to load keys.
 
Follow these steps:
 
  1. Make a copy of the CAW0PROC(CAS9) member.
    For example, call the copy CAS9LMP.
  2. Make the following changes to the copy (CAS9LMP):
    1. Remove the following line from the PROC statement:
      “RIMPARM=CARIMPRM,”
    2. Remove the following line from the PROC statement:
      “AUTOCMD=CAUTOCMD”.
    3. Locate the “KEYS=KEYS,” line in the PROC statement and remove the comma as follows:
      “KEYS=KEYS”
    4. Locate the “PARMLIB DD DISP=SHR,DSN=&CAW0OPTN(&RIMPARM)” line and change the line as follows:
      “PARMLIB DD DUMMY”.
    5. Locate the “AUTOCMDS DD DISP=SHR,DSN=&CAW0OPTN(&AUTOCMD)” line and modify the line as follows:
      “AUTOCMDS DD DUMMY”
  3. Move the updated copy to a system proclib.
Load New LMP Keys
To load new LMP keys for your products, start CAS9 with the following parameter:
S CAS9,,,LMPKEYS
This parameter does not re-init any of your other products and does not resubmit your AUTOCMDS commands.
Reduce CA LMP Console Messages
CA LMP issues messages when processing product execution keys. If you do not want these messages to go to the console, you can reroute the messages to an external flat file using a SYSPRINT DD statement. Error messages and messages that require manual intervention still go to the console.
To reduce the number of key processing messages that are routed to the console, add a SYSPRINT DD statement to the CAS9 procedure.
The data set defined by SYSPRINT is a standard sequential data set or a JES2 sysout data set. The DCB attributes are fixed for 80-byte unblocked records and cannot be overridden with JCL, which means that the DCB must be (LRECL=80,BLKSIZE=80,RECFM=F).
 If the SYSPRINT ddname is not suitable, you can nominate another ddname for the flat file through the SYSPDDNM subparameter in the EXEC statement of the CAS9 procedure. For example, the following statement nominates SYSLIST as the ddname and you can reroute CA LMP messages by specifying a SYSLIST DD statement:
//CAIRIM EXEC PGM=CAIRIM,PARM='SYSPDDNM(SYSLIST),...'
 
Optionally Turn Off CAS9115I Messages
 
CAIRIM issues CAS9115I messages for each RIMPARM statement and each LMP statement that is read in. You can optionally turn off the CAS9115I messages.
To turn off the RIMPARM CAS9115I messages, add the following statement as the first statement in the RIMPARM member in column 1:
ECHO=NO
To turn off LMP CAS9115I messages, add the following statement as the first statement in the LMP member in column 1:
ECHO=NO
If you want to turn on CAS9115I messages from a specific point forward, add the following statement at that point in the LMP or RIMPARM statement member:
ECHO=YES
Emergency Key Generator
Although CA LMP permits your CA solutions to run uninterrupted regardless of the CPU on which they are running, enforcement software messages are issued. In emergency situations, such as disaster recovery, use the Emergency Key Generator (EKG) to activate your solutions and suppress these messages.
To use EKG, request an EKG code from CA TLC. The EKG code is good for only ten days after use, which is based on the Greenwich Mean Time (GMT).
After you have obtained an EKG code, activate EKG in one of the following ways:
  • Using the Start Command
  • Using the KEYS data set member
  • Using the PARM keyword
Activate EKG Using the START Command
You can activate EKG using the START command to suppress messages. The START command requires manual intervention.
 
Follow these steps:
 
  1. Issue the following console command:
    START CAS9,,,EKGP
    The CAS9117A message appears and prompts you for an EKG code.
     
    Important! 
    You have three attempts at entering a valid EKG code before EKG processing is aborted.
  2. Reply to the message.
    On acceptance of the code, EKG is activated.
 
Example: Console Display
 
This example shows the console display when running CAIRIM with the EKGP parameter:
S CAS9,,,EKGP 1 00 CAS9117A ‑ ENTER EKG DEVICE CODE OR CANCEL TO ABORT 2 R 00,1A2B3C4D 3 CAS9116I ‑ EKG DEVICE CODE ACCEPTED ACTIVATED ON: 4 AUGUST 28, 2008 G.M.T CAS9115I ‑ INPUT: PROD(L0) CPU(3090‑600 /011111) DATE(28AUG11) LMPCODE(XXXXXXXXXXXXXXXX) CAS9190I ‑ PRODUCT L0 KEY ACCEPTED FOR THIS CPU 5 CAS9115I ‑ INPUT: PROD(SO) CPU(3090‑600 /099999) DATE(28AUG11) LMPCODE(YYYYYYYYYYYYYYYY)
 
1
 
CAIRIM is started with the EKGP parameter.
 
2
 
The operator is prompted for an EKG code.
 
3
 
The operator replies.
 
4
 
The EKG code is accepted and activated on August 28, 2008 GMT.
 
5
 
The execution key for the indicated product is accepted for the CPU, even if the computer type and serial number do not match what is contained in the execution key.
Activate EKG Using the KEYS Data Set Member
Activate EKG by including an EKG control statement in the KEYS data set member to suppress messages.
 
Follow these steps:
 
  1. Add the following EKG control statement to the CAW0OPTN(KEYS) member:
     
    Important! 
    The EKG control statement must be the first uncommented control statement in the KEYS member.
    EKG(
    nnnnnnnn
    )
     
    nnnnnnnn
     
    Is the EKG code.
  2. Start the CAS9 procedure.
    EKG is activated.
 
Example: Output
 
This example shows the output when EKG is activated:
CAS9075I - SERVICE(CA-RIM/BASE ) VERS(1200) GENLVL(0808AW000) CAS9115I ‑ INPUT: * CAS9115I ‑ INPUT: * KEY PARAMETERS FOR LMP CAS9115I ‑ INPUT: * CAS9115I ‑ INPUT: EKG(1A2B3C4D) 1 CAS9116I ‑ EKG DEVICE CODE ACCEPTED ACTIVATED ON: 2 AUGUST 28, 2008 G.M.T CAS9115I ‑ INPUT PROD (L0) CPU(3090‑600 /011111) DATE(28AUG11) LMPCODE(XXXXXXXXXXXXXXXX) CAS9190I ‑ PRODUCT L0 KEY ACCEPTED FOR THIS CPU 3 CAS9115I ‑ INPUT PROD (S0) CPU(3090‑600 /099999) DATE(28AUG10) LMPCODE(YYYYYYYYYYYYYYYY)
 
1
 
EKG is the first uncommented control statement, where 1A2B3C4D is the EKG code.
 
2
 
The EKG code is accepted and activated on August 28, 2008 GMT.
 
3
 
The execution key for the indicated product is accepted for the CPU, even if the computer type and serial number do not match what is contained in the execution key.
Activate EKG Using the PARM Keyword
Activate EKG by including a PARM keyword in the EXEC statement of the CAS9 procedure to suppress messages. It requires manual intervention.
 
Follow these steps:
 
  1. Update the EXEC statement in the CAS9 procedure as follows:
    //CAIRIM EXEC PGM=CAIRIM,PARM=EKGP
  2. Start the CAS9 procedure.
    The CAS9117A message appears and prompts you for an EKG code.
  3. Reply to the message.
    On acceptance of the code, EKG is activated.
 
Example: Session Display
 
This example shows the session when executing CAIRIM with the PARM=EKGP parameter:
00 CAS9117A ‑ ENTER EKG DEVICE CODE OR CANCEL TO ABORT 1 R 00,1A2B3C4D 2 CAS9116I ‑ EKG DEVICE CODE ACCEPTED ACTIVATED ON: 3 AUGUST 28, 2008 G.M.T CAS9115I ‑ INPUT: PROD(L0) CPU(3090‑600 /011111) DATE(28AUG12) LMPCODE(XXXXXXXXXXXXXXXX) CAS9190I ‑ PRODUCT L0 KEY ACCEPTED FOR THIS CPU 4 CAS9115I ‑ INPUT: PROD(SO) CPU(3090‑600 /099999) DATE(28AUG12) LMPCODE(YYYYYYYYYYYYYYYY)
1
The operator is prompted for an EKG code.
 
2
 
The operator replies.
 
3
 
The EKG code is accepted and activated on August 28, 2008 GMT.
 
4
 
The execution key for the indicated product is accepted for the CPU, even if the computer type and serial number do not match what is contained in the execution key.
LMP Key Check Invocation Exit
To monitor which LMP checks the various CA products make, you can use the CAS9FL00 exit point. The sample exit performs a simple WTO for each LMP key check that is made and the exit is called for CA product LMP key checks. The source code to a sample exit is supplied in the CAW0SRC data set.
The CAS9FL00 LMP exit point module passes one parameter, the address of the two-byte LMP product code that has been checked, in register 1.
Unless the LMP key checking CA application runs in key 1-7, CAS9FL00 is invoked in problem state, key 8.
If the CA application runs in key 1-7, the exit is invoked in that key. For example, CA ACF2™ for z/OS runs in key 1 so the LMP exit is called in key 1 for a CA ACF2 LMP key check. The exit is called using standard linkage conventions.
The LMP exit can be called under a job-step task that is authorized. Therefore, take the same security precautions regarding access to the installation of this exit as you would take for a z/OS SMF exit.
To turn on the call to CAS9FL00, add the following statement to the beginning of the RIMPARM statements member and start the CAS9 procedure:
LMPEXIT=YES
CAS9FL00 refreshment capability is available through the CAIRIM CAS9INIT REFRESH(LMP) parm function. If CAIRIM is run with this RIMPARM statement, CAS9FL00 is reloaded into storage with the other main LMP modules. This behavior lets CAS9FL00 be updated without an IPL:
PRODUCT(CAIRIM) VERSION(CAS9) INIT(CAS9INIT) PARM(REFRESH(LMP))
LMP CA Product Usage Registration
CA product LMP key checks, by default, cause SMF 89 usage data records to be generated. The SMF 89 record generation is required for customers who have selected site keys for managing or controlling the use of CA software.
To turn off this feature, add the following statement to the CAIRIM RIMPARM member:
LMPAM=NO
The statement must be placed in column 1.
Setting LMPAM to NO turns off SMF 89 record generation for the life of the IPL. This setting prevents CAS9 from turning the feature on if run for some minor purpose, such as adding a single LMP key. To turn on the feature after running CAS9 with LMPAM=NO, run CAS9 with the following RIMPARM:
LMPAM=YES
Procedure CASMF89R of the CAI.CAW0PROC data set is used to run the IBM usage data report utility IFAURP. You can copy CASMF89R to one of your system proclibs and can customize it for your site. CASMF89R also needs appropriate security definitions assigned.
CASMF89R as delivered, creates a temporary data set of all SMF 89 records from the chosen 'SYS1.MANx' data set, then sorts the SMF 89 records and uses the sorted temporary data set as input to the IFAURP utility.
The IFAURP utility creates a report that shows information about CA products that have been used on the system during the timeframe that the chosen 'SYS1.MANx' data set was written to.
The CASMF89R sample proc refers to three parm members. The CAI.CAW0OPTN data set contains members SMF89DMP, SMF89S, and SMF89U. You can copy these members to a parmlib data set of your choice and can edit your CASMF89R proc to set the OPTLIB variable default to this parmlib data set. Parmlib member SMF89U requires customization.
Set your company name and address, your name, phone number, processor type, model, and serial number, and the report data start date. The z/OS command 'D M=CPU' is useful for gathering processor information.
To see which 'SYS1.MANx' data set is active, issue a z/OS 'D SMF' console command. You can then run CASMF89R with the following command:
S CASMF89R,MAN=x
 
is the active 'SYS1.MANx' data set that is shown in the D SMF display.
To customize a batch job for running the IBM IFAURP utility to produce a usage report for a timeframe that makes sense for your site. The following sample JCL steps can help in setting up such a job.
 
SMF 89 record offloading sample
 
//XXXXXXXX JOB .......... //* //DMPSMF EXEC PGM=IFASMFDP //SYSPRINT DD SYSOUT=* //DUMPIN DD DSN=SYS1.MAN?,DISP=SHR <=== Set MAN data set //DUMPOUT DD DSN=???.SMFTYP89.RECORDS,DISP=(NEW,CATLG), <=== SET HLQ // SPACE=(TRK,(100,50),RLSE),DCB=(RECFM=VBS,BLKSIZE=4096), // UNIT=SYSDA,VOL=SER=vvvvvv <=== Set volser //SYSIN DD * INDD(DUMPIN,OPTIONS(DUMP)) OUTDD(DUMPOUT,TYPE(089:089)) /*
 
SMF 89 record sorting/filtering sample
 
//XXXXXXXX JOB .......... //* //IFAUSORT EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD DISP=SHR, // DCB=BUFNO=16, // DSN=HLQ.SMF.RECORDS <=== Offloaded SMF records all types //* //SORTOUT DD DISP=(NEW,CATLG), // UNIT=SYSDA, // SPACE=(CYL,(3,20),RLSE),DCB=*.SORTIN, // DSN=HLQ.SMFTYP89.RECORDS <=== Only SMF 89 records output //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SORTDIAG DD DUMMY //SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,(1),RLSE) //SORTWK02 DD UNIT=SYSDA,SPACE=(CYL,(1),RLSE) //SORTWK03 DD UNIT=SYSDA,SPACE=(CYL,(1),RLSE) //SYSIN DD * OPTION VLSHRT SORT FIELDS=(5,250,CH,A) INCLUDE COND=(6,1,BI,EQ,X'59') /*
 
CA Product usage data report sample
 
//XXXXXXXX JOB .......... //* //IFAUSAGE EXEC PGM=IFAURP //STEPLIB DD DSN=SYS1.SIFALIB,DISP=SHR //SMFDATA DD DISP=SHR,DSN=HLQ.SMFTYP89.RECORDS <=== SMF 89 recs dsn //SYSUDUMP DD SYSOUT=* //SYSMSGS DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSUSAGE DD SYSOUT=* //SYSHIN DD DUMMY //SYSHOUT DD DUMMY //SYSIN DD * * * CUSTOMER NAME AND ADDRESS * CUSTOMER( NAME('Your Company Name') ADDRESS( 'Company addr line 1' ,'Town, ST ZIPXX' ) CONTACT('Your name') PHONE('(000) 000-0000') ) * * VENDOR NAME AND ADDRESS * VENDOR( PRODOWNER('CA') NAME('CA') ADDRESS( 'CA INC.' ,'1 CA PLAZA' ,'ISLANDIA, NY 11749' ,'FAX: 1-800-000-1212 ATTN: USAGE PRICING' ) CODE(0000000) ) * * PROCESSOR CONTROL STATEMENT * PROCESSOR( (tttt,mmm,sssss) PRODUCT( PRODOWNER('CA') PRODNAME('CAIFLOID') START(yyyymmdd) ) ) /*
  •  
     
    tttt
     
    Processor type (such as 2094)
  •  
     
    mmm
     
    Model (such as 712)
  •  
     
    sssss
     
    Serial number
  •  
     
    yyyymmdd
     
    Report start date year, month, and day (such as 20140921 for September 21, 2014).
Report Licensed Registered Product Usage
Product usage is tracked for LMP key licensed or maximum concurrent seat license usage CA products. CA products that employ product usage monitoring, invoke a CA common service at strategic points in time to record usage. The CA product usage common service uses the IBM z/OS Product Registration component to perform the tracking, recording and reporting. The registered product information is stored as z/OS SMF (System Management Facility) type 89 subtype 2 records. z/OS generates these particular SMF record types on an SMF interval basis as defined by the installation.
The SMF type 89 records are collected over the required reporting period. A registered software usage report can be produced from the SMF type 89 records. The usage report is generated using the IBM z/OS product usage report utility program, IFAURP. IFAURP supports specification of software vendor which allows reporting of CA products only.
 
Follow these steps:
 
  1. Specify that the z/OS SMF component is to record SMF type 89 records. Make this specification on each system running CA licensed registered usage software programs.
  2.  Record SMF Type 89, Subtype 2 Records in SMF installation, archival, and retrieval procedures.
  3.  Generate the Software Product Registration Report to report product maximum concurrent registered usage.
Record SMF Type 89, Subtype 2 Records
Specify in the logical PARMLIB SMFPRM
xx
 member, the records that SMF is to record. The Software Product Registration Report produced by the IFAURP report utility requires the SMF type 89, subtype 2, records as input. Select SMF type 89 in the SMFPRM
xx
 member, or minimally, select the SMF type 89, subtype 2 records. For information describing the recording of SMF type 89 records, see the IBM publication, 
z/OS MVS System Management Facilities 
(SMF).
Typically an installation has existing procedures and methodologies for collecting and archiving the SMF records for later retrieval and reporting. Verify that the SMF type 89, subtype 2, records are included in the installation managed SMF historical data sets. Record these records for at least as long as production of the Software Product Registration Report requires.
Generate the Software Product Registration Report
The IBM product registration reporting utility, IFAURP, is used to analyze and summarize the SMF type 89, subtype 2, records. These records are used to produce the Software Product Registration Report. This report details the product maximum concurrent registration for each CA product and validates seat license usage compliance. For information regarding use of the IFAURP report utility, see the IBM publication, 
z/OS MVS Product Management.
 
When producing the Software Product Registration Report, supply the SMF type 89, subtype 2 records from all required systems for the desired reporting period. The general-purpose SMF dump utility, IFASMFDP, can be used to preprocess the SMF records. If the SMF records are being recorded to a z/OS log stream, IFASMFLS is used instead of IFASMFDP. After the target SMF records have been selected, they are sorted before presenting them to the IFAURP utility.
The following diagram illustrates the data flow required to produce reports through the IFAURP report utility:
  1861280.png  
 
Sample JCL for Generating the Software Product Registration Report
 
This sample code illustrates:
  • Extracting SMF type 89 records from the installation SMF collection data sets
  • Sorting the extracted records
  • Producing the software usage report
//jobname JOB (acct code),'Sample Usage Rept',CLASS=K, // MSGCLASS=D,MSGLEVEL=(1,1),NOTIFY=&SYSUID. //* //******************************************************************** //* * //* Member Name: PRDREPTS * //* * //* Descriptive Name: Sample job to extract SMF type 89 records * //* and generate a registered product * //* usage report. * //* * //* Function: * //* This job does the following: * //* * //* 1) Extract type 89 records from SMF collection data set(s) * //* 2) Sort type 89 records * //* 3) Invokes Usage Report Program * //* * //* * //* Notes: Refer to the IBM publication, "MVS Product Management", * //* Chapter 3 "Reporting Product Information" for detailed * //* information regarding the use and execution of the * //* IFAURP usage reporting utility program. * //* * //* * //******************************************************************** //* //******************************************************************** //* * //* Extract SMF Type 89 Records * //* * //******************************************************************** //* //XTRACT89 EXEC PGM=IFASMFDP,REGION=4M //SYSPRINT DD SYSOUT=* //* //INDD1 DD DISP=SHR,DSN=SMF.sys1.collect.data //INDD2 DD DISP=SHR,DSN=SMF.sys2.collect.data //INDD3 DD DISP=SHR,DSN=SMF.sys3.collect.data //* //OUTDD1 DD DSN=&&DUMP89,DISP=(NEW,PASS), // UNIT=SYSALLDA,SPACE=(CYL,(5,10)), // DCB=(LRECL=32760,BLKSIZE=4096,RECFM=VBS,BUFNO=10) //* //SYSIN DD * INDD(INDD1,OPTIONS(DUMP)) INDD(INDD2,OPTIONS(DUMP)) INDD(INDD3,OPTIONS(DUMP)) OUTDD(OUTDD1,TYPE(89)) DATE(yyddd,yyddd) /* //* //******************************************************************** //* * //* Sort the SMF type 89 records into a temporary data set * //* * //******************************************************************** //* //SORT89 EXEC PGM=SORT,REGION=6M //SYSOUT DD SYSOUT=* //SORTIN DD DSN=&&DUMP89,DISP=(OLD,DELETE) //SORTOUT DD DSN=&&SORT89,DISP=(NEW,PASS), // UNIT=SYSALLDA,SPACE=(CYL,(5,10),RLSE), // DCB=*.SORTIN //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SORTDIAG DD DUMMY //SORTWK01 DD UNIT=SYSALLDA,SPACE=(CYL,(10),RLSE) //SORTWK02 DD UNIT=SYSALLDA,SPACE=(CYL,(10),RLSE) //SORTWK03 DD UNIT=SYSALLDA,SPACE=(CYL,(10),RLSE) //SYSIN DD * OPTION VLSHRT SORT FIELDS=(5,250,CH,A) INCLUDE COND=(6,1,BI,EQ,X'59') /* //* //******************************************************************** //* * //* Generate Software Usage Reports * //* * //******************************************************************** //* //IFAUSAGE EXEC PGM=IFAURP,REGION=4M, // PARM='PRODUCT' //STEPLIB DD DSN=SYS1.SIFALIB,DISP=SHR //SMFDATA DD DSN=&&SORT89,DISP=(SHR,PASS) //SYSUDUMP DD SYSOUT=* //SYSUSAGE DD SYSOUT=* //SYSMSGS DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSHIN DD DUMMY DSN=<input history file spec> //SYSHOUT DD DUMMY DSN=<output history file spec> //SYSIN DD * * * Customer name and address * CUSTOMER( NAME('B & K Enterprises, Inc') ADDRESS( '1313 Mockingbird Lane' ,'Mockingbird Heights, CA 90210' ) CONTACT('M J Borghi') PHONE('(555) 555-5555') ) * * Vendor name, address, and installation's customer number * VENDOR( PRODOWNER('CA') NAME('CA Technologies') ADDRESS( 'One CA Place' ,'Islandia, NY 11749' ,'Fax: 1-631-342-6800 ATTN: Usage Pricing' ) CODE(1234567) ) * /* //