Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Ed_Arnold

Pages: 1 ... 5 6 7 8 9 [10] 11 12 13 14
136
Tips and Tricks / Different Ways Of Invoking BPXBATCH on z/OS
« on: October 23, 2013, 09:57:08 AM »
I don't understand all of the ramifications of these different methods of invoking a program under BPXBATCH but this is a fun little java check out program:

//STEP3    EXEC PGM=BPXBATCH,REGION=0M,                   
// PARM='PGM /usr/lpp/java/J7.0_64/bin/java -fullversion'
//*                                                       
//SYSOUT   DD SYSOUT=*                                   
//STDERR   DD SYSOUT=*                                   
//STDOUT   DD SYSOUT=*                                   
//STEP4    EXEC PGM=BPXBATCH,REGION=0M,                   
// PARM='SH  /usr/lpp/java/J7.0_64/bin/java -fullversion'
//*                                                       
//SYSOUT   DD SYSOUT=*                                   
//STDERR   DD SYSOUT=*                                   
//STDOUT   DD SYSOUT=*                                   
//STEPEASY EXEC PGM=BPXBATCH,REGION=0M                   
//*                                                       
//SYSPRINT DD SYSOUT=*                                   
//SYSOUT   DD SYSOUT=*                                   
//STDERR   DD SYSOUT=*                                   
//STDOUT   DD SYSOUT=*                                   
//STDPARM DD *                                           
PGM /usr/lpp/java/J7.0_64/bin/java -fullversion           
/*                                                       
//STEPHARD EXEC PGM=BPXBATCH                                   
//STDPARM  DD *                                               
SH /usr/lpp/java/J7.0_64/bin/java -fullversion                 
//SYSPRINT DD SYSOUT=*                                         
//STDERR   DD SYSOUT=*                                         
//STDOUT   DD SYSOUT=*                                         
//STDERR   DD SYSOUT=*                                         
//STDOUT   DD SYSOUT=*                                         
//STDENV DD *                                                 
CLASSPATH=/usr/lpp/ars/V8R5M0/bin/xml/ODAdmin.jar:             
/usr/lpp/java/J1.7_64/lib/core.jar                             
LIBPATH=/usr/lpp/ars/V8R5M0/bin/xml:$LIBPATH                   
PATH=/usr/lpp/java/J1.7_64/bin:/usr/lpp/ars/V8R5M0/bin:$PATH   
/*                                                             

137
WEBI interface / WEBi 1.0.4 Fix Pack 5 is released
« on: October 07, 2013, 04:49:09 PM »
Download Instructions
 
  Note: You might need to log on to ibm.com during this process.

Navigate to Fix Central: http://www.ibm.com/support/fixcentral
Select Product Group > Software > Enterprise Content Management.
In the next three fields, select IBM Web Interface for Content Management.
Select Installed Version> All.
Select Platform > All.
Click Continue.
Select Browse for fixes.
Click Continue.
Choose and download the appropriate fix pack.
After you have downloaded the fix pack, extract the contents of the files, and be sure to review the fix pack README file.

138
z/OS Server / Storing PDFs? Don't compress resources
« on: August 23, 2013, 10:26:43 AM »
New in 8.5 is the ability to strip out PDF resources.

Don't compress those PDF resources, they're already compressed.

I believe that newer levels of the Admin Client will prevent you from compressing those.

How can you tell how you're set currently?

Admin client -> view an application - under the load information tab -> Resource Compression should be set to no

Ed

139
OD/WEK & JAVA API / Java API Reference - at least on z/OS
« on: May 15, 2013, 09:46:32 AM »
Something I learned recently:

If you're on this web page:

http://pic.dhe.ibm.com/infocenter/cmod/v8r5m0/index.jsp?topic=%2Fcom.ibm.ondemand.odwekzos.doc%2Fars3y27172.htm


From there you can go to this directory on your z/OS installation.  (Maybe others, too, I don't know.)
                                         
/usr/lpp/ars/V8R5M0/www/api/             
                                         
                                         
where you can then download this:         
                                         
ODApiDoc.zip                             


which you can then extract and view information on the Java APIs.

Ed

140
Tips and Tricks / Which applications are using exits?
« on: April 25, 2013, 08:52:11 AM »
The slow way is to look in the Application Summary.

But what if you have tens of thousands of applications?

The exit information is kept in the ARSAPP table in a column INDEXER which is a VARCHAR somewhere around a thousand.

I am not an SQL expert.  Improvements on the method below are welcome.
                                                                                       
There are three ways to identify an exit in the VARCHAR:                               
                                                                                       
INPEXIT=                                                                               
INDXEXIT=                                                                               
ANYEXIT=


The first thing I did was find out what was the longest INDEXER column:

SELECT LENGTH(INDEXER)       FROM ARSSERV3.ARSAPP
WHERE SUBSTR(INDEXER,1) LIKE '%EXIT%'           
ORDER BY LENGTH(INDEXER);
                           


(this identifies the longest row with an exit and the length I may need to search on below)


I'm doing all this work via batch on z/OS. 

Here's the JCL I use:

//JOBLIB DD DISP=SHR,DSN=DSN.DB2VA10.SDSNLOAD     
//BATCHSQL EXEC PGM=IKJEFT01,DYNAMNBR=20         
//SYSTSPRT DD SYSOUT=*                           
//SYSPRINT DD SYSOUT=*                           
//SYSUDUMP DD SYSOUT=*                           
//SYSTSIN DD *                                   
DSN SYSTEM(DB1X)                                 
RUN PROGRAM(DSNTEP2) PLAN(DSNTEP10) -             
LIB('DSN.L2DB1X.RUNLIB.LOAD')                     
END                                               
/*                                               
//SYSIN DD *                                     
SELECT LENGTH(INDEXER)       FROM ARSSERV3.ARSAPP
WHERE SUBSTR(INDEXER,1) LIKE '%EXIT%'           
ORDER BY LENGTH(INDEXER); 



Unfortunately, because I run in batch I only get 133 columns of output so to see exactly what I'm doing I have to SUBSTRING the data out 133 columns at a time.   

Also unfortunately, the character string EXIT could be within comments.

Anyway, so I end up running brute force SELECTs to get the INDEXER fields that have EXIT in them, 133 character columns at a time.

SELECT SUBSTR(INDEXER,1,133) FROM ARSSERV3.ARSAPP 
 WHERE SUBSTR(INDEXER,1,1000) LIKE '%EXIT%';       
SELECT SUBSTR(INDEXER,134,133) FROM ARSSERV3.ARSAPP
 WHERE SUBSTR(INDEXER,1,1000) LIKE '%EXIT%';       


Comments and improvements welcome.   ;D

Ed Arnold                     

   


141
Reference topic, running the OAM IVP:

http://www.odusergroup.org/forums/index.php?topic=887.0

Whenever you move to a new release of the operating system...or for that matter applying a major service upgrade...the last thing you want to do is for CMOD to not come up and you have to work long hours to resolve.

All too frequently the problem is with OAM, probably that a bind hasn't been performed, but you as the CMOD person - because it's CMOD that surfaces the problem - gets stuck with problem determination.

You can make your life a lot easier, and the problem determination much quicker, if you get the OAM IVP running now.  Then immediately after the upgrade if the OAM IVP is not working you've just taken a huge step in localizing the problem as to why CMOD isn't working.

This really is a case of the saying, "An ounce of prevention is worth a pound of cure."

Ed

142
On my z/OS sandbox system I wanted to prove that I could archive the z/OS console log into CMOD with ARSYSPIN.

Here's the started proc JCL:

//IEFPROC EXEC PGM=ARSYSPIN,REGION=0M                     
//STEPLIB  DD DISP=SHR,DSN=ARS.ARSV850.SARSLOAD           
//         DD DISP=SHR,DSN=ACIF.V4R3M0.SAPKMOD1           
//         DD DISP=SHR,DSN=DSN.DB2VA10.SDSNEXIT           
//         DD DISP=SHR,DSN=DSN.DB2VA10.SDSNLOAD           
//         DD DISP=SHR,DSN=DSN.DB2VA10.SDSNLOD2           
//ARSBIN   DD PATH='/usr/lpp/ars/V8R5M0/bin'               
//DSNAOINI DD PATH='/usr/lpp/ars/V8R5M0/config/cli.ini'   
//SYSIN DD DUMMY,DCB=(LRECL=80,BLKSIZE=80,RECFM=FB)       
//SYSPRINT DD SYSOUT=*                                     
//SYSOUT DD SYSOUT=*                                       
//CEEDUMP DD SYSOUT=*                                     
//ARSYLIST DD SYSOUT=*                                     
//*RSYPARM DD DISP=SHR,DSN=USER.PRIVATE.PARMLIB(ARSYP850) 
//ARSYPARM DD DISP=SHR,DSN=USER.PRIVATE.PARMLIB(CONSLOGA) 



Here's the contents of ARSYPARM:


applgroup="MVSSYSLOG-AG"   
* appl="NODXANSI2"           
*selform=(NODX2)             
*reportid=NODX2             
 outsep=no                   
 jesclass=L                 
 capdskeep=no               
 jobbreak=yes               
 maxsfc=1                   
 maxdorm=10                 
*temppath=/u/odadmin         
 temppath=/ars/codwekcache   
 tempunit=vio               
 odhost=zos1.arnold.ibm.com
 odinstance=arch850         
 oduser=odadmin               
 oduserpw=password
   

At midnight every night a "W L" is issued.  This is the only output written to class L. 

ARSYSPIN then reads this in and archives it, just as expected.

Side note:  /ars/codewekcache is a TFS, works just great

Ed

143
CMOD V9 on z/OS has a new facility, the arsstash command.

It's used to create an encrypted file (called a stash file) used to store userids/passwords.

Use it to replace wherever you're using userid/pw now.

On Multiplatform, CMOD uses the gskit to provide the encryption.  On z/OS, it uses ICSF.

ICSF - integrated cryptographic service facility 

ICSF must be available on the z/OS system to provide AES-128 encryption, which it will do in software or hardware if available.

Usually, there's a started task which most people call CSF running on the system which will provide this service.

If CSF is not running, you get the very unhelpful message below.


Typical creating a stash file scenario:

arsstash -a 1 -c -s /u/myuser/prodstash.stash -u myuser          
                                                                 
it will then prompt twice for the password.                     
                                                                 
If CSF is not up the messages returned are:                     
                                                                 
Verify OnDemand Password:                                       
ARS1602E The stash file >/u/myuser/prodstash.stash< is invalid. 
/usr/lpp/ars/V9R0M0/bin: >
                                     

Ed





144
Might be good to include the following when opening a PMR:

I'm sure I'll find more commands, but this is a start...please feel free to add any that you run into:


//ARSDISPL JOB        
//*
//* Begin section that works on 8.5 and 9.0
//*
//OMVSWAIT EXEC PGM=SDSF,PARM='/D OMVS,W'                        
//ISFOUT   DD SYSOUT=*                                          
//ISFIN    DD DUMMY                                              
//SMS$PDSE EXEC PGM=SDSF,PARM='/V SMS,PDSE,ANALYSIS'            
//ISFOUT   DD SYSOUT=*                                          
//ISFIN    DD DUMMY
//OAM      EXEC PGM=SDSF,PARM='/F ARSSOCK3,D,OAM'  
//ISFOUT   DD SYSOUT=*                              
//ISFIN    DD DUMMY
//*  
//* End of section that works in 8.5.0 and 9.0
//* Rest of these commands are 9.0 only
//*                                            
//CONFIG   EXEC PGM=SDSF,PARM='/F ARSSOCK3,D,CONFIG'            
//ISFOUT   DD SYSOUT=*                                          
//ISFIN    DD DUMMY                                              
//ENVAR    EXEC PGM=SDSF,PARM='/F ARSSOCK3,D,ENVAR'              
//ISFOUT   DD SYSOUT=*                                          
//ISFIN    DD DUMMY                                            
//ICSF     EXEC PGM=SDSF,PARM='/F ARSSOCK3,D,ICSF'
//ISFOUT   DD SYSOUT=*                              
//ISFIN    DD DUMMY                                                              
//STATUS   EXEC PGM=SDSF,PARM='/F ARSSOCK3,D,STATUS'
//ISFOUT   DD SYSOUT=*                              
//ISFIN    DD DUMMY                                            

145
z/OS Server / EoS for Java 5.0 on z is 30 September 2013
« on: February 19, 2013, 11:03:33 AM »
If anyone out there is still running Java 5.0 end of support is approaching:

http://www-01.ibm.com/software/support/lifecycleapp/PLCSearch.wss?q=java&scope=&ibm-search.x=13&ibm-search.y=14&sort=P


Info on what's currently available:

http://www-03.ibm.com/systems/z/os/zos/tools/java/

Ed

146
Tips and Tricks / OAM Tuning
« on: January 29, 2013, 10:58:00 AM »
Author's note:  I was fortunate to attend a very brief and informal OAM Tuning presentation by Sherrie Niederbrach from OAM development.

These are the notes from that presentation.

If you have any specific questions, I suggest you contact OAM support.


OAM provides the following controls for tuning:
   
In the CBROAMxx parmlib member:   
   
  • TAPEDRIVESTARTUP threshold optional subparameter of the STORAGEGROUP parameter on the SETOAM statement, determines when OAM is to start additional tape drives for writing object data to tape volumes that belong to the Object and Object Backup storage groups.
  • MAXTAPESTORETASKS keyword (for the OAM global level) and SGMAXTAPESTORETASKS keyword ( for the storage group level)
  • MAXTAPERETRIEVETASKS keyword (for the OAM global level) and SGMAXTAPERETRIEVETASKS keyword ( for the storage group level)
  • DEMOUNTWAITTIME keyword (how long in a non-busy environment to keep a volume mounted if not being read/written).   In a busy environment this keyword is ignored.
  • TAPEDISPATCHERDELAY an optional parameter that specifies a numeric value of 1 through 60 and can be used at the global level only. This specifies that OAM wait a specified number of seconds before demounting a tape volume, even if other work is available for this drive. This delay allows time for a new read request to come into OAM that requires the currently mounted tape volume. This delay can greatly reduce the number of mounts and demounts of volumes for certain applications.

   
Restriction: Do not specify a number greater than the number of tape drives available to OAM for the combined MAXTAPESTORETASKS, MAXTAPERETRIEVETASKS, SGMAXTAPESTORETASKS, and SGMAXTAPERETRIEVETASKS subparameters. This specification can cause a system to go into allocation recovery and attempt to allocate tape drives after all tape drives are in use causing system problems.
 
In ISMF:
  • The CYCLE START TIME and CYCLE END TIME attributes of each Object or Object Backup storage group control the window in which the storage management cycle begins processing and (optionally, stops processing) the storage group.
  • In an OAMplex, the OSMC processing system name for each Object or Object Backup storage group controls where OSMC processing is done for that storage group. Using this parameter and separating hardware between storage groups can balance workload across systems for OSMC processing. Localize hardware and highest usage to reduce XCF overhead.

In SYS1.PROCLIB(OAM)
  • The MAXS parameter of the OAM cataloged procedure controls the number of storage groups that the storage management cycle processes concurrently.
  • The REST parameter of the OAM Cataloged procedure controls whether or not OAM  should automatically restart when it receives notification that a new SCDS is activated.

 
In IEFSSNxx PARMLIB member
  • The UPD=N option on the OAM1 statement in IEFSSNxx member of PARMLIB reduces unnecessary retrieval and update of objects' directory entries during the OSMC cycle if your installation's management classes do not use the TIME SINCE LAST USE or EXPIRE AFTER DAYS USAGE parameters.
  • The QB=N option on the OAM1 statement in IEFSSNxx member of PARMLIB reduces unnecessary calls  into the OAM address space for each backup copy on an OSREQ query request.   Many applications issue an OSREQ query prior to an OSREQ retrieve and do not want or need the queried information on the backups and gathering the backup information can extend the overall retrieval response for the application.

 
 
Remember that OSMC functions other than the storage management cycle you start (for example, Volume Recovery utility, Move Volume utility, and others) are consumers of resources as well and need to be considered in your usage of the MAXS and DRIVE STARTUP threshold controls.
 
Attention: If you plan on using the CBRHADUX installation exit that is shipped with the SAMPLIB or plan on editing or creating your own CBRHADUX installation exit that does not allow expiration of objects, using this exit can cause OSMC performance problems if you have not properly established your expiration criteria in your SMS management classes.

If you do not plan on expiring objects and have established your CBRHADUX installation exit to return with an indication that no expiration is allowed, you must make sure that your SMS management class has expiration criteria that does not cause OSMC to continually pick objects to be expired. Always be sure that your management class sets the expiration criteria to NEVER expire if you do not plan to expire OAM objects.

147
Tips and Tricks / LDAP IVP
« on: January 03, 2013, 01:52:10 PM »
| fixed typo

If you run LDAP, the LDAP IVP is documented here:
   
https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.glpa200/tivstp.htm

Sample JCL to run the LDAP IVP in batch:

//TMP1  EXEC  PGM=IKJEFT01,                                       
//            DYNAMNBR=200                                       
//SYSPROC  DD  DSN=SYS1.SBPXEXEC,DISP=SHR                         
//*                                                               
//SYSTSPRT DD  SYSOUT=*                                           
//SYSOUT   DD  SYSOUT=*                                           
//*                                                               
//SYSTSIN  DD  *                                                 
 oshell /bin/ldapsearch -h ldaphost-p ldapport -D binddn -w passwd -s base -b "" "objectclass=*"
//STDERR   DD SYSOUT=*                                           
//STDOUT   DD SYSOUT=*                                           
//STDENV DD *                                                     
_BPXK_JOBLOG=STDERR                                               
/*

148
z/OS Server / RACF Stuff I Find Interesting
« on: November 27, 2012, 01:06:07 PM »
Recently I was asked if I knew anything about AIM (Application Identity Mapping), specifically if CMOD was affected by converting to the current level.

A group I worked with was involved in an AIM migration project many moons ago and dug up the following:

http://publib.boulder.ibm.com/infocenter/zos/v1r12/index.jsp?topic=%2Fcom.ibm.zos.r12.icha200%2Fichza2b095.htm

Any database created earlier than OS/390? Release 10 exists in stage 0 automatically until you convert it with IRRIRA00.

A database created in OS/390 Release 10 or later is automatically set to stage 3.

Stick a jobcard on these two lines of JCL and it'll tell you what AIM level your RACF database is in the SYSOUT.

//STEP EXEC PGM=IRRIRA00
//SYSPRINT DD SYSOUT=*

That job when run on our current systems displays this:

IRR66017I The system is currently operating in stage 3.

If you get that RACF is at a level lower than stage 3, you'll probably want to investigate.

149
z/OS Server / Migrating to 8.5 or above? What's the DB2 SCCSID?
« on: November 15, 2012, 12:49:00 PM »
This is in the CMOD 8.5 readme:

https://www-304.ibm.com/support/docview.wss?uid=swg27020591

------------------------------------------------------------------------
* New program ARSMIG85 for linefeed translation
When using OnDemand for z/OS V8.5.0 to access a pre-8.5 OnDemand
database and the ARS_ORIGINAL_CODEPAGE value matches the database
codepage (e.g. ARS_ORIGINAL_CODEPAGE matches the DB2 SCCSID), a new
program, ARSMIG85, must be run to translate EBCDIC newlines to EBCDIC |
linefeeds. |
If the ARS_ORIGINAL_CODEPAGE does not match the DB2 SCCSID, do not run |
the ARSMIG85 program.


How do you know what the DB2 SCCSID is?  You can ask your DBA, or you can run this:

 SELECT SBCS_CCSID, MIXED_CCSID, DBCS_CCSID
   FROM SYSIBM.SYSDATABASE                 
   WHERE NAME = 'ARS850DB'        <<<=====REPLACE WITH YOUR DATABASE NAME


When I ran this on my DB2 V9 system I received the following:

+--------------------------------------------------+
|   SBCS_CCSID   |  MIXED_CCSID   |   DBCS_CCSID   |
+--------------------------------------------------+
|             37 |              0 |              0 |
+--------------------------------------------------+




150
If you're like us we run multiple copies of OnDemand.

When we logon with the admin or user client we use the ARS_MESSAGE_OF_THE_DAY parm to display a message.

http://publib.boulder.ibm.com/infocenter/cmod/v8r5m0/index.jsp?topic=%2Fcom.ibm.ondemand.configuringzos.doc%2Fars3u371118.htm

In our messages of the day we say which system we're logging on to.

This is good on all platforms.


Pages: 1 ... 5 6 7 8 9 [10] 11 12 13 14