IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Need ICETOOL JOB to collect SMF records and generate report


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Siva S

New User


Joined: 26 Mar 2008
Posts: 35
Location: Chennai

PostPosted: Thu Nov 13, 2008 1:14 am
Reply with quote

Hi,
I need ICETOOL job which collects SMF 30,80,81,82 and 83 record types and generate RACF report.

For example, Report should contains the information about "Commands issued by SPECIAL users" or "Resources access by SPECIAL users" .

Kindly help me in this.
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Thu Nov 13, 2008 1:26 am
Reply with quote

Siva S,

Check the smart DFSORT trick "RACF "SPECIAL" report with and without DFSORT symbols" here

www.ibm.com/systems/support/storage/software/sort/mvs/tricks/index.html

Hope this helps...

Cheers
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


Joined: 15 Feb 2005
Posts: 7129
Location: San Jose, CA

PostPosted: Thu Nov 13, 2008 1:57 am
Reply with quote

Here are some other sources for RACF reports using DFSORT's ICETOOL:

RACFICE:

www.ibm.com/servers/eserver/zseries/zos/racf/downloads/racfice.html

Nigel Pentland's utilities:

www.nigelpentland.co.uk/racf/
Back to top
View user's profile Send private message
Siva S

New User


Joined: 26 Mar 2008
Posts: 35
Location: Chennai

PostPosted: Thu Nov 13, 2008 3:58 am
Reply with quote

Dear Skolusu, Frank and Dick,
Thank you for your replies.

Now I am facing errors while using the ICETOOL job. So, hereby I am attaching the TOOLMSG and DFSMSG,

TOOLMSG:

Code:

           COPY    FROM(ADUDATA) USING(RACF)                                   
ICE606I 0 DFSORT CALL 0001 FOR COPY FROM ADUDATA  TO OUTFIL   USING RACFCNTL TERMINATED
ICE602I 0 OPERATION RETURN CODE:  16             

ICE643I 0 WIDTH OF REPORT IS 0129 BYTES                       
ICE612I 0 NO ERRORS FOUND IN STATEMENT                         
                                                               
ICE601I 0 DFSORT ICETOOL UTILITY RUN ENDED - RETURN CODE:16


DFSMSG:

Code:

           SORT FIELDS=(63,8,CH,A)                                             
           INCLUDE COND=(5,8,CH,EQ,C'ACCESS',AND,                               
                         86,3,CH,EQ,C'YES')                                     
           OPTION VLSHRT                                                       
ICE146I J END OF STATEMENTS FROM RACFCNTL - PARAMETER LIST STATEMENTS FOLLOW   
          DEBUG NOABEND,ESTAE                                                   
          OPTION MSGDDN=DFSMSG,LIST,MSGPRT=ALL,RESINV=0,SORTDD=RACF,SORTIN=ADUDA
                         A,DYNALLOC                                             
          SORT FIELDS=COPY                                                     
ICE201I J RECORD TYPE IS V - DATA STARTS IN POSITION 5                         
ICE056A N RACFOUT  NOT DEFINED                                                 
ICE052I J END OF DFSORT


In the DFSMSG, It is showing that RACFOUT not defined. Is that error? what it means?

Please help me out in this.
Thanks in advance.
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


Joined: 15 Feb 2005
Posts: 7129
Location: San Jose, CA

PostPosted: Thu Nov 13, 2008 4:04 am
Reply with quote

It means you haven't specified the ddname for your output data set. You didn't show your JCL, so I don't know what it looks like or what if anything you have for the output DD.

I don't know where you got that particular ICETOOL job but it appears you didn't copy it correctly. Did it by any chance have an OUTFIL statement that you didn't copy? If so, you need to include that OUTFIL statement. If there was no OUTFIL statement, then:

You should have a TO(ddname) parameter:

COPY FROM(ADUDATA) TO(todd) USING(RACF)

and a

//todd DD DSN=...

for the output data set. todd can be any valid ddname, e.g.

TO(RPT)

//RPT DD SYSOUT=*
Back to top
View user's profile Send private message
Siva S

New User


Joined: 26 Mar 2008
Posts: 35
Location: Chennai

PostPosted: Thu Nov 13, 2008 6:20 am
Reply with quote

Hi Frank,
Thank for your input. I coded the JCL with TO parameter, Now Jobs works fine, but the it generates nothing in the output.

JCL is the following,

Code:

//REPORT   EXEC PGM=ICETOOL                                       
//SMFDATA  DD DISP=SHR,DSN=A202191.SMF.UNLOAD,RECFM=VB,           
//            LRECL=8192,BLKSIZE=27998                           
//TEMP0001 DD DISP=(NEW,DELETE,DELETE),SPACE=(0,(1000,350)),     
//            LRECL=8192,RECFM=VB                                 
//TEMP0002 DD DISP=(NEW,DELETE,DELETE),SPACE=(0,(1000,350)),     
//            LRECL=8192,RECFM=VB                                 
//TEMP0003 DD DISP=(NEW,DELETE,DELETE),SPACE=(0,(1000,350)),     
//            LRECL=8192,RECFM=VB                                 
//TOOLMSG  DD SYSOUT=*                                           
//PRINT    DD SYSOUT=(A,,STD),HOLD=YES  ,DEST=U0022               
//DFSMSG   DD SYSOUT=*                                           
//SYSPRINT DD SYSOUT=*                                           
//SYSMSG   DD SYSOUT=*                                           
//SYSOUT   DD SYSOUT=*                                           
//TOOLIN   DD *                                                       
 COPY    FROM(SMFDATA) TO(TEMP0001) USING(RACF)                     
 DISPLAY FROM(TEMP0001) LIST(PRINT) -                               
        PAGE -                                                     
         TITLE('ACCESSES ALLOWED BECAUSE THE USER HAS "SPECIAL"') -
         DATE(YMD/) -                                               
         TIME(12:) -                                               
         BLANK -                                                   
         ON(VLEN) HEADER('VLEN')               -                   
         ON(23,8,CH)   HEADER('TIME')          -                   
         ON(32,10,CH)  HEADER('DATE')          -                   
         ON(63,8,CH)   HEADER('USERID')        -                   
         ON(286,36,CH) HEADER('RESOURCE NAME') -                   
         ON(564,6,CH)  HEADER('VOLUME')        -                   
         ON(605,36,CH) HEADER('PROFILE')                           
