30.08.2013 Views

Baan Applications on OS/390 Implementation ... - IBM Redbooks

Baan Applications on OS/390 Implementation ... - IBM Redbooks

Baan Applications on OS/390 Implementation ... - IBM Redbooks

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!