Baan Applications on OS/390 Implementation ... - IBM Redbooks
Baan Applications on OS/390 Implementation ... - IBM Redbooks
Baan Applications on OS/390 Implementation ... - IBM Redbooks
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong><br />
Implementati<strong>on</strong> Experiences<br />
Kathryn Arrell, Lou Doran, Lee Siegmund, Jeff Wiese<br />
Internati<strong>on</strong>al Technical Support Organizati<strong>on</strong><br />
http://www.redbooks.ibm.com<br />
SG24-5452-00
Internati<strong>on</strong>al Technical Support Organizati<strong>on</strong><br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong><br />
Implementati<strong>on</strong> Experiences<br />
October 1999<br />
SG24-5452-00
Take Note!<br />
Before using this informati<strong>on</strong> and the product it supports, be sure to read the general informati<strong>on</strong> in<br />
Appendix B, “Special Notices” <strong>on</strong> page 91.<br />
First Editi<strong>on</strong> (October 1999)<br />
This editi<strong>on</strong> applies to BAAN IV and <str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> with DB2 V5.1 for use with <strong>OS</strong>/<strong>390</strong> V2R6.<br />
Comments may be addressed to:<br />
<strong>IBM</strong> Corporati<strong>on</strong>, Internati<strong>on</strong>al Technical Support Organizati<strong>on</strong><br />
Dept. HYJ Mail Stati<strong>on</strong> P099<br />
522 South Road<br />
Poughkeepsie, New York 12601-5400<br />
When you send informati<strong>on</strong> to <strong>IBM</strong>, you grant <strong>IBM</strong> an<strong>on</strong>-exclusive right to use or distribute the informati<strong>on</strong> in any<br />
way it believes appropriate without incurring any obligati<strong>on</strong> to you.<br />
© Copyright Internati<strong>on</strong>al Business Machines Corporati<strong>on</strong> 1999. All rights reserved.<br />
Note to U.S. Government Users —Documentati<strong>on</strong> related to restricted rights —Use, duplicati<strong>on</strong> or disclosure is<br />
subject to restricti<strong>on</strong>s set forth in GSA ADP Schedule C<strong>on</strong>tract with <strong>IBM</strong> Corp.
C<strong>on</strong>tents<br />
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii<br />
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix<br />
The Team That Wrote This Redbook . . . . . . . . . . . . . . . . . . . . . . . . . ix<br />
Comments Welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x<br />
Chapter 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />
1.1 Understanding the License Process . . . . . . . . . . . . . . . . . . . . . . . 1<br />
1.2 <str<strong>on</strong>g>Baan</str<strong>on</strong>g>'s Support Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
1.3 Understanding the Error Logs . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
1.4 Points to C<strong>on</strong>sider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
Chapter 2. Creating Additi<strong>on</strong>al <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Users . . . . . . . . . . . . . . . . . . . . . 7<br />
2.1 Setting Up Five Training User IDs . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
2.1.1 Within RACF <strong>on</strong> <strong>OS</strong>/<strong>390</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
2.1.2 Within DB2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
2.1.3 Within UNIX Services for <strong>OS</strong>/<strong>390</strong> . . . . . . . . . . . . . . . . . . . . . . 10<br />
2.1.4 Within <str<strong>on</strong>g>Baan</str<strong>on</strong>g> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
2.1.5 Uppercase versus Lowercase User IDs . . . . . . . . . . . . . . . . . . 19<br />
2.2 Setting Up User IDs for Producti<strong>on</strong> . . . . . . . . . . . . . . . . . . . . . . . 19<br />
2.2.1 DB2 Sec<strong>on</strong>dary Authid . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
2.2.2 Setting Up Privileges for End Users . . . . . . . . . . . . . . . . . . . . 22<br />
2.2.3 How to Handle Expirati<strong>on</strong> of Passwords . . . . . . . . . . . . . . . . . . 23<br />
Chapter 3. Moving HFS Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
3.1 Allocati<strong>on</strong> of the HFS Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
3.2 Creating the Mount Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
3.2.1 Mounting the HFS Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
3.2.2 Copying the Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
3.3 Removing the Old Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />
Chapter 4. Setting Up Process Manager (PM) . . . . . . . . . . . . . . . . . . . 31<br />
4.1 Process Manager C<strong>on</strong>siderati<strong>on</strong>s . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
4.2 Problems Encountered with PM in BPAERR.LOG . . . . . . . . . . . . . . . 32<br />
4.2.1 Address Already in Use . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
4.2.2 Running Out of HEAP Storage Message in the BPAERR.LOG . . . . . 32<br />
4.2.3 Unable to Log On with BW Client but Able to with BA Client . . . . . 32<br />
Chapter 5. Post-Installati<strong>on</strong> Tuning . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />
5.1 Putting Modules in the LPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />
5.1.1 Putting Applicati<strong>on</strong> Objects in Shared Memory . . . . . . . . . . . . . 34<br />
5.2 Changing the Shared Memory Parameters . . . . . . . . . . . . . . . . . . 34<br />
5.3 Small db2_storage File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />
5.4 REBIND the Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />
5.5 Break Up the HSF File Systems into Smaller File Systems . . . . . . . . . 36<br />
5.6 Change the Name Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
5.7 RMF Analysis for CPU and DISK . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
5.8 Setting Up Process Manager and Starting the PM Daem<strong>on</strong> . . . . . . . . 36<br />
5.9 Putting the tmp File in Memory . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
5.10 Ongoing M<strong>on</strong>itoring and Tuning . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
© Copyright <strong>IBM</strong> Corp. 1999 iii
iv <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
Chapter 6. Creating a New <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company . . . . . . . . . . . . . . . . . . . . . 37<br />
6.1 Creating the db2_storage File . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />
6.2 Creating the DB2 DDL and Granting Privileges . . . . . . . . . . . . . . . . 39<br />
6.3 Using <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools to Load Data to the New Company . . . . . . . . . . . . 44<br />
6.3.1 Create the Sequential Dump . . . . . . . . . . . . . . . . . . . . . . . . 45<br />
6.4 Running the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />
6.5 RUNSTATS JCL - L<strong>on</strong>g Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />
Chapter 7. Migrating and Copying <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company Data . . . . . . . . . . . . . 49<br />
7.1 Reducing the Time to Move a Company . . . . . . . . . . . . . . . . . . . . 49<br />
7.2 Problem with Creator ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />
Chapter 8. Backup and Recovery of <str<strong>on</strong>g>Baan</str<strong>on</strong>g> DB2 Databases . . . . . . . . . . . . 59<br />
8.1 User's Primary Recovery Objectives . . . . . . . . . . . . . . . . . . . . . . 59<br />
8.2 DB2/<str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV Point-in-Time Recovery Overview . . . . . . . . . . . . . . . . 59<br />
8.2.1 Point-In-Time Recovery Preventive Measures . . . . . . . . . . . . . . 60<br />
8.2.2 Point-In-Time Recovery Techniques . . . . . . . . . . . . . . . . . . . . 60<br />
8.3 User's Point-in-Time Recovery Strategy . . . . . . . . . . . . . . . . . . . . 62<br />
8.4 User's Recovery to Currency Strategy . . . . . . . . . . . . . . . . . . . . . 63<br />
8.5 User's Disaster Recovery Strategy . . . . . . . . . . . . . . . . . . . . . . . 63<br />
Chapter 9. Migrati<strong>on</strong> to a New <str<strong>on</strong>g>Baan</str<strong>on</strong>g>IVc Porting Set . . . . . . . . . . . . . . . 65<br />
9.1 Pre-Installati<strong>on</strong> Verificati<strong>on</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
9.1.1 Plan for Some Downtime . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
9.2 Migrati<strong>on</strong> and Installati<strong>on</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
9.2.1 C<strong>on</strong>necti<strong>on</strong> Manager Changes . . . . . . . . . . . . . . . . . . . . . . . 67<br />
9.2.2 Process Manager Changes . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />
9.2.3 DB2 Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />
9.2.4 <strong>OS</strong>/<strong>390</strong> Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />
9.2.5 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Runtime HFS Changes . . . . . . . . . . . . . . . . . . . . . . . . 68<br />
9.2.6 License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />
9.2.7 Variable to Be Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
9.3 Verificati<strong>on</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
Chapter 10. Using Multiple Databases/LPARs . . . . . . . . . . . . . . . . . . . 73<br />
10.1 Using One DB2 Subsystem (One System/LPAR) . . . . . . . . . . . . . . . 73<br />
10.2 Using Two LPARs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />
10.2.1 Using RVA and SnapShot to Cl<strong>on</strong>e a Sec<strong>on</strong>d LPAR . . . . . . . . . . 74<br />
10.2.2 Sample JCL to Produce the Snap and Cl<strong>on</strong>ed System . . . . . . . . 76<br />
10.2.3 Rename the Volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />
Appendix A. Sample Jobs and Script Used with <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> . . . . . . 85<br />
A.1 Procedures to Start and Stop <str<strong>on</strong>g>Baan</str<strong>on</strong>g> from the C<strong>on</strong>sole . . . . . . . . . . . . 85<br />
A.2 Script to C<strong>on</strong>vert a File from EBCDIC to ASCII . . . . . . . . . . . . . . . . 85<br />
A.3 Script to Determine the Size of Files to Load with bdppost . . . . . . . . . 86<br />
A.4 Script to Determine If the HFS Is Almost Full . . . . . . . . . . . . . . . . . 86<br />
A.5 Script to Remove Idle Users . . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />
Appendix B. Special Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91<br />
Appendix C. Related Publicati<strong>on</strong>s . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />
C.1 Internati<strong>on</strong>al Technical Support Organizati<strong>on</strong> Publicati<strong>on</strong>s . . . . . . . . . 93<br />
C.2 <strong>Redbooks</strong> <strong>on</strong> CD-ROMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />
C.3 Other <strong>IBM</strong> Publicati<strong>on</strong>s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />
C.4 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Publicati<strong>on</strong>s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
How to Get ITSO <strong>Redbooks</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />
<strong>IBM</strong> Redbook Fax Order Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />
List of Abbreviati<strong>on</strong>s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br />
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />
ITSO Redbook Evaluati<strong>on</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />
C<strong>on</strong>tents v
vi <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences
Figures<br />
1. <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />
2. Validati<strong>on</strong> of <str<strong>on</strong>g>Baan</str<strong>on</strong>g> License . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
3. Minimum Informati<strong>on</strong> Needed . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
4. Sample .bpaprofile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
5. Choose Maintain User Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
6. Choose Insert to Add a <str<strong>on</strong>g>Baan</str<strong>on</strong>g> User . . . . . . . . . . . . . . . . . . . . . . 15<br />
7. Enter the Envir<strong>on</strong>ment Data to Add a <str<strong>on</strong>g>Baan</str<strong>on</strong>g> User . . . . . . . . . . . . . . 16<br />
8. Enter the Authorizati<strong>on</strong> Data to Add a <str<strong>on</strong>g>Baan</str<strong>on</strong>g> User . . . . . . . . . . . . . . 17<br />
9. Enter the Miscellaneous Data to Add a <str<strong>on</strong>g>Baan</str<strong>on</strong>g> User . . . . . . . . . . . . . 18<br />
10. Allocati<strong>on</strong> HFS Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
11. Mount Temporary HFS File . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
12. Mount New HFS File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />
13. Example .bpaprofile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
14. Modificati<strong>on</strong>s to the C<strong>on</strong>necti<strong>on</strong> Exit Code . . . . . . . . . . . . . . . . . . 32<br />
15. JCL to LinkEdit into the Library for LPA . . . . . . . . . . . . . . . . . . . . 34<br />
16. JCL to Create Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
17. <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools Menu to Request Sequential Dumps . . . . . . . . . . . . . . 45<br />
18. Creating Sequential Dump of Table . . . . . . . . . . . . . . . . . . . . . . 46<br />
19. Create Table from Sequential Dump . . . . . . . . . . . . . . . . . . . . . 46<br />
20. Job to Execute RUNSTATS . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
21. JCL to Create Database, Tablespaces & Execute Grant Statements . . . 51<br />
22. JCL to Rebuild the Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />
© Copyright <strong>IBM</strong> Corp. 1999 vii
viii <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences
Preface<br />
This redbook describes the post-installati<strong>on</strong> acti<strong>on</strong>s that should be taken after<br />
the initial installati<strong>on</strong> of the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> for <strong>OS</strong>/<strong>390</strong>. It is based <strong>on</strong> the<br />
experiences gained while installing <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV and <str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> with DB2<br />
V5.1 for use with <strong>OS</strong>/<strong>390</strong> V2R6 at the ITSO in Poughkeepsie. It also c<strong>on</strong>tains<br />
informati<strong>on</strong> from early customer installati<strong>on</strong>s and <strong>IBM</strong> lab sites. This redbook<br />
will help you customize <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV or <str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> for <strong>OS</strong>/<strong>390</strong> with DB2.<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> requires a certified <str<strong>on</strong>g>Baan</str<strong>on</strong>g> installer to install <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> for <strong>OS</strong>/<strong>390</strong>.<br />
This redbook is not meant to take the place of a trained c<strong>on</strong>sultant to do the<br />
installati<strong>on</strong>. Instead, it provides S/<strong>390</strong> system programmers with detailed<br />
informati<strong>on</strong> about the installati<strong>on</strong> process, particularly how it relates to <strong>OS</strong>/<strong>390</strong>.<br />
The Team That Wrote This Redbook<br />
This redbook was produced by a team of specialists from around the world<br />
working at the Internati<strong>on</strong>al Technical Support Organizati<strong>on</strong> Poughkeepsie<br />
Center.<br />
Kathryn Arrell is an ERP Specialist with the Internati<strong>on</strong>al Technical Support<br />
Organizati<strong>on</strong>, Poughkeepsie Center. Before joining ITSO, Kathryn worked in<br />
RS/6000 Marketing in <strong>IBM</strong> Canada.<br />
Lou Doran is an ERP Soluti<strong>on</strong>s Specialist with the North American ERP<br />
Competency Center in Philadelphia. Before joining the ERP Group, Lou worked<br />
in Network Marketing and has a large systems background.<br />
Lee Siegmund is a C<strong>on</strong>sulting Marketing Support Representative from the DB2<br />
Relati<strong>on</strong>al Support Unit of the Dallas Systems Center. He has worked at <strong>IBM</strong> for<br />
30 years. For the past 16 years, he has supported DB2 starting with Versi<strong>on</strong> 1<br />
Release 1 to the current Versi<strong>on</strong> 5. His areas of expertise include high<br />
availability, recovery, data sharing, and applicati<strong>on</strong> design. He has presented<br />
DB2 availability topics to user groups around the world.<br />
Jeff Wiese is a Market Support Representative in the US. He joined <strong>IBM</strong> in 1973<br />
and was a PSR, Instructor, SE, and Large Systems Marketing Specialist before<br />
joining the S/<strong>390</strong> New Technology Center in Poughkeepsie, New York.<br />
Thanks to the following people for their invaluable c<strong>on</strong>tributi<strong>on</strong>s to this project:<br />
Richard C<strong>on</strong>way<br />
Bill Ogden<br />
Bob Haimowitz<br />
Vasilis Karras<br />
Internati<strong>on</strong>al Technical Support Organizati<strong>on</strong>, Poughkeepsie Center<br />
Erik de Jeu<br />
<strong>IBM</strong> <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Internati<strong>on</strong>al Competency Center<br />
Vicky Pollien<br />
Jas<strong>on</strong> Heim<br />
Steve Henkels<br />
Richard Ko<br />
© Copyright <strong>IBM</strong> Corp. 1999 ix
Comments Welcome<br />
Brad Forrest<br />
Mythili Venkatakrishnan<br />
<strong>IBM</strong> S/<strong>390</strong> Divisi<strong>on</strong>, Poughkeepsie<br />
Mary Sue Record<br />
<strong>IBM</strong> Boblingen<br />
Phu Trinh<br />
<strong>IBM</strong> Global Services<br />
Michel Chartier<br />
<strong>IBM</strong> Canada<br />
Herve Sabrie<br />
Jean-Jacques Noguera<br />
Laurence Nicolas<br />
<strong>IBM</strong> Parallel Soluti<strong>on</strong> Support Center, M<strong>on</strong>tpellier<br />
Dan Barr<br />
Renza Klammer<br />
Jos Odijk<br />
Charles Saitta<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
Claude Bertin<br />
James Gord<strong>on</strong><br />
Margaret Hum<br />
Warren Tarasuk<br />
Mohammed Mestari<br />
Brian Pritchard<br />
CAE<br />
Val Chavez<br />
Frank Snyder<br />
Chris Sutter<br />
Laws<strong>on</strong> Products<br />
x <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
Your comments are important to us!<br />
We want our redbooks to be as helpful as possible. Please send us your<br />
comments about this or other redbooks in <strong>on</strong>e of the following ways:<br />
Fax the evaluati<strong>on</strong> form found in “ITSO Redbook Evaluati<strong>on</strong>” <strong>on</strong> page 101 to<br />
the fax number shown <strong>on</strong> the form.<br />
Use the <strong>on</strong>line evaluati<strong>on</strong> form found at http://www.redbooks.ibm.com/<br />
Send your comments in an Internet note to redbook@us.ibm.com
Chapter 1. Overview<br />
This redbook is based <strong>on</strong> experiences gained from early customers' use of <str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
<str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> <strong>on</strong> S/<strong>390</strong>. It assumes that the initial installati<strong>on</strong> of Company 000 has<br />
been completed, as described in the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> publicati<strong>on</strong>s <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV - Installati<strong>on</strong><br />
Guide for <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV <strong>on</strong> <strong>OS</strong>/<strong>390</strong> UNIX System Services, and <str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP - DB2<br />
Installati<strong>on</strong> Guide for <str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP, and the redbooks Installing <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g><br />
<strong>on</strong> <strong>OS</strong>/<strong>390</strong>, SG24-5334, and Installing <str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong>,<br />
SG24-5440.<br />
It describes the <strong>OS</strong>/<strong>390</strong> and DB2 tasks that may have to be completed to run<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong>. It does not c<strong>on</strong>tain informati<strong>on</strong> <strong>on</strong> how to use the<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools; rather it describes how to prepare the envir<strong>on</strong>ment for the <str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
Tools for systems and database administrati<strong>on</strong> functi<strong>on</strong>s.<br />
These tasks apply to both <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV and <str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP installati<strong>on</strong>s. The areas<br />
covered are:<br />
RACF and DB2 acti<strong>on</strong>s when adding <str<strong>on</strong>g>Baan</str<strong>on</strong>g> users<br />
Moving <strong>OS</strong>/<strong>390</strong> hierarchical file systems<br />
Process Manager c<strong>on</strong>siderati<strong>on</strong>s<br />
Some post-installati<strong>on</strong> tuning c<strong>on</strong>siderati<strong>on</strong>s<br />
DB2 layouts for creating new companies<br />
DB2 Backup and Recovery processes<br />
Migrating to a new Porting Set<br />
1.1 Understanding the License Process<br />
Setting up test, development, and producti<strong>on</strong> LPARs and DB2 subsystems<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> enforces its licensing with a license daem<strong>on</strong>. This presents challenges to<br />
the S/<strong>390</strong> community, which is not generally accustomed to these processes and<br />
procedures. The following describes some of the situati<strong>on</strong>s and resulting<br />
activities that we encountered.<br />
Note <strong>on</strong> accelerators (multiple Bshells for a batch run)<br />
If you plan to use accelerators (multiple Bshells to implement parallelism) <strong>on</strong><br />
a batch run (batch is really a disc<strong>on</strong>nected <strong>on</strong>line user), remember to count<br />
those when developing the user count for the license or you might exceed<br />
the licensed maximum and be denied executi<strong>on</strong>.<br />
After the completi<strong>on</strong> of the installati<strong>on</strong> process, a message appears when<br />
logging <strong>on</strong> to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g>. It states that the initial license will expire in 28<br />
days. During this time, the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> C<strong>on</strong>sultant will complete the license validati<strong>on</strong><br />
process.<br />
This license must be revalidated when certain changes are made, such as:<br />
The system is moved to a new CPU with a different hostname.<br />
The level of the operating system is upgraded.<br />
© Copyright <strong>IBM</strong> Corp. 1999 1
The level of the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> is upgraded.<br />
System maintenance is applied that results in a new / directory (the root<br />
directory) <strong>on</strong> UNIX Services.<br />
The validati<strong>on</strong> process should be understood and documented, so if you have to<br />
revalidate the license quickly you can do so, and not affect the availability of the<br />
system to the end users.<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> can provide you with a quick guide <strong>on</strong> how to do the validati<strong>on</strong>. The basic<br />
steps are:<br />
1. Send a request to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> requesting a new license.<br />
2. Log <strong>on</strong> to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> as bsp, go to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools and make the following menu<br />
selecti<strong>on</strong>s as shown in Figure 1:<br />
Software Validati<strong>on</strong>--><br />
Requested System C<strong>on</strong>figurati<strong>on</strong><br />
Figure 1. <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools Menu<br />
2 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
Then you are asked to enter a password. This is provided in the <str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
documentati<strong>on</strong>.<br />
Then, enter informati<strong>on</strong> from the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> license code report (packages<br />
informati<strong>on</strong> and dates as shown in Figure 2 <strong>on</strong> page 3). Click Save.
Figure 2. Validati<strong>on</strong> of <str<strong>on</strong>g>Baan</str<strong>on</strong>g> License<br />
3. Prepare the file to send to <str<strong>on</strong>g>Baan</str<strong>on</strong>g>. Again go to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools and make the<br />
following selecti<strong>on</strong>s:<br />
Print Requested System C<strong>on</strong>figurati<strong>on</strong>--><br />
Enter password--><br />
Enter informati<strong>on</strong> for the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> license code report--><br />
Choose print to file<br />
Enter the file name (<strong>on</strong> UNIX Services <strong>on</strong> <strong>OS</strong>/<strong>390</strong>, for example,<br />
/u/bsp/license).<br />
4. Send the informati<strong>on</strong> in this file to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> by fax or e-mail.<br />
5. After receiving the Validati<strong>on</strong> Key back, go to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools and make the<br />
following menu selecti<strong>on</strong>s, as shown in Figure 1 <strong>on</strong> page 2:<br />
Software Validati<strong>on</strong>--><br />
Requested System C<strong>on</strong>figurati<strong>on</strong>--><br />
Security Code/Validati<strong>on</strong> Key--><br />
Enter Password--><br />
Enter Validati<strong>on</strong> Keys--><br />
Exit and Save<br />
6. Log <strong>on</strong> as root and select:<br />
Tools<br />
Software Validati<strong>on</strong>--><br />
Validate Tools Set--><br />
Exit and Save<br />
7. Log <strong>on</strong> as bsp and select:<br />
Tools<br />
Software Validati<strong>on</strong>--><br />
C<strong>on</strong>figure Applicati<strong>on</strong><br />
Execute by typing Y<br />
Exit and Save<br />
Chapter 1. Overview 3
As you can see, the validati<strong>on</strong> process takes several steps, including sending<br />
informati<strong>on</strong> to and receiving informati<strong>on</strong> from <str<strong>on</strong>g>Baan</str<strong>on</strong>g> twice. Make sure you have<br />
documentati<strong>on</strong> and plans in place for this process.<br />
Points to Note<br />
1.2 <str<strong>on</strong>g>Baan</str<strong>on</strong>g>'s Support Structure<br />
4 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
Each time you select Requested System C<strong>on</strong>figurati<strong>on</strong>, the validati<strong>on</strong> code is<br />
changed, so you cannot redo this functi<strong>on</strong> <strong>on</strong>ce you have sent the license file<br />
to <str<strong>on</strong>g>Baan</str<strong>on</strong>g>.<br />
Entering the date field requires that you get the date field in input mode. To<br />
do this, choose GROUP, then GO TO, and then tab to the date field. When<br />
the date field is ready for input, choose Tools, then Calendar to enter the date<br />
to ensure it is in the correct format.<br />
Take care when entering the l<strong>on</strong>g string of numbers for the validati<strong>on</strong> code<br />
The following informati<strong>on</strong> is the result of experiences at <str<strong>on</strong>g>Baan</str<strong>on</strong>g>'s North American<br />
support center, which works much like the <strong>IBM</strong> support center. A typical<br />
scenario is as follows:<br />
The customer uses a <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Web site to log a call and obtain a case number. The<br />
case is used the same way <strong>IBM</strong> uses its Problem Management Record (PMR).<br />
The <str<strong>on</strong>g>Baan</str<strong>on</strong>g> case, however, does not expire and remains in their data base for<br />
future reference.<br />
Although opening a case number can be d<strong>on</strong>e by calling <str<strong>on</strong>g>Baan</str<strong>on</strong>g>'s support center,<br />
Web use is encouraged. Besides opening a case, the Web interface can be used<br />
to check <strong>on</strong> and update a problem's status. Additi<strong>on</strong>ally, the Web interface can<br />
access all kinds of support-related informati<strong>on</strong>, such as Product Advisory<br />
Reports, and be used to download <str<strong>on</strong>g>Baan</str<strong>on</strong>g> software updates. Customers may<br />
search <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Support's knowledge base to resolve many of their problems or<br />
questi<strong>on</strong>s.<br />
Severity is designated 10, 20, 30, or 40. Severity 10 is a “producti<strong>on</strong> system<br />
down” <strong>on</strong> a producti<strong>on</strong> system (<str<strong>on</strong>g>Baan</str<strong>on</strong>g> enforces this criteria, that is, a severity 10<br />
will never be assigned to a test or training system), whereas severity 40 would<br />
be a “simple” questi<strong>on</strong>.<br />
Obviously, <str<strong>on</strong>g>Baan</str<strong>on</strong>g> support should be the first point of c<strong>on</strong>tact for <str<strong>on</strong>g>Baan</str<strong>on</strong>g> problems.<br />
DB2 and system problems (<strong>OS</strong>/<strong>390</strong> UNIX System Services) that appear to be<br />
related to the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> envir<strong>on</strong>ment (C<strong>on</strong>necti<strong>on</strong> Manager, Process Manager, SQL<br />
errors <strong>on</strong> <str<strong>on</strong>g>Baan</str<strong>on</strong>g> tables and so forth) should also use <str<strong>on</strong>g>Baan</str<strong>on</strong>g> support as the first<br />
point of c<strong>on</strong>tact. Of course, if the problem is clearly in <strong>IBM</strong>'s arena, use the <strong>IBM</strong><br />
support center as the first point of c<strong>on</strong>tact.<br />
Depending up<strong>on</strong> the nature of the problem, different <str<strong>on</strong>g>Baan</str<strong>on</strong>g> locati<strong>on</strong>s take<br />
resp<strong>on</strong>sibility for the case, for example the A & D (Aerospace and Defense)<br />
extensi<strong>on</strong>s are supported in Seattle, so support for problem resoluti<strong>on</strong> comes<br />
from that locati<strong>on</strong>.
1.3 Understanding the Error Logs<br />
1.4 Points to C<strong>on</strong>sider<br />
As you go through the installati<strong>on</strong> process and while you are running <str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
applicati<strong>on</strong>s, you should understand where the error logs are stored and what<br />
informati<strong>on</strong> they c<strong>on</strong>tain that might help you in debugging problems. Some of<br />
the useful logs are:<br />
cmx.log<br />
This is stored in /tmp unless you have specified otherwise in the cmx.c<strong>on</strong>f<br />
file. This can provide informati<strong>on</strong> about DB2 requests and messages.<br />
Install logs<br />
There are several logs that track progress through the installati<strong>on</strong> process<br />
such as install6.1.log (for <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV), or install6.2.log (for <str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP). These are<br />
stored in the $BSE/log directory.<br />
Other logs<br />
This is a list of the logs in $BSE/log after the installati<strong>on</strong> of <str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP. When<br />
you have a problem, use the command ls -alt. This sorts them in time<br />
sequence so you can review the latest log entries. You can use the oedit<br />
command to read the entire log or use the tail command to read <strong>on</strong>ly the<br />
last few lines. For example, tail -100 log.error will list the last 100 lines of<br />
the log.error file.<br />
<br />
baanerp.stderr log.db2 log.oiex1288<br />
baanerp.stdout log.db2.mesg log.pdaem<strong>on</strong>6.2<br />
bshell.error6.2 log.db2_maint6.2 log.sh_server<br />
log.bdbrec<strong>on</strong>fig6.2 log.error log.shmmanager6.2<br />
log.binput6.2 log.install.iex1288 log.shmtimer6.2<br />
log.brand6.2 log.install6.2 log.shmvalues6.2<br />
log.bshell log.ipc_boot6.2 log.sort6.2<br />
log.bshell.inst log.licd6.2<br />
log.compress6.2 log.oiex1287<br />
<br />
Some of the key points to c<strong>on</strong>sider for your implementati<strong>on</strong> are:<br />
Support c<strong>on</strong>tacts<br />
You will require support for:<br />
− <strong>IBM</strong> Hardware and Software<br />
− <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools<br />
− <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g><br />
Set up the problem tracking process and the escalati<strong>on</strong> process so you will<br />
be able to m<strong>on</strong>itor and solve your problems in a timely fashi<strong>on</strong>.<br />
HFS Layouts (for example, /baanERP/bse and /baanERP/dict)<br />
DB2 implementati<strong>on</strong><br />
− Tables, tablespaces, amd database organizati<strong>on</strong><br />
− DB2 Stogroups<br />
− Buffer pool usage<br />
− Logs and archives<br />
− Image copies<br />
− Complete backup for point-in-time recovery<br />
Chapter 1. Overview 5
Security<br />
− DB2<br />
− RACF<br />
− <str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
C<strong>on</strong>nectivity<br />
− USS access<br />
− ISPF access<br />
Number of <str<strong>on</strong>g>Baan</str<strong>on</strong>g> envir<strong>on</strong>ments<br />
− How many<br />
− Purpose - producti<strong>on</strong>, test, QA<br />
− Data migrati<strong>on</strong> between envir<strong>on</strong>ments<br />
− VRC c<strong>on</strong>structs<br />
Access to legacy data<br />
6 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
− Interface to be used<br />
− Data migrati<strong>on</strong><br />
Some of these topics are discussed in this redbook. More informati<strong>on</strong> and<br />
guidance may be obtained from the <strong>IBM</strong> ERP Competency Centers.
Chapter 2. Creating Additi<strong>on</strong>al <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Users<br />
As you progress from the installati<strong>on</strong> phase to the testing and producti<strong>on</strong> phase,<br />
<strong>on</strong>e of the activities that the Database Administrator will have to perform is to<br />
create additi<strong>on</strong>al <str<strong>on</strong>g>Baan</str<strong>on</strong>g> user IDs.<br />
In this regard, you will have to make decisi<strong>on</strong>s <strong>on</strong> how to handle the security<br />
aspects of RACF and DB2. This chapter presents two approaches:<br />
1. The first is a simple approach based <strong>on</strong> the steps <strong>on</strong>e customer used to<br />
create five training user IDs.<br />
2. The sec<strong>on</strong>d approach details how the customer set up user IDs for<br />
producti<strong>on</strong> c<strong>on</strong>sidering the security aspects.<br />
2.1 Setting Up Five Training User IDs<br />
This approach uses the group BSPGRP, which is the same group that was used<br />
for the user IDs BSP and ROOT. It sets up the user IDs with no expirati<strong>on</strong> date,<br />
and grants DBADM privileges <strong>on</strong> all tables.<br />
The following steps must be executed to create additi<strong>on</strong>al <str<strong>on</strong>g>Baan</str<strong>on</strong>g> user IDs:<br />
1. Add the user ID to <strong>OS</strong>/<strong>390</strong> RACF (ensuring DB2 privileges are granted).<br />
2. Create a home directory in $BSE/home.<br />
For example, /baanIV/bse/home/baan0.<br />
3. Add the user ID to the db2_users file in the $BSE/lib/db2 directory.<br />
4. Create a file in directory $BSE/lib/user named uuserid.<br />
For example, /baanIV/bse/lib/user/ubaan0.<br />
5. Issue the DB2 grant command to give the user ID access to DB2.<br />
6. Set up the Process Manager profile and the port number of the end-user<br />
workstati<strong>on</strong> (if using Process Manager).<br />
The following secti<strong>on</strong>s show how to perform each of these steps, by describing<br />
in detail how <strong>on</strong>e customer created five user IDs: baan0, baan1, baan2, baan3,<br />
baan4. Before performing these steps yourself, however, you must first ensure<br />
that execute authority has been granted to “public” for the CMXPLAN.<br />
2.1.1 Within RACF <strong>on</strong> <strong>OS</strong>/<strong>390</strong><br />
The user ID you want to create should be an OMVS user that is part of a group<br />
that has access to DB2. This group must be in the /etc/alias file. As previously<br />
menti<strong>on</strong>ed, this example uses BSPGRP, the same group that was used for BSP<br />
and ROOT during the installati<strong>on</strong>. Note that the OMVS RACF segment must<br />
specify a home directory. This is the directory that must c<strong>on</strong>tain the user's<br />
.profile. A .bpaprofile may exist if the Process Manager is used.<br />
There are two ways to create OMVS user IDs for RACF:<br />
1. Use the TSO command opti<strong>on</strong> (opti<strong>on</strong> 6 of ISPF). Issue the command:<br />
ADDUSER BAAN0 DFLTGRP(BSPGRP) OWNER(ROOT) OMVS(UID(131)<br />
HOME('/baanIV/bse/home/baan0') PROGRAM('/bin/sh'))<br />
© Copyright <strong>IBM</strong> Corp. 1999 7
Then, to change the default password to a permanent <strong>on</strong>e and extend the<br />
interval, enter the commands:<br />
PASSWORD USER(baan0) NOINTERVAL ALU BAAN0 PASSWORD(BAAN0) NOEXPIRED<br />
Repeat these three commands for each of the users you want to create. In<br />
our case, we repeated this for baan1, baan2, baan3 and baan4,<br />
Each user ID has a unique UID and home directory. The home directory and<br />
the program must be in lower case. You do not have to give TSO access to<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> users.<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> users log <strong>on</strong> through a BW client. As the BW client cannot handle the<br />
RACF message that the password has expired, we changed the default 30<br />
interval to NOINTERVAL or to INTERVAL(365). See 2.2.3, “How to Handle<br />
Expirati<strong>on</strong> of Passwords” <strong>on</strong> page 23, for another way to handle expiring<br />
passwords.<br />
2. Use JCL to create five user IDs for OMVS access.<br />
Following is a sample of JCL that was used to create user IDs. This JCL<br />
does not include a password parameter. The default password is the same<br />
as the DFLTGRP, so in our case it is BSPGRP.<br />
Note that in the JCL stream there is an ALU command for each user. This<br />
command will change the default password to something unique for each<br />
user. In our case, the password was set to be the same as the user ID.<br />
Attenti<strong>on</strong><br />
8 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
Each user ID has a unique UID and home directory. You do not have to<br />
give TSO access to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> users.
<strong>IBM</strong>USERF JOB (0513),'SOFT-<strong>IBM</strong>',<br />
// TIME=1440,<br />
// NOTIFY=<strong>IBM</strong>USER,<br />
// REGION=0M,<br />
// CLASS=A,<br />
// MSGCLASS=X,<br />
// MSGLEVEL=(1,1)<br />
//* INSTALLATION <strong>OS</strong>/<strong>390</strong> V2R6 (BAAN)<br />
//*<br />
//JOBLIB DD DISP=SHR,DSN=SYSP.CUSTOM.TS260006.LOADLIB<br />
//*<br />
//*--------------------------------------------------------------------<br />
//* DOC: DEFINE USERIDS FOR TSO AND/OR OMVS<br />
//*<br />
//* MRC: THE MAXIMUM EXPECTED RETURN CODE IS: 0<br />
//*--------------------------------------------------------------------<br />
//RACFDEFI EXEC PGM=IKJEFT01<br />
//SYSPRINT DD SYSOUT=*<br />
//SYSTSPRT DD SYSOUT=*<br />
//SYSUADS DD DSN=SYS1.UADS,DISP=SHR<br />
//BRODCAST DD DSN=SYS1.BRODCAST,DISP=SHR<br />
//SYSTSIN DD *<br />
/* */<br />
/* ADD A USERID TO RACF WITH AN OMVS SEGMENT */<br />
/* */<br />
ADDUSER BAAN0 DFLTGRP(BSPGRP) OWNER(ROOT) OMVS(UID(131) -<br />
HOME('/baanIV/bse/home/baan0') -<br />
PROGRAM('/bin/sh'))<br />
LISTUSER BAAN0 OMVS<br />
ADDUSER BAAN1 DFLTGRP(BSPGRP) OWNER(ROOT) OMVS(UID(132) -<br />
HOME('/baanIV/bse/home/baan1') -<br />
PROGRAM('/bin/sh'))<br />
LISTUSER BAAN1 OMVS<br />
ADDUSER BAAN2 DFLTGRP(BSPGRP) OWNER(ROOT) OMVS(UID(133) -<br />
HOME('/baanIV/bse/home/baan2') -<br />
PROGRAM('/bin/sh'))<br />
LISTUSER BAAN2 OMVS<br />
ADDUSER BAAN3 DFLTGRP(BSPGRP) OWNER(ROOT) OMVS(UID(134) -<br />
HOME('/baanIV/bse/home/baan3') -<br />
PROGRAM('/bin/sh'))<br />
LISTUSER BAAN3 OMVS<br />
ADDUSER BAAN4 DFLTGRP(BSPGRP) OWNER(ROOT) OMVS(UID(135) -<br />
HOME('/baanIV/bse/home/baan4') -<br />
PROGRAM('/bin/sh'))<br />
LISTUSER BAAN4 OMVS<br />
PASSWORD USER(baan0) NOINTERVAL<br />
PASSWORD USER(baan1) NOINTERVAL<br />
PASSWORD USER(baan2) NOINTERVAL<br />
PASSWORD USER(baan3) NOINTERVAL<br />
PASSWORD USER(baan4) NOINTERVAL<br />
ALU BAAN0 PASSWORD(BAAN0) noexpired<br />
ALU BAAN1 PASSWORD(BAAN1) noexpired<br />
ALU BAAN2 PASSWORD(BAAN2) noexpired<br />
ALU BAAN3 PASSWORD(BAAN3) noexpired<br />
ALU BAAN4 PASSWORD(BAAN4) noexpired<br />
/* ALU is Alter user */<br />
/* LU is List User */<br />
lu baan0<br />
lu baan1<br />
lu baan2<br />
lu baan3<br />
lu baan4<br />
//NOTOK EXEC PGM=CPPMAXRC,COND=((0,GE,RACFDEFI),(4000,LT))<br />
<br />
Chapter 2. Creating Additi<strong>on</strong>al <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Users 9
2.1.2 Within DB2<br />
Privileges can be granted to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> users in <strong>on</strong>e of the following ways:<br />
1. You can grant DBADM privileges to each <str<strong>on</strong>g>Baan</str<strong>on</strong>g> user for each database.<br />
2. You can grant SELECT, INSERT, DELETE, UPDATE, or ALL privileges to each<br />
of the tables to each <str<strong>on</strong>g>Baan</str<strong>on</strong>g> user ID.<br />
3. Set up all users (including BSP and ROOT) in BSPGRP and grant DBADM to<br />
BSPGRP to all databases, and set up DB2 sec<strong>on</strong>dary authid exits.<br />
4. Set up BSPRGRP for BSP and ROOT <strong>on</strong>ly, then create another group, say<br />
BSPUSER, for the end users. Grant ALL to each table that the user<br />
associated with this group will access, and set up DB2 sec<strong>on</strong>dary authid<br />
exits.<br />
This opti<strong>on</strong> can be further extended to set up several end-user groups, such<br />
as BSPFIN (for financials) and BSPMANF (for manufacturing users).<br />
For the training user IDs we used opti<strong>on</strong> 1. We had not set up a sec<strong>on</strong>dary<br />
authid, so we granted each <str<strong>on</strong>g>Baan</str<strong>on</strong>g> user ID privileges <strong>on</strong> each database. The<br />
statements we used for each user were:<br />
<br />
GRANT DBADM <strong>on</strong> DATABASE C000DB1 TO baan0, baan1, baan2, baan3, baan4;<br />
GRANT DBADM <strong>on</strong> DATABASE C000DB2 TO baan0, baan1, baan2, baan3, baan4;<br />
GRANT DBADM <strong>on</strong> DATABASE C531DB1 TO baan0, baan1, baan2, baan3, baan4;<br />
GRANT DBADM <strong>on</strong> DATABASE C731DB1 TO baan0, baan1, baan2, baan3, baan4;<br />
GRANT DBADM <strong>on</strong> DATABASE C999DB1 TO baan0, baan1, baan2, baan3, baan4;<br />
<br />
For opti<strong>on</strong> 2, set up the JCL to issue the grant statements for each table as<br />
described in 2.2.2, “Setting Up Privileges for End Users” <strong>on</strong> page 22.<br />
For opti<strong>on</strong> 3, if you have already set up the exits for the DB2 sec<strong>on</strong>dary authid,<br />
as shown in 2.2.1, “DB2 Sec<strong>on</strong>dary Authid” <strong>on</strong> page 20, and you have granted<br />
BSPGRP privileges <strong>on</strong> the DB2 databases you are using, you do not have to<br />
grant privileges to the individual <str<strong>on</strong>g>Baan</str<strong>on</strong>g> user IDs.<br />
For opti<strong>on</strong> 4, if you do not want to give the end users DBADM privileges, you can<br />
grant the privileges to each table as shown in 2.2.2, “Setting Up Privileges for<br />
End Users” <strong>on</strong> page 22.<br />
2.1.3 Within UNIX Services for <strong>OS</strong>/<strong>390</strong><br />
We had to telnet into the UNIX Services for <strong>OS</strong>/<strong>390</strong> and then complete the next<br />
three steps.<br />
10 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
2.1.3.1 Create the Home Directory for Each <str<strong>on</strong>g>Baan</str<strong>on</strong>g> User ID<br />
We created a home directory for each user as specified in the RACF OMVS<br />
segment home directory (for example, /baanIV/bse/home/baan0). Without this,<br />
you cannot successfully log <strong>on</strong> to the user ID in telnet mode or with the BW<br />
client. We created these directories by completing the following steps:<br />
1. Go to the $BSE/home directory: cd /baanIV/bse/home<br />
2. Create a /home directory for each user:
mkdir baan0<br />
mkdir baan1<br />
mkdir baan2<br />
mkdir baan3<br />
mkdir baan4<br />
2.1.3.2 Create User Profiles<br />
When a user logs <strong>on</strong> to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> using the BW client, /etc/profile is executed (for<br />
system-wide variables), and then the .profile in the user's home directory is<br />
executed (for user-specific variables). The user's home directory is specified in<br />
the RACF OMVS segment in the ADDUSER command. In our case this was<br />
/baanIV/bse/home/baan0 for the user ID baan0.<br />
The minimum informati<strong>on</strong> in the user's .profile in the home directory is shown in<br />
Figure 3.<br />
export _CEE_RUNOPTS="HEAP(17M,1M,ANYWHERE,KEEP),STACK(131072,131072,ANYWHERE,KEEP),<br />
ALL31(ON),LIBSTACK(8),TERMTHDACT(UADUMP)"<br />
export TERM=vt100<br />
export DB2_MVS_SYNTAX=1<br />
export _BPX_SHAREAS=YES<br />
export _BPX_SPAWN_SCRIPT=YES<br />
export PATH=$PATH:/baanIV/bse/bin<br />
export LIBPATH=$LIBPATH:/baanIV/bse/bin<br />
export BSE=/baanIV/bse<br />
export BSE_TMP=$BSE/tmp<br />
Figure 3. Minimum Informati<strong>on</strong> Needed<br />
Using the Process Manager: When the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> system has the Process Manager<br />
process running, a user can log <strong>on</strong> with the BW client to the Process Manager<br />
by placing the following line in the workstati<strong>on</strong>'s \windows\services file:<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g>Rexec 6000/tcp :Port for Process Manager<br />
Note: This socket number must match the socket number specified in the<br />
/etc/bpa/bpares.cfg file.<br />
When users log <strong>on</strong> with the Process Manager they will inherit all the variables<br />
set for the user ID which started the Process Manager. In other words, they do<br />
not execute the /etc/profile or .profile profiles in their own home directory. In<br />
our case, the user ID ROOT started the Process Manager so when ROOT logged<br />
<strong>on</strong>, the /etc/profile and /.profile profiles were executed (the home directory of<br />
root was /). In additi<strong>on</strong>, if a .bpaprofile exists in the user's home directory, it is<br />
also executed. Figure 4 shows a sample .bpaprofile.<br />
Note: Ensure that the HEAP size specified in the profile for the user who started<br />
the Process Manager is large enough for the whole envir<strong>on</strong>ment. A HEAP size<br />
of 17 MB was not large enough for 36 users, so it was changed to 30 MB.<br />
BSE=/baanIVc/bse<br />
BSE_TMP=/baanIVc/bse/tmp<br />
PATH=$BSE/bin:$PATH<br />
TERM=vt100<br />
DB2_MVS_SYNTAX=1<br />
_CEE_RUNOPTS=HEAP(17M,1M,ANYWHERE,KEEP),STACK(131072,131072,ANYWHERE,KEEP),ALL31(ON),<br />
LIBSTACK(8),TERMTHDACT(UADUMP)<br />
BPX_SHAREAS=YES<br />
LIBPATH=$LIBPATH:/usr/lpp/bpa/lib:/baanIVc/bse/bin<br />
NLSPATH=$NLSPATH:/usr/lpp/cmx/nls/msg/%L/%N:/usr/lpp/bpa/nls/msg/%L/%N<br />
Figure 4. Sample .bpaprofile<br />
Note that there are no quotes in CEE_RUNOPTS and that the underscore is<br />
missing from the BPX variable.<br />
Chapter 2. Creating Additi<strong>on</strong>al <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Users 11
Another way you could do this is to set up an executable file that c<strong>on</strong>tains these<br />
entries, for example, baanenv in the $BSE/bin directory. Then, the .profile you<br />
put in each user's home directory <strong>on</strong>ly needs to c<strong>on</strong>tain <strong>on</strong>e line.<br />
<br />
. /baanenv<br />
<br />
This allows you to make changes to the default profile in <strong>on</strong>e place, not in each<br />
user's home directory.<br />
2.1.3.3 Add the Entries to the db2_users File<br />
You can add the new users to the db2_users file in either of the following ways:<br />
1. Execute the db2_install6.1 script, using the add user opti<strong>on</strong>. This will add a<br />
line for each user in the db2_users file, as follows:<br />
<br />
BSP:BSP:pDOH9BNtTkv.*3e!&t#
Tools<br />
User Management<br />
General User Data<br />
Maintain User Data<br />
and here we defined our user:<br />
BAAN_User : baan0<br />
System Login : baan0<br />
Name : General_User<br />
User Type : Normal user<br />
Package Combinati<strong>on</strong> : B40Sc3 <str<strong>on</strong>g>Baan</str<strong>on</strong>g>_IV_c3_Standard<br />
Company : 000 Standaard_data<br />
Language : 2 English<br />
Applicati<strong>on</strong> Server :<br />
Startup System :<br />
Startup System 2 :<br />
Startup Program (GUI) : Menu Browser<br />
Startup Desktop Name :<br />
Startup Menu (Ascii) : tt tls 0000m000 General Menu<br />
<br />
Then go back to User Management and select C<strong>on</strong>vert User Data to Runtime<br />
Data Dicti<strong>on</strong>ary. You just have to fill in the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> user name (we used baan0<br />
in lower case), and press Enter. This created $BSE/lib/user/ubaan0.<br />
2. An alternate way to do this is by using the BW client. We added the baan3<br />
user ID this way.<br />
Select Maintain User Data.<br />
Chapter 2. Creating Additi<strong>on</strong>al <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Users 13
Figure 5. Choose Maintain User Data<br />
14 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
You must choose insert mode to be able to add a user.
Figure 6. Choose Insert to Add a <str<strong>on</strong>g>Baan</str<strong>on</strong>g> User<br />
Complete the informati<strong>on</strong> in the first tab for Envir<strong>on</strong>ment.<br />
Chapter 2. Creating Additi<strong>on</strong>al <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Users 15
Figure 7. Enter the Envir<strong>on</strong>ment Data to Add a <str<strong>on</strong>g>Baan</str<strong>on</strong>g> User<br />
16 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
Complete the Authorizati<strong>on</strong>s tab.
Figure 8. Enter the Authorizati<strong>on</strong> Data to Add a <str<strong>on</strong>g>Baan</str<strong>on</strong>g> User<br />
Complete the fields in the Miscellaneous tab.<br />
Chapter 2. Creating Additi<strong>on</strong>al <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Users 17
Figure 9. Enter the Miscellaneous Data to Add a <str<strong>on</strong>g>Baan</str<strong>on</strong>g> User<br />
18 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
Select Save to save the data. This creates the file $BSE/lib/user/ubaan3.<br />
Then go back to User Management and select C<strong>on</strong>vert User Data to Runtime<br />
Data Dicti<strong>on</strong>ary.<br />
If you have successfully set up <strong>on</strong>e user ID this way, you need to repeat the<br />
process for other user IDs that need the same access.<br />
3. A third alternative is to copy an existing file.<br />
Issue the following commands:<br />
cd baanIV/bse/lib/user<br />
cp ubaan3 ubaan4<br />
vi ubaan4 (posti<strong>on</strong> the cursor to the 3 in the sec<strong>on</strong>d line<br />
to replace the userid baan3 with baan4)<br />
r<br />
4<br />
:wq!<br />
We created the ubaan4 file this way rather than by using the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> tools, since<br />
the baan3 user ID and the baan4 user ID have the same characteristics.
2.1.5 Uppercase versus Lowercase User IDs<br />
At this point we could log <strong>on</strong> using lowercase user IDs. If you want to use<br />
uppercase, make a copy of the file with the user ID in uppercase, as follows:<br />
cd /$BSE/lib/user<br />
cp ubaan1 uBAAN1<br />
If you want to give the user the flexibility of logging <strong>on</strong> in either uppercase or<br />
lowercase, you can add the user ID to the /etc/alias file in UNIX System Services<br />
for <strong>OS</strong>/<strong>390</strong> as described in Chapter 2 of Installing <str<strong>on</strong>g>Baan</str<strong>on</strong>g>IV <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong>,<br />
SG24-5334.<br />
After you have completed these steps, the five user IDs are able to access the<br />
training Company 200. The users can use the BW client to log <strong>on</strong> to <str<strong>on</strong>g>Baan</str<strong>on</strong>g>.<br />
2.2 Setting Up User IDs for Producti<strong>on</strong><br />
This example describes how to set up user IDs for producti<strong>on</strong>. In this case, we<br />
are using DB2 sec<strong>on</strong>dary authid exits, the Process Manager is being used, the<br />
end users are in a separate RACF group that does not have DBADM privileges,<br />
and the passwords have an expirati<strong>on</strong> date.<br />
Using opti<strong>on</strong> 6 of TSO, we executed the following steps to create producti<strong>on</strong><br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> user IDs:<br />
1. Create a new RACF group BSPUSER for the producti<strong>on</strong> users: ADDGROUP<br />
BSPUSER UID(125),,,,,,,<br />
2. Ensure a sec<strong>on</strong>dary DB2 authid is set up and privileges are granted to<br />
BSPUSER. (This is shown in 2.2.1, “DB2 Sec<strong>on</strong>dary Authid” <strong>on</strong> page 20.)<br />
3. Add the user ID to <strong>OS</strong>/<strong>390</strong> RACF so the password will expire in 60 days:<br />
ADDUSER PROD0 DFLTGRP(BSPUSER) OWNER(ROOT) OMVS(UID(231)<br />
HOME('/baanIV/bse/home/prod0') PROGRAM('/bin/sh'))<br />
To change the default password to a permanent <strong>on</strong>e and to extend the<br />
interval, enter the commands:<br />
PASSWORD USER(prod0) INTERVAL(60)<br />
ALU PROD0 PASSWORD(PROD0) NOEXPIRED<br />
4. Create a home directory in $BSE/home/uuserid:<br />
cd / baanIV/bse/home<br />
mkdir prod0<br />
5. Add the user ID to the db2_users file in $BSE/lib/db2:<br />
<br />
BSP:BSP:pDOH9BNtTkv˚*3e!&t#
7. Set up the Process Manager profile and the port number of the end-user<br />
workstati<strong>on</strong>. Put an entry in the /window/services file <strong>on</strong> each of the users'<br />
PCs that will be logging <strong>on</strong> to <str<strong>on</strong>g>Baan</str<strong>on</strong>g>. If that entry is not <strong>on</strong> the Workstati<strong>on</strong><br />
PC, the Process Manager functi<strong>on</strong> will not be used.<br />
2.2.1 DB2 Sec<strong>on</strong>dary Authid<br />
To allow different DB2 users the ability to share the same table, DB2 uses the<br />
group c<strong>on</strong>cept provided by the system authorizati<strong>on</strong> facility (SAF) of <strong>OS</strong>/<strong>390</strong>. The<br />
SAF is the security product installed <strong>on</strong> <strong>OS</strong>/<strong>390</strong>, such as RACF, ACF2, or Top<br />
Secret.<br />
20 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
Sec<strong>on</strong>dary authorizati<strong>on</strong> ID support should be enabled in the DB2-provided<br />
authorizati<strong>on</strong> exits DSN3SATH and DSN3SSGN during DB2 installati<strong>on</strong>. A sample<br />
job, DSNTIJEX, is provided in the sample library, hlq.SDSNSAMP, for this<br />
purpose, as shown.
DB2LF JOB (999,POK),'DB2V510L',CLASS=A,MSGCLASS=T, 00000001<br />
// NOTIFY=&SYSUID,TIME=1440,REGION=0M 00000002<br />
/*JOBPARM L=999,SYSAFF=SC48 00000003<br />
//*********************************************************************/00010000<br />
//* JOB NAME = DSNTIJEX */00020000<br />
//* */00030000<br />
//* 2/1/99: ENABLE SECONDARY AUTH EXITS - VK */00090000<br />
//* */00090000<br />
//* */00090000<br />
//* STATUS = VERSION 5 RELEASE 1 */00100000<br />
//* */00110000<br />
//* FUNCTION = PREPARE THE AUTHORIZATION EXITS */00120000<br />
//* */00130000<br />
//* PSEUDOCODE = */00140000<br />
//* ASMPROC PROC - ASSEMBLE AND LINK AN ASSEMBLY LANGUAGE PROGRAM */00150000<br />
//* JEX0001 STEP - INVOKE ASMPROC TO PREPARE SIGNON EXIT DSN3@SGN */00160000<br />
//* JEX0002 STEP - INVOKE ASMPROC TO PREPARE IDENTIFY EXIT DSN3@ATH */00170000<br />
//* JEX0003 STEP - INVOKE ASMPROC TO PREPARE ACCESS CONTROL */00173000<br />
//* AUTHORIZATION (ACA) EXIT DSNX@XAC */00176000<br />
//* */00180000<br />
//* NOTES = */00190000<br />
//* THIS JOB IS OPTIONAL. IT (OR AN EQUIVALENT) IS ONLY NEEDED IF */00200000<br />
//* YOU DO NOT INTEND TO USE THE DEFAULT AUTHORIZATION EXITS. */00210000<br />
//* */00220000<br />
//*********************************************************************/00230000<br />
//* 00240000<br />
//ASMPROC PROC WSPC=500,MEM=TEMPNAME 00250000<br />
//* 00260000<br />
//* ASSEMBLE 00270000<br />
//* 00280000<br />
//ASM EXEC PGM=ASMA90,PARM='OBJECT,NODECK' 00290000<br />
//SYSIN DD DISP=SHR, 00300000<br />
// DSN=DB2V510.SDSNSAMP(&MEM) 00310000<br />
//SYSLIB DD DSN=SYS1.MODGEN,DISP=SHR 00320000<br />
// DD DSN=SYS1.MACLIB,DISP=SHR 00340000<br />
// DD DISP=SHR, 00350000<br />
// DSN=DB2V510.SDSNMACS 00360000<br />
// DD DISP=SHR, 00370000<br />
// DSN=DB2V510.SDSNSAMP 00380000<br />
//SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),UNIT=SYSALLDA, 00<strong>390</strong>000<br />
// SPACE=(800,(&WSPC,&WSPC)),DCB=(BLKSIZE=800) 00400000<br />
//SYSPRINT DD SYSOUT=* 00410000<br />
//SYSUDUMP DD SYSOUT=* 00420000<br />
//SYSUT1 DD UNIT=SYSALLDA,SPACE=(800,(&WSPC,&WSPC),,,ROUND) 00430000<br />
//SYSUT2 DD UNIT=SYSALLDA,SPACE=(800,(&WSPC,&WSPC),,,ROUND) 00440000<br />
//SYSUT3 DD UNIT=SYSALLDA,SPACE=(800,(&WSPC,&WSPC),,,ROUND) 00450000<br />
//* 00460000<br />
//* LINKEDIT IF THE ASSEMBLER 00470000<br />
//* RETURN CODE IS 4 OR LESS 00480000<br />
//* 00490000<br />
//LKED EXEC PGM=IEWL,REGION=1024K, 00500000<br />
// PARM='SIZE=(900K,124K),LIST,XREF,RENT,OL,NCAL,AMODE=31,RMODE=ANY', 00510000<br />
// COND=(4,LT,ASM) 00520000<br />
//SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) 00530000<br />
//DSNLOAD DD DSN=DB2V510.SDSNLOAD,DISP=SHR 00540000<br />
//SYSLMOD DD DISP=SHR, 00550000<br />
// DSN=DB2V510L.SDSNEXIT(&MEM)
Note: Keep RMODE at 31 and AMODE at ANY, even though other members<br />
might have the values of 24 and 24. When we changed RMODE to 24 and<br />
AMODE to 24, it did not work.<br />
2.2.1.1 Process Manager C<strong>on</strong>siderati<strong>on</strong>s<br />
During c<strong>on</strong>necti<strong>on</strong> (CAF, RRSAF) and sign<strong>on</strong> (RRSAF <strong>on</strong>ly), the list of primary<br />
and sec<strong>on</strong>dary IDs is established. With CAF, it is important to note that the<br />
primary authorizati<strong>on</strong> ID is that of the address space as a whole. When running<br />
with the Process Manager comp<strong>on</strong>ent of <strong>OS</strong>/<strong>390</strong> UNIX Systems Services<br />
C<strong>on</strong>necti<strong>on</strong> Scaling, the primary ID will be the user ID used to start the Process<br />
Manager daem<strong>on</strong>.<br />
As this is probably not the intent, it may be necessary to alter the DSN3SATH<br />
routine to use the security envir<strong>on</strong>ment of the c<strong>on</strong>necting TCB (db driver<br />
process). To do this, modify the c<strong>on</strong>necti<strong>on</strong> exit that follows at label SATH024 in<br />
member DSN3SATH of hlq.SDSNSAMP. Modify the code to look for an ACEE in<br />
the TCB before looking in the ASXB (address space extensi<strong>on</strong>).<br />
<br />
L R15,PSATOLD+PSA Get current TCB Address<br />
Using TCB,R15 Tell the assembler<br />
ICM R6,B'111',TCBSENV Get a (ACEE) if annyCE<br />
BZ SSGN043 N<strong>on</strong>e, Check the ASXB<br />
Drop R15 Do not need anymore<br />
CLC ACEEACEE,EYEACEE Does it match an ACEE?<br />
<br />
The following shows which profiles are executed when the Process Manager is<br />
in use and when it is not in use:<br />
Process Manager Only .bpaprofile<br />
No Process Manager /etc/profile, then /home/user/.profile<br />
Do not create the .bpaprofile with viascii.<br />
2.2.2 Setting Up Privileges for End Users<br />
If you do not want your end users to have DBADM privileges, do the grants at<br />
the table level. Since Company 000 has more than 380 tables and each company<br />
has more than 2700 tables, you must find an automated way to create the grant<br />
statements.<br />
22 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
2.2.2.1 Creating the Grant Statements<br />
We used SPUFI to create an output file that c<strong>on</strong>tained our 3300 GRANT<br />
statements, as follows:<br />
<br />
- SELECT 'GRANT ALL ON TABLE' ,SUBSTR(CREATOR,1,7)||'.'||NAME,<br />
- ' TO BSPUSER;'<br />
- FROM SYS<strong>IBM</strong>.SYSTABLES<br />
- WHERE CREATOR='DB2BAAN' ;<br />
<br />
This shows <strong>on</strong>ly a small sample of the 3300 grant statements we created.
When you have saved the SPUFI output, run the following JCL to do the grants at<br />
the table level (and not at the dbadm level).<br />
<br />
GRANT ALL ON TABLE DB2BAAN.TTTAAD050000 TO BSPUSER;<br />
GRANT ALL ON TABLE DB2BAAN.TTTAAD100000 TO BSPUSER;<br />
GRANT ALL ON TABLE DB2BAAN.TTTAAD106000 TO BSPUSER;<br />
GRANT ALL ON TABLE DB2BAAN.TTTAAD110000 TO BSPUSER;<br />
GRANT ALL ON TABLE DB2BAAN.TTTAAD200000 TO BSPUSER;<br />
GRANT ALL ON TABLE DB2BAAN.TTTAAD201000 TO BSPUSER;<br />
GRANT ALL ON TABLE DB2BAAN.TTTAAD300000 TO BSPUSER;<br />
GRANT ALL ON TABLE DB2BAAN.TTTAAD305000 TO BSAUSER;<br />
<br />
2.2.2.2 Executing the Grant Statements<br />
We used the following JCL to execute the grant statements generated by the<br />
SPUFI command:<br />
<br />
//GRANTALL JOB (999,POK),'BAAN INSTALL',NOTIFY=&SYSUID, 00010002<br />
// CLASS=A,MSGCLASS=T,TIME=1439, 00020002<br />
// MSGLEVEL=(1,1) 00030002<br />
//* *00180002<br />
//* GRANT ALL ON TABLE ..... TO BSAGRP1 *00190002<br />
//* *00210002<br />
//**********************************************************************00220002<br />
//JOBLIB DD DSN=DB2V510D.RUNLIB.LOAD,DISP=SHR 00221002<br />
// DD DSN=DB2V510.SDSNLOAD,DISP=SHR 00230002<br />
//* DD DSN=SYS1.PLIBASE,DISP=SHR 00240002<br />
//* DD DSN=SYS1.S<strong>IBM</strong>BASE,DISP=SHR 00250002<br />
//* 00260002<br />
//* 00420002<br />
//* PRINT THE TABLES 00440002<br />
//PH01PS02 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 00450002<br />
//SYSTSPRT DD SYSOUT=* 00480002<br />
//SYSPRINT DD SYSOUT=* 00490002<br />
//SYSUDUMP DD SYSOUT=* 00500002<br />
//SYSTSIN DD * 00510002<br />
DSN SYSTEM(DB2D) 00520002<br />
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA51) - 00550002<br />
LIB('DB2V510D.RUNLIB.LOAD') PARMS('/ALIGN(MID)') 00560002<br />
END 00570002<br />
//* 00580002<br />
//SYSIN DD DSN=KARRAS.SPUFI.CNTL(GRANTALL),DISP=SHR 00600002<br />
//* 00720002<br />
<br />
2.2.3 How to Handle Expirati<strong>on</strong> of Passwords<br />
As stated previously, <str<strong>on</strong>g>Baan</str<strong>on</strong>g> users log <strong>on</strong> through a BW client. Since the BW<br />
client cannot handle the RACF message that the password has expired, we<br />
changed the default 30 interval to NOINTERVAL or to INTERVAL(365). However,<br />
this may not meet customer security requirements<br />
As of July 1999, <str<strong>on</strong>g>Baan</str<strong>on</strong>g> is working <strong>on</strong> its own <str<strong>on</strong>g>Baan</str<strong>on</strong>g>LoginDaem<strong>on</strong>, which will<br />
address this and other issues.<br />
If you do not want to set the interval to 90 or 180 days until this soluti<strong>on</strong> is<br />
available, you can use the following:<br />
1. Create a script that looks in /etc/passw (that is, list the RACF database <strong>on</strong><br />
the <strong>OS</strong>/<strong>390</strong>).<br />
Chapter 2. Creating Additi<strong>on</strong>al <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Users 23
24 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
2. Extract the user IDs whose passwords are about to expire.<br />
3. Check whether they are using <str<strong>on</strong>g>Baan</str<strong>on</strong>g> at the moment by using the command ps<br />
-ef uxxxx (where xxxx is the user ID).<br />
4. Issue the following command:<br />
bshcmd6.2 -M "Your password is about to expire" -w1 -u1 <br />
5. Present a menu opti<strong>on</strong> to the users, giving them access to the UNIX<br />
password command in order to facilitate changing the password.<br />
menu field type]= shellprogram<br />
program ] ] = passwd $logname<br />
The noexpire bit must be set off after the initial log<strong>on</strong>.
Chapter 3. Moving HFS Files<br />
As more companies were added after the installati<strong>on</strong> phase, we noticed the<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> HFS file was 80 percent full. We m<strong>on</strong>itored the status by issuing the df<br />
command. With <strong>OS</strong>/<strong>390</strong> V2R6, the HFS file systems have a limit of <strong>on</strong>e physical<br />
pack, therefore, we could not enlarge the HSF as it had been set up with 3300<br />
cylinders. We c<strong>on</strong>sidered specifying <strong>on</strong> the RVA that the HFS was a model 009<br />
but then we would have encountered UCB c<strong>on</strong>tenti<strong>on</strong>.<br />
Our c<strong>on</strong>clusi<strong>on</strong> was that as your HFS files grow large, you need to create a new<br />
HFS and move some of the data to it to avoid running out of space. This should<br />
also improve performance.<br />
The steps we used were as follows:<br />
1. Create a new HFS file.<br />
2. Mount it <strong>on</strong> a temporary mount point.<br />
3. Change the access to 755 from the default 700.<br />
4. Copy the files from the directory we decided to move (/dict).<br />
5. Unmount the temporary mount point.<br />
6. Mount the new HFS over the old mount point.<br />
7. Test the access.<br />
8. Erase the files under the old mount point to free up space.<br />
9. Test the access.<br />
You can perform this procedure using the ish command, or you can use<br />
commands directly in UNIX Services. We used the ish command.<br />
Attenti<strong>on</strong><br />
3.1 Allocati<strong>on</strong> of the HFS Files<br />
In <strong>OS</strong>/<strong>390</strong> Rel 2.7, an HFS can span <strong>on</strong>e volume, so the urgent need to<br />
m<strong>on</strong>itor and move HFS files is removed. However, for performance and<br />
DASD management, you may want to move files to their own HFS as they<br />
increase in size.<br />
The HFS files are created using TSO, executing the following steps:<br />
1. Choose ISPF opti<strong>on</strong> 6; issue the ish command.<br />
2. Press PF10 to put the cursor <strong>on</strong> the acti<strong>on</strong> bar.<br />
3. Tab to file_systems, press Enter.<br />
4. Enter 2 for new from the pull-down menu.<br />
We entered the informati<strong>on</strong> shown in Figure 10 <strong>on</strong> page 26 to create our<br />
HFS file.<br />
© Copyright <strong>IBM</strong> Corp. 1999 25
New Mount Point<br />
File system name BAAN.DICT<br />
Primary Cylinders 1000<br />
Sec<strong>on</strong>dary cylinders 100<br />
Storage Class SCBAAN<br />
Management Class Standard<br />
Data Class DCPDSE<br />
<br />
Figure 10. Allocati<strong>on</strong> HFS Files<br />
3.2 Creating the Mount Point<br />
Note: Check with the <strong>OS</strong>/<strong>390</strong> systems programmer for the correct storage class,<br />
management class, and data class to use.<br />
Mount points are directories over which an HFS file system is mounted. An HFS<br />
file system cannot be accessed through <strong>OS</strong>/<strong>390</strong> UNIX System Services unless it<br />
has been mounted.<br />
The member BPXPRM00 in SYS1.PARMLIB can be used to automatically mount<br />
the HFS data sets at IPL time. UNIX System Services C<strong>on</strong>necti<strong>on</strong> Scaling<br />
Reference, SA22-7305, has the suggested settings for BPX parameters for <str<strong>on</strong>g>Baan</str<strong>on</strong>g>.<br />
Attenti<strong>on</strong><br />
In our sysplex envir<strong>on</strong>ment we do not put LPAR-specific mount points in<br />
BPMXPARM in the SYS1.PARMLIB library because it is shared. We create a<br />
started task that does the mkdir and mount commands for HFS files.<br />
These mount points should be made permanent for the next IPL of your<br />
system by updating your BPMXPARM, or by using the preceding procedure,<br />
or by using your own operati<strong>on</strong>al procedure.<br />
To change this sessi<strong>on</strong> to <strong>OS</strong>/<strong>390</strong> UNIX System Services, again log <strong>on</strong> as ROOT,<br />
select opti<strong>on</strong> 6, and type omvs. Then create a directory for the mount point, using<br />
the following commands:<br />
cd /<br />
mkdir baantmp<br />
mkdir baantmp/dict<br />
If you do not have access to the root file system, you could put the temporary file<br />
in /tmp.<br />
At this point, issue the exit command at the prompt and press Enter.<br />
3.2.1 Mounting the HFS Files<br />
An HFS file cannot be accessed through <strong>OS</strong>/<strong>390</strong> UNIX System Services unless it<br />
has been mounted. The HFS files must have been already allocated and the<br />
mount point created before a mount point command can be issued.<br />
26 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
HFS files are manually mounted through TSO. To manually mount HFS files:<br />
1. Log <strong>on</strong> to TSO.<br />
2. Choose opti<strong>on</strong> 6 (commands).
3. Enter ish.<br />
4. Press PF10 to go to the acti<strong>on</strong> bar.<br />
5. Tab to file_systems, press Enter.<br />
6. Choose 3 for mount <strong>on</strong> the pull-down menu.<br />
7. Complete the menu to mount a file system.<br />
Figure 11 shows the informati<strong>on</strong> we entered for our temporary HFS file:<br />
<br />
Mount Point /baantmp/dict<br />
File System Name baan.dict<br />
File System Type HFS<br />
New Owner ROOT<br />
<br />
Figure 11. Mount Temporary HFS File<br />
3.2.2 Copying the Files<br />
At this point we were ready to copy the files. To copy the files we issued the<br />
commands:<br />
cd /baanIV/dict<br />
du -sk (to get the size of the files)<br />
cp -R * /baantmp/dict<br />
pax -wvf /tmp/api.pax *<br />
Note: If you use /baanIV/dict instead of the asterisk (*), you will get an<br />
additi<strong>on</strong>al directory layer and the resulting files will be in /baantmp/dict/dict,<br />
which will cause a problem when you start the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> applicati<strong>on</strong>.<br />
We first used the cp command instead of pax, but we found out that cp does not<br />
copy symbolic links. Instead, it moves the link files, so you would end up with<br />
two copies of some files and the sizes would be different.<br />
After the copy is complete, we issued the following commands:<br />
cd /baantmp/dict<br />
du -sk<br />
Using the du command allows us to check that the files are approximately the<br />
same size. The size of the files seem to depend <strong>on</strong> the number of<br />
subdirectories.<br />
Now unmount the temporary file, using the following commands:<br />
ish<br />
pf10<br />
file systems<br />
opti<strong>on</strong> 1<br />
u (u is the command to unmount baan.dict)<br />
Note: If you get a message that the resource is busy, you can do it as<br />
immediate. Mount the new dict HFS file over the old mount point. Go back to<br />
file systems and choose 3 and enter the data shown in Figure 12 <strong>on</strong> page 28.<br />
Chapter 3. Moving HFS Files 27
Mount Point /baanIV/dict<br />
File System Name baan.dict<br />
File System Type HFS<br />
New Owner ROOT<br />
<br />
Figure 12. Mount New HFS File<br />
Now go back to OMVS and enter:<br />
cd /baanIV/dict<br />
3.3 Removing the Old Files<br />
Change the owner and permissi<strong>on</strong>s for the dict files by issuing the following<br />
commands:<br />
chmod 755 .<br />
chown -R bsp:bsp *<br />
chown bsp:bsp .<br />
chown bsp:bsp ..<br />
This changes the ownership of the . and .. directories. Now you should make<br />
sure this new file is mounted at IPL time by adding this new mount point to the<br />
BPX parameters.<br />
After we had tested the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> with the new HFS, we removed the<br />
old files by going to OMVS and using the following commands:<br />
Unmount the new HFS:<br />
ish<br />
PF10<br />
1<br />
unmount /baanIV/dict<br />
Remove the old /baanIV/dict directory:<br />
cd /baanIV/dict<br />
rm -R *<br />
Note: -R is equivalent to -r. If you specify baanIV/dict rather than *, it will<br />
remove the dict directory. Do not remove the dict directory as you need it<br />
for the mount point for the new HFS.<br />
Mount the new HFS again:<br />
ish<br />
PF10<br />
1<br />
mount<br />
28 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
<br />
Mount Point /baanIV/dict<br />
File System Name baan.dict<br />
File System Type HFS<br />
New Owner ROOT<br />
<br />
At this point, we had completed moving the /baanIV/dict HFS. In your case, if<br />
you need more space, you could repeat the process for another directory.
See A.4, “Script to Determine If the HFS Is Almost Full” <strong>on</strong> page 86 for a script<br />
to use to check if the HFS is close to running out of disk space.<br />
Attenti<strong>on</strong><br />
To ensure you are moving and deleting the correct files, you may want to add<br />
a small file to the old directory, just so you can be sure you are dealing with<br />
the old directory. You could do this just after the pax command by using the<br />
touch command. In the old directory, issue the command:<br />
touch old file<br />
Later you can check for the old file to see that you are in the correct<br />
directory before issuing the remove command.<br />
Chapter 3. Moving HFS Files 29
30 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences
Chapter 4. Setting Up Process Manager (PM)<br />
This chapter describes how to set up Process Manager (PM) and also discusses<br />
c<strong>on</strong>siderati<strong>on</strong>s you should be aware of when using this comp<strong>on</strong>ent.<br />
When you install Process Manager, ensure the following:<br />
1. The log is in /var/bpa.<br />
2. bpares/cfg is in /etc/bpa. This is where you specify the IP address and the<br />
port number. This must also be specified in each user's /windows/services<br />
file.<br />
3. Code must be added to the exit for DB2 Sec<strong>on</strong>dary Authid as shown in 2.2.1,<br />
“DB2 Sec<strong>on</strong>dary Authid” <strong>on</strong> page 20.<br />
4. Process Manager must be started <strong>on</strong>ly after <str<strong>on</strong>g>Baan</str<strong>on</strong>g> is started, and it must be<br />
stopped before you stop <str<strong>on</strong>g>Baan</str<strong>on</strong>g>. You could alter rc.start and rc.stop scripts to<br />
include these commands. You might also want to start and stop the license<br />
daem<strong>on</strong> in the rc.start script.<br />
Do not start Process Manager twice. Issue a ps -ef |grep bpassp command<br />
to check if it is running.<br />
5. Each user can have a bpaprofile in the home directory; refer to Figure 13 for<br />
an example.<br />
BSE=/baanIVc/bse<br />
BSE_TMP=/baanIVc/bse/tmp<br />
PATH=$BSE/bin:$PATH<br />
TERM=vt100<br />
DB2_MVS_SYNTAX=1<br />
_CEE_RUNOPTS=HEAP(17M,1M,ANYWHERE,KEEP),STACK(131072,131072,ANYWHERE,KEEP),ALL31(ON),<br />
LIBSTACK(8),TERMTHDACT(UADUMP)<br />
BPX_SHAREAS=YES<br />
LIBPATH=$LIBPATH:/usr/lpp/bpa/lib:/baanIVc/bse/bin<br />
NLSPATH=$NLSPATH:/usr/lpp/cmx/nls/msg/%L/%N:/usr/lpp/bpa/nls/msg/%L/%N<br />
Figure 13. Example .bpaprofile<br />
Note that there are no quotes in the CEE_RUNOPTS and that the underscore is<br />
missing from the BPX variable.<br />
It is important to understand which profiles are executed when Process Manager<br />
is in use and which are executed when it is not in use. See 2.1.3.2, “Create User<br />
Profiles” <strong>on</strong> page 11 for more informati<strong>on</strong>.<br />
Note: Do not create the bpaprofile with viascii.<br />
4.1 Process Manager C<strong>on</strong>siderati<strong>on</strong>s<br />
During c<strong>on</strong>necti<strong>on</strong> (CAF, RRSAF) and sign<strong>on</strong> (RRSAF <strong>on</strong>ly), the list of primary<br />
and sec<strong>on</strong>dary IDs are established. With CAF it is important to note that the<br />
primary authorizati<strong>on</strong> ID is that of the address space as a whole. When running<br />
with the Process Manager comp<strong>on</strong>ent of <strong>OS</strong>/<strong>390</strong> UNIX Systems Services<br />
C<strong>on</strong>necti<strong>on</strong> Scaling, the primary ID will be the user ID used to start the Process<br />
Manager daem<strong>on</strong>.<br />
As this is probably not the intent, it may be necessary to alter the DSN3SATH<br />
routine to use the security envir<strong>on</strong>ment of the c<strong>on</strong>necting TCB (db driver<br />
process). To do this, modify the c<strong>on</strong>necti<strong>on</strong> exit that follows at label SATH024 in<br />
member DSN3SATH of hlq.SDSNSAMP. Modify the code to look for an ACEE in<br />
© Copyright <strong>IBM</strong> Corp. 1999 31
the TCB before looking in the ASXB (address space extensi<strong>on</strong>), as shown in<br />
Figure 14 <strong>on</strong> page 32.<br />
<br />
L R15,PSATOLD+PSA Get current TCB Address<br />
Using TCB,R15 Tell the assembler<br />
ICM R6,B'111',TCBSENV Get a (ACEE) if annyCE<br />
BZ SSGN043 N<strong>on</strong>e, Check the ASXB<br />
Drop R15 Do not need anymore<br />
CLC ACEEACEE,EYEACEE Does it match an ACEE?<br />
<br />
Figure 14. Modificati<strong>on</strong>s to the C<strong>on</strong>necti<strong>on</strong> Exit Code<br />
4.2 Problems Encountered with PM in BPAERR.LOG<br />
In this secti<strong>on</strong> we describe problems we encountered with Process Manager in<br />
BPAERR.LOG, al<strong>on</strong>g with the soluti<strong>on</strong>s we applied.<br />
4.2.1 Address Already in Use<br />
The following messages occur when the Process Manager has been started<br />
twice:<br />
BPA2002E message for port 2010 indicating the address is already in use<br />
BPA0164S message with RC_DAE_CHECKANDOPENCOMMUNICATION<br />
BPA0165S message with RC_DAE_ABEND<br />
BPA2048W message with RC_RTS_SPAWN<br />
The BPA2002E had an error of 744C7247<br />
The BPA2048W had an error of 0B1B0473<br />
4.2.2 Running Out of HEAP Storage Message in the BPAERR.LOG<br />
If you receive the message that you are running out of HEAP storage, it may be<br />
because you are using Process Manager and there is no bpaprofile in the user's<br />
home directory. If a user does not request a HEAP of their own and they are<br />
using Process Manager, the user will share the memory HEAP of the parent.<br />
In our case, the user ROOT started Process Manager. Every<strong>on</strong>e shared the<br />
memory HEAP of ROOT and after a while, the HEAP was overallocated and users<br />
could no l<strong>on</strong>ger log <strong>on</strong>.<br />
To resolve this problem, you can either create a BPAPROFILE in each user's<br />
home directory or increase the HEAP size in the /.profile of the ROOT user ID.<br />
4.2.3 Unable to Log On with BW Client but Able to with BA Client<br />
When we encountered this problem, it was because the user workstati<strong>on</strong> had a<br />
port number entry in the /windows/services file but the Process Manager was<br />
not running.<br />
32 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences
Chapter 5. Post-Installati<strong>on</strong> Tuning<br />
This chapter describes the steps we took to improve the performance of <str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
<str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> <strong>on</strong> S/<strong>390</strong>. The installati<strong>on</strong> process involves several steps, such as:<br />
Installing Company 000<br />
5.1 Putting Modules in the LPA<br />
Licensing the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g><br />
Installing the supplied demo companies or creating test companies<br />
After completing the basic installati<strong>on</strong>, there are several steps you can follow in<br />
order to optimize the system for performance. These steps are described in the<br />
Installati<strong>on</strong> Guide available from <str<strong>on</strong>g>Baan</str<strong>on</strong>g>. Our experiences in post-installati<strong>on</strong><br />
tuning are described in the following secti<strong>on</strong>s.<br />
Note: <str<strong>on</strong>g>Baan</str<strong>on</strong>g>'s design is such that, for a given capacity, significantly better<br />
interactive (<strong>on</strong>line) resp<strong>on</strong>se time results from faster engines. That is, having<br />
fewer, faster engines is much better than more, slower engines. You should<br />
therefore c<strong>on</strong>sider using the newest technology feasible to obtain the fastest<br />
engines.<br />
To improve performance we followed the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV Installati<strong>on</strong> Guide instructi<strong>on</strong>s<br />
to put certain <str<strong>on</strong>g>Baan</str<strong>on</strong>g> executables in the Link Pack Area, as follows:<br />
1. We verified the UW49280 PTF was installed. We found it had been<br />
superseded by PTF UW50221, which was installed.<br />
2. We set up a partiti<strong>on</strong>ed data set (PDS) to c<strong>on</strong>tain the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> executables.<br />
BAAN4.LPALIB<br />
3. We ran the linkedit job as shown in Figure 15 <strong>on</strong> page 34.<br />
4. We created three empty files in $BSE/bin using the touch command:<br />
touch bshell61<br />
touch shserv61<br />
touch sort61<br />
Note: The first time we did this we were logged <strong>on</strong> as ROOT, not BSP so the<br />
owner of the files was incorrect. A sec<strong>on</strong>d problem was that the umask was<br />
not set correctly so we had to change the permissi<strong>on</strong> bits for these three<br />
files:<br />
chmod 755 bshell61<br />
chmod 755 shserv61<br />
chmod 755 sort61<br />
5. Using the chmod command with user group and owner, we set the sticky bits<br />
to “<strong>on</strong>” so the modules would be marked as being in the LPA:<br />
chmod ugo+t bshell61<br />
chmod ugo+t db2srv61<br />
chmod ugo+t shserv61<br />
chmod ugo+t sort61<br />
chmod ugo+t globlvar<br />
chmod ugo+t /usr/lpp/bpa/bpadll<br />
To activate these in the LPA without doing an IPL, we issued the following<br />
command at the c<strong>on</strong>sole:<br />
© Copyright <strong>IBM</strong> Corp. 1999 33
SETPROG LPA,ADD,MASK=*,DSNAME=BAAN4.LPALIB<br />
Figure 15. JCL to LinkEdit into the Library for LPA. A LinkEdit job has to be run for each<br />
module.<br />
<br />
//BAANLNK JOB (999,POK),'BAAN LPA LINK',NOTIFY=&SYSUID,<br />
// CLASS=A,MSGCLASS=T,TIME=1439,<br />
// REGION=5000K,MSGLEVEL=(1,1)<br />
//* LINKEDIT<br />
//**********************************************************<br />
//DB2SRV61 EXEC PGM=IEWL,<br />
// PARM='LIST,XREF,LET,RENT,REUS,AMODE=31,RMODE=ANY,CASE=MIXED'<br />
//SYSPRINT DD SYSOUT=*<br />
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(10,10))<br />
//INLMOD DD PATH='/baanIVc/bse/bin'<br />
//SYSLMOD DD DISP=SHR,DSN=BAAN4.LPALIB<br />
//SYSLIN DD *<br />
INCLUDE INLMOD(db2srv61)<br />
ENTRY CEESTART<br />
NAME DB2SRV61(R)<br />
/*<br />
//**********************************************************<br />
//BSHELL61 EXEC PGM=IEWL,<br />
// PARM='LIST,XREF,LET,RENT,REUS,AMODE=31,RMODE=ANY,CASE=MIXED'<br />
//SYSPRINT DD SYSOUT=*<br />
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(10,10))<br />
//INLMOD DD PATH='/baanIVc/bse/bin'<br />
//SYSLMOD DD DISP=SHR,DSN=BAAN4.LPALIB<br />
//SYSLIN DD *<br />
INCLUDE INLMOD(bshell6.1)<br />
ENTRY CEESTART<br />
NAME BSHELL61(R)<br />
/*<br />
//**********************************************************<br />
<br />
Note: We had to issue the command caps off <strong>on</strong> the command line in order<br />
to get the lowercase PATH name and the lowercase INCLUDE name.<br />
6. For these changes to take effect, we modified the $BSE/etc/ipc_info file by<br />
changing the p to d for those modules we placed in the LPA, to change direct<br />
to pipes.<br />
5.1.1 Putting Applicati<strong>on</strong> Objects in Shared Memory<br />
As well as putting modules in the LPA to improve performance, further gains can<br />
be had by putting <str<strong>on</strong>g>Baan</str<strong>on</strong>g> objects into shared storage. The STP and DSK modules<br />
were put into shared storage by adding the object names in the shared memory<br />
file SRdd_INIT6.1<br />
5.2 Changing the Shared Memory Parameters<br />
One of the things you can do to improve performance is to increase the values of<br />
shared memory parameters in the file $BSE/lib/shm_param file. The steps we<br />
followed were:<br />
1. Stop the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> applicati<strong>on</strong> by issuing the command in the $BSE/etc directory:<br />
rc.stop<br />
34 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
2. Make a copy of the file by issuing the command:
5.3 Small db2_storage File<br />
5.4 REBIND the Plan<br />
cp shm_param shm_param_old<br />
3. Change the values using the viascii command.<br />
We changed three of the values in the $BSE/lib/shm_param file as follows:<br />
NEW WAS<br />
SHM_START = 18000000 15000000<br />
SHM_STEP = 1000000 400000<br />
SHM_BUFSIZE = 16384 4096<br />
SHM_MAXMEM = 30<br />
Note: Before making the changes, issue the command shmvalues6.2 The<br />
values that are returned will tell you what to use for the SHM_START<br />
parameter. See the <str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP Tools Technical Manual for more informati<strong>on</strong>.<br />
4. Start the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> applicati<strong>on</strong> by issuing this command in the $BSE/etc<br />
directory:<br />
rc.start<br />
The next thing we tried was to increase the values in the BPXPRMxx<br />
parameters. In our case <strong>on</strong>ly ipcsemnsems was not set to the maximum<br />
value. At the c<strong>on</strong>sole we issued the following command to change the value:<br />
setomvs ipcsemnsems<br />
All values in the BPXPRMxx for ipcshm and ipcsem were set to the<br />
maximum values.<br />
After you have created and loaded the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Companies you can use a two-line<br />
db2_storage file that will decrease the search time for <str<strong>on</strong>g>Baan</str<strong>on</strong>g> requests to DB2.<br />
The following example shows a very simple db2_storage that puts everything<br />
into <strong>on</strong>e tablespace:<br />
<br />
*:*:I::01::STOGROUP BAANGRP PRIQTY 64 SECQTY 960 BUFFERPOOL BP0<br />
*:*:T:group:01:5: ARR_SIZE 1 OPT_ROWS 5 T_SPACE C000DB1.TDEMO0<br />
.<br />
.<br />
<br />
We ran the job to bind CMXPLAN, changing DYNAMICRULES from RUN to BIND.<br />
Note: If you are going to still be loading new companies, you must create a<br />
sec<strong>on</strong>d plan for user BSP that has DYNAMICRULES(BIND). The variable<br />
CMXPLAN='Locati<strong>on</strong> of new plan', which in our case was<br />
CMXCONF=/etx/cmx/bind/, must be placed in either the .profile or the<br />
.bpaprofile file for user BSP.<br />
Chapter 5. Post-Installati<strong>on</strong> Tuning 35
5.5 Break Up the HSF File Systems into Smaller File Systems<br />
5.6 Change the Name Server<br />
Refer to Chapter 3, “Moving HFS Files” <strong>on</strong> page 25 for more detail <strong>on</strong> this<br />
process.<br />
We found that <str<strong>on</strong>g>Baan</str<strong>on</strong>g> does a GETH<strong>OS</strong>TBYNAME command. It was not able to<br />
resolve this with the Name Server the system was using, so we had to change<br />
the S/<strong>390</strong> domain server name in the TCPIPDATA file to a local <strong>on</strong>e. This saved<br />
30 sec<strong>on</strong>ds <strong>on</strong> the initial log<strong>on</strong>.<br />
You can verify if you have this problem by issuing the commands: NSLOOKUP<br />
wtsc48 (wtsc48 was our hostname) or NSLOOKUP 9.2.12.14 (9.2.12.14 was the IP<br />
address of our host).<br />
5.7 RMF Analysis for CPU and DISK<br />
We found we were not using a significant amount of CPU time or doing a lot of<br />
I/O. Nevertheless, a process should be put in place to regularly gather and<br />
review RMF data.<br />
5.8 Setting Up Process Manager and Starting the PM Daem<strong>on</strong><br />
We found that starting Process Manager did not change the initial log<strong>on</strong> time at<br />
all in our tests.<br />
5.9 Putting the tmp File in Memory<br />
Another opti<strong>on</strong> is to put the /tmp file that <str<strong>on</strong>g>Baan</str<strong>on</strong>g> uses into memory. To do this,<br />
issue the command:<br />
MOUNT FILESYSTEM('/baanIVc/bse/tmp') TYPE (TFS)<br />
MOUNTPOINT ('/baanIVc/bse/tmp') PARM('-S 5')<br />
Note that the 5 in the PARM parameter is the number of megabytes you want the<br />
temporary file space to be.<br />
5.10 Ongoing M<strong>on</strong>itoring and Tuning<br />
36 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
You should be aware that the steps we covered in this chapter are <strong>on</strong>ly some<br />
initial points to c<strong>on</strong>sider to start the tuning process.<br />
In additi<strong>on</strong> to these steps, it is important that you establish processes to capture<br />
performance data that can be regularly m<strong>on</strong>itored. These should include RMF<br />
reports and DB2 Performance M<strong>on</strong>itor reports. <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Support can provide<br />
informati<strong>on</strong> <strong>on</strong> how to do specific traces if there are certain transacti<strong>on</strong>s with a<br />
perceived performance problem.
Chapter 6. Creating a New <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company<br />
This chapter describes the steps a customer performed to create a new<br />
company for training. Prepare for this with the following tasks:<br />
Choose the company number.<br />
Choose the database layout.<br />
Determine which user IDs require access.<br />
Verify that there is enough disk space in DB2 STOGROUPS.<br />
Verify that there is enough disk space in HFS file systems.<br />
Verify that the indexes for Company 000 are not into a large number of<br />
extents (119 is the maximum).<br />
Determine which DB2 bufferpools will be used.<br />
Create the new company by performing the following steps:<br />
Create the db2_storage file.<br />
Create the DB2 Databases and tablespaces.<br />
Grant privileges to the group BSPUSER or the individual users that need to<br />
access this new company.<br />
Create the dump files to load the data.<br />
Run bdppost to load the data.<br />
Run the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools to verify that all tables are present.<br />
Run the DB2 Runstats Utility.<br />
Test the new company.<br />
6.1 Creating the db2_storage File<br />
The layout of the database includes data for the ba, cp, ct, ps, tc, td, tf, tg, ti,<br />
tp, tr, ts, tu, and tttxt packages.<br />
This company had been created primarily to use with the DEM and FI<br />
applicati<strong>on</strong>s so we allocated more tablespaces to the tf, tg, tp, and tttxt files.<br />
We decided to:<br />
− Create STOGROUP BAANGRP3 for the indexes.<br />
− Create STOGROUP BAANGRP2 for the tablespaces.<br />
− Use Bufferpool 5 for the indexes.<br />
− Use Bufferpool 6 for the databases.<br />
− Use Bufferpool 4 for the tablespaces.<br />
− Use USRGRP1 for the users that will access this company.<br />
− Use 998 for the company number.<br />
To set up this layout for DB2 and <str<strong>on</strong>g>Baan</str<strong>on</strong>g>, we then created a db2_storage file<br />
as shown in the following example.<br />
© Copyright <strong>IBM</strong> Corp. 1999 37
38 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
<br />
ba:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998BA1.BA0001<br />
cp:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998CP1.CP0001<br />
ct:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998CT1.CT0001<br />
ps:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998PS1.PS0001<br />
tc:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TC1.TC0001<br />
td:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TD1.TD0001<br />
tfacp:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TF1.TF0001<br />
tfacr:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TF1.TF0001<br />
tfcal:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TF1.TF0001<br />
tfcmg:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TF1.TF0001<br />
tffas:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TF1.TF0001<br />
tffbs:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TF2.TF0002<br />
tffst:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TF2.TF0002<br />
tfgld:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TF2.TF0002<br />
tfzzz:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TF2.TF0002<br />
tf:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TF3.TF0003<br />
tgbrg:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TG1.TG0001<br />
tgeis:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TG1.TG0001<br />
tgerm:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TG1.TG0001<br />
tgtst:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TG2.TG0002<br />
tgwms:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TG2.TG0002<br />
tgwzr:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TG2.TG0002<br />
tg:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TG3.TG0003<br />
ti:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TI1.TI0001<br />
tpbop:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TP1.TP0001<br />
tphrs:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TP1.TP0001<br />
tpism:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TP1.TP0001<br />
tppbs:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TP1.TP0001<br />
tppdm:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TP1.TP0001<br />
tppin:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TP2.TP0002<br />
tpppc:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TP2.TP0002<br />
tpprc:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TP2.TP0002<br />
tppss:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TP2.TP0002<br />
tpptc:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TP2.TP0002<br />
tpzzz:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TP2.TP0002<br />
tp:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TP3.TP0003<br />
tr:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TR1.TR0001<br />
ts:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TS1.TS0001<br />
tttxt:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TTT.TTTX01<br />
tu:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998TU1.TU0001<br />
*:998:T:group:01:5:OPT_ROWS 5 T_SPACE C998OTHR.OTHR01<br />
tg:998:I::01::STOGROUP BAANGRP3 PRIQTY 12 SECQTY 9600 DEFER YES BUFFERPOOL BP5<br />
tttxt:998:I::01::STOGROUP BAANGRP3 PRIQTY 6040 SECQTY 9600 DEFER YES BUFFERPOOL<br />
BP5<br />
*:998:I::01::STOGROUP BAANGRP3 PRIQTY 12 SECQTY 9600 BUFFERPOOL BP5<br />
*:*:I::01::STOGROUP BAANGRP3 PRIQTY 64 SECQTY 960 BUFFERPOOL BP5<br />
*:*:T:group:01:5: ARR_SIZE 1 OPT_ROWS 5 T_SPACE C999DB1.TOTHEH0<br />
<br />
We found the easiest way to create this was to change an existing db2_storage<br />
file with a vi global change command as follows:<br />
vi db2_storage<br />
:1,$s/:200/:998/g (this changes 200 to 998 at the beginning of each line)<br />
:1,$s/C200/C998/g<br />
:wq! (this changes C200 to C998 for the table name at the end of each line)<br />
Note that the dollar sign ($) means change all lines.<br />
Then we checked to see that all the changes had been made correctly.
6.2 Creating the DB2 DDL and Granting Privileges<br />
To create the DB2 DDL and grant privileges, we again used existing JCL and did<br />
a global change using the command C/C200/C998/ ALL.<br />
Then we verified the changes were correct. This JCL creates new STOGROUPs,<br />
databases and tablespaces; it also grants privileges to bsp user ID and the<br />
group BSPGRP (see Figure 16 <strong>on</strong> page 40).<br />
Chapter 6. Creating a New <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company 39
40 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
<br />
//BALLOC JOB (0513),'BAAN INSTALL',<br />
// TIME=1440,<br />
// NOTIFY=ROOT,<br />
// REGION=0M,<br />
// CLASS=A,<br />
// MSGCLASS=X,<br />
// MSGLEVEL=(1,1)<br />
//* INSTALLATION <strong>OS</strong>/<strong>390</strong> V2R6 (BAAN)<br />
//*<br />
//*--------------------------------------------------------------------<br />
//* GDE: <strong>IBM</strong> EXTENDED FACILITIES PRODUCT V2R1 INSTALLATION<br />
//* DOC: FMIDS - SIB2110, TIB2111, SSKP122, ASAR55D, SSAT55D, ASAT55D<br />
//*<br />
//*--------------------------------------------------------------------<br />
//*********************************************************************/<br />
//* NAME = BAANDDL */<br />
//* */<br />
//* DESCRIPTIVE NAME = SAMPLE DDL TO CREATE DATABASES & TABLESPACES */<br />
//* FOR BAAN IV INSTALLATION */<br />
//* */<br />
//* STATUS = VERSION 1 */<br />
//* */<br />
//* FUNCTION = THIS JCL PERFORMS THE NECESSARY DDL TO BUILD THE */<br />
//* BAAN IV DB2 DATABASE. THE FOLLOWING DDL MATCHES THE */<br />
//* SETUP SUPPLIED IN THE $BSE/lib/db2/db2_storage FILE. */<br />
//* */<br />
//* ANY CHANGES TO STOGROUP, DATABASE AND/OR TABLESPACE */<br />
//* NAMES REQUIRES THE CORRESPONDING CHANGE IN THE */<br />
//* $BSE/lib/db2/db2_storage FILE. */<br />
//* */<br />
//* YOU MUST UPDATE THE hlq IN THE JOBLIB. */<br />
//* */<br />
//* CHANGE ACTIVITY = */<br />
//*********************************************************************/<br />
//JOBLIB DD DSN=DSN510.SDSNLOAD,DISP=SHR<br />
// DD DSN=DSN510.RUNLIB.LOAD,DISP=SHR<br />
//CREATDDL EXEC PGM=IKJEFT01,DYNAMNBR=20<br />
//SYSPRINT DD SYSOUT=*<br />
//SYSTSPRT DD SYSOUT=*<br />
//SYSOUT DD SYSOUT=*<br />
//SYSTSIN DD *<br />
DSN S(DSN)<br />
RUN PROG(DSNTIAD) PLAN(DSNTIA51)<br />
END<br />
//SYSIN DD *<br />
CREATE STOGROUP BAANGRP2<br />
VOLUMES (V26DB5,V26DB6,V26DB7) VCAT DSN510;<br />
CREATE STOGROUP BAANGRP3<br />
VOLUMES (V26DB8,V26DB9,V26DB0) VCAT DSN510;<br />
COMMIT;<br />
CREATE DATABASE C998TG1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TG2<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
<br />
Figure 16 (Part 1 of 5). JCL to Create Database
CREATE DATABASE C998TG3<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TTT<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TP1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TP2<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TP3<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TF1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TF2<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TF3<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998BA1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998CP1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998CT1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998PS1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TC1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TD1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TI1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TR1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TS1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998TU1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
CREATE DATABASE C998OTHR<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP6;<br />
COMMIT;<br />
<br />
Figure 16 (Part 2 of 5). JCL to Create Database<br />
Chapter 6. Creating a New <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company 41
42 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
<br />
CREATE TABLESPACE TG0001 IN C998TG1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP2<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TG0002 IN C998TG2 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP2<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TG0003 IN C998TG3 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP2<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TTTX01 IN C998TTT BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP2<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TP0001 IN C998TP1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TP0002 IN C998TP2 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TP0003 IN C998TP3 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TF0001 IN C998TF1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TF0002 IN C998TF2 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TF0003 IN C998TF3 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE BA0001 IN C998BA1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE CP0001 IN C998CP1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE CT0001 IN C998CT1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE PS0001 IN C998PS1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TC0001 IN C998TC1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
<br />
Figure 16 (Part 3 of 5). JCL to Create Database
CREATE TABLESPACE TD0001 IN C998TD1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TI0001 IN C998TI1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TR0001 IN C998TR1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TS0001 IN C998TS1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TU0001 IN C998TU1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE OTHR01 IN C998OTHR BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
COMMIT;<br />
<br />
Figure 16 (Part 4 of 5). JCL to Create Database<br />
Chapter 6. Creating a New <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company 43
GRANT DBADM ON DATABASE C998TG1 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TG2 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TG3 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TTT TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TP1 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TP2 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TP3 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TF1 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TF2 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TF3 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998BA1 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998CP1 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998CT1 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998PS1 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TC1 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TD1 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TI1 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TR1 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TS1 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TU1 TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998OTHR TO USRGRP1 WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TG1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TG2 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TG3 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TTT TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TP1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TP2 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TP3 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TF1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TF2 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TF3 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998BA1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998CP1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998CT1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998PS1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TC1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TD1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TI1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TR1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TS1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998TU1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C998OTHR TO BSP WITH GRANT OPTION;<br />
GRANT USE OF STOGROUP BAANGRP2 TO BSP;<br />
GRANT USE OF STOGROUP BAANGRP3 TO BSP;<br />
GRANT USE OF STOGROUP BAANGRP2 TO USRGRP1;<br />
GRANT USE OF STOGROUP BAANGRP3 TO USRGRP1;<br />
//<br />
<br />
Figure 16 (Part 5 of 5). JCL to Create Database<br />
6.3 Using <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools to Load Data to the New Company<br />
44 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
There are several steps using <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools that are necessary to create a new<br />
company. This secti<strong>on</strong> covers the S/<strong>390</strong> aspects. Some<strong>on</strong>e trained in using<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools should execute these steps. The following secti<strong>on</strong>s describe some of<br />
the steps. For more detailed informati<strong>on</strong> see documentati<strong>on</strong> <strong>on</strong> Tools, available<br />
from <str<strong>on</strong>g>Baan</str<strong>on</strong>g>.
6.3.1 Create the Sequential Dump<br />
To create the sequential dump, go to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools and make the following<br />
choices, as shown in Figure 17 and Figure 18 <strong>on</strong> page 46:<br />
Database Management--><br />
Database Utilities--><br />
Create Sequential Dump of Tables<br />
Figure 17. <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools Menu to Request Sequential Dumps<br />
Chapter 6. Creating a New <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company 45
Figure 18. Creating Sequential Dump of Table<br />
After the sequential dump is completed, go back to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools to create the<br />
table making the following choices, as shown in Figure 19:<br />
Database Management--><br />
Database Utilities--><br />
Create Table from Sequential Dump<br />
46 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
Figure 19. Create Table from Sequential Dump<br />
Complete this screen with the required informati<strong>on</strong>.<br />
Note: To speed up the largest dump file, we could have used the opti<strong>on</strong> DEFER<br />
YES <strong>on</strong> the tg tables. Using this opti<strong>on</strong> would mean that the indexes were not<br />
populated during the load phase. At the end of this job, we ran the following<br />
DB2 utility to recover the indexes. This certainly decreased the time required to<br />
load this company, and the recovery job ran quickly as well. See Chapter 7,<br />
“Migrating and Copying <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company Data” <strong>on</strong> page 49, for more details.
6.4 Running the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools<br />
6.5 RUNSTATS JCL - L<strong>on</strong>g Job<br />
DEFER YES should not be used in the initial load of Company 000 when youare<br />
using the install6.1 or install6.2 scripts, but it can be used when moving<br />
companies.<br />
If you use DEFER YES as an opti<strong>on</strong> when loading a company using <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools<br />
(not when using the install6.1 script) or when moving a company, you must run<br />
the DB2 REBUILD utility to rebuild the indexes. To do the move, the bdppost<br />
command was issued for the 14 companies.<br />
We had a S/<strong>390</strong> with six engines, so we ran five or six bdppost jobs at a time in<br />
an <strong>on</strong>line mode. This made much more efficient use of the S/<strong>390</strong>. We thought<br />
the time to run the move of the tg applicati<strong>on</strong> could be half of the original 15<br />
hours as it was 7.5 MB of the 15 MB of data. But in fact, with the DEFER=YES<br />
opti<strong>on</strong>, the time was less than 30 minutes.<br />
There was another opti<strong>on</strong> that we did not use as the 30 minutes was satisfactory.<br />
There is a bdpsplit job that would have allowed us to split up the 7.5 MB dump<br />
into three smaller files. Then we could have started three jobs to load the tg<br />
data into the three databases we set up up for the tg applicati<strong>on</strong>.<br />
At this point there was a job to run using <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools to verify that all the tables<br />
were loaded and, if a table was missing, to create it so the package was<br />
complete. Go to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools and make the following selecti<strong>on</strong>s:<br />
Applicati<strong>on</strong> C<strong>on</strong>figurati<strong>on</strong>--><br />
Maintain Companies--><br />
Click <strong>on</strong> Applicati<strong>on</strong> <strong>on</strong> the Tool Bar--><br />
C<strong>on</strong>vert to Runtime<br />
To add the missing table after loading from the dump, go to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Tools and<br />
make the following menu choices:<br />
Database Management--><br />
Miscellaneous--><br />
Create Tables<br />
Note: Do not choose recreate index opti<strong>on</strong>s. This is not necessary for DB2. It<br />
increased the runtime from five minutes to six hours.<br />
After the load tasks were completed, we had to run RUNSTATS as shown in<br />
Figure 20 <strong>on</strong> page 48:<br />
Chapter 6. Creating a New <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company 47
RUNSTAT JOB ,,TIME=NOLIMIT,<br />
// REGION=0M,MSGCLASS=H,NOTIFY=&SYSUID<br />
/*JOBPARM SYSAFF=*<br />
//JOBLIB DD DISP=SHR,DSN=SYS1.DSN510.SDSNLOAD<br />
//*----------------------------------------------------------------<br />
//* COMPANY 000 DATABASE C000DB1<br />
//*----------------------------------------------------------------<br />
//RUNSDB1 EXEC PGM=DSNUTILB,PARM=DSN<br />
//SYSPRINT DD SYSOUT=*<br />
//UTPRINT DD SYSOUT=*<br />
//SYSIN DD *<br />
RUNSTATS TABLESPACE C998TG1.TG0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TG2.TG0002 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TG3.TG0003 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TTT.TTTX01 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TP1.TP0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TP2.TP0002 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TP3.TP0003 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TF1.TF0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TF2.TF0002 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TF3.TF0003 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998BA1.BA0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998CP1.CP0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998CT1.CT0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998PS1.PS0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TC1.TC0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TD1.TD0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TI1.TI0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TR1.TR0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TS1.TS0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998TU1.TU0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C998OTHR.OTHR01 TABLE INDEX SHRLEVEL CHANGE<br />
/*<br />
//<br />
<br />
Figure 20. Job to Execute RUNSTATS<br />
48 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
Doing this as <strong>on</strong>e l<strong>on</strong>g job took <strong>on</strong>e hour. We found it was possible to make it<br />
run faster by splitting the runstats into 14 jobs so they could run simultaneously.<br />
At this point, Company 998 has been loaded and the user testing can be d<strong>on</strong>e.
Chapter 7. Migrating and Copying <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company Data<br />
This secti<strong>on</strong> describes the experiences gained while trying to reduce the time to<br />
copy <str<strong>on</strong>g>Baan</str<strong>on</strong>g> company data from an Oracle database <strong>on</strong> RS/6000 to a DB2<br />
database <strong>on</strong> <strong>OS</strong>/<strong>390</strong>.<br />
The original run was d<strong>on</strong>e by creating <strong>on</strong>e large job to move 15 MB of<br />
compacted data in a single stream job. This took approximately 15 hours to<br />
complete and, in fact, DB2 ended abnormally. It was later found that the abend<br />
was due to a 1 GB DB2 thread. DB2 assumes 1 GB is too l<strong>on</strong>g for a thread and<br />
causes an abend. To prevent the DB2 abend, you can install PTF UQ19012 and<br />
add the following parameter to the DSN6SPRM secti<strong>on</strong> of the DB2 ZPARMS:<br />
CONTSTOR=YES<br />
7.1 Reducing the Time to Move a Company<br />
Following are the steps we took to reduce the time needed to move a company<br />
to approximately two hours:<br />
1. The following recent PTFs were installed to DB2. At this point this was just a<br />
precauti<strong>on</strong>ary measure as the dumps had not yet been analyzed.<br />
With GA level of <strong>OS</strong>/<strong>390</strong> R 6, plus the following fixes:<br />
Process Manager UW53711<br />
Open Editi<strong>on</strong> UW54393<br />
Communicati<strong>on</strong>s Manager UW51307, UQ21379, UW49691, UW53341, UQ20607<br />
DB2 5.1 with service through April 8, 1998, plus the following fixes:<br />
PTFs UQ20185, UQ20574, UQ22003, UQ22004, UQ22331,<br />
UQ2324<br />
2. The dump of the data from the RS/6000 was broken into 14 dumps (by<br />
package). The packages were ba, cp, ct, ps, tc, td, tf, tg, ti, tp, tr, ts, tu, and<br />
tttxt.<br />
This company had been used primarily with the DEM applicati<strong>on</strong>, so we<br />
found tg, tp, and tttxt were the largest files. In fact, tg was <strong>on</strong>e half of the 15<br />
MB of data.<br />
3. Based <strong>on</strong> the analysis of the dump data, the following database layout for<br />
Company 200 was agreed to. Then to set up this layout for DB2 and <str<strong>on</strong>g>Baan</str<strong>on</strong>g>,<br />
we created a db2_storage file:<br />
© Copyright <strong>IBM</strong> Corp. 1999 49
50 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
<br />
ba:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200BA1.BA0001<br />
cp:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200CP1.CP0001<br />
ct:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200CT1.CT0001<br />
ps:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200PS1.PS0001<br />
tc:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TC1.TC0001<br />
td:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TD1.TD0001<br />
tfacp:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TF1.TF0001<br />
tfacr:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TF1.TF0001<br />
tfcal:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TF1.TF0001<br />
tfcmg:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TF1.TF0001<br />
tffas:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TF1.TF0001<br />
tffbs:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TF2.TF0002<br />
tffst:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TF2.TF0002<br />
tfgld:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TF2.TF0002<br />
tfzzz:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TF2.TF0002<br />
tf:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TF3.TF0003<br />
tgbrg:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TG1.TG0001<br />
tgeis:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TG1.TG0001<br />
tgerm:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TG1.TG0001<br />
tgtst:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TG2.TG0002<br />
tgwms:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TG2.TG0002<br />
tgwzr:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TG2.TG0002<br />
tg:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TG3.TG0003<br />
ti:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TI1.TI0001<br />
tpbop:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TP1.TP0001<br />
tphrs:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TP1.TP0001<br />
tpism:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TP1.TP0001<br />
tppbs:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TP1.TP0001<br />
tppdm:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TP1.TP0001<br />
tppin:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TP2.TP0002<br />
tpppc:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TP2.TP0002<br />
tpprc:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TP2.TP0002<br />
tppss:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TP2.TP0002<br />
tpptc:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TP2.TP0002<br />
tpzzz:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TP2.TP0002<br />
tp:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TP3.TP0003<br />
tr:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TR1.TR0001<br />
ts:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TS1.TS0001<br />
tttxt:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TTT.TTTX01<br />
tu:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200TU1.TU0001<br />
*:200:T:group:01:5:OPT_ROWS 5 T_SPACE C200OTHR.OTHR01<br />
tg:200:I::01::STOGROUP BAANGRP3 PRIQTY 12 SECQTY 9600 DEFER YES BUFFERPOOL BP2<br />
tttxt:200:I::01::STOGROUP BAANGRP2 PRIQTY 6040 SECQTY 9600 DEFER YES BUFFERPOOL<br />
BP2<br />
*:200:I::01::STOGROUP BAANGRP3 PRIQTY 12 SECQTY 9600 BUFFERPOOL BP2<br />
<br />
Using the global change command for the vi Editor, we changed an existing<br />
db2_storage file by doing the following:<br />
a. Pressing the Esc key.<br />
b. Entering :1,$s/:200/:300/g<br />
This changes 200 to 300 at the beginning of each line.<br />
c. Pressing Esc again.<br />
d. Entering :1,$s/C200/C300/g<br />
This changes C200 to C300 at the end of each line.<br />
e. Entering :wq! to save.<br />
After you follow these steps, you should check whether all the changes<br />
have been made correctly. Note that in the preceding commands, $<br />
means change all lines and g is for global change.<br />
To create the tablespaces and to grant privileges to the bsp user ID, we used<br />
the JCL shown in Figure 21 <strong>on</strong> page 51.<br />
Note: DSN was the DB2 subsystem name. That matched the entry in the<br />
cmx.c<strong>on</strong>f file we were using.
BALLOC JOB (0513),'BAAN INSTALL',<br />
// TIME=1440,<br />
// NOTIFY=ROOT,<br />
// REGION=0M,<br />
// CLASS=A,<br />
// MSGCLASS=X,<br />
// MSGLEVEL=(1,1)<br />
//* INSTALLATION <strong>OS</strong>/<strong>390</strong> V2R6 (BAAN)<br />
//*<br />
//*--------------------------------------------------------------------<br />
//* GDE: <strong>IBM</strong> EXTENDED FACILITIES PRODUCT V2R1 INSTALLATION<br />
//* DOC: FMIDS - SIB2110, TIB2111, SSKP122, ASAR55D, SSAT55D, ASAT55D<br />
//*<br />
//*--------------------------------------------------------------------<br />
//*********************************************************************/<br />
//* NAME = BAANDDL */<br />
//* */<br />
//* DESCRIPTIVE NAME = SAMPLE DDL TO CREATE DATABASES & TABLESPACES */<br />
//* FOR BAAN IV INSTALLATION */<br />
//* */<br />
//* STATUS = VERSION 1 */<br />
//* */<br />
//* FUNCTION = THIS JCL PERFORMS THE NECESSARY DDL TO BUILD THE */<br />
//* BAAN IV DB2 DATABASE. THE FOLLOWING DDL MATCHES THE */<br />
//* SETUP SUPPLIED IN THE $BSE/lib/db2/db2_storage FILE. */<br />
//* */<br />
//* ANY CHANGES TO STOGROUP, DATABASE AND/OR TABLESPACE */<br />
//* NAMES REQUIRES THE CORRESPONDING CHANGE IN THE */<br />
//* $BSE/lib/db2/db2_storage FILE. */<br />
//* */<br />
//* YOU MUST UPDATE THE hlq IN THE JOBLIB. */<br />
//* */<br />
//* CHANGE ACTIVITY = */<br />
//*********************************************************************/<br />
//JOBLIB DD DSN=DSN510.SDSNLOAD,DISP=SHR<br />
// DD DSN=DSN510.RUNLIB.LOAD,DISP=SHR<br />
//CREATDDL EXEC PGM=IKJEFT01,DYNAMNBR=20<br />
//SYSPRINT DD SYSOUT=*<br />
//SYSTSPRT DD SYSOUT=*<br />
//SYSOUT DD SYSOUT=*<br />
//SYSTSIN DD *<br />
DSN S(DSN)<br />
RUN PROG(DSNTIAD) PLAN(DSNTIA51)<br />
END<br />
//SYSIN DD *<br />
CREATE STOGROUP BAANGRP2<br />
VOLUMES (V26DB5,V26DB6,V26DB7) VCAT DSN510;<br />
CREATE STOGROUP BAANGRP3<br />
VOLUMES (V26DB8,V26DB9,V26DB0) VCAT DSN510;<br />
COMMIT;<br />
CREATE DATABASE C200TG1<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TG2<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP2;<br />
<br />
Figure 21 (Part 1 of 5). JCL to Create Database, Tablespaces & Execute Grant<br />
Statements<br />
Chapter 7. Migrating and Copying <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company Data 51
52 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
<br />
CREATE DATABASE C200TG3<br />
STOGROUP BAANGRP2<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TTT<br />
STOGROUP BAANGRP3<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TP1<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TP2<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TP3<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TF1<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TF2<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TF3<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200BA1<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200CP1<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200CT1<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200PS1<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TC1<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TD1<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TI1<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TR1<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TS1<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200TU1<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
CREATE DATABASE C200OTHR<br />
STOGROUP BAANGRP<br />
BUFFERPOOL BP2;<br />
COMMIT;<br />
<br />
Figure 21 (Part 2 of 5). JCL to Create Database, Tablespaces & Execute Grant<br />
Statements
CREATE TABLESPACE TG0001 IN C200TG1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP2<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TG0002 IN C200TG2 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP2<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TG0003 IN C200TG3 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP2<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TTTX01 IN C200TTT BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP3<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TP0001 IN C200TP1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TP0002 IN C200TP2 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TP0003 IN C200TP3 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TF0001 IN C200TF1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TF0002 IN C200TF2 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TF0003 IN C200TF3 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 50000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE BA0001 IN C200BA1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE CP0001 IN C200CP1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE CT0001 IN C200CT1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE PS0001 IN C200PS1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TC0001 IN C200TC1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
<br />
Figure 21 (Part 3 of 5). JCL to Create Database, Tablespaces & Execute Grant<br />
Statements<br />
Chapter 7. Migrating and Copying <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company Data 53
54 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
<br />
CREATE TABLESPACE TD0001 IN C200TD1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TI0001 IN C200TI1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TR0001 IN C200TR1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TS0001 IN C200TS1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE TU0001 IN C200TU1 BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
CREATE TABLESPACE OTHR01 IN C200OTHR BUFFERPOOL BP4<br />
USING STOGROUP BAANGRP<br />
PRIQTY 25000 SECQTY 50000<br />
LOCKSIZE ROW SEGSIZE 32 CL<strong>OS</strong>E NO;<br />
COMMIT;<br />
<br />
Figure 21 (Part 4 of 5). JCL to Create Database, Tablespaces & Execute Grant<br />
Statements
GRANT DBADM ON DATABASE C200TG1 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TG2 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TG3 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TTT TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TP1 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TP2 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TP3 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TF1 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TF2 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TF3 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200BA1 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200CP1 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200CT1 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200PS1 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TC1 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TD1 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TI1 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TR1 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TS1 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TU1 TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200OTHR TO BSPGRP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TG1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TG2 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TG3 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TTT TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TP1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TP2 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TP3 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TF1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TF2 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TF3 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200BA1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200CP1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200CT1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200PS1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TC1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TD1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TI1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TR1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TS1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200TU1 TO BSP WITH GRANT OPTION;<br />
GRANT DBADM ON DATABASE C200OTHR TO BSP WITH GRANT OPTION;<br />
GRANT USE OF STOGROUP BAANGRP2 TO BSP;<br />
GRANT USE OF STOGROUP BAANGRP3 TO BSP;<br />
GRANT USE OF STOGROUP BAANGRP2 TO BSPGRP;<br />
GRANT USE OF STOGROUP BAANGRP3 TO BSPGRP;<br />
//<br />
<br />
Figure 21 (Part 5 of 5). JCL to Create Database, Tablespaces & Execute Grant<br />
Statements<br />
Notes:<br />
a. We assumed that executing the GRANT TO GROUP BSPGRP for these new<br />
tables would then allow user ID bsp (which is part of bspgrp) to have<br />
access to these new tables. This did not work and we had to grant bsp<br />
privileges <strong>on</strong> these new tables. We needed to set up DB2 sec<strong>on</strong>dary<br />
authority.<br />
b. To speed up the largest dump file we used the opti<strong>on</strong> DEFER YES <strong>on</strong> the<br />
tg tables. Using this opti<strong>on</strong> meant that the indexes were not populated<br />
during the load phase. At the end of this job we ran the following DB2<br />
Chapter 7. Migrating and Copying <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company Data 55
utility to recover the indexes. This certainly decreased the time required<br />
to load this company and the recovery job ran quickly as well. Figure 22<br />
<strong>on</strong> page 56 shows the JCL we used to recover the indexes.<br />
As previously described in 6.3.1, “Create the Sequential Dump” <strong>on</strong> page 45,<br />
DEFER YES should not be used in the initial load of Company 000 when you<br />
are using the install6.1 or install6.2 script, but can be used when moving<br />
companies.<br />
If you use DEFER YES as an opti<strong>on</strong> when loading a company using <str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
tools or when moving a company, you must run the DB2 REBUILD utility to<br />
rebuild the indexes.<br />
4. Figure 22 shows the JCL we used to rebuild the indexes for the tg<br />
applicati<strong>on</strong>.<br />
<br />
//RECOVTG1 JOB ,,TIME=NOLIMIT,<br />
// REGION=0M,MSGCLASS=H,NOTIFY=&SYSUID<br />
/*JOBPARM SYSAFF=*<br />
//JOBLIB DD DISP=SHR,DSN=SYS1.DSN510.SDSNLOAD<br />
//*----------------------------------------------------------------<br />
//* RECOVER INDEX AFTER LOAD<br />
//*----------------------------------------------------------------<br />
//RBLDDB1 EXEC PGM=DSNUTILB,PARM=DSN<br />
//SYSPRINT DD SYSOUT=*<br />
//UTPRINT DD SYSOUT=*<br />
//SYSIN DD *<br />
REBUILD INDEX (ALL) TABLESPACE C200TG1.TG0001<br />
/*<br />
//<br />
//RECOVTG2 JOB ,,TIME=NOLIMIT,<br />
// REGION=0M,MSGCLASS=H,NOTIFY=&SYSUID<br />
/*JOBPARM SYSAFF=*<br />
//JOBLIB DD DISP=SHR,DSN=SYS1.DSN510.SDSNLOAD<br />
//*----------------------------------------------------------------<br />
//* RECOVER INDEX AFTER LOAD<br />
//*----------------------------------------------------------------<br />
//RBLDDB1 EXEC PGM=DSNUTILB,PARM=DSN<br />
//SYSPRINT DD SYSOUT=*<br />
//UTPRINT DD SYSOUT=*<br />
//SYSIN DD *<br />
REBUILD INDEX (ALL) TABLESPACE C200TG2.TG0002<br />
/*<br />
//<br />
//RECOVTG3 JOB ,,TIME=NOLIMIT,<br />
// REGION=06M,MSGCLASS=H,NOTIFY=&SYSUID<br />
/*JOBPARM SYSAFF=*<br />
//JOBLIB DD DISP=SHR,DSN=SYS1.DSN510.SDSNLOAD<br />
//*----------------------------------------------------------------<br />
//* RECOVER INDEX AFTER LOAD<br />
//*----------------------------------------------------------------<br />
//RBLDDB1 EXEC PGM=DSNUTILB,PARM=DSN<br />
//SYSPRINT DD SYSOUT=*<br />
//UTPRINT DD SYSOUT=*<br />
//SYSIN DD *<br />
REBUILD INDEX (ALL) TABLESPACE C200TG3.TG0003<br />
/*<br />
//<br />
<br />
Figure 22. JCL to Rebuild the Indexes<br />
56 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences
Again, as previously described in 6.3.1, “Create the Sequential Dump” <strong>on</strong><br />
page 45, to move the dump data, the bdbpost6.1 program was executed for<br />
the 14 packages.<br />
We had a S/<strong>390</strong> with 6 CPUs, so we ran five or six bdbpost6.1 jobs at a time<br />
in an <strong>on</strong>line mode. This made much more efficient use of the S/<strong>390</strong>. We<br />
thought the time to run the move of the tg applicati<strong>on</strong> could be half of the<br />
original 15 hours as it was 7.5 MB of the 15 MB of data. But in fact with the<br />
DEFER=YES opti<strong>on</strong>, the time was less than 30 minutes.<br />
There was another opti<strong>on</strong> that we did not use as the 30 minutes was<br />
satisfactory: there is a bdbsplit job that would have allowed us to split up the<br />
7.5 MB dump and to start three jobs to load the tg company into the three<br />
databases we set up up for the tg package.<br />
An example of the bdbsplit job is included here in case you have to further<br />
reduce your time to move date. This has been tested and used in the<br />
benchmark runs.<br />
<br />
bdbsplit filename (sequential dump)<br />
<br />
5. RUNSTATS JCL - l<strong>on</strong>g job<br />
After the 14 move jobs had completed, we had to run RUNSTATS as follows:<br />
<br />
//RUNSTAT JOB ,,TIME=NOLIMIT,<br />
// REGION=0M,MSGCLASS=H,NOTIFY=&SYSUID<br />
/*JOBPARM SYSAFF=*<br />
//JOBLIB DD DISP=SHR,DSN=SYS1.DSN510.SDSNLOAD<br />
//*----------------------------------------------------------------<br />
//* COMPANY 000 DATABASE C000DB1<br />
//*----------------------------------------------------------------<br />
//RUNSDB1 EXEC PGM=DSNUTILB,PARM=DSN<br />
//SYSPRINT DD SYSOUT=*<br />
//UTPRINT DD SYSOUT=*<br />
//SYSIN DD *<br />
RUNSTATS TABLESPACE C200TG1.TG0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TG2.TG0002 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TG3.TG0003 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TTT.TTTX01 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TP1.TP0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TP2.TP0002 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TP3.TP0003 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TF1.TF0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TF2.TF0002 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TF3.TF0003 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200BA1.BA0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200CP1.CP0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200CT1.CT0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200PS1.PS0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TC1.TC0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TD1.TD0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TI1.TI0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TR1.TR0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TS1.TS0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TU1.TU0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200OTHR.OTHR01 TABLE INDEX SHRLEVEL CHANGE<br />
/*<br />
//<br />
<br />
6. RUNSTATS JCL - <strong>on</strong>e of the short jobs<br />
We found it was better to split the runstats into 14 jobs so they could run<br />
simultaneously. Three of these jobs are shown as follows:<br />
Chapter 7. Migrating and Copying <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Company Data 57
7.2 Problem with Creator ID<br />
58 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
<br />
//STATTG JOB ,,TIME=NOLIMIT,<br />
// REGION=0M,MSGCLASS=H,NOTIFY=&SYSUID<br />
/*JOBPARM SYSAFF=*<br />
//JOBLIB DD DISP=SHR,DSN=SYS1.DSN510.SDSNLOAD<br />
//*----------------------------------------------------------------<br />
//* COMPANY 000 DATABASE C000DB1<br />
//*----------------------------------------------------------------<br />
//RUNSDB1 EXEC PGM=DSNUTILB,PARM=DSN<br />
//SYSPRINT DD SYSOUT=*<br />
//UTPRINT DD SYSOUT=*<br />
//SYSIN DD *<br />
RUNSTATS TABLESPACE C200TG1.TG0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TG2.TG0002 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TG3.TG0003 TABLE INDEX SHRLEVEL CHANGE<br />
//STATTT JOB ,,TIME=NOLIMIT,<br />
// REGION=0M,MSGCLASS=H,NOTIFY=&SYSUID<br />
/*JOBPARM SYSAFF=*<br />
//JOBLIB DD DISP=SHR,DSN=SYS1.DSN510.SDSNLOAD<br />
//*----------------------------------------------------------------<br />
//* COMPANY 000 DATABASE C000DB1<br />
//*----------------------------------------------------------------<br />
//RUNSDB1 EXEC PGM=DSNUTILB,PARM=DSN<br />
//SYSPRINT DD SYSOUT=*<br />
//UTPRINT DD SYSOUT=*<br />
//SYSIN DD *<br />
RUNSTATS TABLESPACE C200TTT.TTTX01 TABLE INDEX SHRLEVEL CHANGE<br />
//STATTF JOB ,,TIME=NOLIMIT,<br />
// REGION=0M,MSGCLASS=H,NOTIFY=&SYSUID<br />
/*JOBPARM SYSAFF=*<br />
//JOBLIB DD DISP=SHR,DSN=SYS1.DSN510.SDSNLOAD<br />
//*----------------------------------------------------------------<br />
//* COMPANY 000 DATABASE C000DB1<br />
//*----------------------------------------------------------------<br />
//RUNSDB1 EXEC PGM=DSNUTILB,PARM=DSN<br />
//SYSPRINT DD SYSOUT=*<br />
//UTPRINT DD SYSOUT=*<br />
//SYSIN DD *<br />
RUNSTATS TABLESPACE C200TF1.TF0001 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TF2.TF0002 TABLE INDEX SHRLEVEL CHANGE<br />
RUNSTATS TABLESPACE C200TF3.TF0003 TABLE INDEX SHRLEVEL CHANGE<br />
<br />
At this point there was a job to run using <str<strong>on</strong>g>Baan</str<strong>on</strong>g> tools to complete the<br />
verificati<strong>on</strong> of the packages, that all the tables were loaded, and, if a table<br />
was missing, to create it so the package was complete.<br />
We found that Company 200 tables were owned by BSP, not DB2BAAN, which<br />
was the group name in the db2group file.<br />
We had to redo these steps because the first time, we used the uppercase name<br />
GROUP (instead of lowercase group) in the db2_storage file, so <str<strong>on</strong>g>Baan</str<strong>on</strong>g> used the<br />
TSO user ID BSP as the owner instead of the group name DB2BAAN.
Chapter 8. Backup and Recovery of <str<strong>on</strong>g>Baan</str<strong>on</strong>g> DB2 Databases<br />
This chapter addresses the DB2 recovery plans of <strong>on</strong>e <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV user. The<br />
following recovery envir<strong>on</strong>ments are addressed by this user's plan:<br />
Normal DB2 Backup and Recovery<br />
This addresses recovery to currency or recovery through the last completed<br />
DB2 unit of recovery that was logged.<br />
Point-in-Time Recovery<br />
This represented the major piece of this user's planning.<br />
Disaster Recovery<br />
The user's disaster recovery plans are reas<strong>on</strong>able and uncomplicated. The<br />
plans were in development at the time of our analysis, c<strong>on</strong>sequently they are<br />
presented at a brief overview level.<br />
8.1 User's Primary Recovery Objectives<br />
The user's primary objective was to develop a general recovery strategy that<br />
would address the needs of recovery to currency, point-in-time recovery, and<br />
disaster recovery. The biggest challenge was point-in-time recovery. From the<br />
strategy to address point-in-time recovery, the requirements for recovery to<br />
currency and disaster recovery were also addressed.<br />
The user's recovery plans are discussed as follows:<br />
A point-in-time overview<br />
This overview presents the opti<strong>on</strong>s available. Since point-in-time recovery is<br />
the biggest challenge, this secti<strong>on</strong> is addressed in the greatest detail.<br />
The user's point-in-time recovery strategy<br />
The user's strategy follows from the available opti<strong>on</strong>s and his objectives.<br />
The user's recovery to currency and disaster recovery strategy<br />
These are discussed as a logical c<strong>on</strong>sequence of his point-in-time strategy.<br />
8.2 DB2/<str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV Point-in-Time Recovery Overview<br />
This overview of point-in-time recovery opti<strong>on</strong>s is excerpted from Chapter 7 of<br />
ITSO Redbook Installing <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong>, SG24-5334. You may<br />
refer to that publicati<strong>on</strong> for additi<strong>on</strong>al point-in-time recovery recommendati<strong>on</strong>s.<br />
The usual reas<strong>on</strong> for a point-in-time recovery is an applicati<strong>on</strong> programming<br />
error or a flawed operati<strong>on</strong>al procedure. Unfortunately, this exposure is always<br />
present regardless of your hardware/software c<strong>on</strong>figurati<strong>on</strong>. Additi<strong>on</strong>ally, a<br />
point-in-time recovery has the potential to be the most disruptive outage you are<br />
likely to encounter.<br />
The reas<strong>on</strong> is that in a <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV envir<strong>on</strong>ment, you may have to recover all of the<br />
table spaces and indexes to a prior point in time. Why possibly all objects?<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> does dynamic SQL. You may not be able to determine a subset of tables<br />
to be recovered. To play it safe, you may decide to recover all objects to a prior<br />
© Copyright <strong>IBM</strong> Corp. 1999 59
point of c<strong>on</strong>sistency. Your usual point-in-time recovery techniques, which you<br />
likely regard as c<strong>on</strong>venti<strong>on</strong>al at this time, may be insufficient in this envir<strong>on</strong>ment.<br />
The following secti<strong>on</strong>s discuss point-in-time recovery preventive measures and<br />
point-in-time recovery techniques.<br />
8.2.1 Point-In-Time Recovery Preventive Measures<br />
A failure in applicati<strong>on</strong> development (such as introducing a programming defect)<br />
or in operati<strong>on</strong>al procedures (perhaps by running a job twice) introduces the<br />
requirement for point-in-time recovery. The available preventive measures are<br />
increased attenti<strong>on</strong> to the following areas:<br />
Change management<br />
Problem management<br />
Testing<br />
Each of these disciplines is procedure-oriented and management-driven. As<br />
attenti<strong>on</strong> to these disciplines is increased, the need for point-in-time recovery is<br />
usually decreased. Unfortunately, the need for point-in-time recovery is never<br />
entirely eliminated. C<strong>on</strong>sequently, you will want to make every effort to avoid<br />
having to do a point-in-time recovery, but you should be prepared to do <strong>on</strong>e if<br />
required.<br />
8.2.2 Point-In-Time Recovery Techniques<br />
The c<strong>on</strong>cept behind point-in-time recovery is well understood. It usually involves<br />
setting a table or group of tables to a prior point in time when data was<br />
determined to be c<strong>on</strong>sistent. The challenge in the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV envir<strong>on</strong>ment is<br />
determining the set of tables that are logically related. It is possible that you will<br />
not be able to determine a subset of the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV tables to be reset. You may be<br />
required to reset all <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV tables to a prior point of c<strong>on</strong>sistency. There are<br />
three generally used techniques to effect a point-in-time recovery:<br />
60 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
1. Point-in-time recovery using DB2 utilities<br />
The DB2 Quiesce and Copy utilities are the primary tools.<br />
2. Point-in-time recovery not using DB2 utilities<br />
This is basically a dump/restore scenario.<br />
3. Point-in-time recovery using user-written applicati<strong>on</strong> programs<br />
8.2.2.1 Point-In-Time Recovery Using DB2 Utilities<br />
The scenario for a point-in-time recovery using DB2 utilities is:<br />
Determine the set of tables that are logically related.<br />
Typically this is a subset of the tables that make up the applicati<strong>on</strong> database.<br />
However, it may be all <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV table spaces and indexes.<br />
Execute the QUIESCE utility <strong>on</strong> all of the tables that are candidates to be<br />
reset if a point-in-time recovery is required.<br />
This establishes a point of c<strong>on</strong>sistency and causes the DB2 buffers for the<br />
quiesced tables to be externalized to DASD.<br />
Execute the COPY utility <strong>on</strong> all of the table spaces that are candidates to be<br />
reset if a point-in-time recovery is required.
The obvious reas<strong>on</strong> for this step is to back up the data. However, COPY will<br />
fail if it cannot externalize the DB2 buffers to DASD. That is the reas<strong>on</strong> we<br />
invoked the QUIESCE utility first (to remove <strong>on</strong>e reas<strong>on</strong> why COPY may fail).<br />
For the sec<strong>on</strong>d time, execute the QUIESCE utility <strong>on</strong> all of the tables that are<br />
candidates to be reset if a point-in-time recovery is required.<br />
This invocati<strong>on</strong> of QUIESCE will establish a log RBA which will be the point<br />
of c<strong>on</strong>sistency.<br />
When it is necessary to recover to this point of c<strong>on</strong>sistency, RECOVER to the<br />
RBA established by the sec<strong>on</strong>d invocati<strong>on</strong> of the QUIESCE utility.<br />
With the combinati<strong>on</strong> of the COPY and the sec<strong>on</strong>d QUIESCE, the RECOVER<br />
TORBA will perform as efficiently as a RECOVER TOCOPY would perform,<br />
assuming no logging during the executi<strong>on</strong> of this scenario.<br />
When it is necessary to recover to this point of c<strong>on</strong>sistency, RECOVER all<br />
indexes <strong>on</strong> all of the tables that have been reset to the prior point of<br />
c<strong>on</strong>sistency. The indexes must be synchr<strong>on</strong>ized with the data in the<br />
recovered table spaces.<br />
The benefits of this scenario are:<br />
There is minimal disrupti<strong>on</strong> to the user in preparing for the scenario.<br />
The user may see some slowness in resp<strong>on</strong>se during the executi<strong>on</strong> of the<br />
QUIESCE utility, but this can likely be scheduled during off-hours to minimize<br />
the disrupti<strong>on</strong>.<br />
There is no disrupti<strong>on</strong> to the user when COPY is run with Share-Level<br />
Change.<br />
COPY — Share-Level Change allows updates c<strong>on</strong>current with utility<br />
executi<strong>on</strong>.<br />
The recovery of the table spaces will be efficient.<br />
RECOVER TORBA will perform as well as RECOVER TOCOPY, assuming no<br />
logging between the executi<strong>on</strong> of the COPY utility and the sec<strong>on</strong>d executi<strong>on</strong><br />
of QUIESCE.<br />
However, there is a significant disadvantage to this scenario: the requirement to<br />
recover potentially many indexes may make this scenario impractical.<br />
8.2.2.2 Point-In-Time Recovery Not Using DB2 Utilities<br />
This scenario will use a DB2 command and a dump/restore utility program.<br />
Determine the set of tables that are logically related.<br />
Typically this is a subset of the tables that make up the applicati<strong>on</strong> database.<br />
However, in the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV envir<strong>on</strong>ment, it may be all of the tables.<br />
Use the DB2 Stop Database command to stop all of the table spaces that are<br />
logically related.<br />
The Stop Database command will cause the DB2 buffers to be externalized<br />
and will cause the VSAM data sets that hold the DB2 data to be closed.<br />
While the table spaces are stopped, the data will be unavailable to users.<br />
Dump the table space and index data sets using your installati<strong>on</strong> high-speed<br />
dump utility.<br />
Chapter 8. Backup and Recovery of <str<strong>on</strong>g>Baan</str<strong>on</strong>g> DB2 Databases 61
You may c<strong>on</strong>sider using SnapShot, a program product that runs with the <strong>IBM</strong><br />
RAMAC Virtual Array. The dumped data sets represent your point of<br />
c<strong>on</strong>sistency.<br />
When it is necessary to recover to this point of c<strong>on</strong>sistency, restore the data<br />
sets that were dumped in the previous step.<br />
Because the table spaces are stopped, there will be no outstanding units of<br />
recovery, and the data will be c<strong>on</strong>sistent. The data being restored c<strong>on</strong>sists<br />
of both the table spaces and the associated indexes.<br />
This scenario is more efficient than the previous <strong>on</strong>e, but preparing for it is more<br />
disruptive to the user. The data is unavailable to the user while the table spaces<br />
are stopped and while the data is being dumped. The durati<strong>on</strong> of the period that<br />
data is unavailable can be lessened by using SnapShot.<br />
8.2.2.3 Point-In-Time Recovery Using User-Written App. Programs<br />
This is a strategic directi<strong>on</strong> and not a scenario. It acknowledges that data can<br />
be corrupted due to program error. If this happens, the support staff may<br />
attempt to correct the c<strong>on</strong>taminated data with applicati<strong>on</strong> programs. Failing the<br />
ability to correct the data with applicati<strong>on</strong> programming, a scenario such as <strong>on</strong>e<br />
of those previously described could be used as a last resort. This approach is<br />
gaining favor am<strong>on</strong>g users striving for high availability.<br />
In implementing an approach like this, it is important to determine which<br />
transacti<strong>on</strong>s will make the data more corrupt or will propagate the errors. This<br />
informati<strong>on</strong> then can either be communicated to the end users, or the DBA can<br />
use it to disable the dangerous transacti<strong>on</strong>s.<br />
8.3 User's Point-in-Time Recovery Strategy<br />
62 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
The user decided to implement a dual point-in-time recovery strategy. Their<br />
primary strategy is discussed in 8.2.2.2, “Point-In-Time Recovery Not Using DB2<br />
Utilities” <strong>on</strong> page 61. The user will, <strong>on</strong> a daily basis, snap the <str<strong>on</strong>g>Baan</str<strong>on</strong>g>/DB2 data.<br />
They have a RAMAC Virtual Array with the SnapShot capability. This is their<br />
preferred point-in-time recovery strategy. The issue at the time of our analysis<br />
was that this user had not finalized the decisi<strong>on</strong> to keep the RAMAC Virtual<br />
Array.<br />
The sec<strong>on</strong>dary point-in-time recovery strategy is discussed in 8.2.2.1,<br />
“Point-In-Time Recovery Using DB2 Utilities” <strong>on</strong> page 60. The user will execute<br />
the preparatory porti<strong>on</strong> of this scenario daily.<br />
This sec<strong>on</strong>dary strategy exists for several reas<strong>on</strong>s:<br />
This scenario will become the primary point-in-time recovery strategy if the<br />
user decides not to keep the RAMAC Virtual Array.<br />
This offers an opti<strong>on</strong> when point-in-time recovery is needed.<br />
It is possible that, based up<strong>on</strong> the time of the backup, this sec<strong>on</strong>dary<br />
scenario could be used if it would minimize the amount of lost data.<br />
Although the timing of the executi<strong>on</strong> of the scenarios had not been<br />
determined, if the primary scenario was executed at midnight and the<br />
sec<strong>on</strong>dary scenario was executed at no<strong>on</strong>, and if a failure occurred in the<br />
early afterno<strong>on</strong>, this sec<strong>on</strong>dary scenario would cause less loss of work.
The image copies taken in this sec<strong>on</strong>dary scenario serve the requirements of<br />
recovery to currency.<br />
The combinati<strong>on</strong> of the image copies and the quiesce point produced by this<br />
sec<strong>on</strong>dary strategy serve as a starting point for the disaster recovery<br />
scenario.<br />
With this dual strategy, the user has two point-in-time recovery opti<strong>on</strong>s, and is<br />
positi<strong>on</strong>ed to address the needs of the recovery-to-currency requirement and the<br />
disaster recovery requirement.<br />
8.4 User's Recovery to Currency Strategy<br />
The user's strategy here is to be prepared. They prepare by taking daily image<br />
copies of the <str<strong>on</strong>g>Baan</str<strong>on</strong>g>/DB2 data. The image copies are taken in the sec<strong>on</strong>dary<br />
point-in-time recovery scenario previously discussed.<br />
8.5 User's Disaster Recovery Strategy<br />
The sec<strong>on</strong>dary point-in-time recovery strategy addresses the needs for disaster<br />
recovery as well. The image copies and the Quiesce from the sec<strong>on</strong>dary<br />
point-in-time scenario will enable a disaster scenario. Of course, the user must<br />
address additi<strong>on</strong>al issues in the disaster recovery scenario, like getting a copy of<br />
the DB2 logs off site. Those additi<strong>on</strong>al issues were work in process during our<br />
analysis.<br />
Chapter 8. Backup and Recovery of <str<strong>on</strong>g>Baan</str<strong>on</strong>g> DB2 Databases 63
64 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences
Chapter 9. Migrati<strong>on</strong> to a New <str<strong>on</strong>g>Baan</str<strong>on</strong>g>IVc Porting Set<br />
From time to time, a new release of the porting set (the platform-dependent<br />
code) will be released. The porting set that is current at the time of writing is<br />
PA.0868.<br />
The set of instructi<strong>on</strong>s described in this chapter have been generalized to show<br />
the steps that must be performed to update the porting set code. These are<br />
based <strong>on</strong> the first refresh of the porting set that was released in March 1999.<br />
The original document was intended for use by <str<strong>on</strong>g>Baan</str<strong>on</strong>g>IVc customers <strong>on</strong> <strong>OS</strong>/<strong>390</strong> to<br />
assist them in migrating from the GA (9/98) level of <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> code to the<br />
first refresh (3/99). Major changes in that refresh included:<br />
The EBCDIC file model<br />
A new C<strong>on</strong>necti<strong>on</strong> Manager level (delivered via PTFs UW54946 and UW56882)<br />
A new Process Manager level (delivered via PTF UW56015)<br />
These steps are included here to give you a method to follow for future refreshes<br />
of the porting set. The porting set does not touch any of the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> applicati<strong>on</strong>s<br />
code.<br />
The steps to perform are:<br />
1. Preinstallati<strong>on</strong> verificati<strong>on</strong><br />
2. Migrati<strong>on</strong> and installati<strong>on</strong><br />
3. Verificati<strong>on</strong><br />
Note: There were additi<strong>on</strong>al files <strong>on</strong> the CD-ROM that were not needed just<br />
for migrating to the new porting set. They were <strong>on</strong> the CD-ROM to provide a<br />
complete porting set.<br />
Some problems we encountered were:<br />
A globlvar problem.<br />
We had a globlvar problem that was resolved by doing a find command<br />
for globlvar and placing the directory path in $LIBPATH.<br />
A shared memory problem.<br />
We had a shared memory problem that was resolved by changing the<br />
shm_param from <strong>OS</strong> <strong>390</strong> 2.5 to <strong>OS</strong> <strong>390</strong> 2.6.<br />
Format of .profile files.<br />
The .profile files were originally in EBCDIC, so when we did the<br />
ACSII-to-EBCDIC c<strong>on</strong>versi<strong>on</strong> we had to first move the .profile files and<br />
later restore them to the original EBCDIC format. This <strong>on</strong>ly happens if<br />
the user profile is part of $BSE.<br />
The license needs to be c<strong>on</strong>verted to EBCDIC.<br />
The brand6.1 file needed to be c<strong>on</strong>verted from ASCII to EBCDIC.<br />
The new plan needs to have the bind job run and the grant statements<br />
executed.<br />
We could log <strong>on</strong> with the ba client but not with the bw client.<br />
We had changed the inetd.c<strong>on</strong>f file, but needed to recycle TCP/IP for this<br />
to take effect.<br />
© Copyright <strong>IBM</strong> Corp. 1999 65
9.1 Pre-Installati<strong>on</strong> Verificati<strong>on</strong><br />
We could not log <strong>on</strong> with the bw client and user ID bsp.<br />
We had set up a separate plan with dynamicrules(run) for user ID bsp to<br />
be able to load companies. We needed to bind this plan and run the<br />
grant job for this sec<strong>on</strong>d plan called CMXPRUN. We realized that bsp<br />
was using this plan because when we issued the command echo CMXCONF<br />
it showed the value CMXRUN.CONF. We knew that there were two CMX<br />
c<strong>on</strong>figurati<strong>on</strong> files and that both plans needed to have the rebinds and<br />
grants d<strong>on</strong>e.<br />
Plan for some extra DASD space. We recommend reserving about 200 MB for<br />
obtaining the new refresh copy of the porting set. Furthermore, you will<br />
temporarily need an extra <str<strong>on</strong>g>Baan</str<strong>on</strong>g> envir<strong>on</strong>ment (HFS files). To assess how much<br />
DASD you will need for this temporary <str<strong>on</strong>g>Baan</str<strong>on</strong>g> envir<strong>on</strong>ment, check to see how<br />
many HFSs you have for the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> runtime, and the sizes of each.<br />
For example, if you have three HFSs in your <str<strong>on</strong>g>Baan</str<strong>on</strong>g> runtime envir<strong>on</strong>ment<br />
(/baanIV/bse/, /baanIV/dict, and /baanIV/bse/audit), you should check the sizes<br />
of each HFS and allocate three additi<strong>on</strong>al HFSs of the same size. In this<br />
redbook, the current runtime means your existing <str<strong>on</strong>g>Baan</str<strong>on</strong>g> runtime envir<strong>on</strong>ment<br />
(/baanIV in our example). The newly allocated HFSs are referred to in this<br />
redbook as the new runtime.<br />
9.1.1 Plan for Some Downtime<br />
We think you should be able to migrate in half a day. You can choose to be<br />
down during all those hours (this is the safest way, and will prevent eventual<br />
loss of log files), or just during cutover (this is not recommended).<br />
9.2 Migrati<strong>on</strong> and Installati<strong>on</strong><br />
We recommend that <str<strong>on</strong>g>Baan</str<strong>on</strong>g> be down during migrati<strong>on</strong>. To stop <str<strong>on</strong>g>Baan</str<strong>on</strong>g>, make sure<br />
no <strong>on</strong>e is active by issuing the command ps -ef | grep bshell. This should<br />
return <strong>on</strong>ly your own command. Change directory to your $BSE/etc directory,<br />
and issue the rc.stop command. This should close shared memory, and the<br />
printer and license daem<strong>on</strong>s.<br />
Ensure that all <str<strong>on</strong>g>Baan</str<strong>on</strong>g> users are logged off, shared memory is down, and the<br />
Process Manager is down.<br />
Migrating from the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IVc <strong>on</strong> <strong>OS</strong>/<strong>390</strong> GA deliverable involves changes to:<br />
C<strong>on</strong>necti<strong>on</strong> Manager<br />
Process Manager<br />
DB2<br />
<strong>OS</strong>/<strong>390</strong><br />
66 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> Runtime<br />
Perform the following steps to do the migrati<strong>on</strong>:
9.2.1 C<strong>on</strong>necti<strong>on</strong> Manager Changes<br />
1. Save your current DBRMLIB as a backup (for example, if your current<br />
dbrmlib is CMX.SCMXDBRM, save it as CMX.SCMXDBRM.GA).<br />
2. Install PTFs UW54946 (APAR OW36187) and UW56882 (APAR OW37302). You<br />
can REBIND the DBRMLIB after applying UW56882. APAR OW37302 has<br />
++HOLD data that c<strong>on</strong>tains informati<strong>on</strong> about the installati<strong>on</strong> procedure.<br />
You should look at the ++HOLD data carefully, as it c<strong>on</strong>tains pertinent<br />
C<strong>on</strong>necti<strong>on</strong> Manager setup informati<strong>on</strong> related specifically to the APAR.<br />
Both APARs have ++HOLD data.<br />
Note: The code c<strong>on</strong>tained in the <strong>OS</strong>/<strong>390</strong> UNIX System Services C<strong>on</strong>necti<strong>on</strong><br />
Scaling kit is integrated into the <strong>OS</strong>/<strong>390</strong> base starting in <strong>OS</strong>/<strong>390</strong> Versi<strong>on</strong> 2,<br />
Release 7, but the fixes listed are still required.<br />
3. Make sure that /usr/lpp/cmx/lib is included in the $LIBPATH envir<strong>on</strong>ment<br />
variable of each user (this is also in ++HOLD data for OW36187). For<br />
example, export LIBPATH=/usr/lpp/cmx/lib:$LIBPATH.<br />
4. Rerun the CMXBIND JCL to bind the DBRMLIB from the APAR installati<strong>on</strong> to<br />
a plan name, or multiple plan names if you have <strong>on</strong>e plan bound with<br />
DYNAMICRULES(RUN) and <strong>on</strong>e with DYNAMICRULES(BIND).<br />
5. Update your CMX c<strong>on</strong>fig file (the default is /etc/cmx/cmx.c<strong>on</strong>f). You may<br />
have a c<strong>on</strong>fig file specified with the CMXCONF envir<strong>on</strong>ment variable, and<br />
this file needs to be changed as well. The item in the c<strong>on</strong>fig files to change<br />
is DB2PlanName.<br />
6. Update DB2PlanName with the plan name from the bind job.<br />
7. Using a JCL job, or using DB2 SPUFI, you must grant authority to the plan<br />
names you have chosen.<br />
9.2.2 Process Manager Changes<br />
1. Install PTF UW56015. This supersedes all previous Process Manager PTFs.<br />
2. Look at the ++HOLD data and proceed as root, which means at least read<br />
access to the BPX.FILEATTR.PROGCTL RACF facility class profile. This is<br />
required to change extended attributes that are “program-c<strong>on</strong>trolled.”<br />
3. Make sure that envir<strong>on</strong>ment variables are exported as required. For<br />
example,<br />
export PATH=/usr/lpp/bpa/bin:/usr/lpp/bpa/samples:${PATH}<br />
export LIBPATH=/usr/lpp/bpa/lib:${LIBPATH}<br />
export NLSPATH=/usr/lpp/bpa/lib:${NLSPATH}<br />
4. Run the script /usr/lpp/bpa/samples/post_inst_bpa, which backs up your<br />
current c<strong>on</strong>figurati<strong>on</strong> to /etc/bpa/bpares.old and changes the<br />
“program-c<strong>on</strong>trolled” extended file attributes of the Process Manager<br />
executables and dll.<br />
5. Update your Process Manager c<strong>on</strong>fig file /etc/bpa/bpares.cfg.<br />
9.2.3 DB2 Changes<br />
1. Install PTFs UQ18604, UQ19012 (APAR PQ14391), and UQ19292. Read the<br />
informati<strong>on</strong> in APAR PQ14391 to learn about the use of the storage<br />
c<strong>on</strong>tracti<strong>on</strong> support shipped via that APAR.<br />
Chapter 9. Migrati<strong>on</strong> to a New <str<strong>on</strong>g>Baan</str<strong>on</strong>g>IVc Porting Set 67
2. If EUR dates are preferred, change the appropriate DB2 DSNHDECP<br />
parameter for date format (DATE=EUR), run the ZPARM job, and recycle<br />
DB2.<br />
3. If the DB2 date format is changed via ZPARM, the following line must be<br />
added to the CMX c<strong>on</strong>fig file /etc/cmx/cmx.c<strong>on</strong>f:<br />
CCSID“<br />
DB2ccsid=819<br />
DB2datefmt=EUR<br />
The new parameter must match the DB2 setting. The opti<strong>on</strong>s are ISO, EUR,<br />
USA, and JIS; the default is ISO.<br />
9.2.4 <strong>OS</strong>/<strong>390</strong> Changes<br />
1. For <strong>OS</strong>/<strong>390</strong> Versi<strong>on</strong> 2 Release 6 (5647-A01), install PTFs UW49691, UW53341,<br />
UW51307, and UW54393.<br />
2. For <strong>OS</strong>/<strong>390</strong> Versi<strong>on</strong> 2 Release 6 Language Envir<strong>on</strong>ment (5647-A01), install<br />
PTFs UQ23194, UQ24359, UQ21379, and UQ24510.<br />
3. If running without Process Manager, and TCP/IP PTF UQ24539 is installed (or<br />
UQ24540 if you are running <strong>OS</strong>/<strong>390</strong> Versi<strong>on</strong> 2, Release 7), you must specify<br />
the -s opti<strong>on</strong> in the rexecd line in /etc/inetd.c<strong>on</strong>f. This will force rexec to<br />
read each user's .profile. For example, the exec line in /etc/inetd.c<strong>on</strong>f<br />
should be changed to add the “s” after the “LV”:<br />
exec stream tcp nowait bpxroot /usr/sbin/orexecd rexecd -LVs<br />
9.2.5 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Runtime HFS Changes<br />
The basic c<strong>on</strong>cept is that there will be a CD or CD snapshot that c<strong>on</strong>tains the<br />
new executables that will eventually replace your existing $BSE/bin c<strong>on</strong>tents.<br />
This is the primary c<strong>on</strong>tent of the refresh. In additi<strong>on</strong>, this refresh will allow all<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> log and text files to be in EBCDIC, so as to avoid future ASCII-to-EBCDIC<br />
c<strong>on</strong>versi<strong>on</strong> issues. This sec<strong>on</strong>d piece is accomplished by creating EBCDIC<br />
copies of each HFS in your current <str<strong>on</strong>g>Baan</str<strong>on</strong>g> runtime structure. Following are the<br />
steps we suggest for both the CD refresh update and the HFS EBCDIC<br />
translati<strong>on</strong>.<br />
68 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
1. In the preinstallati<strong>on</strong> step, you put aside 200 MB of additi<strong>on</strong>al temporary<br />
space in some HFS. Mount this HFS at some mount point outside the<br />
current <str<strong>on</strong>g>Baan</str<strong>on</strong>g> runtime envir<strong>on</strong>ment; for example, let us say that it is mounted<br />
at /usr/<str<strong>on</strong>g>Baan</str<strong>on</strong>g>/refreshIVc. FTP the c<strong>on</strong>tents of the CD (a portset.pax file) to<br />
this HFS. Unpack the file using the command pax -rf portset.pax. This<br />
creates a subdirectory structure in the file system where you issued the<br />
command, as follows: ln.0000/bse/bin.<br />
In our example, /usr/<str<strong>on</strong>g>Baan</str<strong>on</strong>g>/refreshIVc/ln.0000/bse/bin will now c<strong>on</strong>tain the<br />
porting set binaries for the refresh. Leave this as is for now. Later we will<br />
copy this into $BSE/bin.<br />
2. Clean up the current <str<strong>on</strong>g>Baan</str<strong>on</strong>g> file systems (log directory, tmp directory, any<br />
dbs.log file in $BSE, files with “strange names,” and so <strong>on</strong>).<br />
3. In the preinstallati<strong>on</strong> step, you allocated a new HFS with the same attributes<br />
for each HFS that is part of the existing <str<strong>on</strong>g>Baan</str<strong>on</strong>g> runtime. The next step is to<br />
mount these file systems at the appropriate mount points. In our earlier<br />
example, we had three HFSs:<br />
/baanIV/dict<br />
/baanIV/bse/audit
aanIV/bse/<br />
Following this example, you would create three new mount points for the<br />
three new HFSs, such as:<br />
/baanIVebcdic/dict<br />
/baanIVebcdic/bse/audit<br />
/baanIVebcdic/bse/<br />
Create these mount points using the mkdir command:<br />
mkdir /baanIVebcdic/bse<br />
mkdir /baanIVebcdic/dict<br />
mkdir /baanIVebcdic/bse/audit<br />
Then mount the three new HFSs you have created at the appropriate mount<br />
points in the correct order (from the top down). In our example, first mount<br />
the bse HFS at /baanIVebcdic/bse, then the dict HFS at /baanIVebcdic/dict,<br />
and finally the audit HFS at /baanIVebcdic/bse/audit.<br />
Make sure that after they are mounted, the permissi<strong>on</strong> bits <strong>on</strong> the<br />
directories/mount points match what you have in your current runtime<br />
envir<strong>on</strong>ment.<br />
4. Next, copy each of your current runtime HFSs into the associated new <strong>on</strong>e.<br />
However, during the copy, there some c<strong>on</strong>versi<strong>on</strong> needs to be specified. We<br />
suggest copying each HFS separately, from the bottom of the tree to the top.<br />
Note the recommended unmount step prior to copying the topmost HFS. In<br />
our example, this means copying the dict and audit HFS first, then the bse<br />
HFS.<br />
These commands will pax all files in the specified directories. The output is<br />
piped into pax, which will unpax the files to EBCDIC into the new HFSs that<br />
have been created and mounted. All characteristics of the files are<br />
preserved.<br />
Following is the syntax of the commands to use, in the order we suggest<br />
using for the example:<br />
a. Copy and c<strong>on</strong>vert the current dict HFS in /baanIV/dict to<br />
/baanIVebcdic/dict.<br />
pax -wv /baanIV/dict/* | pax -rv -pe -o<br />
from=ISO8859-1,to=<strong>IBM</strong>-1047 -s /baanIV/dict/baanIVebcdic/dict/<br />
b. Copy and c<strong>on</strong>vert the current audit HFS in<br />
/baanIV/bse/audit to /baanIVebcdic/bse/audit<br />
pax -wv /baanIV/bse/audit/* | pax -rv -pe -o<br />
from=ISO8859-1,to=<strong>IBM</strong>-1047 -s<br />
/baanIV/bse/audit/baanIVebcdic/bse/audit/<br />
c. Unmount the dict and audit HFS from the current runtime envir<strong>on</strong>ment:<br />
unmountx /baanIV/dict<br />
unmountx /baanIV/bse/audit<br />
These unmounts can be accomplished using ishell instead of the shell<br />
unmountx command. At this step, if you have other HFSs mounted under<br />
the bse runtime (in our example, /baanIV/bse), copy and c<strong>on</strong>vert these<br />
using the same syntax, and unmount them as well. For example, you<br />
may have a /baanIV/bse/tmp HFS.<br />
d. Then copy and c<strong>on</strong>vert the bse HFS in /baanIV/bse to /baanIVebcdic/bse:<br />
pax -wv /baanIV/bse/* | pax -rv -pe -o<br />
from=ISO8859-1,to=<strong>IBM</strong>-1047 -s /baanIV/bse/baanIVebcdic/bse/<br />
Chapter 9. Migrati<strong>on</strong> to a New <str<strong>on</strong>g>Baan</str<strong>on</strong>g>IVc Porting Set 69
70 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
5. After completi<strong>on</strong>, you will need to copy files that are original EBCDIC files<br />
from the current runtime into the new runtime. All the files in the $BSE/etc<br />
directory should be copied from your current runtime (/baanIV/bse/etc in our<br />
example) to the new runtime (/baanIVebcdic/bse/etc in our example). If they<br />
exist, you should also copy the setbse script in $BSE, the &/period.kshrc, and<br />
the .profile in $BSE from the current runtime to the new <strong>on</strong>e, at the bse<br />
locati<strong>on</strong>. You may also want to copy the $BSE/mswindows directory from the<br />
old to the new runtime.<br />
6. Next you need to copy the porting set refresh code into the new bin<br />
directory.<br />
In Step 1, you FTPed and unpaxed the porting set refresh code into a<br />
temporary HFS of about 200 MB in size. In our example, this was in<br />
/usr/<str<strong>on</strong>g>Baan</str<strong>on</strong>g>/refreshIVc/ln.0000/bse/bin. You will want to copy the entire<br />
c<strong>on</strong>tents of this directory into the bin directory of the new runtime<br />
envir<strong>on</strong>ment. In our example, the bin directory of the new runtime is in<br />
/baanIVebcdic/bse/bin, so copy all files from<br />
/usr/<str<strong>on</strong>g>Baan</str<strong>on</strong>g>/refresh/IVc/ln.0000/bse/bin to /baanIVebcdic/bse/bin.<br />
7. Put the high-use binaries into LPA.<br />
We suggest the following:<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> executables bshell6.1, db2srv61, sort6.1, sh_server6.1<br />
audit_server6.1 globlvar<br />
PM files bpadll, bpassp, bpasspm<br />
CM files cmxdll<br />
There is detailed documentati<strong>on</strong> in the Installati<strong>on</strong> Guide available from<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> the procedure for adding modules to LPA. This documentati<strong>on</strong> has<br />
sample JCL, as well as instructi<strong>on</strong>s <strong>on</strong> how to determine the module name in<br />
the HFS and how to set the sticky bit.<br />
Following are further examples:<br />
To change the sticky bit, use the following commands:<br />
touch xxxxxxx<br />
chown bsp;bsp *<br />
chmod 755 * all members are executable<br />
chmod +t xxxxxx change sticky bit<br />
Effecting changes to LPA<br />
The SETPROG and dynamic LPA can be used to have the LPA changes<br />
take effect. If dynamic LPA is not used, you may need to re-IPL the<br />
system to pick up the LPA changes.<br />
Changing the extended attributes<br />
You must set the extended attributes Program C<strong>on</strong>trol flags for all <str<strong>on</strong>g>Baan</str<strong>on</strong>g>,<br />
PM, and CM executables. First login as root, and then use the following<br />
command <strong>on</strong> the required modules:<br />
extattr +ps modname<br />
or<br />
extattr +ps *<br />
This should be d<strong>on</strong>e for all <str<strong>on</strong>g>Baan</str<strong>on</strong>g> executables in $BSE/bin,<br />
/usr/lpp/bpa/lib/bpadll, /usr/lpp/bpa/bin/bpassp,<br />
/usr/lpp/bpa/bin/bpasspm, and /usr/lpp/cmx/lib/cmxdll.
9.2.6 License<br />
Note: The Process Manager executables and library are set up using the<br />
post_inst_bpa script.<br />
Alter “program-c<strong>on</strong>trolled” bits for additi<strong>on</strong>al <strong>OS</strong>/<strong>390</strong> DB2 libraries by<br />
issuing:<br />
RALTER PROGRAM ** ADDMEM('SYS1.LINKLIB'/'******'/NOPADCHK +<br />
'SYS1.SCEERUN'/'******'/NOPADCHK +<br />
'SYS1.SEZATCP'/'******'/NOPADCHK +<br />
'SYS1.SEZALINK'/'******'/NOPADCHK +<br />
'DSN510.SDSNLOAD'/'BADB20'/NOPADCHK +<br />
'DSN510.SDSNEXIT'/'BADB20'/NOPADCHK +<br />
'DSN510.SDSNLOAD'/'BADB00'/NOPADCHK +<br />
'DSN510.SDSNEXIT'/'BADB00'/NOPADCHK +<br />
'DSN510B.SDSNLOAD'/'BADBNW'/NOPADCHK +<br />
'DSN510B.SDSNEXIT'/'BADBNW'/NOPADCHK) UACC(READ)<br />
8. Unmount HFS.<br />
The next step is to unmount all HFSs bel<strong>on</strong>ging to both the current runtime<br />
and new runtime, and to mount the new runtime envir<strong>on</strong>ment in a top-down<br />
manner over the old mount points. This is d<strong>on</strong>e so that your new runtime<br />
can still preserve the same name. In our example, we would unmount the<br />
following (if not d<strong>on</strong>e already):<br />
Current: /baanIV/dict<br />
/baanIV/bse/audit<br />
/baanIV/bse<br />
New: /baanIVebcdic/dict<br />
/baanIVebcdic/bse/audit<br />
/baanIVebcdic/bse<br />
9. Mount HFS.<br />
Mount each HFS data set associated with the new runtime in the appropriate<br />
place:<br />
mountx /baanIV/bse NAME.OF.NEW.BSE.HFS<br />
mountx /baanIV/bse/dict NAME.OF.NEW.DICT.HFS<br />
mountx /baanIV/bse/audit NAME.OF.NEW.AUDIT.HFS<br />
These mounts can be d<strong>on</strong>e via the ishell instead of the shell mountx<br />
command.<br />
Once the migrati<strong>on</strong> is complete, you may have some license-related error<br />
messages when starting a <str<strong>on</strong>g>Baan</str<strong>on</strong>g> sessi<strong>on</strong>. The following commands, issued by<br />
root, should solve that problem:<br />
cd $BSE/etc<br />
rc.stop_licd<br />
cat /.brand/.brand6.1 | ic<strong>on</strong>v -f ISO8859-1 -t <strong>IBM</strong>-1047 > /.brand/.brand6.1<br />
rc.start_licd<br />
Chapter 9. Migrati<strong>on</strong> to a New <str<strong>on</strong>g>Baan</str<strong>on</strong>g>IVc Porting Set 71
9.2.7 Variable to Be Set<br />
The new porting set requires a new variable to be set in the .profile file of each<br />
user. To ensure that locks <strong>on</strong> the database are released, you should add the<br />
envir<strong>on</strong>ment variable CMX_THREAD_WAIT=0 to the .profile file of the users, and<br />
to the /etc/profile file for root.<br />
9.3 Verificati<strong>on</strong><br />
72 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
You should now be able to restart <str<strong>on</strong>g>Baan</str<strong>on</strong>g> (from the $BSE/etc directory, issue the<br />
rc.start command), and login <str<strong>on</strong>g>Baan</str<strong>on</strong>g> users.<br />
Note: From now <strong>on</strong>, every time you receive a patch from <str<strong>on</strong>g>Baan</str<strong>on</strong>g> to be<br />
implemented in your working envir<strong>on</strong>ment, you must remember to c<strong>on</strong>vert it<br />
from ASCII to EBCDIC prior to installing it. This also applies to dumps developed<br />
<strong>on</strong> a different platform that would be imported to your S/<strong>390</strong> envir<strong>on</strong>ment.
Chapter 10. Using Multiple Databases/LPARs<br />
This chapter describes the alternatives you can use in setting up your<br />
producti<strong>on</strong>, system test and pre-producti<strong>on</strong> (user test) envir<strong>on</strong>ments. The<br />
alternatives described are in order of least-to-most isolati<strong>on</strong>:<br />
One DB2 subsystem, that is, using a single system/LPAR<br />
Several DB2 subsystems <strong>on</strong> <strong>on</strong>e LPAR (system)<br />
Multiple DB2 systems <strong>on</strong> multiple LPARs<br />
Important<br />
A single-system soluti<strong>on</strong> with <strong>on</strong>e DB2 subsystem would be implemented by<br />
using different company numbers for the same functi<strong>on</strong> <strong>on</strong> each of the<br />
different <str<strong>on</strong>g>Baan</str<strong>on</strong>g> systems.<br />
Multiple DB2 subsystems <strong>on</strong> a single system (LPAR) facilitates the handling<br />
of DB2 issues, but does not address situati<strong>on</strong>s that arise from sharing the<br />
same UNIX Systems Services.<br />
Multiple LPARs, each with its own DB2, provides the most isolati<strong>on</strong>, but adds<br />
the additi<strong>on</strong>al work of maintaining the multiple operating systems and all<br />
their ancillary processes and procedures.<br />
There are several points that should be understood before making this decisi<strong>on</strong>.<br />
As <strong>on</strong>e moves from the least isolated to the most isolated alternative, different<br />
issues and soluti<strong>on</strong>s present themselves. The first stage is usually to set up a<br />
pilot or training system, so there will be time to weigh the pros and c<strong>on</strong>s of each<br />
alternative. Our experience leads us to favor multiple DB2s <strong>on</strong> multiple LPARs.<br />
C<strong>on</strong>sider these points when analyzing the alternatives:<br />
A separate DB2 subsystem is recommended just for <str<strong>on</strong>g>Baan</str<strong>on</strong>g> producti<strong>on</strong>. One<br />
key reas<strong>on</strong> for this is that <str<strong>on</strong>g>Baan</str<strong>on</strong>g> handles data integrity, so the separate DB2<br />
subsystem alternative offers the best backup and recovery processes.<br />
Each <str<strong>on</strong>g>Baan</str<strong>on</strong>g> system requires the user ID root and bsp for certain functi<strong>on</strong>s.<br />
Having all <str<strong>on</strong>g>Baan</str<strong>on</strong>g> envir<strong>on</strong>ments <strong>on</strong> the same LPAR would require the<br />
switching of .profiles, thus presenting opportunities for c<strong>on</strong>fusi<strong>on</strong>.<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> licensing is for the aggregate of all systems. If, for example, you have<br />
acquired a license for 50 users, this will include your test and training users,<br />
as well as producti<strong>on</strong> users. You will have to determine how you will share<br />
the license file.<br />
Sharing the shared memory parameters may cause some c<strong>on</strong>flicts. For<br />
example, the C compiler requires HEAP to be zero, while <str<strong>on</strong>g>Baan</str<strong>on</strong>g> requires it to<br />
be 24 M.<br />
10.1 Using One DB2 Subsystem (One System/LPAR)<br />
You can set up several <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Companies in the same DB2 subsystem, which will<br />
allow different users to test different functi<strong>on</strong>s. You can also put <str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
applicati<strong>on</strong> patches <strong>on</strong>ly <strong>on</strong> a particular company so that you can pretest any<br />
applicati<strong>on</strong> changes before affecting all users. You can have a training<br />
company, make a backup copy, and then easily restore it for the next class.<br />
© Copyright <strong>IBM</strong> Corp. 1999 73
10.2 Using Two LPARs<br />
For example, <strong>on</strong>e customer had the following companies:<br />
750 and 550 for <str<strong>on</strong>g>Baan</str<strong>on</strong>g> demo companies<br />
200 to load the data<br />
300 to prepare for producti<strong>on</strong><br />
500 to test <str<strong>on</strong>g>Baan</str<strong>on</strong>g> patches<br />
998 for training<br />
The advantage to using a two-LPAR envir<strong>on</strong>ment is that you can minimize the<br />
impact to users by testing any changes to the following:<br />
<strong>OS</strong>/<strong>390</strong><br />
DB2<br />
The <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Porting Set<br />
TCP/IP<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g><br />
Even in the early implementati<strong>on</strong> stages, the end users will have a lot of testing<br />
and training to do and will not be able to tolerate planned outages, except<br />
possibly during evenings or weekends.<br />
To enable the IT team to progress and to be able to quickly make changes to the<br />
producti<strong>on</strong> envir<strong>on</strong>ment, a test LPAR becomes a necessity. It allows the IT team<br />
to minimize the planned outages, gain much needed experience in this new<br />
envir<strong>on</strong>ment, and become proactive in keeping up with the implementati<strong>on</strong><br />
schedule.<br />
10.2.1 Using RVA and SnapShot to Cl<strong>on</strong>e a Sec<strong>on</strong>d LPAR<br />
An effective way to set up the test LPAR, if you have RVA and SnapShot, is to do<br />
the following:<br />
74 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
1. Set up the hardware to an LPAR envir<strong>on</strong>ment.<br />
2. Snap all the producti<strong>on</strong> envir<strong>on</strong>ment.<br />
A sample job is shown in 10.2.2, “Sample JCL to Produce the Snap and<br />
Cl<strong>on</strong>ed System” <strong>on</strong> page 76.<br />
3. Make the minimal changes to denote a new hostname and new IP address.<br />
Modify the IP address for the new LPAR in the profile data set that is used<br />
when you start TCP/IP. Change the IP address in the HOME and statements.<br />
HOME<br />
9.12.2.14 <strong>OS</strong>AL2160<br />
4. Modify the H<strong>OS</strong>T name in TCPIP.DATA file.<br />
5. Modify the H<strong>OS</strong>T name in /etc/host file.<br />
6. Modify the IP address in /etc/resolv.c<strong>on</strong>f file.<br />
7. Change the snapped volumes ID.<br />
Sample code to do this is shown in 10.2.3, “Rename the Volumes” <strong>on</strong><br />
page 79.
8. IPL the sec<strong>on</strong>d LPAR from the new snapped pack.<br />
You now have a complete cl<strong>on</strong>ed system to work with for the test LPAR.<br />
10.2.1.1 Example<br />
The BAANPROD addresses are 300 to 305 and are named VOL001 to VOL005.<br />
The BAANTEST addresses are 400 to 405 and are named TAR001 to TAR005.<br />
The steps are:<br />
1. Prepare the Volumes for the BAANTEST LPAR, using the ICKDSF program to<br />
initialize them offline, <strong>on</strong> addresses 400 to 405.<br />
2. Submit a SnapShot job to create the Volumes for the BAANTEST LPAR.<br />
3. After the SNAPVOL JOB has worked correctly, put the addresses 400 to 405<br />
of the Volumes for the BAANTEST LPAR offline.<br />
4. Submit a JOB using the REFORMAT command of ICKDSF to change the<br />
volumes <strong>on</strong> addresses 400 to 405 to the same name as the BAANPROD<br />
Volumes <strong>on</strong> addresses 300 to 305.<br />
5. IPL the BAANTEST LPAR with the Volumes <strong>on</strong> addresses 400 to 405.<br />
6. Put producti<strong>on</strong> volumes offline.<br />
When you do the IPL you will receive a message telling you that you have<br />
two addresses with Volumes of the same name. You have to specify the<br />
addresses that you want to keep offline. You then answer with the<br />
addresses of the BAANPROD volumes. This will put the addresses of the<br />
BAANPROD Volumes offline. If, after the IPL, some<strong>on</strong>e tries to vary <strong>on</strong>e of<br />
these addresses <strong>on</strong>line, the system will reject it as there is already a volume<br />
<strong>on</strong>line with the same name.<br />
(The next time you IPL the BAANPROD LPAR you will receive the same<br />
message asking you which addresses you would like to keep offline. You<br />
specify the addresses of the BAANTEST LPAR this time.)<br />
7. Create new procedures for the BAANTEST LPAR.<br />
The procedures that need to be created or modified are the <strong>on</strong>es related to<br />
TCP/IP.<br />
Important<br />
As the Volumes <strong>on</strong> addresses 400 to 405 are identical to the addresses <strong>on</strong><br />
300 to 305, there will be no problem for the CATALOG.<br />
Use CLPA when you do the IPL for the BAANTEST LPAR.<br />
The <strong>on</strong>ly point of cauti<strong>on</strong> is that the users of the test LPAR must make sure<br />
that they are logged <strong>on</strong> to the test LPAR, and not the producti<strong>on</strong> LPAR, as all<br />
the volumes have the same name and a careless error could destroy the<br />
producti<strong>on</strong> envir<strong>on</strong>ment.<br />
Chapter 10. Using Multiple Databases/LPARs 75
10.2.2 Sample JCL to Produce the Snap and Cl<strong>on</strong>ed System<br />
This is the JCL that was used to SNAP volumes from the producti<strong>on</strong> LPAR.<br />
76 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
//SNAPSPEC JOB (0513),'SOFT-<strong>IBM</strong>',<br />
// TIME=1440,<br />
// NOTIFY=SFT02,<br />
// REGION=0M,<br />
// CLASS=A,<br />
// MSGCLASS=X,<br />
// MSGLEVEL=(1,1),TYPRUN=HOLD<br />
//* INSTALLATION <strong>OS</strong>/<strong>390</strong> V2R6 (BAAN)<br />
//*********************************************************************<br />
//*<br />
//* SEE "SYS3.<strong>OS</strong><strong>390</strong>.BAANTEST.LPAR(SNAPVOLP)"<br />
//*<br />
//*********************************************************************<br />
//STEP1 EXEC PGM=SIBBATCH<br />
//*<br />
//SYSPRINT DD SYSOUT=*<br />
//SYSTERM DD SYSOUT=*<br />
//SYSIN DD *<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26TG1)) +<br />
TARGET(VOL(V26910)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26TG2)) +<br />
TARGET(VOL(V26911)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26CAT)) +<br />
TARGET(VOL(V26912)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26DL1)) +<br />
TARGET(VOL(V26913)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26DL2)) +<br />
TARGET(VOL(V26914)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26SMS)) +<br />
TARGET(VOL(V26915)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26BA1)) +<br />
TARGET(VOL(V26916)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26BA2)) +<br />
TARGET(VOL(V26917)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26BA3)) +<br />
TARGET(VOL(V26918)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26BA4)) +<br />
TARGET(VOL(V26919)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26DBA)) +<br />
TARGET(VOL(V2691A)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26DBB)) +<br />
TARGET(VOL(V2691B)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
Chapter 10. Using Multiple Databases/LPARs 77
SOURCE(VOL(V26DB1)) +<br />
TARGET(VOL(V2691C)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26DB2)) +<br />
TARGET(VOL(V2691D)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26DB3)) +<br />
TARGET(VOL(V2691E)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26DB4)) +<br />
TARGET(VOL(V2691F)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26CAU)) +<br />
TARGET(VOL(V26978)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26DB0)) +<br />
TARGET(VOL(V26979)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26DB5)) +<br />
TARGET(VOL(V2697A)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26DB6)) +<br />
TARGET(VOL(V2697B)) +<br />
COPYVOLID(NO) +<br />
78 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26DB7)) +<br />
TARGET(VOL(V2697C)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26DB8)) +<br />
TARGET(VOL(V2697D)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26DB9)) +<br />
TARGET(VOL(V2697E)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
SNAP VOLUME( +<br />
SOURCE(VOL(V26PAG)) +<br />
TARGET(VOL(V2697F)) +<br />
COPYVOLID(NO) +<br />
CONDVOL(LBL) +<br />
REPLACE(YES) +<br />
TOLERATEENQFAILURE(Y) +<br />
)<br />
/*<br />
10.2.3 Rename the Volumes<br />
This is the JCL that was used to rename the Volumes <strong>on</strong> the test LPAR to the<br />
same names that they had <strong>on</strong> the producti<strong>on</strong> LPAR. This is necessary so all the<br />
catalog entries will be correct.<br />
//<br />
//RFMT3101 JOB (0513,SOFT),'SOFT', 00010000<br />
// MSGCLASS=X,CLASS=A,REGION=1024K,NOTIFY=<strong>IBM</strong>USER,TIME=1440 00020000<br />
//* 00030000<br />
//RFMT09F0 EXEC PGM=ICKDSF 00031000<br />
//SYSPRINT DD SYSOUT=* 00032000<br />
//SYSABEND DD SYSOUT=* 00033000<br />
//SYSIN DD * 00034000<br />
REFORMAT - 00035000<br />
UNITADDRESS(09F0) - 00036000<br />
VERIFY(V269F0) - 00037100<br />
VOLID(V26TG1) 00038000<br />
/* 000<strong>390</strong>00<br />
//RFMT09F1 EXEC PGM=ICKDSF 00040000<br />
//SYSPRINT DD SYSOUT=* 00050000<br />
Chapter 10. Using Multiple Databases/LPARs 79
80 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
//SYSABEND DD SYSOUT=* 00060000<br />
//SYSIN DD * 00070000<br />
REFORMAT - 00080000<br />
UNITADDRESS(09F1) - 00090000<br />
VERIFY(V269F1) - 00100000<br />
VOLID(V26TG2) 00110000<br />
/* 00120000<br />
//RFMT09F2 EXEC PGM=ICKDSF 00130000<br />
//SYSPRINT DD SYSOUT=* 00140000<br />
//SYSABEND DD SYSOUT=* 00150000<br />
//SYSIN DD * 00160000<br />
REFORMAT - 00170000<br />
UNITADDRESS(09F2) - 00180000<br />
VERIFY(V269F2) - 00190000<br />
VOLID(V26CAT) 00200000<br />
/* 00210000<br />
//RFMT09F3 EXEC PGM=ICKDSF 00220000<br />
//SYSPRINT DD SYSOUT=* 00230000<br />
//SYSABEND DD SYSOUT=* 00240000<br />
//SYSIN DD * 00250000<br />
REFORMAT - 00260000<br />
UNITADDRESS(09F3) - 00270000<br />
VERIFY(V269F3) - 00280000<br />
VOLID(V26DL1) 00290000<br />
/* 00300000<br />
//RFMT09F4 EXEC PGM=ICKDSF 00310000<br />
//SYSPRINT DD SYSOUT=* 00320000<br />
//SYSABEND DD SYSOUT=* 00330000<br />
//SYSIN DD * 00340000<br />
REFORMAT - 00350000<br />
UNITADDRESS(09F4) - 00360000<br />
VERIFY(V269F4) - 00370000<br />
VOLID(V26DL2) 00380000<br />
/* 00<strong>390</strong>000<br />
//RFMT09F5 EXEC PGM=ICKDSF 00400000<br />
//SYSPRINT DD SYSOUT=* 00410000<br />
//SYSABEND DD SYSOUT=* 00420000<br />
//SYSIN DD * 00430000<br />
REFORMAT - 00440000<br />
UNITADDRESS(09F5) - 00450000<br />
VERIFY(V269F5) - 00460000<br />
VOLID(V26SMS) 00470000<br />
/* 00480000<br />
//RFMT09F6 EXEC PGM=ICKDSF 00490000<br />
//SYSPRINT DD SYSOUT=* 00500000<br />
//SYSABEND DD SYSOUT=* 00510000<br />
//SYSIN DD * 00520000<br />
REFORMAT - 00530000<br />
UNITADDRESS(09F6) - 00540000<br />
VERIFY(V269F6) - 00550000<br />
VOLID(V26BA1) 00560000<br />
/* 00570000<br />
//RFMT09F7 EXEC PGM=ICKDSF 00580000<br />
//SYSPRINT DD SYSOUT=* 00590000<br />
//SYSABEND DD SYSOUT=* 00600000<br />
//SYSIN DD * 00610000<br />
REFORMAT - 00620000<br />
UNITADDRESS(09F7) - 00630000<br />
VERIFY(V269F7) - 00640000
VOLID(V26BA2) 00650000<br />
/* 00660000<br />
//RFMT09F8 EXEC PGM=ICKDSF 00670000<br />
//SYSPRINT DD SYSOUT=* 00680000<br />
//SYSABEND DD SYSOUT=* 00690000<br />
//SYSIN DD * 00700000<br />
REFORMAT - 00710000<br />
UNITADDRESS(09F8) - 00720000<br />
VERIFY(V269F8) - 00730000<br />
VOLID(V26BA3) 00740000<br />
/* 00750000<br />
//RFMT09F9 EXEC PGM=ICKDSF 00760000<br />
//SYSPRINT DD SYSOUT=* 00770000<br />
//SYSABEND DD SYSOUT=* 00780000<br />
//SYSIN DD * 00790000<br />
REFORMAT - 00800000<br />
UNITADDRESS(09F9) - 00810000<br />
VERIFY(V269F9) - 00820000<br />
VOLID(V26BA4) 00830000<br />
/* 00840000<br />
//RFMT09FA EXEC PGM=ICKDSF 00850000<br />
//SYSPRINT DD SYSOUT=* 00860000<br />
//SYSABEND DD SYSOUT=* 00870000<br />
//SYSIN DD * 00880000<br />
REFORMAT - 00890000<br />
UNITADDRESS(09FA) - 00900000<br />
VERIFY(V269FA) - 00910000<br />
VOLID(V26DBA) 00920000<br />
/* 00930000<br />
//RFMT09FB EXEC PGM=ICKDSF 00940000<br />
//SYSPRINT DD SYSOUT=* 00950000<br />
//SYSABEND DD SYSOUT=* 00960000<br />
//SYSIN DD * 00970000<br />
REFORMAT - 00980000<br />
UNITADDRESS(09FB) - 00990000<br />
VERIFY(V269FB) - 01000000<br />
VOLID(V26DBB) 01010000<br />
/* 01020000<br />
//RFMT09FC EXEC PGM=ICKDSF 01030000<br />
//SYSPRINT DD SYSOUT=* 01040000<br />
//SYSABEND DD SYSOUT=* 01050000<br />
//SYSIN DD * 01060000<br />
REFORMAT - 01070000<br />
UNITADDRESS(09FC) - 01080000<br />
VERIFY(V269FC) - 01090000<br />
VOLID(V26DB1) 01100000<br />
/* 01110000<br />
//RFMT09FD EXEC PGM=ICKDSF 01120000<br />
//SYSPRINT DD SYSOUT=* 01130000<br />
//SYSABEND DD SYSOUT=* 01140000<br />
//SYSIN DD * 01150000<br />
REFORMAT - 01160000<br />
UNITADDRESS(09FD) - 01170000<br />
VERIFY(V269FD) - 01180000<br />
VOLID(V26DB2) 01190000<br />
/* 01200000<br />
//RFMT09FE EXEC PGM=ICKDSF 01210000<br />
//SYSPRINT DD SYSOUT=* 01220000<br />
Chapter 10. Using Multiple Databases/LPARs 81
82 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
//SYSABEND DD SYSOUT=* 01230000<br />
//SYSIN DD * 01240000<br />
REFORMAT - 01250000<br />
UNITADDRESS(09FE) - 01260000<br />
VERIFY(V269FE) - 01270000<br />
VOLID(V26DB3) 01280000<br />
/* 01290000<br />
//RFMT09FF EXEC PGM=ICKDSF 01300000<br />
//SYSPRINT DD SYSOUT=* 01310000<br />
//SYSABEND DD SYSOUT=* 01320000<br />
//SYSIN DD * 01330000<br />
REFORMAT - 01340000<br />
UNITADDRESS(09FF) - 01350000<br />
VERIFY(V26DFF) - 01360000<br />
VOLID(V26DB4) 01370000<br />
/* 01380000<br />
//RFMT0913 EXEC PGM=ICKDSF 01<strong>390</strong>000<br />
//SYSPRINT DD SYSOUT=* 01400000<br />
//SYSABEND DD SYSOUT=* 01410000<br />
//SYSIN DD * 01420000<br />
REFORMAT - 01430000<br />
UNITADDRESS(0913) - 01440000<br />
VERIFY(V26913) - 01450000<br />
VOLID(V26CAU) 01460000<br />
/* 01470000<br />
//RFMT0914 EXEC PGM=ICKDSF 01480000<br />
//SYSPRINT DD SYSOUT=* 01490000<br />
//SYSABEND DD SYSOUT=* 01500000<br />
//SYSIN DD * 01510000<br />
REFORMAT - 01520000<br />
UNITADDRESS(0914) - 01530000<br />
VERIFY(V26914) - 01540000<br />
VOLID(V26DB0) 01550000<br />
/* 01560000<br />
//RFMT0917 EXEC PGM=ICKDSF 01570000<br />
//SYSPRINT DD SYSOUT=* 01580000<br />
//SYSABEND DD SYSOUT=* 01590000<br />
//SYSIN DD * 01600000<br />
REFORMAT - 01610000<br />
UNITADDRESS(0917) - 01620000<br />
VERIFY(V26917) - 01630000<br />
VOLID(V26DB5) 01640000<br />
/* 01650000<br />
//RFMT0918 EXEC PGM=ICKDSF 01660000<br />
//SYSPRINT DD SYSOUT=* 01670000<br />
//SYSABEND DD SYSOUT=* 01680000<br />
//SYSIN DD * 01690000<br />
REFORMAT - 01700000<br />
UNITADDRESS(0918) - 01710000<br />
VERIFY(V26918) - 01720000<br />
VOLID(V26DB6) 01730000<br />
/* 01740000<br />
//RFMT0919 EXEC PGM=ICKDSF 01750000<br />
//SYSPRINT DD SYSOUT=* 01760000<br />
//SYSABEND DD SYSOUT=* 01770000<br />
//SYSIN DD * 01780000<br />
REFORMAT - 01790000<br />
UNITADDRESS(0919) - 01800000<br />
VERIFY(V26919) - 01810000
VOLID(V26DB7) 01820000<br />
/* 01830000<br />
//RFMT091A EXEC PGM=ICKDSF 01840000<br />
//SYSPRINT DD SYSOUT=* 01850000<br />
//SYSABEND DD SYSOUT=* 01860000<br />
//SYSIN DD * 01870000<br />
REFORMAT - 01880000<br />
UNITADDRESS(091A) - 01890000<br />
VERIFY(V2691A) - 01900000<br />
VOLID(V26DB8) 01910000<br />
/* 01920000<br />
//RFMT091B EXEC PGM=ICKDSF 01930000<br />
//SYSPRINT DD SYSOUT=* 01940000<br />
//SYSABEND DD SYSOUT=* 01950000<br />
//SYSIN DD * 01960000<br />
REFORMAT - 01970000<br />
UNITADDRESS(091B) - 01980000<br />
VERIFY(V2691B) - 01990000<br />
VOLID(V26DB9) 02000000<br />
/* 02010000<br />
//RFMT091C EXEC PGM=ICKDSF 02020000<br />
//SYSPRINT DD SYSOUT=* 02030000<br />
//SYSABEND DD SYSOUT=* 02040000<br />
//SYSIN DD * 02050000<br />
REFORMAT - 02060000<br />
UNITADDRESS(091C) - 02070000<br />
VERIFY(V2691C) - 02080000<br />
VOLID(V26CAV) 02090000<br />
/* 02100000<br />
Chapter 10. Using Multiple Databases/LPARs 83
84 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences
Appendix A. Sample Jobs and Script Used with <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g><br />
This appendix lists sample jobs and scripts that were used by customers in their<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV applicati<strong>on</strong> installati<strong>on</strong>s <strong>on</strong> <strong>OS</strong>/<strong>390</strong>.<br />
A.1 Procedures to Start and Stop <str<strong>on</strong>g>Baan</str<strong>on</strong>g> from the C<strong>on</strong>sole<br />
These are sample procedures to put in SYS1.PROCLIB that can be used to start<br />
and stop <str<strong>on</strong>g>Baan</str<strong>on</strong>g> from the c<strong>on</strong>sole.<br />
Note: If you are using Process Manager, you should include the starting and<br />
stopping of it in the rc.start and rc.start shell scripts.<br />
<br />
//* To start <str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
//BAANSTA EXEC PGM=BPXBATCH,TIME=NOLIMIT,REGION=0M,<br />
// PARM='SH /baanIVc2/bse/etc/rc.start'<br />
//STDERR DD PATH='/tmp/baansta.stderr',<br />
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),<br />
// PATHMODE=(SIRWXU)<br />
//STDOUT DD PATH='/tmp/baansta.stdout',<br />
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),<br />
// PATHMODE=(SIRWXU)<br />
<br />
<br />
<br />
<br />
//* To stop <str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
//BAANSTP EXEC PGM=BPXBATCH,TIME=NOLIMIT,REGION=0M,<br />
// PARM='SH /baanIVc2/bse/etc/rc.stop'<br />
//STDERR DD PATH='/tmp/baanstp.stderr',<br />
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),<br />
// PATHMODE=(SIRWXU)<br />
//STDOUT DD PATH='/tmp/baanstp.stdout',<br />
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),<br />
// PATHMODE=(SIRWXU)<br />
<br />
<br />
<br />
A.2 Script to C<strong>on</strong>vert a File from EBCDIC to ASCII<br />
This is a script we used to change a file comp065_part1 in the /tmp directory<br />
from EBCDIC to ASCII.<br />
<br />
cd /tmp/comp065_part1<br />
for j in ¦ls $1*¦<br />
do echo $j<br />
¦ic<strong>on</strong>v -f <strong>IBM</strong>-1047 -t ISO8859-1 $j > /tmp/$j¦<br />
¦mv /tmp/$j $j¦<br />
d<strong>on</strong>e<br />
echo ' DIRECTORY LISTING '<br />
¦ls -1 $1*¦<br />
exit<br />
<br />
© Copyright <strong>IBM</strong> Corp. 1999 85
A.3 Script to Determine the Size of Files to Load with bdppost<br />
This script will give you the exact size of a file (in our case, /tmp/compdata/498).<br />
<br />
cd /tmp/compdata/498<br />
#for j in ¦ls -la $1*¦<br />
let fsize=0<br />
ls -la $1* | {<br />
while read a b c d e f g h i;<br />
do<br />
echo $e $i<br />
let fsize="fsize + e"<br />
echo $fsize<br />
# ¦ic<strong>on</strong>v -f <strong>IBM</strong>-1047 -t ISO8859-1 $j > /tmp/$j¦<br />
# ¦mv /tmp/$j $j¦<br />
d<strong>on</strong>e<br />
}<br />
#echo ' DIRECTORY LISTING '<br />
#¦ls -1 $1*¦<br />
exit<br />
<br />
A.4 Script to Determine If the HFS Is Almost Full<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> uses HFS files, which can grow with usage. The HFS files should be<br />
m<strong>on</strong>itored to prevent them from reaching 100 percent utilizati<strong>on</strong>, which would<br />
affect the availability of the <str<strong>on</strong>g>Baan</str<strong>on</strong>g> applicati<strong>on</strong> to users. This is a sample script<br />
that can be used to create a m<strong>on</strong>itoring tool.<br />
#!/bin/ksh<br />
#<br />
# This script verifies if <strong>on</strong>e of the following filesystems is full:<br />
#<br />
# -> /<br />
# -> /var<br />
# -> /tmp<br />
# -> /home<br />
# -> /home/root<br />
# -> /usr/local<br />
#<br />
# If <strong>on</strong>e or more filesystem(s) are full (base <strong>on</strong> the value of the MAX<br />
# variable), a mail is send to root.<br />
#<br />
#<br />
#-----------------------------------------------------------------------------<br />
#<br />
#===================#<br />
# #<br />
# Global variables. #<br />
# #<br />
#===================#<br />
#<br />
MAX=70<br />
LIST="/ /var /tmp /home /home/root /usr/local"<br />
MESSAGE_FILE="/home/root/tmp/message.out"<br />
MESSAGE_FLAG="/home/root/tmp/message.flag"<br />
date > ${MESSAGE_FILE}<br />
86 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences
for FS in $LIST<br />
do USED=$(df -k $FS | awk '{ print $4 }' | grep -v Used | tr -d '%')<br />
if $USED -gt $MAX “; then<br />
touch ${MESSAGE_FLAG}<br />
echo "\n\t${FS} is ${USED}% full." >> ${MESSAGE_FILE}<br />
fi<br />
d<strong>on</strong>e<br />
if -e ${MESSAGE_FLAG} “; then<br />
mail root < ${MESSAGE_FILE}<br />
rm ${MESSAGE_FLAG}<br />
fi<br />
rm ${MESSAGE_FILE}<br />
exit 0<br />
A.5 Script to Remove Idle Users<br />
The <str<strong>on</strong>g>Baan</str<strong>on</strong>g> system does not have any idle time log off opti<strong>on</strong>. Once a user logs<br />
<strong>on</strong> to <str<strong>on</strong>g>Baan</str<strong>on</strong>g>, the user stays active until an explicit log off is d<strong>on</strong>e by that user.<br />
Automatic logging off of inactive users may be desirable for security or licensing<br />
reas<strong>on</strong>s. The following is a sample script that could be used to terminate idle<br />
sessi<strong>on</strong>s (users).<br />
#<br />
#<br />
# dpskillb :<br />
# Kills bshells and db2 processes that have been idle for specified amount<br />
# of time. First checks bshell by comparing to previously loaded file of<br />
# users and cpu usage. If cpu usage has not changed, compares db2 process<br />
# to see if cpu usage changed.<br />
#<br />
#<br />
#<br />
# Varibles<br />
# Time in sec<strong>on</strong>ds processes are idle before they get killed<br />
WAITTIME=2400<br />
if -z "${BSE}" ‘<br />
then<br />
BSE=/baan4ct/bse<br />
BSE_TMP=${BSE}/tmp<br />
fi<br />
# Specify temp directory for work files<br />
PROCLIST="${BSE}/tmp/dpskillb_prslist"<br />
BSHLLIST="${BSE}/tmp/dpskillb_bshlist"<br />
DB2LLIST="${BSE}/tmp/dpskillb_db2list"<br />
LOGFILE="${BSE}/log/log.dpskillb"<br />
# Create entry in logfile for start of process<br />
echo "*** dpskillb started at ¦date¦ by ${LOGNAME} ***" >>${LOGFILE}<br />
Appendix A. Sample Jobs and Script Used with <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> 87
# Init files<br />
init_files()<br />
{<br />
>${PROCLIST}<br />
>${BSHLLIST}<br />
>${DB2LLIST}<br />
>${PROCLIST}1<br />
>${BSHLLIST}1<br />
>${DB2LLIST}1<br />
}<br />
collect_data()<br />
{<br />
# Create list of all bshell process<br />
ps -ef ] grep bshell ] grep -v grep ] grep -v GRP ] grep -v SFB >${PROCLIST}<br />
# Create file with 3 fields : 1=User, 2=PID, 3=CPU Time<br />
awk '{print $1 "]" $2 "]" $7}' ${PROCLIST} >${BSHLLIST}<br />
# Create file for DB2 processes running for the bshells.<br />
# and <strong>on</strong>ly use 4 fields : 1=USER, 2=PID, 3=Parent PID, 4=CPU Time<br />
# commented out db2 data<br />
#for BSH in ¦awk -F"]" '{print $2}' ${BSHLLIST}¦<br />
#do<br />
# ps -ef ] grep db2 ] grep -v grep ] grep -v GRP ]\<br />
# awk '{if($3 == "'$BSH'"){print $1"]"$2"]"$3"]"$7}}' >>${DB2LLIST}<br />
#d<strong>on</strong>e<br />
}<br />
main()<br />
{<br />
# Init files for next loop<br />
init_files<br />
# Get process data for the first time<br />
collect_data<br />
# Wait specified time and get data again<br />
echo "** Wait ${WAITTIME} sec<strong>on</strong>ds at ¦date¦." >>${LOGFILE}<br />
sleep ${WAITTIME}<br />
echo "** Wake at ¦date¦." >>${LOGFILE}<br />
PROCLIST=${PROCLIST}1<br />
BSHLLIST=${BSHLLIST}1<br />
DB2LLIST=${DB2LLIST}1<br />
collect_data<br />
PROCLIST="${BSE}/tmp/dpskillb_prslist"<br />
BSHLLIST="${BSE}/tmp/dpskillb_bshlist"<br />
DB2LLIST="${BSE}/tmp/dpskillb_db2list"<br />
check_bshl_times<br />
}<br />
88 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
check_bshl_times()<br />
{<br />
# Compare bshell CPU times<br />
# If the CPU time of the sec<strong>on</strong>d list has not changed from that of the first<br />
# list, the DB2 CPU time is checked and if it has not changed, the process<br />
# is killed.
while read BSHREC<br />
do FRST_BSHL_TME=¦echo ${BSHREC} ] awk -F"]" '{print $3}'¦<br />
BSHL_USR=¦echo ${BSHREC} ] awk -F"]" '{print $1}'¦<br />
BSHL_PID=¦echo ${BSHREC} ] awk -F"]" '{print $2}'¦<br />
SCND_BSHL_TME=¦awk -F"]" '{if($2 == "'$BSHL_PID'") {print $3}}' ${BSHLLIST}1¦<br />
if "${FRST_BSHL_TME}" = "${SCND_BSHL_TME}" ‘<br />
then<br />
# echo "- check db2 time for ${BSHL_USR} ${BSHL_PID} at ¦date¦" >>${LOGFILE}<br />
check_db2_times<br />
fi<br />
d<strong>on</strong>e >${LOGFILE}<br />
echo "bshcmd6.1 -u1 -w1 -e ${BSHL_PID} >>'${LOGFILE}' 2>&1" >>${LOGFILE}<br />
bshcmd6.1 -u1 -w1 -e ${BSHL_PID} >>${LOGFILE} 2>&1<br />
sleep 10<br />
if (ps -ef ] grep bshell ] grep ${BSHL_PID} ] grep -v grep 2>/dev/null)<br />
then<br />
# comment out kill and drop to kill-9<br />
# echo "-- User/Process not killed, use UNIX kill :" >>${LOGFILE}<br />
# echo "kill ${BSHL_PID} >>${LOGFILE} 2>&1 at ¦date¦" >>${LOGFILE}<br />
# kill ${BSHL_PID} >>${LOGFILE} 2>&1<br />
# sleep 10<br />
# if (ps -ef ] grep bshell ] grep ${BSHL_PID} ] grep -v grep 2>/dev/null)<br />
# then<br />
echo "---User/Process not killed, use Unix kill -9:" >>${LOGFILE}<br />
kill -9 ${BSHL_PID} >>${LOGFILE} 2>&1<br />
# fi<br />
fi<br />
#fi<br />
}<br />
main<br />
rm -f ${PROCLIST}<br />
rm -f ${BSHLLIST}<br />
rm -f ${DB2LLIST}<br />
rm -f ${PROCLIST}1<br />
rm -f ${BSHLLIST}1<br />
rm -f ${DB2LLIST}1<br />
# Create finish entry in logfile<br />
echo "*** dpskillb finished at ¦date¦ ***" >>${LOGFILE}<br />
Appendix A. Sample Jobs and Script Used with <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> 89
90 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences
Appendix B. Special Notices<br />
This publicati<strong>on</strong> is intended to help those who have installed <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV or<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> with DB2. The informati<strong>on</strong> in this publicati<strong>on</strong> is<br />
not intended as the specificati<strong>on</strong> of any programming interfaces that are<br />
provided by BAAN IV or <str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP Applcati<strong>on</strong>s, or DB2. See the PUBLICATIONS<br />
secti<strong>on</strong> of the <strong>IBM</strong> Programming Announcement for DB2 V5.1 for more<br />
informati<strong>on</strong> about what publicati<strong>on</strong>s are c<strong>on</strong>sidered to be product documentati<strong>on</strong>.<br />
References in this publicati<strong>on</strong> to <strong>IBM</strong> products, programs or services do not<br />
imply that <strong>IBM</strong> intends to make these available in all countries in which <strong>IBM</strong><br />
operates. Any reference to an <strong>IBM</strong> product, program, or service is not intended<br />
to state or imply that <strong>on</strong>ly <strong>IBM</strong>'s product, program, or service may be used. Any<br />
functi<strong>on</strong>ally equivalent program that does not infringe any of <strong>IBM</strong>'s intellectual<br />
property rights may be used instead of the <strong>IBM</strong> product, program or service.<br />
Informati<strong>on</strong> in this book was developed in c<strong>on</strong>juncti<strong>on</strong> with use of the equipment<br />
specified, and is limited in applicati<strong>on</strong> to those specific hardware and software<br />
products and levels.<br />
<strong>IBM</strong> may have patents or pending patent applicati<strong>on</strong>s covering subject matter in<br />
this document. The furnishing of this document does not give you any license to<br />
these patents. You can send license inquiries, in writing, to the <strong>IBM</strong> Director of<br />
Licensing, <strong>IBM</strong> Corporati<strong>on</strong>, North Castle Drive, Arm<strong>on</strong>k, NY 10504-1785.<br />
Licensees of this program who wish to have informati<strong>on</strong> about it for the purpose<br />
of enabling: (i) the exchange of informati<strong>on</strong> between independently created<br />
programs and other programs (including this <strong>on</strong>e) and (ii) the mutual use of the<br />
informati<strong>on</strong> which has been exchanged, should c<strong>on</strong>tact <strong>IBM</strong> Corporati<strong>on</strong>, Dept.<br />
600A, Mail Drop 1329, Somers, NY 10589 USA.<br />
Such informati<strong>on</strong> may be available, subject to appropriate terms and c<strong>on</strong>diti<strong>on</strong>s,<br />
including in some cases, payment of a fee.<br />
The informati<strong>on</strong> c<strong>on</strong>tained in this document has not been submitted to any<br />
formal <strong>IBM</strong> test and is distributed AS IS. The informati<strong>on</strong> about n<strong>on</strong>-<strong>IBM</strong><br />
("vendor") products in this manual has been supplied by the vendor and <strong>IBM</strong><br />
assumes no resp<strong>on</strong>sibility for its accuracy or completeness. The use of this<br />
informati<strong>on</strong> or the implementati<strong>on</strong> of any of these techniques is a customer<br />
resp<strong>on</strong>sibility and depends <strong>on</strong> the customer's ability to evaluate and integrate<br />
them into the customer's operati<strong>on</strong>al envir<strong>on</strong>ment. While each item may have<br />
been reviewed by <strong>IBM</strong> for accuracy in a specific situati<strong>on</strong>, there is no guarantee<br />
that the same or similar results will be obtained elsewhere. Customers<br />
attempting to adapt these techniques to their own envir<strong>on</strong>ments do so at their<br />
own risk.<br />
Any pointers in this publicati<strong>on</strong> to external Web sites are provided for<br />
c<strong>on</strong>venience <strong>on</strong>ly and do not in any manner serve as an endorsement of these<br />
Web sites.<br />
This document c<strong>on</strong>tains examples of data and reports used in daily business<br />
operati<strong>on</strong>s. To illustrate them as completely as possible, the examples c<strong>on</strong>tain<br />
the names of individuals, companies, brands, and products. All of these names<br />
© Copyright <strong>IBM</strong> Corp. 1999 91
are fictitious and any similarity to the names and addresses used by an actual<br />
business enterprise is entirely coincidental.<br />
Reference to PTF numbers that have not been released through the normal<br />
distributi<strong>on</strong> process does not imply general availability. The purpose of<br />
including these reference numbers is to alert <strong>IBM</strong> customers to specific<br />
informati<strong>on</strong> relative to the implementati<strong>on</strong> of the PTF when it becomes available<br />
to each customer according to the normal <strong>IBM</strong> PTF distributi<strong>on</strong> process.<br />
The following terms are trademarks of the Internati<strong>on</strong>al Business Machines<br />
Corporati<strong>on</strong> in the United States and/or other countries:<br />
The following terms are trademarks of other companies:<br />
C-bus is a trademark of Corollary, Inc.<br />
92 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
DataJoiner DB2<br />
DFSMS DFSMSdss<br />
<strong>IBM</strong> OpenEditi<strong>on</strong><br />
<strong>OS</strong>/<strong>390</strong> RAMAC<br />
S/<strong>390</strong> SNAP/SHOT<br />
System/<strong>390</strong> S/<strong>390</strong> Parallel Enterprise Server<br />
Java and HotJava are trademarks of Sun Microsystems, Incorporated.<br />
Microsoft, Windows, Windows NT, and the Windows 95 logo are trademarks<br />
or registered trademarks of Microsoft Corporati<strong>on</strong>.<br />
PC Direct is a trademark of Ziff Communicati<strong>on</strong>s Company and is used<br />
by <strong>IBM</strong> Corporati<strong>on</strong> under license.<br />
Pentium, MMX, ProShare, LANDesk, and Acti<strong>on</strong>Media are trademarks or<br />
registered trademarks of Intel Corporati<strong>on</strong> in the U.S. and other<br />
countries.<br />
SET and the SET logo are trademarks owned by SET Secure Electr<strong>on</strong>ic<br />
Transacti<strong>on</strong> LLC.<br />
UNIX is a registered trademark in the United States and other<br />
countries licensed exclusively through X/Open Company Limited.<br />
Other company, product, and service names may be trademarks or<br />
service marks of others.
Appendix C. Related Publicati<strong>on</strong>s<br />
The publicati<strong>on</strong>s listed in this secti<strong>on</strong> are c<strong>on</strong>sidered particularly suitable for a<br />
more detailed discussi<strong>on</strong> of the topics covered in this redbook.<br />
C.1 Internati<strong>on</strong>al Technical Support Organizati<strong>on</strong> Publicati<strong>on</strong>s<br />
C.2 <strong>Redbooks</strong> <strong>on</strong> CD-ROMs<br />
C.3 Other <strong>IBM</strong> Publicati<strong>on</strong>s<br />
For informati<strong>on</strong> <strong>on</strong> ordering these ITSO publicati<strong>on</strong>s see “How to Get ITSO<br />
<strong>Redbooks</strong>” <strong>on</strong> page 95.<br />
Installing <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong>, SG24-5334<br />
Installing <str<strong>on</strong>g>Baan</str<strong>on</strong>g> ERP <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong>, SG24-5440<br />
Implementing DFSMSdss SnapShot and Virtual C<strong>on</strong>current Copy, SG24-5268<br />
Implementing SnapShot, SG24-2241<br />
<strong>IBM</strong> RAMAC Virtual Array, SG24-4951<br />
DB2 for <strong>OS</strong>/<strong>390</strong> and Data Compressi<strong>on</strong>, SG24-5261<br />
WOW! DRDA Supports TCP/IP: DB2 Server for <strong>OS</strong>/<strong>390</strong> and DB2, SG24-2212<br />
<strong>Redbooks</strong> are also available <strong>on</strong> the following CD-ROMs. Click the CD-ROMs<br />
butt<strong>on</strong> at http://www.redbooks.ibm.com/ for informati<strong>on</strong> about all the CD-ROMs<br />
offered, updates and formats.<br />
CD-ROM Title Collecti<strong>on</strong> Kit<br />
Number<br />
System/<strong>390</strong> <strong>Redbooks</strong> Collecti<strong>on</strong> SK2T-2177<br />
Networking and Systems Management <strong>Redbooks</strong> Collecti<strong>on</strong> SK2T-6022<br />
Transacti<strong>on</strong> Processing and Data Management <strong>Redbooks</strong> Collecti<strong>on</strong> SK2T-8038<br />
Lotus <strong>Redbooks</strong> Collecti<strong>on</strong> SK2T-8039<br />
Tivoli <strong>Redbooks</strong> Collecti<strong>on</strong> SK2T-8044<br />
AS/400 <strong>Redbooks</strong> Collecti<strong>on</strong> SK2T-2849<br />
Netfinity Hardware and Software <strong>Redbooks</strong> Collecti<strong>on</strong> SK2T-8046<br />
RS/6000 <strong>Redbooks</strong> Collecti<strong>on</strong> (BkMgr Format) SK2T-8040<br />
RS/6000 <strong>Redbooks</strong> Collecti<strong>on</strong> (PDF Format) SK2T-8043<br />
Applicati<strong>on</strong> Development <strong>Redbooks</strong> Collecti<strong>on</strong> SK2T-8037<br />
<strong>IBM</strong> Enterprise Storage and Systems Management Soluti<strong>on</strong>s SK3T-3694<br />
These publicati<strong>on</strong>s are also relevant as further informati<strong>on</strong> sources:<br />
UNIX System Services C<strong>on</strong>necti<strong>on</strong> Scaling Reference, SA22-7305<br />
SnapShot for MVS/ESA Using SnapShot Versi<strong>on</strong> 1 Release 2, SC26-7173<br />
SnapShot for MVS/ESA Installing and Using Versi<strong>on</strong> 1 Release 2, SC26-7174<br />
SnapShot for MVS Versi<strong>on</strong> 1 Release 2 Installati<strong>on</strong> Notes, SC26-7175<br />
SnapShot for MVS/ESA Implementing SnapShot, SC26-7176<br />
DB2 for <strong>OS</strong>/<strong>390</strong> V5 Administrati<strong>on</strong> Guide, Volumes I and II, SC26-8957<br />
DB2 for <strong>OS</strong>/<strong>390</strong> V5 Applicati<strong>on</strong> Programming and SQL Guide, SC26-8958<br />
DB2 for <strong>OS</strong>/<strong>390</strong> V5 Call Level Interface Guide and Reference, SC26-8959<br />
© Copyright <strong>IBM</strong> Corp. 1999 93
C.4 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Publicati<strong>on</strong>s<br />
DB2 for <strong>OS</strong>/<strong>390</strong> V5 Command Reference, SC26-8960<br />
DB2 for <strong>OS</strong>/<strong>390</strong> V5 Data Sharing: Planning and Administrati<strong>on</strong>, SC26-8961<br />
DB2 for <strong>OS</strong>/<strong>390</strong> V5 Installati<strong>on</strong> Guide, GC26-8970<br />
DB2 for <strong>OS</strong>/<strong>390</strong> V5 SQL Reference, SC26-8966<br />
DB2 for <strong>OS</strong>/<strong>390</strong> V5 Utility Guide and Reference, SC26-8967<br />
<strong>OS</strong>/<strong>390</strong> SecureWay Communicati<strong>on</strong>s Server: IP C<strong>on</strong>figurati<strong>on</strong>, SC31-8513<br />
These publicati<strong>on</strong>s, available from <str<strong>on</strong>g>Baan</str<strong>on</strong>g>, are also relevant as further informati<strong>on</strong><br />
sources. For informati<strong>on</strong> <strong>on</strong> how to c<strong>on</strong>tact <str<strong>on</strong>g>Baan</str<strong>on</strong>g>, go to the following Web site:<br />
http://www.baan.com<br />
94 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV - Installati<strong>on</strong> Guide for <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV <strong>on</strong> <strong>OS</strong>/<strong>390</strong> UNIX System Services<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV - DB2 Installati<strong>on</strong> Guide for <str<strong>on</strong>g>Baan</str<strong>on</strong>g> IV<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP - DB2 Installati<strong>on</strong> Guide for <str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP - Installati<strong>on</strong> Guide for <str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP <strong>on</strong> <strong>OS</strong>/<strong>390</strong> UNIX System Services<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g>ERP Tools Technical Manual
How to Get ITSO <strong>Redbooks</strong><br />
This secti<strong>on</strong> explains how both customers and <strong>IBM</strong> employees can find out about ITSO redbooks, redpieces, and<br />
CD-ROMs. A form for ordering books and CD-ROMs by fax or e-mail is also provided.<br />
<strong>Redbooks</strong> Web Site http://www.redbooks.ibm.com/<br />
Search for, view, download, or order hardcopy/CD-ROMs redbooks from the redbooks Web site. Also read<br />
redpieces and download additi<strong>on</strong>al materials (code samples or diskette/CD-ROM images) from this redbooks<br />
site.<br />
Redpieces are redbooks in progress; not all redbooks become redpieces and sometimes just a few chapters<br />
will be published this way. The intent is to get the informati<strong>on</strong> out much quicker than the formal publishing<br />
process allows.<br />
E-mail Orders<br />
Send orders by e-mail including informati<strong>on</strong> from the redbook fax order form to:<br />
In United States: e-mail address: usib6fpl@ibmmail.com<br />
Outside North America: C<strong>on</strong>tact informati<strong>on</strong> is in the "How to Order" secti<strong>on</strong> at this site:<br />
http://www.elink.ibmlink.ibm.com/pbl/pbl/<br />
Teleph<strong>on</strong>e Orders<br />
United States (toll free) 1-800-879-2755<br />
Canada (toll free) 1-800-<strong>IBM</strong>-4YOU<br />
Outside North America Country coordinator ph<strong>on</strong>e number is in the "How to Order" secti<strong>on</strong> at this site:<br />
http://www.elink.ibmlink.ibm.com/pbl/pbl/<br />
Fax Orders<br />
United States (toll free) 1-800-445-9269<br />
Canada 1-403-267-4455<br />
Outside North America Fax ph<strong>on</strong>e number is in the "How to Order" secti<strong>on</strong> at this site:<br />
http://www.elink.ibmlink.ibm.com/pbl/pbl/<br />
This informati<strong>on</strong> was current at the time of publicati<strong>on</strong>, but is c<strong>on</strong>tinually subject to change. The latest informati<strong>on</strong><br />
may be found at the redbooks Web site.<br />
<strong>IBM</strong> Intranet for Employees<br />
<strong>IBM</strong> employees may register for informati<strong>on</strong> <strong>on</strong> workshops, residencies, and redbooks by accessing the <strong>IBM</strong><br />
Intranet Web site at http://w3.itso.ibm.com/ and clicking the ITSO Mailing List butt<strong>on</strong>. Look in the Materials<br />
repository for workshops, presentati<strong>on</strong>s, papers, and Web pages developed and written by the ITSO technical<br />
professi<strong>on</strong>als; click the Additi<strong>on</strong>al Materials butt<strong>on</strong>. Employees may access MyNews at http://w3.ibm.com/ for<br />
redbook, residency, and workshop announcements.<br />
© Copyright <strong>IBM</strong> Corp. 1999 95
<strong>IBM</strong> Redbook Fax Order Form<br />
Please send me the following:<br />
Title Order Number Quantity<br />
First name Last name<br />
Company<br />
Address<br />
City Postal code Country<br />
Teleph<strong>on</strong>e number Telefax number VAT number<br />
Invoice to customer number<br />
Credit card number<br />
Credit card expirati<strong>on</strong> date Card issued to Signature<br />
We accept American Express, Diners, Eurocard, Master Card, and Visa. Payment by credit card not<br />
available in all countries. Signature mandatory for credit card payment.<br />
96 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences
List of Abbreviati<strong>on</strong>s<br />
AFP advanced functi<strong>on</strong> printing<br />
ASCII American Nati<strong>on</strong>al Standard<br />
Code for Informati<strong>on</strong><br />
Interchange<br />
ba <str<strong>on</strong>g>Baan</str<strong>on</strong>g> ASCII client<br />
bi <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Internet client<br />
bw <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Windows client<br />
bx <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Xwindows client<br />
BPX buffer prefix<br />
BSE <str<strong>on</strong>g>Baan</str<strong>on</strong>g> Software Envir<strong>on</strong>ment<br />
CAF call attach facility<br />
CM C<strong>on</strong>necti<strong>on</strong> Manager<br />
cp C<strong>on</strong>straint Planning (<str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
Applicati<strong>on</strong> Package)<br />
DB database<br />
DB2 DATABASE 2 (an <strong>IBM</strong><br />
relati<strong>on</strong>al database<br />
management system)<br />
DEM Dynamic Enterprise Modeling<br />
EBCDIC extended binary coded<br />
decimal interchange code<br />
ERP enterprise resource planning<br />
HFS hierarchical file system<br />
<strong>IBM</strong> Internati<strong>on</strong>al Business<br />
Machines Corporati<strong>on</strong><br />
ISPF Interactive System<br />
Productivity Facility<br />
ITSO Internati<strong>on</strong>al Technical<br />
Support Organizati<strong>on</strong><br />
LPA link pack area<br />
<strong>OS</strong>/<strong>390</strong> Operating System (for the)<br />
<strong>IBM</strong> System/<strong>390</strong><br />
PCL printer c<strong>on</strong>trol language<br />
PM Process Manager<br />
ps Process (<str<strong>on</strong>g>Baan</str<strong>on</strong>g> Applicati<strong>on</strong>)<br />
RACF Resource Access C<strong>on</strong>trol<br />
Facility<br />
RDBMS relati<strong>on</strong>al database<br />
management system<br />
RRS resource recovery services<br />
RS/6000 <strong>IBM</strong> RISC System 6000<br />
RVA RAMAC Virtual Array<br />
S/<strong>390</strong> <strong>IBM</strong> System/<strong>390</strong><br />
tc Comm<strong>on</strong> (<str<strong>on</strong>g>Baan</str<strong>on</strong>g> Applicati<strong>on</strong><br />
Comm<strong>on</strong> Package)<br />
td Distributi<strong>on</strong> (<str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
Applicati<strong>on</strong> Package)<br />
tf Finance (<str<strong>on</strong>g>Baan</str<strong>on</strong>g> Applicati<strong>on</strong><br />
Package)<br />
tg Orgware (<str<strong>on</strong>g>Baan</str<strong>on</strong>g> Applicati<strong>on</strong><br />
Package)<br />
ti Manufacturing (<str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
Applicati<strong>on</strong> Package)<br />
tp Project (<str<strong>on</strong>g>Baan</str<strong>on</strong>g> Applicati<strong>on</strong><br />
Package)<br />
tr Transportati<strong>on</strong> (<str<strong>on</strong>g>Baan</str<strong>on</strong>g><br />
Applicati<strong>on</strong> Package)<br />
ts Services (<str<strong>on</strong>g>Baan</str<strong>on</strong>g> Applicati<strong>on</strong><br />
Package)<br />
tt Tools (<str<strong>on</strong>g>Baan</str<strong>on</strong>g> Applicati<strong>on</strong> Tools<br />
tu Utilities (<str<strong>on</strong>g>Baan</str<strong>on</strong>g> Applicati<strong>on</strong><br />
Utilities)<br />
TCP/IP Transmissi<strong>on</strong> C<strong>on</strong>trol<br />
Protocol/Internet Protocol<br />
vrc Versi<strong>on</strong> Release customer<br />
extensi<strong>on</strong><br />
© Copyright <strong>IBM</strong> Corp. 1999 97
98 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences
Index<br />
A<br />
abbreviati<strong>on</strong>s 97<br />
acr<strong>on</strong>yms 97<br />
adding a user to <str<strong>on</strong>g>Baan</str<strong>on</strong>g> 12<br />
B<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> support 5<br />
baan users 7<br />
backup and recovery 59<br />
bibliography 93<br />
C<br />
C<strong>on</strong>nectivity 6<br />
copying companies 49<br />
creating a new <str<strong>on</strong>g>Baan</str<strong>on</strong>g> company 37<br />
D<br />
DB2<br />
DB2 grant statement 23<br />
DB2 security 10<br />
DB2 Subsystem 74<br />
db2_storage File 37<br />
disaster recovery 59, 63<br />
E<br />
EBCDIC to ASCII 85<br />
expirati<strong>on</strong> of passwords 23<br />
H<br />
HFS file systems 25<br />
HFS files 25<br />
I<br />
idle users 87<br />
J<br />
JCL to create database 40<br />
L<br />
license 1<br />
loading data 44<br />
log.brand6.2 5<br />
log.bshell 5<br />
log.db2 5<br />
log.oiex1288 5<br />
log.pdeam<strong>on</strong>6.2 5<br />
logs 5<br />
LPARS 73<br />
M<br />
management disciplines 60<br />
migrating companies 49<br />
mount point 26<br />
mounting temporary HFS file 27<br />
multiple LPARS 73<br />
N<br />
new <str<strong>on</strong>g>Baan</str<strong>on</strong>g> company 37<br />
P<br />
passwords 23<br />
point-in-time<br />
point-in-time recovery 59<br />
porting set 65<br />
problem tracking 5<br />
procedure 85<br />
to start <str<strong>on</strong>g>Baan</str<strong>on</strong>g> 85<br />
to stop <str<strong>on</strong>g>Baan</str<strong>on</strong>g> 85<br />
process manager 11, 22, 31, 32<br />
bpaprofile 31<br />
problem 32<br />
profiles 73<br />
Q<br />
quiesce utility 61<br />
R<br />
RACF 7<br />
runstats 47<br />
S<br />
sample JCL 85<br />
scripts 85, 87<br />
EBCDIC to ASCII 85<br />
Sec<strong>on</strong>d LPAR 76<br />
security 6<br />
shared memory 65, 73<br />
sharing an LPAR 73<br />
SnapShot 76<br />
T<br />
test system 73<br />
© Copyright <strong>IBM</strong> Corp. 1999 99
V<br />
validati<strong>on</strong> of license 3<br />
100 <str<strong>on</strong>g>Baan</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences
ITSO Redbook Evaluati<strong>on</strong><br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences<br />
SG24-5452-00<br />
Your feedback is very important to help us maintain the quality of ITSO redbooks. Please complete this<br />
questi<strong>on</strong>naire and return it using <strong>on</strong>e of the following methods:<br />
Use the <strong>on</strong>line evaluati<strong>on</strong> form found at http://www.redbooks.ibm.com/<br />
Fax this form to: USA Internati<strong>on</strong>al Access Code + 1 914 432 8264<br />
Send your comments in an Internet note to redbook@us.ibm.com<br />
Which of the following best describes you?<br />
__Customer __Business Partner __Soluti<strong>on</strong> Developer __<strong>IBM</strong> employee<br />
__N<strong>on</strong>e of the above<br />
Please rate your overall satisfacti<strong>on</strong> with this book using the scale:<br />
(1 = very good, 2 = good, 3 = average, 4 = poor, 5 = very poor)<br />
Overall Satisfacti<strong>on</strong> ____________<br />
Please answer the following questi<strong>on</strong>s:<br />
Was this redbook published in time for your needs? Yes____ No____<br />
If no, please explain:<br />
_____________________________________________________________________________________________________<br />
_____________________________________________________________________________________________________<br />
_____________________________________________________________________________________________________<br />
_____________________________________________________________________________________________________<br />
What other redbooks would you like to see published?<br />
_____________________________________________________________________________________________________<br />
_____________________________________________________________________________________________________<br />
_____________________________________________________________________________________________________<br />
Comments/Suggesti<strong>on</strong>s: (THANK YOU FOR YOUR FEEDBACK!)<br />
_____________________________________________________________________________________________________<br />
_____________________________________________________________________________________________________<br />
_____________________________________________________________________________________________________<br />
_____________________________________________________________________________________________________<br />
_____________________________________________________________________________________________________<br />
© Copyright <strong>IBM</strong> Corp. 1999 101
SG24-5452-00<br />
Printed in the U.S.A.<br />
<str<strong>on</strong>g>Baan</str<strong>on</strong>g> <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> <strong>on</strong> <strong>OS</strong>/<strong>390</strong> Implementati<strong>on</strong> Experiences SG24-5452-00