*                                                                   
/*------------------------------------------------------------------
//RACFCNTL DD *                       
 SORT FIELDS=(63,8,CH,A)               
 INCLUDE COND=(5,8,CH,EQ,C'ACCESS',AND,
               86,3,CH,EQ,C'YES')     
 OPTION VLSHRT VLLONG VLTRIM=C''       
/*     


and the output of the same is,

********************************* TOP OF DATA **********************************
- 1 - ACCESSES ALLOWED BECAUSE THE USER HAS "SPECIAL" 08/11/13

VLEN TIME DATE USERID RESOURCE NAME
------ -------- ---------- -------- ------------------------------------
******************************** BOTTOM OF DATA ********************************

Kindly help me.
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


Joined: 15 Feb 2005
Posts: 7129
Location: San Jose, CA

PostPosted: Thu Nov 13, 2008 6:56 am
Reply with quote

Quote:
but the it generates nothing in the output


Then I suspect your INCLUDE statement is eliminating all of the records.

Make sure you counted the RDW when determining the starting positions of the fields (the first data bytes starts in position 5 after the RDW) and
try using VLSCMP instead of VLSHRT.

If that doesn't do it, show your complete //DFSMSG output.

Can you tell me where exactly you got this job? I see some problems with it and I'd like to contact the owner about that.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Thu Nov 13, 2008 7:13 am
Reply with quote

Hello,

Quote:
Then I suspect your INCLUDE statement is eliminating all of the records
.
Possibly because of this? 5,8,CH,EQ,C'ACCESS'
The length specifies 8, but the literal is only 6. I'm not sure about sort, but this type compare generates an unequal in some languages/situations.
Back to top
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1702
Location: Australia

PostPosted: Thu Nov 13, 2008 11:29 am
Reply with quote

Hi Dick,

my tests reveal that SORT pads the string out with blanks.



Gerry
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


Joined: 15 Feb 2005
Posts: 7129
Location: San Jose, CA

PostPosted: Thu Nov 13, 2008 10:46 pm
Reply with quote

Yes, the constant would be padded on the right with blanks to the length of the field.
Back to top
View user's profile Send private message
Siva S

New User


Joined: 26 Mar 2008
Posts: 35
Location: Chennai

PostPosted: Fri Nov 14, 2008 2:20 am
Reply with quote

Hi All,

Now my job is working fine and able to generate the desired output.

Really thank Dick, Frank, Skolusu and gcicchet for all your support.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Fri Nov 14, 2008 2:56 am
Reply with quote

Hello,

Quote:
Now my job is working fine and able to generate the desired output.
Good to hear this icon_smile.gif

What was changed to make it work?

d
Back to top
View user's profile Send private message
Siva S

New User


Joined: 26 Mar 2008
Posts: 35
Location: Chennai

PostPosted: Fri Nov 14, 2008 3:09 am
Reply with quote

Hi Dick,
The problem is with SORT column numbers. Actually I have copied that JOB from the net, in that I have modified the column numbers accordingly, so it is working fine.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Fri Nov 14, 2008 3:12 am
Reply with quote

Thank you icon_smile.gif

d
Back to top
View user's profile Send private message
Siva S

New User


Joined: 26 Mar 2008
Posts: 35
Location: Chennai

PostPosted: Sat Nov 15, 2008 4:15 am
Reply with quote

Hi,
I need another clarification. From the SMF Unload utility, I have the data instantly looks like the following(without any header information),

ACCESS SUCCESS 12:34:43 2008-11-12 ADS1 NO NO NO
ACCESS SUCCESS 12:34:48 2008-11-12 ADS1 NO NO NO
ACCESS SUCCESS 12:34:49 2008-11-12 ADS1 NO NO NO

Can you please let me know, Is there any possiblities to know each column description?

Example: In my analysis,
First Colunm: Access or Commands issued.
Second Column: Gives status of the resource access either SUCCESS or TERM or UNDFUSER or INSAUTH.
Third Column: Represents the TIME of resource access.
Fourth Column: Date.
Fifth Column: LPAR Name.

I can identify the various columns like the above. But I am not able to identify YES or NO of various columns.

Kindly help me in this. Thanks in advance.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Sat Nov 15, 2008 4:39 am
Reply with quote

Hello,

You might look here:
publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA2G261/CCONTENTS?
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DFSORT/ICETOOL

 


Similar Topics
Topic Forum Replies
No new posts Compare 2 files and retrive records f... DFSORT/ICETOOL 2
No new posts Compare 2 files(F1 & F2) and writ... JCL & VSAM 8
No new posts Compare only first records of the fil... SYNCSORT 7
No new posts Pulling a fixed number of records fro... DB2 2
No new posts Generate random number from range of ... COBOL Programming 3
Search our Forums:

Back to Top