Advanced System Operator Workshop For IBM I
Advanced System Operator Workshop For IBM I
cover
Front cover
Course Guide
Advanced System Operator Workshop
for IBM i
Course code AS27G ERC 10.0
November 2016 edition
Notices
This information was developed for products and services offered in the US.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative
for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not
intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or
service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate
and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this
document does not grant you any license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive, MD-NC119
Armonk, NY 10504-1785
United States of America
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some jurisdictions do not allow disclaimer
of express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein;
these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s)
and/or the program(s) described in this publication at any time without notice.
Any references in this information to non-IBM websites are provided for convenience only and do not in any manner serve as an
endorsement of those websites. The materials at those websites are not part of the materials for this IBM product and use of those
websites is at your own risk.
IBM may use or distribute any of the information you provide in any way it believes appropriate without incurring any obligation to you.
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other
publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other
claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those
products.
This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible,
the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to
actual people or business enterprises is entirely coincidental.
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corp., registered in many
jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM
trademarks is available on the web at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml.
© Copyright International Business Machines Corporation 2001, 2016.
This document may not be reproduced in whole or in part without the prior written permission of IBM.
US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
V11.0
Contents
TOC
Contents
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Agenda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
TOC Unit 13. Work management: Job processing concepts and interactive jobs . . . . . . . . . . . . . . . 13-1
Unit objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-2
Topic 1: Job processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3
Where work is processed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4
Types of jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-5
Start / End of a job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-6
Interactive job: User view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-7
Interactive job: Programmer view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8
Identify the types of jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-9
Topic 2: Interactive jobs and job tuning concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-10
Interactive job routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-11
Selecting initial program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-13
Work management: Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-14
Pool sizes and paging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-15
Pool benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-16
Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-17
How objects are stored on disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-18
How do faults affect performance? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-19
DB versus non-DB page faults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-20
Active Pools: Page faults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-21
Paging (1 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-22
Paging (2 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-23
Paging of interactive jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-24
How does paging affect performance? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-25
How to ensure the system has enough memory? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-26
Pool activity level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-27
IBM i activity levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-28
Active Pools: Activity level/transition data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-29
Review questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-31
Review answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-32
Unit summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-33
Unit 14. Work management: Job processing concepts of other job types. . . . . . . . . . . . . . . . . 14-1
Unit objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2
Topic 1: Batch jobs and job tuning concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-3
Batch jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4
Job selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-6
Batch job routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-7
Batch tuning: A pool for batch jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-8
Performance runtime attributes: Timeslice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-9
Performance runtime attributes: Run priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-10
Multiple types of batch jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-11
Topic 2: QSPL subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-12
STRSBS QSPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-13
Topic 3: Autostart jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-14
Autostart jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-15
Topic 4: Communication jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-17
Communication jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-18
Topic 5: Prestart jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-20
Prestart jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-21
Work management objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-23
Performance tuning education . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-25
Review questions (1 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-27
Review answers (1 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-28
Review questions (2 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-29
Review answers (2 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-30
Unit 15. Work management: Submitting and tracking of batch jobs. . . . . . . . . . . . . . . . . . . . . . 15-1
Unit objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2
Putting a job on a job queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-3
Submitting a batch job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-4
Job message queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-6
Scheduling a batch job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-7
Putting jobs on a job queue: Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-8
Tracking jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-9
Spooling intercept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-10
Printer device file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-12
Printer and output queue defaults (1 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-13
Printer and output queue defaults (2 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-15
Spool writers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-16
Spooling summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-18
Review questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-19
Review answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-20
Exercise: Work management: Job and subsystem management . . . . . . . . . . . . . . . . . . . . . . . . . . 15-21
Unit summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-22
TMK
Trademarks
The reader should recognize that the following terms, which appear in the content of this training
document, are official trademarks of IBM or other companies:
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business
Machines Corp., registered in many jurisdictions worldwide.
The following are trademarks of International Business Machines Corporation, registered in many
jurisdictions worldwide:
Active Memory™ AIX® DB™
DB2® Domino® Express®
Integrated Language i5/OS™ Language Environment®
Environment®
Lotus® Micro-Partitioning® Notes®
Power Architecture® POWER Hypervisor™ Power Systems™
Power Systems Software™ Power® PowerVM®
POWER6® POWER7® POWER8®
Rational® Redbooks® System i®
System z®
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.
Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other
countries, or both.
Java™ and all Java-based trademarks and logos are trademarks or registered trademarks of
Oracle and/or its affiliates.
UNIX is a registered trademark of The Open Group in the United States and other countries.
VMware and the VMware “boxes” logo and design, Virtual SMP and VMotion are registered
trademarks or trademarks (the “Marks”) of VMware, Inc. in the United States and/or other
jurisdictions.
Other product and service names might be trademarks of IBM or other companies.
pref
Course description
Advanced System Operator Workshop for IBM i
Duration: 3 days
Purpose
This course is designed to enhance the skills of a IBM i System Operator. In this class, we will
explain the concept of how LPAR works and discuss the functions provided by the HMC. We will
discuss the IBM i Access Family of products in general and Access Client Solutions, specifically.
We will discuss the different types of security that you can implement in order to control who has
access to your data and what they can do with that data if they are allowed access. We will discuss
security control via system values, user and group profiles, authorization lists, and adopted
authority. This course will help you to develop additional skills in the areas of work management
and how to create a basic CL program. In the area of CL programming, we will discuss concepts of
programming, then how to create a basic CL program using the traditional application development
tools PDM and SEU. You will also learn the steps to create a menu using SDA. You will learn some
tips that you can use to help improve your IBM i operations. We will also discuss about journaling
overview and some tips which improved operator work. Finally will be discus about differences
between virtual IP and EtherChannel.
Important
This course consists of several independent modules. The modules, including the lab exercises,
stand on their own and do not depend on any other content.
Audience
This advanced course is designed for those individuals who are responsible for operating and
managing the operation of a single Power i server or a network of Power i servers.
Prerequisites
Before taking this course, a student should be able to:
• Perform basic system operations such as sending and receiving messages, working with user’s
jobs and printed output, entering commands on the system, and executing CL commands
• Describe the difference between an interactive job and a batch job
• Use the help facilities available on the system.
pref
Objectives
• Explain the concept of how LPAR works
• Explain the functions served by the HMC
• Explain the functions of IBM i Access Client Solutions
• Explain how user versus resource security are implemented
• Explain the difference between group profiles and authorization lists
• Describe how adopted authority works
• Describe how work is managed on the system and the concepts of the performance tuning
process on the system
• Explain how Management Central can be used to manage a single system or a network of
Power i servers
• Perform the steps to create a basic CL program using both the traditional (PDM and SEU)
application development tools
• Perform the steps to create a menu using SDA
• Provide some tips on how you can improve your operations
Contents
• LPAR concepts and overview
• Console options and HMC overview
• Basic management using HMC
• IBM i Access Family overview
• IBM i Access Client Solutions
• Security concepts and overview
• System values
• User security
• Resource security
• Authorization lists and adopted authority
• Work management: Concepts and overview
• Work management: Subsystem concepts and overview
• Work management: Job processing concepts and interactive jobs
• Work management: Job processing concepts of other job types
• Work management: Submitting and tracking of batch jobs
• Programming concepts
• CL programming concepts
• CL programming using PDM and SEU
Curriculum relationship
• This course is part of the Power i curriculum. A system operations course, System Operator
Workshop for System i (AS24G), precedes this course.
pref
Agenda
Note
The following unit and exercise durations are estimates, and might not reflect every class
experience.
Day 1
(00:30) Welcome
(00:20) Unit 1: LPAR concepts and overview
(00:25) Unit 2: Console options and HMC overview
(00:10) Break
(01:15) Unit 3: Basic management using HMC
(00:30) Unit 4: IBM i Access Family overview
(00:10) Break
(00:45) Unit 5: IBM i Access Client Solutions
(00:30) Exercise 1: IBM Client Access Solutions
(00:10) Break
(00:10) Unit 6: Security concepts and overview
(00:20) Unit 7: System values
(01:00) Lunch
(00:25) Unit 8: User security, Topic 1 User profiles
(00:20) Exercise 2: Create a user profile
(00:10) Break
(00:15) Unit 8: User security, Topic 2 Group profiles
(00:30) Unit 9: Resource security
pref
Day 2
(00:25) Exercise 3: Resource security and group profiles
(00:15) Unit 10: Authorization lists and adopted authority, Topic 1 Authorization lists
(00:20) Exercise 4: Authorization lists
(00:10) Break
(00:10) Unit 10: Authorization lists and adopted authority, Topic 2 Adopted authority
(00:10) Exercise 5: Adopting authority
(00:15) Unit 11: Work management: Concepts and overview
(00:35) Unit 12: Work management: Subsystem concepts and overview
(00:10) Break
(00:35) Unit 13: Work management: Job processing concepts and interactive jobs
(00:25) Unit 14: Work management: Job processing concepts of other job types
(01:00) Lunch
(00:20) Unit 15: Work management: Submitting and tracking of batch jobs
(00:40) Exercise 6: Work management: Job and subsystem management
(00:10) Break
(00:10) Unit 16: Programming concepts
(00:35) Unit 17: CL programming concepts
(00:20) Unit 18: CL programming using PDM and SEU
(00:45) Exercise 7: CL programming using PDM and SEU
Day 3
(00:45) Unit 19: Creating a menu using SDA
(00:30) Exercise 8: Creating a menu using SDA
(00:10) Break
(00:45) Unit 20: Tips for improved operation
(00:30) Exercise 9: Tips for improved operation
(01:00) Lunch
(00:50) Exercise 10: Transferring data using FTP
(01:00) Unit 21: Journaling overview and basic operation
(00:10) Break
(00:20) Exercise 11: Journal management
(00:45) Unit 22: Virtual IP versus EtherChannel
Uempty
Overview
This unit provides an overview of the concept of logical partitions.
Uempty
Unit objectives
• Describe the functions of PowerVM
• Describe the concept of partitions
• List resources that are allocated to partitions
• Describe dynamic partitioning
• List some benefits of using a partition
Uempty
The IBM Power Systems Hardware Information Center contains information about IBM i. Access
the website at the following URL: http://www.ibm.com/support/knowledgecenter/ssw_ibm_i.
Click the link for Hardware Information Center to see the web page (lower right corner on this
visual). The URL to access this website directly is:
http://www.ibm.com/support/knowledgecenter/POWER8/p8hdx/POWER8welcome.htm.
Uempty
Uempty
• Integrated Virtual Ethernet (IVE): Also called Host Ethernet Adapter (HEA - not supported on
Power8 servers), this is a feature that provides network connectivity to the partitions. It is
available on certain types of POWER6 and POWER7 based systems and allows partition
communication. It uses a physical Integrated Virtual Ethernet adapter and it must not be
considered as a virtual feature.
• For POWER8, you can use single root I/O virtualization (SR-IOV). This a Peripheral Component
Interconnect Express (PCIe) standard architecture that defines extensions to PCIe
specifications to enable multiple logical partitions running simultaneously within a system to
share PCIe devices. The architecture defines virtual replicas of PCI functions known as virtual
functions (VF). A Logical partition can connect directly to an SR-IOV adapter VF without going
through a virtual intermediary (VI) such as a POWER Hypervisor or Virtual I/O Server. This
ability provides for a low latency and lower CPU utilization alternative by avoiding a VI.
• Simultaneous Multithreading (SMT): On-chip hardware threads to improve resource usage.
• Virtual LAN: Provides network virtualization capabilities. It is purely firmware-based, by using
the POWER Hypervisor, and does not require the purchase of the PowerVM edition. Multiple
virtual switches can be defined with POWER6,POWER7, and POWER8 processor-based
systems.
• Virtual I/O: Allows the sharing of I/O adapters and devices between partitions.
• Integrated Virtualization Manager (IVM) provides the virtualization capabilities for the
management of a server and LPARs without using a Hardware Management Console (HMC).
• Capacity on Demand (CoD): Allows system resources, such as processors and memory, to be
activated as needed.
• Power Enterprise Pools (PEP) provide the ability to move processor and memory resources
from one server to another any time, with no physical movement of hardware, by using easy
operator commands in HMC.
• The PowerVM Enterprise edition includes the Partition Mobility virtualization feature that allows
migrating a virtualized logical partition from a source system to a target. This feature supports
Live Partition Migration without partition shutdown.
• The PowerVM Enterprise edition also includes the Active Memory sharing feature that allows
shared memory partitions to share a common shared memory pool (not supported in IBM i).
• Shared Storage Pools allow share storage across systems with possibility of cloning or moving
partitions (not supported in IBM i).
• Suspend/Resume feature allows suspend/resume client partition for releasing server
resources.
• Thin Provisioning allows better utilization of disks space in Shared Storage Pools (not
supported in IBM i).
• Most of the hardware virtualization features listed above are managed by using the HMC. IVM
allows management of some IBM Power Systems, and blades without using an HMC. IVM does
not support all of the HMC functions and has limited capabilities.
Uempty
Suspend/Resume
NPIV
SRIOV
Uempty
On this visual, you can see PowerVM features and editions availability depending on the Power8
systems models.
Uempty
What is a partition?
• Partition:
ƒ Allocation of one system’s resources (processors, memory, I/O, and virtual
I/O) to create logically separate systems.
ƒ Each partition is an independent operating environment.
Partition
When a Power i server is subdivided into multiple, independent operating system images, those
independent operating environments are called partitions. The resources on the system are divided
up among the partitions. Applications running on a partitioned system do not have to be redesigned
for the partitioned environment.
Independent operating environment
Each partition runs its own operating system that might or might not match operating systems in
other partitions on the same system. Each partition can be started and stopped independently of
other partitions.
Uempty
Logical partition
• A partition is the allocation of system resources to create logically
separate systems within the same physical footprint.
• A logical partition is when the isolation is implemented with
firmware:
ƒ Although a partition might be logical, it can also be physical (resources).
ƒ It provides configuration flexibility.
Uempty
POWER4 and POWER5 based servers comparison
There is no concept of a primary or secondary partition for POWER5 systems.
You might have heard the phrase physical partitions from the UNIX server market that is partitions
based on physical system units, such as a system board, which contains a certain amount of
processing power and memory, and a number of I/O slots. IBM implemented logical partitions, not
physical partitions for IBM i AIX an Linux.
Uempty
Partition characteristics
• Each partition has its own (or have access to):
ƒ Licensed Internal Code (LIC) for IBM i or open firmware from AIX VIOS and
Linux
ƒ Operating system
ƒ Console
ƒ Load source disk or boot resources
ƒ ASPs and memory pools
ƒ Others expected in a stand-alone operating system environment:
í Problem logs
í Data (libraries, objects, and file system)
í Performance characteristics
í Language feature codes
í Network identity
í Date and time
Characteristics of a partition
The visual above illustrates how each partition is independent. As stated before, each partition runs
on its own operating system that might be IBM i (or Linux, VIOS, and AIX). The versions of the
operating system might be any valid version that is supported. Other things you would expect on
physically separate system are also separate for partitions and even independent virtual consoles.
What is the same between partitions on the same system?
Each partition shares a few physical system attributes such as the system serial number, system
model, and processor feature code with other partitions. In addition, you can choose to share other
hardware such as SAS, Fibre adapters, and serial devices among partitions.
Uempty
Partition resources
• The resources that are allocated to partitions are:
ƒ Load source I/O adapters and disk unit
ƒ I/O slots
í Including virtual devices (volumes from external storage)
ƒ Processing units
ƒ Memory
ƒ 5250 emulation (‘interactive’) for IBM i
ƒ Console
Resources
Resources are the system components that are configured into partitions. The maximum number of
partitions is related to the total amount of resources on a system. For example, if a system has
enough resources, the upper limit of the number of partitions is 1000 on Power8 (E880) servers.
Minimum amount of resources
Each IBM i partition must be configured with at least 128 MB of memory, five hundredths of a
physical processor, and enough I/O devices to provide a load source (boot resources), have access
to a console and have the ability to load code.
I/O slots
I/O resources are allocated to partitions at the slot level. At a minimum, you must configure a
partition with enough I/O resources to include the load source disk (boot resources) and at least
access to a console.
Processing units
A dedicated processor = 1.00 processing units. Micro-Partitioning 0,05 processor unit (up to 20
micropartitions per processor).
Uempty
Memory
Memory is allocated in multiple MB segments (the smallest being 16 MB). The exact size depends
on the model and the total amount of memory on the managed server. A partition can be as small
as 254 MB or as large as all of the installed memory.
5250 CPW (IBM i partitions only) - also known as OLTP
Your system has a certain amount of interactive performance based on the type of system and the
number of processors. The 5250 emulation refers to how much the user must interact with (and
respond to prompts from) the computer. You can contrast this with batch where no user intervention
is required. Given the amount of interactive performance on your system, you need to determine
what percentage is available for each partition. The combined total of all partitions’ settings cannot
exceed 100% - of the available 5250 CPWs. This resource was known as Interactive Performance
on the POWER4 based iSeries servers.
Virtual devices
Other devices can be configured to be shared between partitions. Each partition can configure
virtual I/O slots, which can be configured with a virtual adapter instance. These virtual adapters can
be an Ethernet interface, a SCSI, serial devices, or Fibre Channel.
Uempty
Processors
Memory
I/O slots
This visual above shows how a system’s resources might be divided between four partitions. With
logical partitions, resources can be allocated based on computing needs. You do not need to
allocate all resources to partitions. Some resources can remain deallocated until they are needed.
Uempty
Partition 1
resources
Partition 2 I/O slots
HMC
POWER Hypervisor
Ethernet
Processors
Non-volatile RAM
The Hardware Management Console (HMC) uses its network connections to one or more servers
or frames, referred to as managed systems to perform various management functions. More details
of the HMC are covered in the next unit.
Uempty
Dynamic partitioning
• DLPAR allows you to add, remove, or move resources between
partitions without restarting the partitions.
• Resources include:
ƒ Processors, memory, and I/O slots that are not required
ƒ Virtual I/O
Dynamic partitioning
Dynamic partitioning refers to the fact that you can “switch” resources between partitions without
shutting down the partitions. The opposite of dynamic partitioning is static partitioning, where new
configurations are only used when a partition is reactivated.
DLPAR operations do not weaken the security or isolation between LPARs. Partitions only see
resources in their own partition, as well as any potential “connectors” for additional virtual resources
that might have been configured, and any resources not currently allocated.
Resources are reset when moved from one partition to another. Processors are reinitialized,
memory regions are cleared, and adapter slots are reset.
DLPAR operations
You can add, remove, and move resources between partitions. This can be accomplished from the
HMC application or through HMC command line commands.
With virtual devices, you can add or delete them, but you cannot move them from one partition to
another. However, you can dynamically change the configuration that specifies what type of virtual
adapter it is. Other partition options that can be reconfigured dynamically are covered later in this
course.
Uempty
DLPAR resources
The resources include memory, processing units, and non-required I/O slots. A “required” slot or
adapter is one that a partition has defines as essential to its operation and is thus unavailable for
“movement” as long as the partition is operational.
For virtual devices, you can add and remove, but not move resources between partitions. These
operations will be covered in a future unit in this course.
Applications might not be DLPAR-aware
Most applications are unaware of the underlying resource specifics and that works just fine. But
some applications and utilities, particularly monitoring tools, might inhibit some DLPAR operations if
they bind to processors or pin memory. Many resource-aware applications have been rewritten in
recent years to allow DLPAR. Check with your sales representative about your application.
Uempty
Virtual I/O
• Each partition has virtual I/O ‘slots’.
ƒ Configurable for each partition
Uempty
Virtual Ethernet
Virtual Ethernet allows for high speed (1 gigabit) inter-partition communications. For two partitions
to be able to talk they need to have a virtual Ethernet adapter that has the same port virtual LAN ID.
Having the virtual Ethernet adapter occupy the same slot is not a requirement.
Virtual Serial
Virtual serial allows for the creation of an internal point-to-point connection. This connection is
between the partition and either the HMC or another partition. An adapter is defined as either a
client adapter or a server adapter. A client adapter is used on a partition that wants to use a
resource that is provided by a server adapter.
In creating a virtual serial client adapter, the remote partition needs to be specified along with the
slot number containing the virtual serial server adapter on the remote partition. By default, the HMC
gets the console for a hosted guest partition. A pair of virtual serial adapters can be used to allow
another partition to provide console function for the hosted guest partition as well.
Virtual SCSI
Virtual SCSI allows for a partition to use storage resources that physically reside in another
partition. Storage resources include disk, tape, or optical. As with virtual serial, the server adapter
type is for use on a partition that is providing a resource while the Client adapter is used on a
partition that is using that resource. A pair of virtual SCSI adapters can be created to provide disk
access for a hosted guest partition.
Virtual Fibre Channel
A virtual Fibre Channel adapter is a virtual adapter that provides client logical partitions with a Fibre
Channel connection to a storage area network N_Port ID virtualization (NPIV) is a technology that
allows a single host bus adapter (HBA) called an “N_Port” to register multiple worldwide port names
(WWPNs) and N_Port identification numbers. This allows each virtual server to present a different
worldwide name to the storage area network (SAN), which in turn means that each virtual server
sees its own storage.
Uempty
IOA
IOP-less Processor
• IOA technology has evolved to the point where an IOA can take over
the IOP as well as the IOA functionality.
• Smarter IOA benefits include:
ƒ Avoiding cost of IOP and PCI slot to hold IOP
ƒ Configuration flexibility including simpler LPAR I/O
• IBM i 7.2 on POWER6 does not support IOPs or IOP-based adapters.
• POWER7 or late does not support IOPs or IOP-based adapters.
LPAR concepts and overview © Copyright IBM Corporation 2001, 2016
On the visual you can compare classic IOP/IOA and modern IOP-less adapter.
Note
Uempty
LPAR summary
• No requirement for primary partition
• All LPARed servers must have an IVM or HMC
• All IBM i partitions must be at 7.1 or greater
• Simple migration process
Power Systems
LPAR concepts and overview © Copyright IBM Corporation 2001, 2016
Note
Old IBM i version (6.1) can be used in LPARed environment (POWER6 and POWER7) but this
version is not supported now.
Uempty
Introduction
Sometimes large symmetric multiprocessing systems are used to run several different applications.
This might be an efficient use of resources in some cases. In other cases, separate physical
computers are used to run individual applications. This page describes reasons why it might be
better to create separate partitions rather than run everything in the same operating system image
or use separate physical computers for each application.
Capacity management
You might want to use partitions to reallocate resources when the system workload changes. For
example, if at the end of each month, one partition runs CPU-intensive, batch jobs, you can
reconfigure the system monthly to take processors from another lower priority application in
another partition and “loan” them to the partition with the batch application. We see later that you
can even name these configurations using keywords, such as end-of-month to make the
reconfiguration operation easier.
Uempty
Consolidation
Using partitions gives you the ability to reallocate expensive resources and manage them all with
one interface (the HMC). You can reallocate processors, memory, or any I/O adapter (and thus
device) by reconfiguring the partitions or by using dynamic partition operations. All of the resources
are located within one server, potentially reducing the amount of floor space needed.
Application isolation
Partitioning isolates an application from others in different partitions. For example, two applications
on one SMP system could interfere with each other or compete for the same resources. One
decision support database query could bring a second, interactive application to a frustrating snail’s
pace. By separating the applications into their own partitions, they cannot interfere with each other.
Also, if one application were to hang or crash the operating system, this would not have an effect on
the other partitions. Additionally, with partitions, one server can support multiple applications that
use different time zones or that run on different operating system release levels. Partitions can also
be used to comply with application license requirements. For example, a 4-processor partition
could be created to comply with an application license that only allows for a 4-processor server.
Check the vendor’s application license requirements carefully.
Merge production and test environments
Many customers utilize smaller development systems to develop, test, and migrate applications.
These smaller systems might not be the same hardware, have the same software, devices, or
infrastructure as the “real”, production system. These issues can be largely avoided by utilizing a
partition on the same system as the production application for development and testing. This also
protects the production partition from the activities on the test partition. When the testing is
complete, the resources used for the development partition can be reallocated to the production
partition.
Partitions have an exclusive set of resources
The amount of resources allocated to a partition is generally fixed (although there are some
exceptions that can be configured). This could be a benefit or a disadvantage. On a symmetric
multiprocessor system running multiple applications within the same operating system image, there
might be greater sharing (or swapping) of resources than on a partition system where the
applications are isolated in their own partitions.
Virtual Ethernet and virtual I/O devices
On POWER servers, you can configure a virtual Ethernet connection, which acts like an Ethernet
connection, but is really a memory-to-memory connection with another partition. Virtual I/O devices
allow partitions to use physical devices (such as a console or tape drive or CD drive) that are
owned by another partition.
Shared Processors
Partitioning gives you the ability to assign less than full processors to a server. These shared
processor partitions can be either capped (capacity is limited to the number of shared processing
units assigned) or uncapped (have the capability of using more processing resources than are
assigned via processing units).
Uempty
LPAR education
OL52G: Hardware Management Console (HMC) for Power Systems with IBM i
This course teaches the functions and capabilities provided by the HMC to
manage a Power system with IBM i.
http://www.ibm.com/training
When you attend the LPAR course, you learn the installation, configuration, and operation of the
Hardware Management Console (HMC) for Power System servers. The class begins with an
overview of HMC functions, followed by detailed information on how to install a new HMC, configure
network settings and HMC user profiles, create a connection to a managed system, and upgrade
an existing HMC. Explore the HMC’s graphical user interface (GUI) to manage System i servers.
Through online presentations and quizzes, develop the basic skills for backing up HMC and
managed system configuration data, performing HMC and microcode software maintenance, and
creating logical partitions (LPAR).
Uempty
Review questions
1. True or False: A partition is an independent operating
environment within a larger system.
Uempty
Review answers
1. True or False: A partition is an independent operating
environment within a larger system.
The answer is true.
Uempty
Unit summary
• Describe the functions of PowerVM
• Describe the concepts of partitions
• List resources that are allocated to partitions
• Describe dynamic partitioning
• List some benefits of using a partition
The objective of the remainder of the course is to expand your knowledge on these and other
topics. A focus lies on the automation of some of your system operations activities.
Uempty
Overview
This unit provides a review of the different options available for setting a console for the system and
overviews the concepts of the HMC.
Uempty
Unit objectives
• Discuss the different consoles that can be used with Power with IBM i
• Describe the concepts of HMC
• List the different HMC models that are available
• Describe virtual HMC appliance
• Describe the differences between IVM, HMC
• Describe the different capacity on-demand options available
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
Uempty
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
Operations console
With Operations console, you can use one or more PCs to access and control the server and
control panel functions. This PC can be attached either locally or remotely. Operations console is
available for connectivity to an IBM i server. This PC can be directly connected by using a cable,
through a LAN with a dedicated adapter, or can be connected using the embedded Ethernet port, if
it is available on the server. With this type of connection, a single PC can serve as the console for
multiple servers.
Considerations for choosing Operations console:
You can set up Operations console to manage the IBM i operating system in a partitioned or a
non-partitioned environment.
You need a separate LAN adapter card for each partition with which you need to communicate
using Operations console. This can result in less room for other I/O adapters that you need to install
in the server. Unlike the HMC, you cannot change partition resources with Operations console.
Although Operations console uses a standard Windows PC, the HMC is a dedicated system that
cannot be changed except for service upgrades. This greatly increases the security and stability of
the HMC versus Operations console.
Operations console supports more than 40 languages.
Uempty
5250 interface using HMC or virtual HMC (VHMC):
You can connect to system using session directly on the HMC or you can use IBM i Client Solution
(or previous IBM Client Access) to set up the console session or virtual panel session.
HMC allows you connect to many partitions. You can setup a shared or dedicated connection to the
console.
Uempty
HMC introduction
• Intel-based PC appliance
ƒ Required for configuration and management of partitions
í IBM Power Systems with POWER5, POWER6, POWER7, POWER8 processors
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
Uempty
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
IBM Directory management was removed now IBM offering two management models:
1. PowerVM architecture based on Cloud Manager wit OpenStack and PowerVC and HMC/KVM
to manage server.
2. PowerVM with NovaLink Architecture this is new architecture.
With both models, you can use HMC to manage servers, partitions and their resources.
IBM Cloud Manager with OpenStack for Power Systems is an entry level cloud solution to help
organizations get up and running quickly and easily with cloud. It works with Power Systems
infrastructure, leveraging Power's enterprise security, availability, and reliability to deliver cloud
without risk. IBM Cloud Manager with OpenStack for Power Systems increases efficiency through
heterogeneous cloud management across Power Systems, System z, and x86 environments,
on-premises or off-premises, to manage private, public, or hybrid cloud infrastructure. And Cloud
Manager with OpenStack can manage PowerKVM environments directly or PowerVM
environments through PowerVC, giving customers the flexibility to leverage the choice of
hypervisors provided with Power Systems.
Uempty
PowerVM NovaLink is a software interface that is used for virtualization management. You can
install PowerVM NovaLink on a PowerVM server. PowerVM NovaLink enables highly scalable
modern cloud management and deployment of critical enterprise workloads. You can use PowerVM
NovaLink to provision large numbers of virtual machines on PowerVM servers quickly and at a
reduced cost.
PowerVM NovaLink runs in a Linux logical partition on a POWER8 processor-based server that is
virtualized by PowerVM. You can manage the server through a representational state transfer
application programming interface (REST API) or through a Command Line Interface (CLI). You
can also manage the server by using PowerVC or other OpenStack solutions. PowerVM NovaLink
is available at no additional charge for servers that are virtualized by PowerVM.
PowerVM NovaLink can be installed only on POWER8 processor-based servers.
Uempty
Hypervisor: OS-independent
Non-volatile RAM
Processors
Service
processor Virtual servers consist of different
Mem regions Virtual elements (look at colors):
Server • Processors
I/O slots
(LPAR) Managed • Memory
allocation
tables
system • I/O slots
• Some part of Hypervisor
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
Uempty
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
Uempty
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
You can manage POWER servers without an HMC. The various management options and
supported virtual machine types are:
• IVM (AIX, Linux, IBM i)
• KVM (Linux)
• Full system partition (AIX, Linux, IBM i)
KVM (Kernel-based Virtual Machine) is a popular open-source hypervisor that’s new to the
Power Systems family of servers. Both KVM and IVM are installed and run directly on the server.
Their management in scope applies only to the virtual machines running on the same server. The
remainder of this article focuses on managing POWER8 scale-out servers with an HMC.
Integrated Virtualization Manager
The Integrated Virtualization Manager (IVM), a component of PowerVM Editions, can be used to
manage your Virtual I/O Server (VIOS) and client virtual servers. The IVM provides a web-based
system management interface. The interface allows to create a partition.
Partitioning with the Integrated Virtualization Manager
In the above figure, the VIOS is in its own partition, and the client logical partitions are managed by
the VIOS logical partition. The browser on the PC connects to the IVM over a network and it (IVM)
can be used to create and managed the logical partitions.
Uempty
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
This figure summarizes the Power Systems management techniques available to administrators.
ASMI management allows limited server management and no partitions. IVM and HMC provide
more functional server management and partitions.
vHMC
Prior to HMC V8R8.4, the POWER HMC was sold only as an integrated appliance that included the
underlying hardware as well as the HMC firmware. Starting with V8R8.4, the HMC can now be
purchased as either the traditional hardware appliance (for example, model 7042-CRx) or as a
firmware only virtual machine image. The virtual HMC (vHMC) offering allows clients to use their
own hardware and server virtualization to host the IBM supplied HMC virtual appliance.
Uempty
HMC features
• Integrated, custom HMC software
ƒ Graphical user interface
ƒ Commands
• Remotely accessible
• Support for multiple managed systems
• Active partitions can continue to function without an HMC
ƒ The ability to change resource configuration is lost
Rack-mount
• Redundant capability
7042-CR9
• Partition information backups
• Console for logical partitions
• HMC connection options:
ƒ Private network
ƒ Open network
Virtual HMC
• Performance management
5765-HMV
• Template management
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
Management interfaces:
The HMC provides a GUI for managing the Power Systems. This GUI can be operated locally on
the HMC or from a web browser connected to the HMC over a network. While the vast majority of
work will be performed using the GUI, there are commands that can be entered directly on the HMC
and/or run through SSH connections from PCs or LPARs in the managed Power System to
automate functions such as LPAR configuration changes.
The HMC virtual appliance can be installed in your existing x86 virtualized infrastructure. The HMC
virtual appliance supports the following virtualization hypervisors:
• Kernel-based virtual machine (KVM)
• Xen
• VMware
Uempty
HMC options
• Refreshed rack-mounted HMC
ƒ For POWER6 and later servers
ƒ 7042-CR9 - follow-on to CR8
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
Now you can mix hardware and virtual HMC in following combination:
1. Only hardware
2. Hardware and virtual
3. Only wirtual
Uempty
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
HMC 7042-CR8 and 7042-CR7 are still supported but are no longer marketed.
Uempty
HMC functions
• Configuration management
• Operations management
• Change management
• Problem management
• Service management
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
When you log on to the HMC you can choose which software interface to use. The HMC Classic
interface provides access to all traditional functions of the HMC and the HMC Enhanced interface
provides both redesigned and new virtualization tasks and functions.
Bellow some traditional functions:
• Configuration management
• Server and partition configuration
• Virtual I/O configuration
• Capacity on-demand management
• HMC setup and configuration
• Operations management
• GUI or command line, local, or remote
• Virtual operating system consoles
• Server partition controls
• Dynamic LPAR resource movement
Uempty
• Scheduled operations
• Change management
• Add/remove server hardware
• Check and update Licensed Internal Code on servers and on HMC itself
• Problem management
• Hardware error event collection, analysis, and correlation
• Gathering of extended debug data
• Transmission of problems to IBM
• Service management
• Guided concurrent repair procedures
• Hardware inventory collection
• Service utilities
Uempty
Capacity on demand
• Capacity on Demand (CoD)
ƒ Activation of processors or memory
• Capacity Upgrade on Demand (CUoD)
ƒ permanently activate one or more inactive processor cores or memory
• Trial CoD
ƒ No charge 30-day activation of processors or memory resources
• Elastic CoD
ƒ Ability to activate processor or memory resources temporarily
• Utility CoD
Add reserve
ƒ Ability to cover unpredictable, short workload spikes resources
• Power Enterprise Pool
ƒ Group of systems that can share Mobile Capacity on Demand (CoD)
processor resources and memory resources
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
CoD is a list of features that can be purchased. The bullets in the visual list the purchasing options
that are managed from the HMC and require a license key to activate:
• Capacity CUoD Capacity on Demand (CoD) offerings you can dynamically activate one or
more resources on your server as your business peaks dictate. You can activate inactive
processor cores or memory units that are already installed on your server on a temporary and
permanent basis. It requires a purchase agreement. Once processors or memory is added,
there is no ability to turn off the capacity.
• Trial CoD is available for 30 days at no additional cost to allow testing and emergency relief
while the customer processes the purchase of permanent CUoD resources.
• Elastic CoD (formerly referred to as On/Off CoD) allows you to temporarily activate and
deactivate processor cores and memory units to help meet the demands of business peaks.
After you request that a number of processor cores or memory units are to be made temporarily
available for a specified number of days, those processor cores and memory units are available
immediately. You can start and stop requests for Elastic CoD, and you are billed for usage at the
end of each quarter.
• Utility CoD is used when you have unpredictable, short workload spikes. Utility CoD
automatically provides additional processor capacity on a temporary basis within the shared
Uempty
processor pool. Use is measured in processor minute increments and is reported at the Utility
CoD website.
• Power Enterprise Pool is a group of systems that can share Mobile Capacity on Demand
(CoD) processor resources and memory resources.
Uempty
HMC education
Hardware Management Console (HMC) for Power with IBM i
This course is designed to familiarize the student with functions of the
HMC using lecture and lab. After completing this course, you should be
able to: Install an HMC and go through the setup wizard, connect the
HMC to a managed system, create, and manage partitions manually or
with a .sysplan, manage the HMC including updating code for the HMC
and firmware in the managed system
http://www.ibm.com/training
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
This course is designed to familiarize students with functions of the HMC using lecture and lab
exercises.
Uempty
Review questions
1. What is the component needed to configure partitions,
configure CoD, and provide access to virtual consoles?
a. FSP
b. HMC
c. POWER Hypervisor
d. NVRAM
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
Uempty
Review answers
1. What is the component needed to configure partitions, configure CoD,
and provide access to virtual consoles?
a. FSP
b. HMC
c. POWER Hypervisor
d. NVRAM
The answer is HMC.
3. True or False: The HMC can be used with two different software
interface classic or enhanced.
The answer is True.
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
Uempty
Unit summary
• Discuss the different consoles that can be used with Power with IBM i
• Describe the concepts of HMC
• List the different HMC models that are available
• Describe virtual HMC appliance
• Describe the differences between IVM, HMC
• Describe the different capacity on-demand options available
Console options and HMC overview © Copyright IBM Corporation 2001, 2016
Uempty
Overview
The intention of this unit is not to replace the HMC course, but to explain some HMC functions that
allow the operator to use advanced work management. In addition, this unit explains some
virtualization aspects, like virtual Ethernet.
Uempty
Unit objectives
• Explain how to dynamically change partition parameters like CPU,
Memory, Physical and Virtual Resources
• Explain how to set up virtual Ethernet between partitions
• Explain basic servers and partitions operations
Uempty
Uempty
Partition profile
A partition profile is a record on the Hardware Management Console that specifies a possible set
of resource allocations and activation settings for a logical partition. To activate a logical partition,
you must activate one of the partition profiles for that logical partition. The managed system uses
the partition profile to configure the resources for the logical partition.
The partition profile is a separate entity from the logical partition. Changing the partition profile
properties does not automatically change the resource allocations for an active logical partition.
Similarly, changing the resource allocations for an active logical partition does not automatically
change the properties for any partition profile.
Uempty
On the visual you see the typical processing unit and memory configuration. It is important to
understand the minimum desired and maximum amount of processor / memory assigned to the
partition. After the partition is IPL'ed the resources are assigned to the partition in the desired level
if available. Using dynamical logical partitioning (DLPAR) you can increase or decreased to
minimum defined in the partition profile.
Uempty
I/O adapters
I/O and virtual I/O adapters can be assigned to a partition as desired or required. If I/O is required,
it cannot be moved until partition is stopped.
Uempty
Dynamic partitioning
Dynamic partitioning (DLPAR) allows you to dynamically (without start stop partition) manage
resources.
Right-click the partition name and from tasks choose Dynamic Partitioning now choose:
• Processor
• Memory
• Physical / Virtual Adapters
• Host Ethernet
• Select action:
▪ Add or Remove
▪ Move
On the next slide we show all the operations on processor resources, but this same way you can
dynamically manage other resources.
If want to manage I/O resources, it must be desired for partition.
Dynamic partitioning working with active partition.
Note: If you are dynamically adding resources or are creating some adapters you must modify the
partition profile, otherwise after the IPL is partitioned you will lose added or created dynamically
resources.
Uempty
Right-click the partition name and from tasks chose Dynamic Partitioning > Processor > Add or
Remove.
Add/Remove Processor Resources
Use this window to add processor resources to or remove processor resources from the selected
logical partition without restarting the logical partition.
When you add processors or processing units to a logical partition dynamically, you must meet the
following conditions:
• The number of processors or processing units that you add must be less than or equal to the
available number of processors or processing units.
• The number of processors or processing units that the logical partition will have must be less
than or equal to the maximum number of processors or processing units set for the logical
partition.
• If the logical partition uses shared processors, the number of virtual processors that the logical
partition will have must be equal to or greater than the number of processing units that the
logical partition will have, and less than or equal to the maximum number of virtual processors
set for the logical partition.
Uempty
When you remove processor resources from a logical partition dynamically, you must meet the
following conditions:
• The number of processors or processing units that the logical partition will have must be less
than or equal to the maximum number of processors or processing units set for the logical
partition.
• If the logical partition uses shared processors, the number of virtual processors that the logical
partition will have must be equal to or greater than the number of processing units that the
logical partition will have, and less than or equal to the maximum number of virtual processors
set for the logical partition.
Right-click the partition name and from tasks chose Dynamic Partitioning > Processor > Move.
Move Processor Resources
Use this window to move processor resources from the selected logical partition to another logical
partition without restarting either logical partition.
• You can move processors or processing units dynamically between logical partitions if the
following conditions are met:
• The number of processors or processing units that you move must be less than or equal to the
movable number of processors or processing units on the source logical partition.
• The number of processors or processing units that the destination logical partition will have
must be less than or equal to the maximum number of processors or processing units set for the
destination logical partition.
• If the source logical partition uses shared processors, the number of virtual processors that you
move must be less than or equal to the movable number of virtual processors on the source
logical partition.
• If the destination logical partition uses shared processors, the number of virtual processors that
the destination logical partition will have must be greater than or equal to the number of
processing units that the destination logical partition will have, and less than or equal to the
maximum number of virtual processors set for the logical partition.
Uempty
Right-click the partition name and from tasks chose Dynamic Partitioning > Memory > Add or
Remove.
Add/Remove Memory Resources
Use this window to add memory resources to or remove memory resources from the selected
logical partition without restarting the logical partition.
When you add memory or processing units to a logical partition dynamically, you must meet the
following conditions:
• The amount of the memory that you add must be less than or equal to the available memory.
• The amount of the memory that the logical partition will have must be less than or equal to the
maximum amount of the memory set for the logical partition.
Right-click the partition name and from tasks chose Dynamic Partitioning > Memory > Move.
Move Memory Resources
Use this window to move memory resources from the selected logical partition to another logical
partition without restarting either logical partition.
You can move memory dynamically between logical partitions if the following conditions are met:
Uempty
• The amount of the memory that you move must be less than or equal to the movable amount of
the memory on the source logical partition.
• The amount of the memory that the destination logical partition will have must be less than or
equal to the maximum amount of the memory set for the destination logical partition.
Note
Depending on how busy the system is, removing or moving memory might not run at once. And it
might need to be repeated.
Uempty
When you add an I/O slot to a logical partition, the I/O adapter in that I/O slot and the devices that
are controlled by the I/O adapter can be used by the logical partition. This function is typically used
to share infrequently used devices among logical partitions by moving these devices from one
logical partition to another.
Right-click the partition name and from tasks chose Dynamic Partitioning > Physical Adapters >
Add or Remove.
Right-click another partition and from tasks chose Dynamic Partitioning > Memory > Move.
Uempty
Dynamic partitioning for virtual adapters, you can only add, create, or delete it. You can add the
following virtual adapters:
• Ethernet
• Fibre Channel
• SCSI
• Serial
Note
Before you start creating new virtual adapters check the current number of virtual adapters and
available maximum. If both values are equal, you have to change the partition profile definition.
Right-click the partition name and from tasks chose Dynamic Partitioning > Virtual Adapters >
Action > Create Virtual Adapter.
To delete the virtual adapter, select it and then chose Action > Delete.
Uempty
This course does not cover all HMC tasks, but from an Advanced Operator perspective it could be
useful to know how two partitions communicate without a physical Ethernet adapter. To do this you
can add it by dynamical creation of the Ethernet virtual adapter (if necessary you have to create it
on both partitions).
To create virtual Ethernet adapter right-click the partition name and from tasks chose Dynamic
Partitioning > Virtual Adapters > Action > Create Virtual Adapter > Ethernet Adapter.
Uempty
Uempty
chhwres command. The managed system prefix is used to build the partition virtual Ethernet MAC
addresses during partition activation.
Additionally, in specific POWER7 processor-based servers, you have the option of specifying a
complete custom MAC address instead of using one that is automatically generated by the HMC.
Note
To determine whether a POWER7 processor-based server provides the capability to customize the
whole MAC address instead of only the MAC address prefix, run the lssyscfg command using
the '-F capabilities' option. If the custom_mac_addr_capable capability is listed for the POWER7
processor-based server, then the whole MAC address can be customized for any virtual Ethernet
adapter. Otherwise, only the MAC address prefix can be changed for the virtual Ethernet adapter.
Beginning with POWER7 processor-based servers, you can use the Edit option to modify the IEEE
802.1Q Compatible adapter, Additional VLANs, and QoS priorities of the Virtual Ethernet Adapter
during dynamic logical partitioning operation.
Current settings for the Virtual Ethernet adapter are listed at the bottom of the panel. Information on
these settings can be found in the detailed help below. The Create Virtual Ethernet Adapter panel
has the following two tabs:
General
• Use this tab to enter the virtual ID, vSwitch, VLAN ID, and select the optional settings.
• You can find more detailed help on the following elements of this window:
▪ Adapter ID
- Specify the slot number to use for this virtual Ethernet adapter. The slot number is used
to identify the virtual adapter within the logical partition. (The combinations of the slot
number and the logical partition ID uniquely identify this slot within the managed
system.)
- This slot number does not refer to any physical hardware location on your system.
Therefore, you can assign slot numbers to virtual adapters in any way that makes sense
to you, provided that you follow the following guidelines:
○ You can use any slot number from 2 up to (but not including) the maximum number
of virtual adapters. (Slots 0 and 1 are reserved for system-created virtual adapters. If
the logical partition is a Virtual I/O Server logical partition, other slot numbers might
also be reserved.) For example, if the maximum number of virtual adapters is 10,
and the logical partition is not a Virtual I/O Server logical partition, you can use any
slot number from 2 to 9. By default, the system displays the lowest unused slot
number for this logical partition.
○ You cannot use a slot number that was used for any other virtual adapter on the
same logical partition.
Uempty
▪ VSwitch
- Select a VSwitch from the list to which you want to connect the virtual Ethernet adapter.
You can create multiple VLAN adapters in a partition by using the virtual switches
(VSwitches). These adapters can route through different physical adapters to the
external network by using VSwitches. The VSwitch (VSwitch0) is defined by default.
▪ Port Virtual Ethernet (VLAN ID)
- Specify the ID number for the Virtual Local Area Network (LAN) to which you want to
connect this virtual Ethernet adapter. This virtual LAN ID number can be any whole
number from 1 to 4094.
▪ View Virtual Network
- Select View Virtual Network to view Virtual Switch (VSwitch) and Virtual LAN (VLAN)
configurations.
From this task, you can:
○ View existing VSwitches and their associated VLANs
○ Create a new VSwitch
- VSwitches are created using this task. VLANs are created when a partition with a VLAN
defined is activated. For more information on managing virtual networks, select Help
from the Virtual Network Management panel.
▪ Optional Settings
- Select IEEE 802.1q compatible adapter or Access external network to set these optional
settings for the virtual Ethernet adapter.
You can find more detailed help on the following elements of this page:
○ IEEE 802.1 compatible adapter
- Select this option to add this virtual Ethernet adapter to additional Virtual Local Area
Networks (LANs) as specified in the IEEE 802.1Q network standard. Selecting this
option allows you to specify additional virtual LAN IDs for the adapter.
- Not all versions of all operating systems support the IEEE 802.1Q network standard. If
the operating system does not support the IEEE 802.1Q network standard, the virtual
Ethernet adapter can connect to only one virtual LAN (as identified by VLAN ID).
- You can find this option only if Hardware Management Console (HMC) supports the
power hypervisor capability.
▪ New VLAN ID
- Specify the ID number for any additional Virtual Local Area Networks (LANs) to which
you want to connect this virtual Ethernet adapter and click Add. This virtual LAN ID
number can be any whole number from 2 to 4094. Beginning with POWER7
processor-based servers, you can specify a range of VLANs or a comma separated list
of VLANs and can modify the VLAN ID dynamically while the logical partition is active.
▪ Additional VLANs
- This option is visible when you select IEEE 802.1 compatible adapter.
Uempty
- Lists the ID numbers of any additional Virtual Local Area Networks (LANs) to which the
virtual Ethernet adapter belongs. To remove the virtual Ethernet adapter from a virtual
LAN, select the virtual LAN here and click Remove.
▪ Access external network
- Indicate whether this virtual Ethernet adapter is the trunk adapter on this Virtual Local
Area Network (LAN).
- A trunk adapter is an Ethernet adapter that links its LAN to an external network. If a data
transmission on the virtual LAN is addressed to an Ethernet adapter that does not exist
on the virtual LAN, the data transmission is sent to the trunk adapter. The trunk adapter
can then forward the data transmission to an external network.
- Selecting this option will not automatically connect the virtual LAN to an external
network. You must also configure the operating system of the logical partition to forward
information to the external network.
- Not all versions of all operating systems support trunk adapters. Your operating system
might support other methods for connecting logical partitions to external networks. To
determine which method is appropriate for your situation, consult the documentation for
your operating system.
- A virtual LAN can have only one active trunk adapter at a time. You can create only one
trunk adapter for each virtual LAN on your managed system unless you are creating
redundant trunk adapters for virtual trunk adapter failover capability. If you create
redundant trunk adapters for virtual trunk adapter failover capability, you must follow
these rules when creating these adapters:
○ The virtual LAN ID in Virtual LAN ID must match for all redundant trunk adapters.
○ The trunk priority in Trunk priority must be unique for each redundant trunk adapter.
○ All of the virtual LAN IDs in Additional VLANs must match for all redundant trunk
adapters.
Advanced
Beginning with POWER7 processor-based servers, you can use this tab to configure advanced
options for your virtual Ethernet adapter. When adding a virtual Ethernet adapter to a logical
partition, you can configure a custom MAC address for the adapter and specify restrictions for
operating system-defined MAC addresses. If the managed system provides support for quality of
service, you also can specify a priority for network communications for the adapter. You can edit the
QoS priorities using the dynamic logical partitioning operation when the partition is running.
Advanced properties
▪ Default MAC Address
- The MAC address is automatically generated by the Hardware Management Console
(HMC). Beginning with POWER7 processor-based servers, you have the option of
specifying a custom MAC address. This field displays a value of auto-assigned unless
you choose to specify a custom MAC address by selecting the Override option.
Uempty
▪ Override
- Select this option if you want to specify a custom MAC address for the virtual Ethernet
adapter.
▪ Custom MAC address
- If you select Override, you can specify a custom MAC address.
- The MAC address is a 12-character hexadecimal string. The valid characters are from 0
to 9 and A to F. The characters are not case-sensitive. There are two rules for MAC
addresses: Bit 1 of byte zero of the MAC addresses, for example: mask
0x010000000000, is reserved for Ethernet multicasting and must always be '0'. Bit 2 of
byte zero of the MAC addresses must always be '1', as it indicates that the MAC is a
locally administered address. For example, these virtual Ethernet MAC addresses follow
the rules: FE:00:00:00:00:00, F2:00:00:00:00.
▪ Maximum quality of service
- The QoS setting on the virtual adapter is a maximum value. It will limit the outgoing
packets to that priority by lowering any packet priority that is greater than the max, but
any lower priority packet will remain at its current priority.
- You can select one of the following values for the priority level:
1. 1 - background
2. 2 - spare
3. 0 (default) - best effort
4. 3 - excellent effort
5. 4 - controlled load
6. 5 - video (less than 100 ms latency and jitter)
7. 6 - voice (less than 10 ms latency and jitter)
8. 7 - network control
▪ MAC Address Restrictions
- You can choose the following values for any operating system-defined MAC addresses.
▪ Allow all O/S Defined MAC Addresses
- Select this option to allow any operating system-defined MAC addresses. This is the
default value.
▪ Deny all O/S Defined MAC Addresses
- This option does not allow any operating system-defined MAC address(es).
▪ Specify Allowable O/S Defined MAC Addresses
- Select this option to specify a maximum of four operating system-defined MAC
addresses that are allowed.
▪ Allowed MAC Address
- Specify a MAC address in the Allowed MAC Address field and click Add.
Uempty
- This adds the address to the Allowed MAC Address(es) list. You can specify a maximum
of four MAC addresses.
- Click Remove to delete a MAC Address from the list.
▪ Virtual Station Interface
- VSI Type ID
○ Specify the type ID of the VSI profile.
▪ VSI Type Version
- Specify the version number of the VSI profile.
▪ VSI Manager ID
- Specify the ID of the VSI manager.
Uempty
Note all virtual devices have a letter in type like 268C. When you create new device check it using
WRKHDWRSC *CMN for communication devices.
Uempty
Uempty
Serviceability
For each partition you can view / manage serviceable events and see Reference Codes.
Additionally when you need to run DST (dedicated service tools) you can activate it using Control
Panel function 21 (active console 5250 session is required to use this function).
From Tasks (bottom of screen) expand Serviceability > Manage Serviceable Events > Manage
Serviceable Events.
Use this window to select the criteria for the set of serviceable events you want to view. When you
finish selecting the criteria, you can view the serviceable events that match your specified criteria.
Select ALL if you do not want the results filtered.
Event criteria
Serviceable event status: Select one event status to filter the problems you want to view. You can
view Open or Closed events.
Problem Number: Select one problem number to filter the problems you want to view.
Uempty
Error criteria
Reporting system MTMS: Select ALL to view all events for all reporting systems or select the
machine type-model/serial number (MTMS) of the system that reported the serviceable events that
you want to view. The list of MTMS is in the following format: TTTT-MMM/NNNNNNN, where TTTT
is the machine type, MMM is the model number, and NNNNNNN is the serial number.
Failing enclosure MTMS: Select ALL to view all units that failed or select the machine
type-model/serial number (MTMS) of a specific unit that failed and generated the serviceable
events that you want to view. This field lists only those units for which serviceable events are
available.
Reference code: Select one reference code to filter the problems you want to view. This lists only
reference codes for which serviceable events are available.
Number of days: Specify the number of days of past events to view, starting with today to filter the
problems you want to view. The range is 1, 7, 14, or 30.
Field-Replaceable Unit (FRU) criteria
Part number: Select one part number to filter the problems you want to view.
Location code: Select one location code to filter the problems you want to view.
From the Tasks (bottom of screen) expand Serviceability > Reference Code History.
Reference Code History (Partition): Use this window to view reference codes that have been
generated for the selected logical partition. Reference codes are diagnostic aids that help you
determine the source of a hardware or operating system problem.
By default, only the most recent reference codes that the logical partition has generated display on
this window. To view more reference codes, enter the number of reference codes that you want to
view into View history and click Go. The window displays that number of the latest reference codes,
with the date and time at which each reference code was generated. The window can display up to
the maximum number of reference codes stored for the logical partition.
The details displayed in the Reference Codes table are as follows:
Time stamp: This column displays the date and time at which each reference code was
generated in Coordinated Universal Time (UTC).
Code: This column displays each reference code that was generated for the logical partition.
You can click the reference code to see whether there is any additional descriptive text for the
reference code.
FRU callout: This column displays the Field Replaceable Unit (FRU) numbers for the FRUs
whose absence or failure caused each reference code to be generated.
You can select any of the reference codes in the table to more detailed information about the
reference code in the Details table. The Details table displays hexadecimal words that can
provide additional information about the problem that caused this reference code to be
generated.
From Tasks (bottom of screen) expand Serviceability > Control Panel Function.
Now you can run some Control Panel functions for example function 21 DST.
Uempty
Power Off: This task shuts down the managed system. Turning off the managed system makes all
partitions unavailable until the system is turned on again.
Normal power off: The system ends all active jobs in a controlled manner. During that time,
programs running in those jobs are allowed to perform cleanup (end-of-job processing).
Fast power off: The system ends all active jobs immediately. The programs running in those jobs
are not allowed to perform any cleanup.
Note
Powering down a server with running partitions is not recommended, shutdown all partitions first. If
you Power Off with running partitions a warning window will appear.
Uempty
Operations: Power On
Power On: Use the Power On task to start a managed system. You can choose from two different
options to start your managed system:
• Normal: Turns on the managed system to partition standby mode and then activates all
partitions that are marked as auto start or those partitions that were running when the system
shutdown.
• Hardware Discovery: Selecting this Power On option specifies that the HMC run the hardware
discovery process when the managed system powers on. The hardware discovery process
captures information about all I/O devices: In particular those devices not currently assigned to
partitions.
Uempty
This visual lists some of the states that will be displayed on the HMC. At this point, only the four
states listed under Service Processor Powered on apply.
• No Connection: This is a cause for concern because the HMC cannot connect to the managed
system specified.
• Pending Authentication: This requires the service processor password to be updated.
• Failed Authentication: The service processor password is incorrect.
• Error: The operating system or the hardware of the managed system is experiencing errors.
• Error - Dump in Progress: The managed system encountered an error and is performing a
system dump.
After you activate the managed system and create or activate partitions, you will see the other
states (and more), which are applicable to the powered on managed system and partitions. These
will be discussed later.
Uempty
Initializing: The managed system is powered on and is initializing. The initialization time might vary
depending on the hardware and the partition configuration of the managed system.
Standby: The managed system is powered on using the Power on standby option. It will stay in this
state until a logical partition is activated. You can create and modify logical partitions while the
managed system is in this state.
Operating: The managed system initialized and is operational.
Error - Terminated: The managed system encountered an error and has performed a system
dump.
On Demand Recovery: The anchor card (also known as the system VPD card) on this managed
system was replaced. You must enter replacement activation codes for Capacity on Demand or
Virtualization Engine system technologies. On/Off CoD requests must be restarted
Powering Off: The managed system is powering off normally.
Uempty
Incomplete: The HMC failed to get all of the necessary information from the managed system.
Refresh the internal representation of the managed system on the HMC using the Rebuild task.
The Rebuild operation does not disrupt the operation of the running server. If the rebuild is
unsuccessful, refer to the Correcting an Incomplete State for a Managed System topic in the
Managing the HMC v7 Guide publication. You can access this HMC publication and other useful
HMC documentation either in the PDF or HTML format from the Additional Resources section in the
HMC Welcome page.
Recovery: The save area in service processor is not synchronized with the HMC database.
Service Processor Failover In Progress: The primary service processor in the managed system
is performing an administrative failover and transferring system management to the secondary
service processor. This transfer is in progress.
Version Mismatch: This version of HMC is unable to manage the system. Update the HMC
Licensed Internal Code.
Uempty
Uempty
To work with partitions on a server: Click the name of the managed system under the Server tab.
On the main pane you will see a partition or partitions. You must select the partition and then
perform the task.
Systems Management > Servers > click chosen server name.
Uempty
Partition tasks
When the partition has been selected, there are three ways to view the tasks that can be
performed. They are:
• Using the Tasks list at the top of the screen.
• Using the Tasks menu located in the bottom of the screen.
• Clicking the arrow next to the name on the selected partition.
Uempty
Operations: Activate (1 of 2)
Uempty
Operations: Activate (2 of 2)
You can choose to work with a terminal window or console session when the partition is activated
by selecting Open a terminal window or console session.
Note
On the remote web browser connection to the HMC, the Open a terminal window or console
session is not available for IBM i type partitions. You can use you Open console session only locally
on HMC.
To run Console 5250 remotely you have to use IBM i Access Client Solutions.
Click Advanced for more options on activating the partition.
Alternatively, you can use the Activate - Current Configuration task to quickly start multiple
logical partitions by using the current configuration information for the partitions that is available on
the hypervisor.
Advance: Use the Advanced window to set options for the logical partition that you are activating.
No VSI Profile: Select this check box to ignore the failure in configuring the VSI profile and to
continue to activate the partition.
Uempty
Keylock position: Select a keylock position. The keylock position establishes the power-on and
power-off modes allowed for the system. Possible values are:
• Do not Override: Uses the current partition setting.
• Manual: After the partition is powered on, operating the managed system in manual (attended)
mode means that an operator uses the control panel to direct the managed system for special
needs. For security reasons, it is not preferred that you set the keylock position to Manual.
• Normal: After the partition is powered on, operating the managed system in Normal
(unattended) mode during the restart operation does not require the support of an operator.
For IBM i logical partitions
IPL type: Displays the IPL type of the partition. Possible values are:
• Do not Override: Uses the current partition setting.
• IPL type A: Use IPL type A when directed for special work, such as diagnostic work.
• IPL type B: Use IPL type B for routine work.
• IPL type C: This type of IPL is reserved for hardware service representatives.
• IPL type D: Use IPL type D when directed for special work, such as installing and reloading
programs. IPL type D loads the system programs from an alternate IPL load source, such as a
tape drive or CD-ROM.
For AIX or Linux logical partitions:
Boot mode: Displays the boot mode of this partition. This field is available only for the AIX or Linux
partitions. This field is disabled, when you are installing a VIOS image on a VIOS partition. For AIX
or Linux boot mode, the possible values are:
• Do Not Override: Uses the setting in the profile user selected here.
• Normal: The logical partition starts up as normal. (This is the mode that you use to perform
most everyday tasks.)
• SMS: The logical partition boots to the System Management Services (SMS) menu.
• Diagnostic with default boot list: The logical partition boots using the default boot list that is
stored in the system firmware. This mode is normally used to boot customer diagnostics from
the CD-ROM drive. Use this boot mode to run standalone diagnostics.
• Diagnostic with stored boot list: The logical partition performs a service mode boot using the
service mode boot list saved in NVRAM. Use this boot mode to run online diagnostics.
• Open Firmware OK prompt: The logical partition boots to the open firmware prompt. This
option is used by service personnel to obtain additional debug information.
• Install Virtual I/O Server: This option is available only when the partition is a Virtual I/O Server.
When a VIOS image is being installed, this option is selected by default and the field is grayed.
Uempty
Review questions
1. When defining a partition’s processors, why is the minimum
number of processors important?
a. You cannot go below this number of processors while the
partition is active.
b. If the wanted number of processors is not available (but if this
minimum necessary number is), the partition will still activate.
c. Both a and b.
Uempty
Review questions
1. When defining a partition’s processors, why is the minimum
number of processors important?
a. You cannot go below this number of processors while the
partition is active.
b. If the wanted number of processors is not available (but if this
minimum necessary number is), the partition will still activate.
c. Both a and b.
The answer is both a and b. You cannot go below this number
of processors while the partition is active and if the wanted
number of processors is not available (but if this minimum
necessary number is), the partition will still activate.
Uempty
Unit summary
• Explain how to dynamically change partition parameters like CPU,
Memory, Physical and Virtual Resources
• Explain how to set up virtual Ethernet between partitions
• Explain basic servers and partitions operations
Uempty
Overview
This unit describes the concepts and capabilities of the IBM i Access Family of software. It also
specifically explores one of those products - IBM i Access Client Solutions.
Uempty
Unit objectives
• Describe the features and capabilities of the IBM i Access Family of
products
• Describe the installation and use of IBM i Access Client Solutions
• List reference documentation
Uempty
Uempty
The IBM i Access Family of products provide easy to use, out of the box solutions for accessing
IBM i resources. These four products include alternatives for you to use to work with your business
applications and resources on IBM i. For example:
• The Windows-based solution provides more functional capabilities for the IBM i environment
than any other Windows-based product in the marketplace. Not only does it provide a very
high-function 5250 native Windows emulator, but it also provides key database access through
an easy-to-use GUI. It also provides drivers (such as ODBC, OLDB, and .NET) so that
Windows applications can access IBM i/OS resources. It also contains the System i Navigator
functions of Management Central, which is the GUI system management for IBM i.
• The web-based solution enables desktop users to connect to IBM i through their browsers.
This option requires no special software to be installed or configured on the desktop. The
desktop users can start up any browser (for example, Internet Explorer, Netscape, Firefox,
Mozilla, or Opera, and have the same look-and-feel when connecting to IBM i. Additionally, the
actual desktop operating system is completely transparent; thus allowing users with many
dissimilar desktop operating systems to connect to IBM i and see the same presentation.
• IBM i Access Client Solutions provides a Java based, platform-independent interface that runs
on most operating systems that support Java, Mac, and Windows™. This option requires a
simple “deployment” of the executable code to the workstation of choice.
Uempty
IBM does not plan to support IBM i Access for Windows on operating
systems beyond Windows 8.1.
IBM i Access for Windows delivers TCP/IP connectivity to users running a variety of Microsoft
Windows operating systems. IBM i Access for Windows offers an all-inclusive client solution for
accessing and using resources from your Windows desktop.
It includes 5250 emulation, access to DB2 for IBM i through its Data Transfer, and utilizes IBM i
NetServer for working with the IBM i integrated file system and printers. It also has a variety of
middleware for using and developing client applications to access IBM i resources; and System i
Navigator (Management Central), the IBM i GUI, for administering your IBM i.
The use of PC5250 and Data Transfer in IBM i Access for Windows requires an IBM i Access
Family (5770-XW1) license.
Uempty
IBM i Access for Web offers browser-based access to IBM i. IBM i Access for Web enables end
users to leverage business information, applications, and resources across an enterprise by
extending the IBM i resources to the client desktop through a web browser.
With it users can run batch commands, access the database as well as the integrated file system,
work with printers, printer output, and messages. A 5250 interface is also available.
Even though there is no code running on the workstation, IBM i Access for Web requires an IBM i
Access Family (5770-XW1) license on the target IBM i server.
Uempty
IBM i Access Client Solutions is new to the IBM i Access Family. It offers browser-based access to
IBM i. It runs on any platform that supports Java 6.0 or later including Windows, Mac, Linux, AIX, or
IBM i systems.
With it users can create and manage 5250 emulation sessions, access and transfer data, work with
printer output and manage their jobs. Executable code is deployed to the Java supported
workstation and this code provides the function. Nothing is installed on the client. Just download,
unpack, and execute the code. The target IBM i server requires an IBM i Access Family
(5770-XW1) license.
Uempty
Uempty
Navigator for i is a web-based graphical interface for accessing and managing resources and jobs
using a web browser.
The system management tasks in Navigator for i include System Tasks, Basic operations, Work
Management, Configuration and Service, Network, Integrated Services Administration, Security,
Users and Groups, Databases, Journal Management, Performance, File Systems, Internet
Configurations, and more.
This GUI display provides an advantage to operators, administrators, and users who do not have
an extensive knowledge of control language (CL) commands.
In this example, the Basic Operations folder has been opened and a tab with those commonly used
basic operations, is displayed.
Uempty
System Tasks include viewing system status, messages, disk status, system passwords,
application administration, and 5250 emulation.
Basic Operations allow you to easily manage lists of messages, printer output, and printers.
Work Management functions control the work done on the system. When the IBM i licensed
program is installed, it includes a work management environment that supports all interactive and
batch work. In addition, work management contains the functions you need to distribute resources
for your applications so that your system can handle your applications.
Configuration and Service provides functions to help you manage both hardware and software on
your system.
Network allows you to work with TCP/IP configuration, remote access services, networking
servers, IP policies, and integrated servers.
Internet Configuration allows you to work with the IBM i Internet configuration tasks such as
HTTP servers, Digital Certificates and more.
Security functions allow you to plan and implement security on your system.
Users and Groups displays a complete list of the users and groups on a system. You can use this
functional area to manage users and groups.
Uempty
Database is a graphical interface that you can use to perform many of your common administrative
database operations. Most of the IBM Navigator for i operations are based on Structured Query
Language (SQL), but you do not need to fully understand SQL to perform them.
File Systems are a part of IBM i that supports stream input/output and storage management
similar to personal computer and UNIX operating systems. They also provide a similar hierarchical
directory structure. Click File Systems to display a list of all IBM i file systems to which you are
authorized. You can access IBM i objects by specifying the path through the directories to the
object.
BRMS Backup, Recovery and Media Services helps you to easily manage complex saves, restores
and their media.
Application Administration allows the setting of access to functions or applications by your users.
Journal Management allows you to manage journal and journal receiver objects. A journal is an
object that records changes to files by sending information about the change to a journal receiver.
Integrated Server Administration combines the ease-of-use of a Windows, Linux, or VMware
server with the dependability and power of IBM i, giving you the flexibility to enroll and manage
users and groups, greater accessibility and protection for your data, and simplified administration.
Uempty
Uempty
Platform independent
• Runs anywhere that has Java.
ƒ Java 6.0 or later
• This includes:
ƒ Windows
ƒ Mac
ƒ Linux
ƒ AIX
ƒ IBM i
IBM i Access Client Solutions (ACS) need only be “deployed” to any Java supported platform. To
“deploy” the product, it must first be downloaded. The download consists of zipped configuration
and executable files. Next, the downloaded code must be unpacked to the media from which it will
be run, such as a local hard drive, network shares, or a thumb drive. You are then ready to use the
product to connect to the IBM i server. The simple steps are outlined below:
a. Download the product from IBM.
b. Unzip the download to the run media.
c. Run the startup program to initiate the product.
d. Define one or more target IBM i servers.
Uempty
http://www-03.ibm.com/systems/power/software/i/access/solutions.html
On the IBM i Access Client Solutions web page, there are two different downloads of the product
available. One is called the evaluation version (70 days) to preview. It is the current product and
can be downloaded by anyone with an IBM ID and password. This is by far the easiest way to get
your hands on ACS. Just click the “Download IBM i Access Client Solutions base package” link,
key in your IBM ID and password when prompted and the download will be initiated. If you want to
extend usage you have to have license.
You can also download IBM i Access Client Solutions and the two optional platform-specific
packages which include middleware for using and developing client applications. These two
packages are:
IBM i Access Client Solutions - Windows Application Package for Windows operating systems.
Features include:
• Connectivity to DB2 for i using ODBC, .Net, and OLE DB
• Programming Toolkit for accessing IBM i system objects
• Support for TLS/SSL connections
• AFP printer driver
Uempty
IBM i Access Client Solutions - Linux Application Package for Linux operating systems.
Features include:
• Connectivity to DB2 for i using ODBC
• Full support for 64-bit ODBC data types
• TCP/IP connectivity
Base ACS product and both packages can only be download from the Entitled Software Support
(ESS) website This requires an IBM ID and password as well as an IBM customer number for the
software support.
Uempty
Here are the folders and files that are unzipped to your location of choice. The Documentation
folder has GettingStarted.txt files in multiple languages. Read this document. It has detailed
information about the contents of the folders that you have unzipped as well as instructions on how
to start ACS.
The Start_Programs folder contains various platform-specific start programs for ACS. By clicking
the appropriate start program for your platform, you will initiate ACS.
Uempty
The visual illustrates the section of the GettingStarted.txt file that describes the
platform-specific start programs that are available for ACS. Each start program is found in its own
folder. A double-click of this startup program initiates ACS. You might want to send a shortcut of
your startup program to your desktop to facilitate later starts.
Uempty
Once IBM i Access Client Solutions has been started, target systems can be defined and
connected by using 5250 emulation, Navigator for i, or data transfer. Click System Configuration
under Management tasks. The System Configuration window is displayed. Any previously defined
systems are displayed in this window. Click New to define an additional system.
Uempty
The Add New System window is displayed. Key the system name or IP address and a description
into the prompts on the General tab. Click the Connection tab in order to designate how password
rules are to be handled. Select use a default user name to prompt for each system or prompt for the
user name and password every time. Click the General tab in order to return. From the General
tab, click the Verify button in order to verify the server connection.
Uempty
Return to the IBM i Access Client Solutions display and select a system using the pull-down. Now
ACS is ready to connect to the IBM i using the facility of choice by clicking the appropriate option.
Uempty
Topic 4: Reference
documentation
Uempty
http://www-03.ibm.com/systems/power/software/i/access/index.html
IBM i Access Family overview © Copyright IBM Corporation 2001, 2016
Uempty
Uempty
Review questions
1. True or False: IBM Navigator for i can display the system
history log.
Uempty
Review answers
1. True or False: IBM Navigator for i can display the system
history log.
The answer is true.
Uempty
Unit summary
• Describe the features and capabilities of the IBM i Access Family of
products
• Describe the installation and use of IBM i Access Client Solutions
• List reference documentation
Uempty
Overview
This unit describes the new functionality available in IBM i Access Client Solutions.
Uempty
Unit objectives
• Describe purpose IBM i Access Client Solutions
• Describe available tasks IBM i Access Client Solutions
Uempty
• Client bundle
ƒ Contains the Java executable .jar properties file, platform-specific start
executables and JavaScript start samples, product documentation, and
licensing notices.
ƒ All that is required to be deployed is the Java executable .jar.
ƒ The rest is optional.
• No JRE distributed
ƒ IBM i Access Client Solutions does not deploy a specific JRE.
ƒ Relies on a Java 1.6 or higher JRE to be accessible on the client OS.
IBM i Access Client Solutions © Copyright IBM Corporation 2001, 2016
Uempty
Uempty
On the visual you can see IBM i Access Client Solutions (ACS) main screen. ACS offers many
features previously in IBM Client Access.
Features include:
• 5250 display and printer emulation based on IBM's Host-on-Demand
• 5250 Session Manager support modeled after IBM Personal Communications Session
Manager
• Multiple language support for concurrent 5250 emulation sessions on the same client
• Data Transfer similar to IBM i Access for Windows Data Transfer plus support for
OpenDocument spreadsheet (*.ods), Excel Workbook (*.xlsx), and other file formats
• Data Transfer integration with Excel and OpenOffice
• Simplified SSL Configuration
• Download and viewing of spool files
• IBM i Virtual Control Panel for LAN and HMC consoles
• 5250 emulation for LAN and HMC consoles
Uempty
• Consolidation of hardware management interface configurations, including ASMI, IVM, and
HMC
IBM i Access Client Solutions - Windows Application Package for Windows operating systems.
Features include:
• Connectivity to DB2 for i using ODBC, .Net, and OLE DB
• Programming Toolkit for accessing IBM i system objects
• Support for TLS/SSL connections
• AFP printer driver
Uempty
System Configurations (1 of 2)
• Use the System Configurations panel to store connection information on
the IBM i Systems that are used.
Uempty
System Configurations (2 of 2)
Create, edit, or delete connection
information for IBM i Systems that are
used.
To add a new system click the New button. If you want to modify a system click the Edit button.
If you want to use LAN Console use Locate Console button.
In the General and Connection tabs enter:
• System name or IP Address
• User name to connect
Uempty
Console configuration
• Console information is configured in the System Configuration panel
ƒ LAN Console/Virtual Control Panel
í Service host name
On the Console configuration tab you can also configure Virtual Control Panel by pressing
Advanced button.
Uempty
Console
• 5250 Console: Opens an interactive console to the current system
• Virtual Control Panel: Opens a Virtual Control Panel if LAN Console is
used for the current system
• Hardware Management Interface 1: Opens a web browser to the
management console specified for the current system
Uempty
5250 Console
• 5250 HMC Console
Note on the 5250 Console screen you see the ‘HMC 5250 Console’ watermark.
Uempty
The Virtual Control Panel allows you manage control panel functionality.
Uempty
Run SQL Scripts is a useful tool for running SQL statements and CL commands.
Uempty
SQL Performance Center provides a set of tools to help you optimize the SQL in your database
applications.
• Analyze - Provides a summarized view of collected performance data that serves as a launch
point into deeper analysis using drill-down navigation.
• Show Statements - Links to IBM Navigator for i.
• Compare - Links to IBM Navigator for i.
• SQL Plan Cache - Links to IBM Navigator for i.
Uempty
5250 Emulation (1 of 3)
• Opens an IBM 5250 Telnet session to the current system
Uempty
5250 Emulation (2 of 3)
• Provides nearly identical interaction, look, and feel to the Access for
Windows PC5250 emulator
5250 Emulator starts a 5250 display session for the selected system. If a 5250 display session
profile exists for the selected system, the profile is used when starting the display session;
otherwise, a default display session profile is used.
When the 5250 display session is ended, if a profile does not exist for the system, you are
prompted to save the current settings of the display session to a 5250 display session profile. The
saved display session profile will be used the next time a 5250 display session is started for the
system. The saved 5250 display session profile can be managed using 5250 Session Manager
from the Management tasks.
Uempty
5250 Emulation (3 of 3)
• IBM i Access Client Solutions 5250 Emulation sessions are saved as
.hod files.
ƒ Access for Windows PC5250 .ws files can be imported into .hod files.
ƒ .hod files can also be saved outside of the Session Manager.
í Need to set up a file association in the PC operating system to run the file and have
it open the emulator.
Uempty
5250 Session Manager provides an interface to create and manage IBM i display and printer
emulator sessions. 5250 Session Manager supports:
• Creating new 5250 display session profiles
• Creating new 5250 printer session profiles
• Creating or editing multiple session batch files
• Starting a display or printer emulation session using existing session profiles
• Viewing all active 5250 display and printer emulator sessions
• Importing session profiles from IBM Personal Communications (*.ws)
Uempty
Uempty
Printer Output
On the left pane IBM i Access Client Solutions click Printer Output.
Printer Output - provides an interface that allows you to view files in the IBM i output queues and
also provides the capability to download these files to your client system. By default, the current
user's output files are displayed for all output queues.
Uempty
Actions
You can select file or files by clicking it and then right-clicking to see possible operations or use
Actions menu:
• Download Only: Download the selected files.
• Download and View: Download the selected files and then open them. The program used to
open the files is platform-dependent based on the file extension.
• View Only: Download the selected files to a temporary location and then open them. The
program used to open the files is platform-dependent based on the file extension.
Uempty
View
Download
Depending on the chosen action you can see your spool file in .pdf format or download it. You can
choose both download and open i one operation. If you have a PDF reader installed on your
workstation you can see in .pdf format if not you will see a .TXT format.
Uempty
Preferences
On the Printer Output window click the Edit menu and then Preferences.
Use the Download Location option to set the location where the printer output files are downloaded.
Download to desktop: Printer output will be downloaded to the user's desktop and placed in a
folder named after the target system.
Download to a temporary location: Printer output will be downloaded into a temporary
subdirectory for the user.
Download to the product's configuration root: A subdirectory named Splf will be created below
the product's configuration root, and printer output will be downloaded there. The text area displays
the path name of this directory.
Specify a location: Printer output will be downloaded to the specified location.
Regardless of the Download Location setting, printer output is stored in a subdirectory unique to the
target system.
Uempty
The “Use PDF format if available” option is used to determine whether printer output with a *SCS or
*AFPDS device type should be converted to PDF format. If this option is enabled and the host
supports PDF transformations, then the client file is stored in PDF format with the .pdf file
extension. Otherwise, it is stored in plain text and stored with a .txt file extension. The host
supports PDF transformations if the Transform Services product (option 1) is installed and
functional.
Uempty
On the Printer Output click the View menu you can see following items:
Active Tasks Pane
From the View menu, you can enable or disable the Active Tasks Pane. This pane will display the
progress for printer output that is currently being downloaded. When the task is complete, the task
is removed from this pane.
Download Pane: From the View menu, you can enable or disable “Download Pane”. This will
display an area labeled “Downloaded Files” that shows downloaded printer output. From this pane,
you can drag and drop files to your local file system.
On the download pane you can select downloaded files and use the Open or Delete button to
manage files.
Download Directory: From the View menu, choose Download Directory. This will launch your
platform's file browser to the location of the downloaded files. For instance, on Windows operating
systems, Windows Explorer will be launched.
Set Filter
You can customize the printer output based on user and output queue.
Uempty
Options for filtering by User are:
• Current user (*CURRENT): Printer output is displayed for the current user.
• All users (*ALL): Printer output is displayed for all users.
• Select user: Printer output is displayed for the selected user.
Options for filtering by output queue are:
• All output queues (*ALL): Printer output from all output queues are shown.
• Select a specific output queue: Printer output is displayed for a specific output queue. The
output queue must be specified in “LIBRARY/FILE” format.
Uempty
Data Transfer
Data Transfer provides an interface to help you transfer data between your client system and your
IBM i.
Data Transfer supports many common file formats, such as:
• OpenDocument Spreadsheet (*.ods)
• Excel Workbook (*.xlsx)
• Excel 97-2003 Workbook (*.xls)
• CSV (Comma delimited) (*.csv)
Data Transfer from IBM i allows you to transfer data from a file on your IBM i to a file or active
spreadsheet on your client workstation. To create a transfer request from the system, you must
specify the following options:
• System: The name of the IBM i from which you want to transfer your data. You can either select
a configured system or type the name of the system in the text box.
• File name (IBM i): Provides a space for you to enter the library, file, and optional member name
of the file from which you are transferring your data. You can either browse to find the file on
your IBM i, or type the name of the file. An example of a file name is
mylib/myfile(mymember). To browse the contents of a library, either leave the File name
field blank, or specify a library name followed by a slash character, for example: QIWS/.
Uempty
• Data Options: Clicking the Data Options button allows you to specify ways to select, group,
and order the data you transfer from the IBM i.
• Output Device: Allows you to specify what type of device your data is transferred to. You can
select to transfer data to a file or directly to a window on your display. You can also transfer data
to an active spreadsheet. When transferring data to a file or active spreadsheet, you can click
the Details button to select more options for transferring the data.
• Name: The name of the file on your workstation that will contain the data you want to retrieve
from your IBM i. You can either browse to find the file on your workstation, or type the path and
name of the file in the text box. This option is not available when using an active spreadsheet.
• Format Options: Clicking the Format Options button allows you to specify how you want your
data formatted.
• Details: Clicking the Details button allows you to specify more detailed information about the
transfer request.
• Properties: Clicking the Properties button allows you to specify more information about how
you want your data transferred. It includes options for conversions, connection information, and
how to display IBM i object names. It also allows you to set the Library List to enable browsing
for files in a set of libraries.
When you are ready to transfer your data, click the Start Transfer button.
Uempty
Preferences: General
Use the Locale field to select the locale you want to use. The choices include all locales supported
by the installed Java virtual machine (JVM). The language will be determined by the locale value. If
the language is not available for that locale, English will be used. Locales that have an asterisk (that
is, *) after them will use English as the language.
Use the Logging level to control the types of events that are logged. Logging is used to store
information about the state of your IBM i Access Client Solutions application. This logging
information can be used by IBM Service to aid in problem determination. Log files are stored on
your system in a location, which is shown in the Local Settings tab. When more detailed logging is
enabled, more space is used in your file system. Therefore, detailed logging should only be used
when directed by IBM Service.
The logging levels are:
FINEST Detailed tracing messages and the FINE level
FINE Basic tracing messages and the CONFIG level
CONFIG Messages about configuration and the INFO level
INFO Informational messages and the WARNING level
WARNING Warning messages and the SEVERE level
SEVERE Serious failures
OFF Nothing will be logged
Uempty
The License refresh interval field allows you to specify the number of minutes to hold an IBM i
Access Family license after the license is no longer being used. Data Transfer and 5250 Emulator
require this license. The license is available when the IBM i Access Family Licensed Product
(57xx-XW1) is installed and configured on the IBM i. Obtaining a license requires logon credentials.
Increasing the license refresh interval might decrease how often you are prompted for logon
credentials, but will hold the license for a longer period of time.
When using System Configurations to configure a new system, the Use SSL for connection option
will be enabled by default when the Default communication to SSL box is checked. The Default
communication to SSL box also determines whether or not to use SSL when connecting to a
system that is not currently configured. Checking Default communication to SSl has no effect on
System Configurations which already exist.
Tool tip messages are available for some fields and are displayed when the cursor is over the field.
You can disable this function by unchecking the Enable tool tip messages box.
Information about each task on the main panel is available by either moving the cursor over the task
or by using the tab and arrow keys to navigate between groups and tasks. You can disable this
function by unchecking the Enable description panel box.
Additional tab locations and other accessibility features are enabled when the Enable accessibility
mode box is checked.
M Mac OS
To enable accessibility features like screen readers, it is necessary to download and install the Java
Access Bridge package from Oracle.
By default, the product does not attempt to force or verify that secure connections are established
in a FIPS-compliant manner. If the Client SSL must be FIPS-compliant box is checked, however,
the product will attempt to verify that the current Java Runtime Environment (JRE) is configured to
be FIPS-compliant for secure connections. FIPS compliance must be supported in the
currently-running JRE in order for the application to run in a FIPS-compliant mode.
When the Read netrc file for login information box is checked, the product will use the current
user's netrc file for determining login information. This file is located in the user's home directory,
and is named _netrc on Windows or .netrc on non-Windows operating systems. Reading of
encrypted passwords from this file is not supported. The file format is assumed to follow the
standard .netrc file format widely utilized by Linux users. Note that the use of a netrc file has
potential security implications, and it is the responsibility of the user to ensure that the file's
permissions do not allow other users to access the file.
Uempty
The settings on this tab show the location where the configuration and service log information is
kept. The Open button allows you to display the contents of that location. The Clear button will
remove the files at that location.
The Configuration Root is the root location of the configuration. There are several sub-directories
below this directory where the configuration is stored.
The Logs Directory is relative to the Configuration Root and is the location where the logs are
stored when you enable logging.
The Dumps Directory is relative to the Configuration Root and is the location where the service
logs are stored when you use Tools > Generate Service Logs from the main menu.
The Service Directory is relative to the Configuration Root and is the location where service
information is stored when you use Tools > Package Service Logs from the main menu.
The location of the Configuration Root defaults to a platform-specific path.
To change the Configuration Root location, set the com.ibm.iaccess.AcsBaseDirectory property in
the AcsConfig.properties file and restart IBM i Access Client Solutions.
Uempty
If the path to the Configuration Root does not exist, IBM i Access Client Solutions will fail to start. If
the configuration directories below the Configuration Root do not exist, they will automatically be
created.
Uempty
Preferences: Passwords
Change IBM i passwords provides an interface for changing your password on one or more IBM i
systems. In order to change the password on multiple systems at once, the current system
password must be the same. To change your password, select the system (or systems) and click
the Change Password button. You will be prompted for the old (current) password and the new
password, followed by information on whether or not the password change attempt was successful
for each system.
Uempty
Use the Download Location option to set the location where the printer output files are downloaded.
• Download to desktop: Printer output will be downloaded to the user's desktop and placed in a
folder named after the target system.
• Download to a temporary location: Printer output will be downloaded into a temporary
subdirectory for the user.
• Download to the product's configuration root: A subdirectory named Splf will be created
below the product's configuration root, and printer output will be downloaded there. The text
area displays the path name of this directory.
• Specify a location: Printer output will be downloaded to the specified location.
Regardless of the Download Location setting, printer output is stored in a subdirectory unique to the
target system.
The “Use PDF format if available” option is used to determine whether printer output with a *SCS or
*AFPDS device type should be converted to PDF format. If this option is enabled and the host
supports PDF transformations, then the client file is stored in PDF format with the .pdf file
extension. Otherwise, it is stored in plain text and stored with a .txt file extension. The host
supports PDF transformations if the Transform Services product (option 1) is installed and
functional.
Uempty
The HMC Probe Utility allows you retrieve information about systems and partitions managed by
the HMC console.
Uempty
Figure 5-29. Exercise: Print output using IBM i Access Client Solutions
Uempty
Review questions
1. True or False: IBM i Access Client Solutions provides an
option that allows you to see the output that is generated by
another user.
Uempty
Review answers
1. True or False: IBM i Access Client Solutions provides an option
that allows you to see the output that is generated by another user.
The answer is true.
Uempty
Unit summary
• Describe purpose IBM i Access Client Solutions
• Describe available tasks IBM i Access Client Solutions
Uempty
Overview
Security on the IBM i platform is flexible enough to meet the requirements of a wide range of users
and situations. You need to understand the features and options available to have a better
understanding of what has been set up by your system administrator on your system.
In this unit, we will cover the tools at your disposal to secure your system, control what users are
allowed to do, and secure who can access the data and limit what they can do to that data. This unit
will discuss the concepts, while the following units will cover the specific details.
Uempty
Unit objectives
• List and discuss the objectives of system security
• Describe what physical security entails
• Discuss what keylock security means
• List and describe the capabilities of the system tools available to secure
your system
Uempty
• Integrity:
ƒ Protecting against unauthorized changes to data
ƒ Restricting manipulation of data to authorized programs
ƒ Providing assurance that data is trustworthy
• Availability:
ƒ Preventing accidental changes or destruction of data
ƒ Protecting against attempts by outsiders to abuse or destroy system
resources
System security is often associated with external threats, such as hackers or business rivals.
However, protection against system accidents by authorized system users is often the greatest
benefit of a well-designed security system. In a system without good security features, pressing the
wrong key might result in deleting important information. System security can prevent this type of
accident.
The best security system functions cannot produce good results without good planning. Security
that is set up in small pieces, without planning, can be confusing. It is difficult to maintain and to
audit. Planning does not imply designing the security for every file, program, and device in
advance. It does imply establishing an overall approach to security on the system and
communicating that approach to application designers, programmers, and system users.
Uempty
Physical security
Computer System
Room
Ke ep
Ou t
Display
Stations
Backup Tapes
Physical security includes protecting the system unit, system devices, and backup media from
accidental or deliberate damage. Most measures you take to ensure the physical security of your
system are external to the system.
All new Power Systems models do not have keylock however you can order keylock rack tower to
prevent server access.
In all current available Power System, you can use keylock position using Virtual Control Panel,
Key position for server/partition on the HMC session, or physical on the Power System Control
Panel to setup work running mode (Normal/Manual). You cannot secure server or partition changed
key position.
Uempty
Uempty
Security level
There are five levels of security that can be set with the QSECURITY system value.
System values
Allow you to define system wide security settings and allow you to provide customization for many
characteristics of your System i.
Signing
Signing your software object is particularly important if the object has been transmitted across the
Internet or stored on media which you feel might have been modified. The digital signature can be
used to detect if the object has been altered.
Digital signatures, and their use for verification of software integrity, can be managed according to
your security policies using the Verify Object Restore (QVFYOBJRST) system value, the Check
Object Integrity (CHKOBJITG) command, and the Digital Certificate Manager tool. Additionally, you
can choose to sign your own programs (all licensed programs shipped with the system are signed).
Uempty
Single sign-on enablement
Single sign-on is an authentication process in which a user can access more than one system by
entering a single user ID and password. To enable a single sign-on environment, IBM® provides
two technologies that work together to enable users to sign in with their workstation user name and
password and be authenticated to System i platforms in the network. Network Authentication
Service (NAS) and Enterprise Identity Mapping (EIM) are the two technologies that an administrator
must configure to enable a single sign-on environment. To authenticate users to the network the
Kerberos protocol is used. A secure, centralized system, called a key distribution center,
authenticates principals (Kerberos users) to the network.
User profiles
The user profile is powerful and flexible tool used to control what the user can do and customize the
way the system appears to that user.
Groups profiles
A group profile is a special type of user profile. Rather than giving authority to each user
individually, you can use a group profile to define authority for a group of users.
Resource security
The ability to access an object is called authority. Resource security on the IBM i operating system
enables you to control object authorities by defining who can use which objects and how those
objects can be used.
You can specify detailed authorities, such as adding records or changing records. Or you can use
the system-defined subsets of authorities: *ALL, *CHANGE, *USE, and *EXCLUDE.
Files, programs, and libraries are the most common objects requiring security protection, but you
can specify authority for any object on the system.
Security audit journal
You can use security audit journals to audit the effectiveness of security on your system. The IBM i
operating system provides the ability to log selected security-related events in a security audit
journal. Several system values, user profile values, and object values control which events are
logged.
Uempty
Signon:
Mary
Menu Authority
Payroll
Authority
menu
PAYEDIT
Authority
program
Operational
Payroll Read
data
Execute
On the System i security has been architected from the ground up. Security is always available and
active. Based on what level of security you choose to configure and implement will determine how
secure your system will be.
Uempty
Review questions (1 of 2)
1. True or False: The objectives of security are confidentiality,
integrity, and availability.
Uempty
Review answers (1 of 2)
1. True or False: The objectives of security are confidentiality,
integrity, and availability.
The answer is true.
Uempty
Review questions (1 of 2)
4. True or False: It is not possible to disable the power button
on your system.
Uempty
Review answers (1 of 2)
4. True or False: It is not possible to disable the Power button
on your system.
The answer is true.
Uempty
Unit summary
• List and discuss the objectives of system security
• Describe what physical security entails
• Discuss what keylock security means
• List and describe the capabilities of the system tools available to secure
your system
Uempty
Overview
There are three components used to implement security on this system. The operating system
continually checks system values, user profiles, and an object's resource security as it receives
requests from users to determine whether that user will be allowed to access the object in question.
In this unit, we will discuss system values and how you use these to customize many
characteristics of your system. Security is an integral part of the operating system. It is not an
add-on or extra purchase feature of an application.
Uempty
Unit objectives
• List and explain the levels of security available
• Describe the capability in service tools to lock out users from changing
system values
• Define the different categories of system values available
• Explain how to use security policies to set system values
• List the commands used to set system values when using a 5250
emulation session
• List the steps used in System i Navigator to manipulate system values
Uempty
Security components
People Objects
(Users) (Resources)
User Individual
Profiles Objects
Job Library/Directory
Descriptions
Authorization
Group Profiles
Lists
System Values
There are three components used to implement security on this system. The operating system
continually checks system values, user profiles, and objects as it receives requests from users to
determine whether that user will be allowed to access the object in question.
In this unit, we will discuss System values and how you use these to customize many
characteristics of your system.
Security is an integral part of the operating system. It is not an add-on or extra purchase feature of
an application.
Uempty
Uempty
You can choose how much security you want the system to enforce by setting the security level
(QSECURITY) system value. If you want to change the security level, use the Work with System
Values (WRKSYSVAL) command.
Uempty
Security level 40
Level 30 Resource
Level 20 Password
Level 40 is referred to as system integrity security. At this level, the system itself is protected
against users. User-written programs cannot directly access the internal control blocks through
pointer manipulation.
Select System Security Level by using IBM Navigator for i panels.
• Accessing objects through unsupported interfaces. Example: Calling the command processing
program for the SIGNOFF command
• Accessing internal system structures with C/400, Pascal or Assembler
• Controls use of job descriptions on SBMJOB
• Does not allow *SBSD to allow sign on without entering User and Password
• Enables enhanced hardware storage protection, defining system information on disk as
read/write, read only, or no access
Level 20-30: Usually action allowed but logged to QAUDJRN journal.
Level 40-50: Usually action fails, and is logged to QAUDJRN journal.
Uempty
Figure 7-6. The comparison of the functions supported by the different levels of security
On the visual you can compare functions supported depending on chose security level.
Uempty
You can use system service tools (SST) or dedicated service tools (DST) to lock and unlock the
security-related system values. However, you must use DST if you are in recovery mode because
SST is not available during this mode. Otherwise, use SST to lock or unlock the security-related
system values.
You can restrict the following system values by using the lock option:
QALWJOBITP QAUTORMT QLMTDEVSSN QPWDLMTREP
QRETSVRSEC QALWOBJRST QAUTOVRT QLMTSECOFR
QPWDLVL QRMTSIGN QALWUSRDMN QCRTAUT
QMAXSGNACN QPWDMAXLEN QRMTSRVATR QAUDCTL
QCRTOBJAUD QMAXSIGN QPWDMINLEN QSCANFS
QAUDENACN QDEVRCYACN QPWDCHGBLK QPWDPOSDIF
QSCANFSCTL QAUDFRCLVL QDSPSGNINF QPWDEXPITV
QPWDRQDDGT QSECURITY QAUDLVL QDSCJOBITV
QPWDEXPWRN QPWDRQDDIF QSHRMEMCTL QAUDLVL2
QFRCCVNRST QPWDLMTAJC QPWDRULES QUSEADPAUT
QAUTOCFG QINACTMSGQ QPWDLMTCHR QPWDVLDPGM
QVFYOBJRST
Uempty
Uempty
You can change system values working with individual system value name.
Uempty
To work with system value you can also use the system value category like *SEC for security
system value.
Uempty
Allocation category
On this visual is example to work with allocation category system value. Note you can also type
name of the system value in the Position to field to allocate specified value.
Uempty
Uempty
Changes to the majority of the system values will take effect immediately. An IPL is required only
when changing the security level (QSECURITY) system value or the password level (QPWDLVL)
system value.
To work with system value using IBM Navigator for i you have to:
1. Log on to the system using http://<<system_name or IP address>>:2001.
2. On the left pane, expand IBM i Management (default is expanded).
3. Expand Configuration and Service.
4. Click System Value.
Uempty
Security category
Uempty
Uempty
Leap year adjustment - Adjusts the system calendar for the leap year in different calendar
systems. If your calendar year agrees with the Gregorian calendar system, select Use Gregorian
leap year adjustment. If your calendar year differs from the Gregorian, adjust the system calendar
to account for the leap year of the calendar year you are using. To make the adjustment, divide the
leap year in your calendar system by 4; then set Leap year adjustment to the value of the
remainder. For example, the Gregorian calendar year of 1984 was the year 73 in the Republic of
China. Because 73 was a leap year, you divide 73 by 4; this leaves a remainder of 1. Therefore, to
adjust the system calendar for the Republic of China, specify 1 for Leap year adjustment.
System value: QLEAPADJ.
Special considerations: Changing the leap year system value does not change the system clock
and job dates of active jobs, but it might change the date system value.
The QTIMADJ system value identifies the software used to adjust the system clock in order to keep
it synchronized with an external time source. This value should be maintained by the time
adjustment software and is intended as an aid to prevent multiple time adjustment applications from
conflicting with one another.
Time adjustment specifies whether a time maintenance application is specified to maintain the
system time and whether or not there is a time adjustment in progress. The time adjustment might
initiate from the time maintenance application or you can manually start a time adjustment.
Adjusting does not cause large jumps in time that can be experienced with setting the clock with the
Time of Day system value. Adjusting takes time to complete because it is not a single,
instantaneous change to the clock. For example, adjusting the clock by 1 second could take 10
seconds of real time to complete. Two hours forward or backward is the maximum amount of
adjustment that can be made.
System value: QTIMZON
A time zone specifies how to set your system time. You can specify a time zone for each system in
your business environment. The time zone setting specifies the offset from UTC and whether to
observe Daylight Saving Time (DST) or not. If you specify to observe Daylight Saving Time, the
system automatically updates the system time when Daylight Saving Time begins and ends. You do
not need to manually set the system time when Daylight Saving Time begins and ends.
Uempty
Change Password
The password-composition system values are enforced only when the password is changed using
the CHGPWD command, the change password in IBM Navigator for i, the ASSIST menu option to
change a password, or the QSYCHGPW application programming interface (API). They are not
enforced when the password is set using the CRTUSRPRF or CHGUSRPRF command.
To change password from IBM Navigator for i interface use:
1. On the left pane, click the System on the function tree.
2. On the main pane, click Change Password you can here change your password or password
of another user if you have rights to do that.
Uempty
Message Y
N
QPWDVLDPGM
Y
Validation
program
Message N
PGM
detects
error? Password
changed
Y
System values © Copyright IBM Corporation 2001, 2016
If *REGFAC or a program name is specified in the QPWDVLDPGM system value, the system runs
one, or more programs after the new password has passed any validation tests you specify in the
password-control system values. You can use the programs to do additional checking of
user-assigned passwords before they are accepted by the system.
The topic “Using a Password Approval Program” in the book System i Security Reference
discusses the requirements of the password approval program and shows an example.
Uempty
Review questions
1. True or False: In order to implement security on your
system, you must install additional security software on your
system.
Uempty
Review answers
1. True or False: In order to implement security on your system,
you must install additional security software on your system.
The answer is False.
Uempty
Unit summary
• List and explain the levels of security available
• Describe the capability in service tools to lock out users from changing
system values
• Define the different categories of system values available
• Explain how to use security policies to set system values
• List the commands used to set system values when using a 5250
emulation session
• List the steps used in System i Navigator to manipulate system values
Uempty
Overview
There are three components used to implement security on the system. The operating system
continually checks system values, user profiles, and an object's resource security as it receives
requests from users to determine whether that user will be allowed to access the object in question.
In this unit, we will discuss user security. We will look at how to use user profiles to customize the
capabilities that a user will have once they are signed on to the system.
Uempty
Unit objectives
• Explain the purpose served by user profiles
• List the steps to create a user profile
• Explain the purpose served by group profiles
• List the steps to create a group profile
Uempty
Security components
People Objects
(Users) (Resources)
User Individual
Profiles Objects
Job Library/Directory
Descriptions
Authorization
Group Profiles
Lists
System Values
There are three components used to implement security on this system. The operating system
continually checks system values, user profiles, and objects as it receives requests from users to
determine whether that user will be allowed to access the object in question.
In this unit we will discuss User and Group Profiles and how you use these to customize the
capabilities and what authority users will have once they are signed on to the system. We will also
look at the capabilities provided by management central in relation to working with users on the
system.
Uempty
Uempty
Uempty
User profile
User information
User profile
Password
Tells the system
Password expiration level
who you are
Initial menu/program
User class
Special authority
The user profile contains a list of objects owned by the user profile, a list of objects which the user
profile does not own but is otherwise authorized to access, and information about the user: current
library, initial program, initial menu, special authorities, user class, group profile, maximum storage,
and much more.
Every object on the system must have an owner. If an object does not have an owner, it might not
be used, and the RCLSTG command is typically executed in order to assign it to QDFTOWN.
Do not assign all (or nearly all) objects to only one owner profile. Profiles that own many objects
with many private authorities can become very large. To prevent impacts to either performance or
system operations, distribute ownership of objects to multiple profiles.
Avoid applications owned by IBM-supplied user profiles, such as QSECOFR or QPGMR. These
profiles can become difficult to manage because they own a large number of IBM-supplied objects.
Uempty
Refer to the table listed in Appendix B of the System I Security Reference manual, SC41-5302-10.
This table shows the default values that are used for all IBM-supplied user profiles and on the
Create User Profile (CRTUSRPRF) command. The parameters are sequenced in the order they
appear on the Create User Profile display.
Uempty
New User
5250 interface
GUI interface
Creating a new user profile is a function that can be done from an emulation screen or using IBM
Navigator for i.
When using an emulation session, you can directly key in the command CRTUSRPRF or you can
use option 1=Create of off the WRKUSRPRF screen.
With IBM Navigator for i
1. On the left pane click Users and Groups.
2. On the main pane click Create User.
Uempty
5250 interface
GUI interface
Uempty
Based on their privilege class, users can be given privileges that allow certain actions on system
resources. The Capabilities Privileges dialog specifies the privileges for a user or for a group (and
the members of the group).
System privileges
Specifies the system privileges for this user or group. Privileges are required to perform certain
functions on the system. When you are working with a group, the privileges specified apply to all
users who are members of the group.
Uempty
System privileges
• All object access (*ALLOBJ)
• Auditing control (*AUDIT)
• Job control (*JOBCTL)
• Save/restore (*SAVSYS)
• Security administration (*SECADM)
• Spool control (*SPLCTL)
• System configuration (*IOSYSCFG)
• System service access (*SERVICE)
All object access - (*ALLOBJ) The user can access any system resource whether or not the user
has private authority.
Auditing Control - (*AUDIT) The user has authority to perform auditing functions. This authority is
granted to users who turn auditing on or off for the system and control the level of auditing on an
object or user.
Job control - (*JOBCTL) The user has authority to change, display, hold, release, cancel, and
clear all jobs running on the system or on a job queue or output queue that is operator controlled.
The user also has the authority to start writers, and to stop active subsystems. This authority is
usually granted to users who operate the system.
Save/restore - (*SAVSYS) The user has authority to save, restore, and free storage for all objects
on the system, whether or not the user has authority to the object. This authority is usually granted
to users who operate the system.
Security administration - (*SECADM) The user can create, change, or delete user profiles, if
authorized to those commands and the user profiles.
Spool control - (*SPLCTL) The user can perform all spool functions.
Uempty
System configuration - (*IOSYSCFG) The user has authority to change system I/O
configurations.
System service access - (*SERVICE) The user can perform service functions.
The system security level determines what the default special privileges are for each user.
Uempty
Privilege classes
System Privilege Classes
Privileges
Security Security System
Programmer User
officer administrator operator
All object
X 20 20 20 20
access
Auditing
X
control
Job control X 20 X 20
Save/restore X 20 X 20 20
Security
X X
administration
Spool control X
System
X
configuration
System service
X
access
The table shows the privilege classes available on the system. Each class has a default set of
system privileges. The authorities specified under System privileges override the default privileges
for this user or group. When you are working with a group, the privileges specified apply to all users
who are members of the group.
Choices are:
• User - The user's default privileges are save/restore and all object access for security levels 10
and 20. The user does not get any privileges at other security levels.
• Programmer - The user's default privileges are save/restore, job control, and all object access
for security levels 10 and 20. The user does not get any privileges at other security levels.
• System operator - The user's default privileges are save/restore, job control, and all object
access for security levels 10 and 20. The user's default privileges are save/restore and job
control at other security levels.
• Security administrator - The user's default privileges are save/restore, job control, security
administration, and all object access for security levels 10 and 20. The user's special authority
is security administration at other security levels.
Uempty
• Security officer - The user's default privileges are all object access, save/restore, auditing
control, security administration, system configuration, system service access, job control, and
spool control.
Uempty
Capabilities: Applications
Using the Applications page you can identify which functions a user or group can access. Where
the access is derived from is also displayed. Access for allows you to select one of the following
categories of applications:
• IBM Navigator for i - Includes IBM Navigator for i and any plug-in extensions.
• Client Applications - Includes all client applications that provide functions on clients that can
be administered through Application Administration.
• Host Applications - Includes all applications that reside entirely on the System i and provide
functions that can be administered through Application Administration.
You can customize access for a user or group to a specific function. Where the access is derived
from is also displayed.
Access to the functions is restricted as follows:
• Default Access: Determines whether the user has Default Access to the functions when the
user or group is not explicitly allowed or denied access.
• All Object Access: Defines whether a user or group with All Object System privilege is allowed
access to the function.
Uempty
• Customized Access: Users with security administration privilege can explicitly allow or deny
access of users or groups to specific functions.
There is a set of commands that can be called from a 5250 emulation session. The Work with
Function Usage (WRKFCNUSG) command shows a list of function identifiers and allows you to
change or display specified functions. There is also a CHGFCHUSG and DSPFCNUSG command
available.
Uempty
Requiring users to change their passwords after a specified length of time reduces the risk of an
unauthorized person accessing the system. The Capabilities – Password dialog specifies the
change interval used for the user’s password. The number of days the user’s password is valid can
be specified in the system value. Also, the number of days can be specified explicitly or the user’s
password can never expire.
Password
Specifies that the password uses the specified system value. The QPWDEXPITV (password
expiration) system value controls the number of days a password is valid.
How to manage the password:
Manage this password locally
When you select this option, the password can be managed on the local system. This is the
recommended setting. This field corresponds to the local password management (LCLPWDMGT)
parameter of the CRTUSRPRF and CHGUSRPRF commands.
Uempty
Manage this password remotely
When you select this option the password will not be managed on the local system. Specifying this
value will cause the local i5/OS password to be set to *NONE. The password value specified in the
password parameter will be sent to other IBM products and options that do password
synchronization (for example, Integrated Server support). The user will not be able to change their
own password using the Change Password (CHGPWD) command. They will not be able to sign on to
the system directly.
Time limit for password changes:
Specifies the value for blocking password changes once the password has been successfully
changed.
As specified by system value
The system value is used to determine this field QPWDCHGBLK specifies that the password uses
the specified system value. The QPWDCHGBLK (Block password changes) system value controls
the password blocking.
None
Specifies that no password blocking exists for this user.
Hours after last change (1-99)
The number of hours until a password is allowed to be changed.
Uempty
Capabilities: UID
Unique Identifier
The system uses the user identification (UID) number to identify a user and to verify the user's
authority. For most installations, the best approach is to let the system choose a unique number for
the new user's UID. However, if your system is part of a network, you might need to assign UID
numbers to match those assigned on other systems in the network. When moving files across
systems, or managing users across systems, it is very important that the UID is preserved across
systems for a specific user.
• Set the UID to a specific number - If your system is part of a network, you might need to assign
a specific UID number to match those assigned on other systems in the network. If you specify
a UID number, use a number from 1 to 4,294,967,294.
• Let each System i choose a unique number - For best results, let each system generate these
numbers. This option is available only when you are creating a new user.
• Find a unique number across all selected systems - If you are adding a new user to an endpoint
system or to multiple systems
Uempty
Each piece of work in a system is called a job, and each job has a unique name. Jobs can have
values that determine how they are run on the system. These values can be specified for a user on
the Jobs - General dialog.
Current Library - The current library is searched before the libraries in the user portion of the
library list for any objects specified as *LIBL. If the user creates objects and specifies *CURLIB, the
objects are put in the current library.
Job Description - When a user signs on, the system looks at the workstation entry in the
subsystem description to determine what job description to use for the interactive job. If the
workstation entry specifies *USRPRF for the job description, the job description in the user profile is
used.
Home directory - Lists the path name of the home directory for this user. The home directory is the
user's initial working directory. If the home directory doesn't exist when the user signs on, the root
directory is used. If you specify a directory path name, use up to 2048 characters.
Uempty
Initial program
Lists the qualified name of the program called when a user signs on the system. If you are changing
this field, you can specify a program name or you can specify that no program runs initially. If you
specify a program name, use up to 10 characters. You can also specify library where the program
is.
Initial menu
Lists the qualified name of the menu displayed when the user signs on the system. If you are
changing this field, you can specify the main menu, or you can type the name of another menu to
be shown when the user signs on. You can also specify Sign off to sign the user off the system after
the initial program has run. If you specify a menu name, use up to 10 characters. You can also
specify library where the menu exists.
Display sign-on information
Indicates whether the sign-on information shows when the user signs on the system. If you are
changing this field, you can specify the system value, to display sign-on information, or to not
display it. Sign-on information includes date of last sign-on, sign-on attempts that were not valid,
and number of days before the user’s password expires if the password is due to be changed.
Uempty
Number of device sessions a user can have
Indicates the number of device sessions a user can have.
As specified by system value
Specifies that the password uses the specified system value. The QLMTDEVSSN (Limit Device
Sessions) system value controls the number of device sessions.
No limit
There is no limit specified for the number of device sessions.
Device sessions (1-9)
The number of device sessions that a user can have.
Uempty
Attention Program - The Attention-key-handling program (ATNPGM) is the program that is called
when the user presses the Attention (ATTN) key during an interactive job.
Limit initial program/menu capability - Lists the limits the user has over the initial program, initial
menu, current library, and the ATTN key handling program values while signed on to an I Series
session. This value is ignored when the security level is 10. If you are changing this field, you can
specify no limit, partial limit, or full limiting of the user's capabilities where the user cannot change
the program, menu, or current library. If specific commands are limited, users cannot run them from
the command line.
In PC-Based applications, setting a user profile to LMTCPB(*YES) does not prevent the user from
running an System i command via IBM Navigator for i or Rational Development Studio for i.
Assistance level - The QASTLVL system value is used to determine the assistance level.
Keyboard buffering - The QKBDBUF system value is used.
User options - Lists the level of detail the user sees and the default function of the Page Up and
Page Down keys when the user is signed on the system. The possible values are:
• Show parameter keywords - Parameter keywords are shown instead of the possible
parameter values when a command is displayed.
Uempty
• Show all details - Detailed information is shown when the user is doing display and edit
options.
• Change direction of rollkey - The actions of the Page Up and Page Down keys are reversed.
• Do not show status messages - The user sees no status messages.
• Show status messages - The user sees status messages.
• Display help on full screen - Help information is shown on full screen.
• Send message to spool file owner - A message is sent to this user's message queue when a
spooled file for this user is printed or held by the printer writer. The owner of the spool file
receives a message.
Uempty
Limit initial
program/menu Initial Current Attention Execute
Initial Menu
capabilities Program Library Program Commands
Limit some
No Yes No No Yes
capabilities
Limit
No No No No No
capabilities
Users can still run commands created or changed with parameter ALWLMTCPB(*YES).
The ALWLMTUSR parameter on commands and Limit Capabilities and Limit some capabilities do
not restrict a user from doing the following:
• Running commands in CL programs that are running a command as a result of taking an option
from a menu
• Running remote commands through applications, such as FTP
The commands allowed by default are: DSPMSG, DSPJOB, DSPJOBLOG, and STRPCO, SIGNOFF,
and SNDMSG.
Uempty
You can specify the printer used to print the output for this user. Spooled files are placed in an
output queue with the same name as the printer when the output queue (OUTQ) is specified as the
print device (*DEV).
The print device and output queue information from the user profile are used only if the printer file
specifies *JOB and the job description specifies *USRPRF.
You can specify the name of a message queue for a user. A message queue is an object on which
messages are placed when they are sent to a person or a program. A message queue is used
when a user sends or receives messages. If the message queue does not exist, it is created when
the profile is created or changed. The message queue is owned by the profile being created or
changed.
You can specify the language identifier, country, or region identifier to be used by the system for
the user.
Uempty
Specifying a group profile name makes the user a member of the group profile. The group profile
can provide the user with authority to use objects for which the user does not have specific
authority. You can specify up to 16 additional groups for the user.
If the user is a member of a group, you use the owner parameter in the user profile to specify who
owns any new objects created by the user. Objects can be owned either by the user or by the user’s
first group (the value of the GRPPRF parameter). You can specify the OWNER field only if you have
specified the Group profile field.
If the user profile is a member of a group and OWNER(*USRPRF) is specified, the Group
authority field controls what authority is given to the group profile for any objects created by this
user.
Possible values for GRPAUT:
• *ALL - The group profile is given all management and data authorities to any new objects the
user creates
• *CHANGE - The group profile is given the authority to change any objects the user creates
• *USE - The group profile is given authority to view any objects the user creates
Uempty
• *EXCLUDE - The group profile is specifically denied access to any new objects created by the
user
When a user creates a new object, the Group authority type parameter in the user’s profile
determines what type of authority the user’s group receives to the new GRPAUT parameters to
determine the group’s authority to a new object.
Possible values for GRPAUTTYP:
• *Private - The authority defined in the GRPAUT parameter is assigned to the group profile as a
private authority
• *PGP - The group profile defined in the GRPPRF parameter is the primary group for the newly
created object. The primary group authority for the object is the authority specified in the
GRPAUT parameter.
Uempty
Figure 8-21. New User: Personal > Name, Location, and Mail
Uempty
Addresses - The Personal Mail dialog shows one or more addresses the System i uses to locate
the user when email arrives. The appearance of the following fields is dependent on the Preferred
address type and the System i configurations.
The possible values are:
• User ID - For mail users with a System i user profile, the user ID is the user profile name.
• Address - Identifies the user. The address usually matches the name of the System i where the
user receives mail.
• System name - Identifies the System i where the user receives mail
• SMTP name - Specifies the user name for email in an SMTP network, including the Internet.
The system inserts the user profile name if the user is not in the System i distribution directory.
The SMTP name can be a value other than the user profile name. The SMTP name can be up
to 64 characters with no blank spaces between characters.
• Domain - Identifies the user's location within an SMTP network.
Uempty
The tables listed in Appendix B of the System I Security reference manual (SC41-5302-10) list each
IBM-supplied profile, its purpose, and any values for the profile that are different from the defaults
for IBM-supplied user profiles. This is the first of multiple tables that are listed in appendix B.
Note: IBM-supplied user profiles now include additional user profiles that are shipped with the
licensed program products. The table includes only some, but not all user profiles for licensed
program products; therefore, the list is not inclusive.
Attention:
• Password for the QSECOFR profile You must change the password for the QSECOFR profile
after you install your system. This password is the same for every System i product and poses a
security exposure until it is changed. However, Do not change any other values for
IBM-supplied user profiles. Changing these profiles can cause system functions to fail.
• Authorities for IBM-supplied profiles Use caution when removing authorities that IBM-supplied
profiles have for objects that are shipped with the operating system. Some IBM-supplied
profiles are granted private authorities to objects that are shipped with the operating system.
Removing any of these authorities can cause system functions to fail.
Uempty
User functions
In the user list you can select the user and right-click to see available function for your user.
On the left pane click Users and Groups.
On the main pane click Users.
Select user and right-click to see pop-up menu and available functions.
Uempty
You can change a user profile using option 2 (Change) from either the Work with User Profiles
display or the Work with User Enrollment display. You can also use the Change User Profile
(CHGUSRPRF) command.
On the left pane click Users and Groups.
On the main pane click Users.
Select user and right-click to see pop-up menu and from menu select Properties.
Uempty
You cannot delete a user profile that owns objects. You must first delete any objects owned by the
profile or transfer ownership of those objects to another profile.
You cannot delete a user profile if it is the primary group for any objects.
When you delete a user profile, the user is removed from all distribution lists and from the system
directory.
Scan for owned objects: List the objects in the system owned by this user. The output from this is
quite interesting as it includes objects you know about as well as internal work objects the system
uses for this user while the user is active.
Uempty
Uempty
Uempty
• Customizing tool:
ƒ A group profile can be used as a pattern for creating individual user profiles
ƒ You create group profiles in the same way that you create individual profiles
ƒ The system recognizes a group profile when you add the first member to it
ƒ The system also generates a group identification number (GID) for the profile
A group profile is a special type of user profile that provides the same authority to a group of users.
A group profile serves two purposes on the system:
• Security tool - A group profile provides a method for organizing authorities on your system and
sharing them among users. You can define object authorities or special authorities for group
profiles rather than for each individual user profile. A user can be a member of up to 16 group
profiles.
• Customizing tool - A group profile can be used as a pattern for creating individual user
profiles. Most people who are part of the same group have the same customizing needs, such
as the initial menu and the default printer. You can define these things in the group profile and
then copy the group profile to create individual user profiles.
You create group profiles in the same way that you create individual profiles. The system
recognizes a group profile when you add the first member to it. At that point, the system sets
information in the profile indicating that it is a group profile. The system also generates a group
identification number (GID) for the profile. You can also designate a profile as a group profile at the
time when you create it by specifying a value in the GID parameter.
Uempty
Uempty
New Group
Uempty
You can add existing users to the list. Additionally you can define privileges.
Uempty
The user identification (UID) and group identification (GID) numbers identify the group to the
system. For best results, let each system choose a unique number for the UID and GID of the new
group. However, if your system is part of a network, you might need to assign specific UID and GID
numbers to match those assigned on other systems in the network. When moving files across
systems or managing users across systems, it is very important that the unique identifiers are
preserved across systems for a specific group.
Uempty
Group functions
Uempty
Deleting a group
When deleting a group, you have to determine what to do if the group is the primary group of
objects. Primary group authority gives a group profile permission to an object. This permission is
stored with the object.
Groups that have system names (typically ones that start with Q like QSECOFR) cannot be
deleted.
Groups that have user members cannot be deleted.
Groups can be deleted if all owned objects and primary group objects are successfully transferred
to the specified group.
Groups can be changed if a new group name is specified to identify where to transfer ownership of
the owned objects.
Action to take if group is primary group of objects
Some objects have a form of authority known as primary group authority stored with the object. You
can select one of the following actions to take if the group you are deleting is the primary group of
any i5/OS objects:
• Do not delete group
You choose not to delete this group if it is the primary group of objects.
Uempty
• Remove primary group from objects
The group will be removed as the primary group for objects and deleted from the system.
• Change primary group
The group will be deleted from the system and you will select a different group as the primary
group for objects that had this group as the primary group.
Action to take if group owns objects
Specifies the action to take if the group you are deleting owns objects. Possible choices are:
• Do not delete
Select this to cancel the group delete action if the group owns objects.
• Delete objects that group owns
Select this to delete the objects that the group owns when the group is deleted.
• Transfer objects to another user
Select this to transfer ownership of objects to a different user. The objects are transferred to the
new user regardless of that user's current authority to the objects.
Scan for Owned Objects...
Click Scan for Owned Objects to scan the selected system for objects that the selected users or
groups own.
Uempty
Review questions (1 of 2)
1. True or False: User profiles are one of the security
components available to implement security on the system.
Uempty
Review answers (1 of 2)
1. True or False: User profiles are one of the security components available to
implement security on the system.
The answer is true.
3. The *ALLOBJ special authority allows a user access to all system resources.
a. *ALLOBJ
b. *JOBCTL
c. *SPLCTL
d. *SECADM
The answer is *ALLOBJ.
4. True or False: A user profile can be used to specify an initial program to be called
when the user signs on to the system.
The answer is true.
User security © Copyright IBM Corporation 2001, 2016
Uempty
Review questions (2 of 2)
5. By specifying (blank), you can keep a user from changing
which menu and which library they will sign on to from the
sign-on screen.
a. Do not limit capabilities
b. Limit some capabilities
c. Limit capabilities
Uempty
Review answers (2 of 2)
5. By specifying limit some capabilities, you can keep a user from changing
which menu and which library they will sign on to from the sign-on screen.
a. Do not limit capabilities
b. Limit some capabilities
c. Limit capabilities
The answer is limit some capabilities.
7. The maximum number of group profiles that a user can belong to is?
a. 16
b. 32
c. 64
d. *NOLIMIT
The answer is 16.
Uempty
Unit summary
• Explain the purpose served by user profiles
• List the steps to create a user profile
• Explain the purpose served by group profiles
• List the steps to create a group profile
Uempty
Overview
There are three components used to implement security on this system. The operation system
continually checks system values, user profiles, and an object's resource security as it receives
requests from users to determine whether that user will be allowed to access the object in question.
In this unit, we will discuss resource security and how you can customize what actions a user can
perform against the data once an object is accessed.
Uempty
Unit objectives
• Describe what resource security is and how it is implemented
• Explain how ownership of an object is established
• Explain the purpose served by the QDFTOWN user profile
• Explain how public authority is assigned to an object
• Explain the difference between object management authority and data
authority that can be assigned to an object
• Describe the search order used by the system to determine whether a
user is allowed to access an object
• Explain what means RCAC means and how to implement it
Uempty
Security components
People Objects
(Users) (Resources)
User Individual
Profiles Objects
Job Library/Directory
Descriptions
Authorization
Group Profiles
Lists
System Values
Uempty
Uempty
User-owned objects
• Each object has one owner.
• The user who creates an object is assigned as the owner.
• The owner initially has all object and data permission.
• The authority can be removed, but the owner can grant any authority
back to themself at any time.
• The ownership of an object can be transferred to another user.
• It is not possible to delete a user who owns objects. Two solutions are
offered:
ƒ Transfer ownership
ƒ Delete owned objects
Uempty
• Only one primary group authority per object, unlike real private
authorities where there can be many per object
Uempty
QDFTOWN
• QDFTOWN is an IBM-supplied user profile used when:
ƒ An object has no owner.
ƒ The object ownership might pose security exposure.
Uempty
Uempty
System values
QCRTAUT: *CHANGE
Library PAYLIB
CRTAUT: *SYSVAL
AUT(*LIBCRTAUT)
Every library has a parameter called CRTAUT (create authority). This parameter determines the
default public authority for any new object that is created in that library. When you create an object,
the AUT parameter on the create command determines the public authority for the object. If the
AUT value on the create command is *LIBCRTAUT, which is the default, the public authority for the
object is set to the CRTAUT value for the library.
The QCRTAUT system value is used to determine the public authority for a newly created object if
the following conditions are met:
• The create authority (CRTAUT) for the library of the new object is set to *SYSVAL.
• The new object is created with public authority (AUT) of *LIBCRTAUT.
The default value for the QCRTAUT system value is *CHANGE. This can introduce a higher
authority level to new objects than actually needed. However, prior to V5R3, when changing this
system value to *USE or *EXCLUDE caused problems for some objects, such as automatically
created device descriptions. The default value for the AUT parameter has changed from
*LIBCRTAUT to *CHANGE on several CRT commands for line, controller and device description.
Uempty
Object management
Operational
Management
Existence
Alter
Uempty
Existence Change ownership and delete the object, free storage for
(*OBJEXIST) the object, and perform save and restore operations for the
object.
Authorization List Add and remove users and their authorities from an
(*AUTLMGT) authorization list.
Uempty
Operational Read
Management Add
Existence Update
Alter Delete
Look at the next visual
Reference Execute
Authorization list
Uempty
On the table you can learn what means each data authority.
Uempty
Exclude
Operational Read
Management Add
Existence Update
Alter Delete
Reference Execute
Authorization list
Uempty
All X X X X X X X X X X
Change X X X X X X
Use X X X
Exclude
On the table you can compare Object control and Data authority depending on permission.
Uempty
Uempty
No
Allow access
to object
Yes
Public
*PUBLIC authority
Uempty
Uempty
Uempty
You can see objects permission in Basic view or Details view. To change view, you have to click
the arrow and chose view type and click Go.
Uempty
If you want to add another user or group permission to the object you have to click Add button and
then specify or select from the list. Confirm with OK.
Uempty
Permission: Customize
Use the Customize button to customize the permissions for the selected user or group.
Uempty
On the Authorization List dialog, you can select the authorization list that is used to secure the
object. This window is shown when the Authorization List button is selected from the Permissions
window.
Object: Specifies the path name of the object secured by the authorization list.
Type: Specifies the type of the object secured by the authorization list.
Authorization list: Select an authorization list from the menu. Click Browse to open the
Authorization list dialog and view details about the authorization list.
Uempty
Use the Primary Group dialog to select a new primary group for the object. Only one group can be
selected. The groups can be expanded so you can see which users are in the group, but a user
might not be selected. This window is shown when the Primary Group button is selected from the
Permissions window or the Edit window.
Note
Using a primary group gives you better performance. A new primary group is assigned the authority
of the old primary group.
Uempty
Topic 3: Column-level
authority
Uempty
Column-level security
GRANT UPDATE (CDTLMT) ON QCUSTCDT TO AS27
Column-level security allows you better protect your data by more granular level.
Uempty
To grant authority to column you have to on Permissions window click arrow next to the Authority
view field and select Columns and press Go. After this you will see rights to the table columns.
Uempty
• Object authorities are stored in the user profile and managed by the
system security manager
Uempty
• Problem: Anyone who has the authority to grant privileges also has the
authority to perform operations that require those privileges.
Should the security administrator be able to
access the data within tables?
RCAC limits data access to those users who have a business “need to know”. RCAC makes it easy
to set up a rich and robust security policy that is based on roles and responsibilities.
RCAC functionality is made available through the optional, no charge feature called “IBM Advanced
Data Security for i”, also known as option 47 of IBM i 7.2.
In DB2 for i, RCAC is implemented using two different approaches that address the shortcomings
of traditional control methods and mechanisms:
• Row permissions
• Column masks
Another benefit of RCAC is that no database user is automatically exempt from the control. Users
with *ALLOBJ authority can no longer freely access all of the data in the database unless they have
the appropriate permission to do so. The ability to manage row permissions and column masks
rests with the database security administrator. The RCAC definitions, enablement, and activation
are controlled by SQL statements. Row permissions and column masks require virtually no
application changes. RCAC is based on specific rules that are transparent to existing applications
and SQL interfaces. Enforcement of your security policy does not depend on how applications or
tools access the data. RCAC also facilitates multi-tenancy, which means that several independent
customers or business units can share a single database table without being aware of one another.
Uempty
The RCAC row permission ensures that each user sees only the rows they are entitled to view
because the enforcement is handled by DB2 and not the application logic.
Uempty
• Complementary to table
level security
• Subsetting access to only the
required data for a task
• Controls access to a table at
the row, column, or both
• Two sets of rules
ƒ Permissions for rows
ƒ Masks for columns
RCAC is an additional layer of security and is complimentary to table level authorizations already in
DB2 LUW. RCAC will work in conjunction with authorizations already in place.
RCAC does have the ability to protect at the table row level, table column level, or both, providing a
masking of result sets to the users based on the protection in place. This is done by using rules
which are created and we will discuss this further in this presentation.
The image on the slide simply shows at a high, non-specific level, that the SSN column is masked
out (it is in green) and that a number of rows are not returned (in red) based on a row permission
defined.
Uempty
Figure 9-30. IBM Advanced Data Security for i (Boss Option 47)
Uempty
A row permission is a database object that manifests a row access control rule for a specific table.
It is essentially a search condition that describes which rows you can access. For example, a
manager can see only the rows that represent their employees.
To create row permission, you have to use SQL statement. Bellow is example how to create
permissions.
CREATE PERMISSION HR_SCHEMA.PERMISSION1_ON_EMPLOYEES
ON HR_SCHEMA.EMPLOYEES AS EMPLOYEES
FOR ROWS
WHERE ( VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1 )
OR ( VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1
AND ( EMPLOYEES . MANAGER_OF_EMPLOYEE = SESSION_USER
OR EMPLOYEES . USER_ID = SESSION_USER ) )
OR ( VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1
AND EMPLOYEES . USER_ID = SESSION_USER )
ENFORCED FOR ALL ACCESS
ENABLE ;
Uempty
You can also create Row permissions using IBM Navigator for i to that you have to:
1. On the left pane expand Database.
2. Expand Databases (normally system name is the database name but can be different
especially if you have IASP.
3. Expand Schemas.
4. Click your schema (library).
5. On the main pane right-click the Row Permissions link and from pop-up menu select New >
New Permissions.
Uempty
Column Mask
A column mask is a database object that manifests a column value access control rule for a specific
column in a specific table. It uses a CASE expression that describes what you see when you
access the column. For example, a teller can see only the last 4 digits of a tax identification number.
On the visual is an example of the mask creation.
Uempty
You can also create column masking using IBM Navigator for i to that you have to:
1. On the left pane expand Database.
2. Expand Databases (normally system name is the database name but can be different
especially if you have IASP.
3. Expand Schemas.
4. Click your schema (library).
5. On the main pane right-click the Column Masks link and from pop-up menu select New >
Column Mask.
Uempty
Uempty
Review questions
1. True or False: An object can be owned by multiple users on the
system.
2. True or False: The name of the primary group and its authority to
the object are stored in the object header.
5. True or False: Read, Add, and Update are authorities that can be
specified to the object management authority for a specific object.
Resource security © Copyright IBM Corporation 2001, 2016
Uempty
Review answers
1. True or False: An object can be owned by multiple users on the system.
The answer is false.
2. True or False: The name of the primary group and its authority to the object are
stored in the object header.
The answer is true.
3. When an object does not have an owner specified, it gets assigned to the
QDFTOWN user profile.
a. *USER
b. *SECOFR
c. *SYSOPR
d. QDFTOWN
The answer is QDFTOWN.
4. True or False: The QCRTAUT system value is used to determine the public authority
for a newly created object.
The answer is true.
5. True or False: Read, Add, and Update are authorities that can be specified to the
object management authority for a specific object.
The answer is false.
Resource security © Copyright IBM Corporation 2001, 2016
Uempty
Unit summary
• Describe what resource security is and how it is implemented
• Explain how ownership of an object is established
• Explain the purpose served by the QDFTOWN user profile
• Explain how public authority is assigned to an object
• Explain the difference between object management authority and data
authority that can be assigned to an object
• Describe the search order used by the system to determine whether a
user is allowed to access an object
• Explain what means RCAC means and how to implement it
Uempty
Overview
Authorization lists provide another way to secure an object. In this unit, we will discuss
authorization list concepts. We will look at how these are created and how to specify which list is
used to secure an object. We will also compare and contrast the function provided by user groups
versus authorization lists. Then we will take a look at how you can temporarily assign security for an
object. We will discuss how adopted authority works and the steps to implement it.
Uempty
Unit objectives
• Explain the purpose served by an authorization list
• List the steps to secure an object with an authorization list
• Describe the search order used by the system to determine whether a
user is allowed to access an object
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Uempty
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Uempty
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Purpose of the authorization list is give same set of authorities for multiple objects.
Uempty
Authorization list
Name: AUTL1
Owner: USER3 LIBA LFILEB
User Authority:
*PUBLIC Exclude
USER1 Use
USER2 Change
USER4 All
PROGD
USER5 Change PFILEC
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
On the visual you can see example of the authorization list. Note that each user can have different
rights. *PUBLIC is always in each list.
Uempty
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
You can create authorization list using 5250 by CRTAUTL or you can use IBM Navigator for i with
following steps:
1. On the left pane, expand Security.
2. Click Authorization Lists.
3. On the main pane click Actions and from the pop-up menu select New > Authorization List.
Uempty
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
You can change permission to authorization list in 5250 interface using WRKAUTL and use option 2
Change or you can use IBM Navigator for i:
1. On the left pane expand Security.
2. Click Authorization Lists.
3. On the main pane right-click the authorization list name and from pop-up list click Permissions.
4. On the list you can use Add button to add new use or group to the list.
Uempty
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
You can see object secured by the list by clicking the Secured Objects link.
Uempty
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Perform the following to work with object secured by authorization list using IBM Navigator for i:
1. On the left pane expand Integrated File Systems.
2. Expand QSYS.LIB.
3. On the left pane click your library name.
4. On the main pane find the object and right-click the name. From pop-up menu select
Permissions.
5. Then click the Authorization List link to see object secured by the list.
Uempty
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Uempty
BILL Use
FINDEPT/FILE3
WAYNE All
LIB23
GUNNARUse DSP05
FRANK Change
Objects
Authorization List
BILL Use
GROUP FINDEPT/FILE3
WAYNE All LIB23
Change DSP05
GUNNAR
FRANK Objects
Group Profile
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Uempty
Users can have different authority All users in a group have the same
authority
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Now you can compare authorization list and group profile attributes.
Uempty
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Uempty
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Uempty
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Uempty
Adopted authority (1 of 2)
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Uempty
Adopted authority (2 of 2)
• Provides a way to temporarily grant a user authority
• Adopted authority is added to the user's authority
• Both object authorities and special authorities are adopted
• Authority is in effect as long as the program that originally adopts is still
in the stack
• Propagating authority down the call stack is dangerous, especially when
adopting a powerful profile, such as QSECOFR
• Provides the ability to restrict direct object access but allow access
using applications
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Uempty
Authority checking
*ALLOBJ
special authority? Yes
No
User User specific Yes
authorities?
profile No
Authorization list? Yes
See note.
No
Allow access to
*ALLOBJ Yes object Yes
special authority?
No
Yes
Group Group specific Yes Adequate No Program
No adopt No Reject access
authority? and adequate
profile No
authority?
authority?
to object
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
As you can see in this completed diagram, program adopted authority is the final step in authority
checking.
Adopted authority can allow a user temporary access to objects that otherwise the user is not
authorized to access.
This visual displays the completed diagram for authority checking with IBM i. Follow the logic cycle
through for the class.
Uempty
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Uempty
Review questions
1. The very first thing that a system checks when determining
whether a user is allowed to access an object is:
a. Group authority
b. Authorization list
c. Private authorities
d. All object access
Uempty
Review answers
1. The very first thing that a system checks when determining
whether a user is allowed to access an object is:
a. Group authority
b. Authorization list
c. Private authorities
d. All object access
The answer is All object access.
Uempty
Unit summary
• Explain the purpose served by an authorization list
• List the steps to secure an object with an authorization list
• Describe the search order used by the system to determine whether a
user is allowed to access an object
Authorization lists and adopted authority © Copyright IBM Corporation 2001, 2016
Uempty
Overview
Work management is the basis for all work handled in IBM i. To control and tune the performance of
a system, you must understand how jobs are processed. This unit covers the concepts of work
management on IBM i.
Uempty
Unit objectives
• List the checklist of things to consider that relate to performance
• List the IBM i functional components
• Discuss the view of an interactive job from the perspective of a user
versus a programmer
• List the IBM i objects that affect performance and job processing
• List the objects needed for processing work on IBM i
Work management: Concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
User
program
area
IBM i
Mach interface
System Licensed
Internal
Code
POWER Hypervisor
Work management: Concepts and overview © Copyright IBM Corporation 2001, 2016
There are two components to the operating system software on IBM i. This important distinction is
unique in the industry in its completeness of implementation. The two components are: System
Licensed Internal Code (SLIC) and Operating System (IBM i).
SLIC provides the TIMI, process control, resource management, integrated SQL database, security
enforcement, network communications, file systems, storage management, JVM, and other
primitives. SLIC is a hardened, high-performance layer of software at the lowest level, much like a
Unix kernel, only far more functional.
IBM i provides higher-level functions based on these services to users and to applications. IBM i
also provides a vast range of high-level languages (such as C/C++, COBOL, RPG) runtime
functions.
Object-based system
IBM i keeps all information as objects. There are hundreds of object types. Object-based design
enables a powerful, yet manageable level of system integrity, reliability, and authorization
constraints.
Uempty
All programs and operating system information, such as user profiles, database files, programs,
printer queues have their associated object types stored with the information. In the IBM i
architecture, the object type determines how the object's contained information can be used (which
methods).
Single-Level Storage
IBM i applications and the objects with which they interact all reside in a very large virtualized,
single-level storage. That is, the entire system, including the objects most other systems distinguish
as “on disk” or “in memory” are all in the single-level storage. Objects are designated as either
permanent or temporary. Permanent objects exist across system IPLs (reboots). Temporary objects
do not require such persistence. Essentially, the physical RAM on the server is a cache for this very
large, single-level storage space. Storage management, a component of SLIC, ensures that objects
which need to persist when the system is off are maintained in persistent storage. This is either
magnetic hard disk or flash memory as of this writing.
The benefit of providing a single, very large address space, in which all objects on the system
reside, is that applications need not tailor their memory usage to a specific machine configuration.
In fact, IBM i, due to the single-level storage, does not need to tailor such things as the sizes of disk
cache versus paging space. This greatly facilitates the on-demand allocation of memory among
logical partitions.
The operating system and most applications for IBM i are built on a Technology Independent
Machine Interface (TIMI) that isolates programs from differences in processor architectures, and
allows the system to
automatically capitalize on many new Power Architecture features without changes to existing
programs. For example, TIMI allows a program to use decimal floating point (DFP) on POWER5
processors (without special hardware support), and that same program automatically uses
hardware support for DFP on POWER6, POWER7, and POWER8 processors.
Uempty
Work management: Concepts and overview © Copyright IBM Corporation 2001, 2016
The IBM i provides few functional components which make system stable and very easy to
manage.
Uempty
• Work management
• Creating a work environment
• Special work management functions
• Shipped system objects
• System values
• Job structure
• Storage management
• System tuning
Work management: Concepts and overview © Copyright IBM Corporation 2001, 2016
Work management supports the commands and internal functions necessary to control system
operation and the daily workload on the system. In addition, work management contains the
functions that you need to distribute resources for your applications so that your system can handle
your applications.
The purpose of your system is to perform work. Work enters, work is processed, and work leaves
the system. If you think of work management in these three terms, work management will be easier
to understand. Work management describes where work enters the system, where and with what
resources work is processed, and where output from work goes.
Are you new to work management? The topic collection under the subject Introduction to work
management is designed to provide you with several different overall perspectives of work
management. In this way, you should be able to get a solid foundation in the underlying principles
of work management, regardless of your systems background
Uempty
• Altering job initiation from the defaults often results in better overall
system performance.
Work management: Concepts and overview © Copyright IBM Corporation 2001, 2016
Work management, manages active jobs, server jobs, job queues, subsystems, and memory.
Uempty
Storage management
Work management: Concepts and overview © Copyright IBM Corporation 2001, 2016
This statement is true for all computers. Because everything a job needs must be in memory in
order for the job to use it, storage management is a critical part of the system.
Uempty
Main
storage Output
processor
Input
Uempty
Main storage
7
CLASS PROFILE
Priority Initial program
PROG1
6 Job description
4 QCMD
5 1
SBS
SBSD
3 monitor JOBD
2
Job
Routing description
IBM i
Routing
Work management: Concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
Performance tuning (1 of 2)
What everyone would like to have
i performance
Work management: Concepts and overview © Copyright IBM Corporation 2001, 2016
In performance work, when you are tuning and optimizing an application for a system you must run
and measure performance levels on that system. Although there are some characteristics that are
shared among systems.
There is not only one parameter which can flow on performance.
Uempty
Performance tuning (2 of 2)
But what we do have
i performance
Job state
transitions
Fault rates Classes
Work management: Concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
System Network
IBM i values attributes
Subsystem SBSD
Job Work
thread JOBD
entries
Routing Class
entries
Pools Program
Work management: Concepts and overview © Copyright IBM Corporation 2001, 2016
Whether you are new to work management or have been using work management tools for years,
these work management concepts might be useful for you.
The structure of your system
After receiving your IBM i product, you might want to know what subsystems are included with the
system, whether you need to change any start-up programs, and what kind of user interface you
will work with.
Subsystems
The subsystem is where work is processed on the system. A subsystem is a single, predefined
operating environment through which the system coordinates the work flow and resource use. The
system can contain several subsystems, all operating independently of each other. Subsystems
manage resources.
Memory pools
A memory pool is a logical division of main memory or storage that is reserved for processing a job
or group of jobs. On your system, all main storage can be divided into logical allocations called
memory pools. By default, the system manages the transfer of data and programs into memory
pools.
Uempty
Jobs
All work done on a system is performed through jobs. Each job has a unique name within the
system. All jobs, with the exception of system jobs, run within subsystems. A job can enter the
subsystem from any of the work entries, such as a job queue entry, workstation entry,
communications entry, autostart job entry, or prestart job entry.
Job scheduling options
The job schedule function allows for time-dependent scheduling of IBM i batch jobs. You can
schedule jobs to be released from the job queue at a particular time, or you can use a job schedule
entry to submit your job to the job queue automatically at the time you specify. Job scheduling
allows you to control the date and time a batch job is submitted to or becomes eligible to start from
a job queue. This flexibility can help you as you balance the work load on your system.
Job queues
A job queue contains an ordered list of jobs waiting to be processed by a subsystem. The job queue
is the first place that a submitted batch job goes before becoming active in a subsystem. The job is
held here until a number of factors are met.
Output queues
Output queues are areas where printer output files (also called spooled files) wait to be processed
and sent to the printer. Printer output is created either by the system or by the user using a print file.
Job logs
A job log contains information related to requests entered for a job. A job log has two forms, a
pending form and a spooled form.
Job accounting
The job accounting function gathers data so that you can determine who is using your system and
what system resources they are using. It also assists you in evaluating the overall use of your
system. Job accounting is optional. You must take specific steps to set up job accounting. You can
request the system to gather job resource accounting data, printer file accounting data, or both. You
can also assign accounting codes to user profiles or specific jobs.
Uempty
Review questions
1. True or False: Work management supports the commands
and internal functions necessary to control system operation
and the daily workload.
Work management: Concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
Review answers
1. True or False: Work management supports the commands
and internal functions necessary to control system operation
and the daily workload.
The answer is true.
Work management: Concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
Unit summary
• List the checklist of things to consider that relate to performance
• List the IBM i functional components
• Discuss the view of an interactive job from the perspective of a user
versus a programmer
• List the IBM i objects that affect performance and job processing
• List the objects needed for processing work on IBM i
Work management: Concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
Overview
Work management is the basis for all work that is handled in the IBM i system. To control and tune
the performance of a system, you must understand how jobs are processed. This unit covers
interactive job processing and the relationships among the work management objects. We will also
discuss how to track jobs through the system and what the controls are for limiting the number of
jobs executing concurrently.
Uempty
Unit objectives
• Describe what a subsystem is
• Describe what memory pools are
• List and describe the type of memory pools on the system
• Describe the types of work that can be run in the different memory
pools
• Explain why different types of memory pools exist
• List the commands used to display memory pool information
• Explain the information displayed on the work with system status
command display
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
Subsystems (1 of 2)
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
The subsystem is where work is processed on the system. A subsystem is a single, predefined
operating environment through which the system coordinates the work flow and resource use. The
system can contain several subsystems, all operating independently of each other. Subsystems
manage resources.
All jobs, with the exception of system jobs, run within subsystems. Each subsystem can run unique
operations. For instance, one subsystem can be set up to handle only interactive jobs, while
another subsystem handles only batch jobs. Subsystems can also be designed to handle many
types of work. The system allows you to decide the number of subsystems and what types of work
each subsystem handles.
The subsystem is where work is processed on the system. A subsystem is a single, predefined
operating environment through which the system coordinates the work flow and resource use. The
system can contain several subsystems, all operating independently of each other. Subsystems
manage resources.
Uempty
Subsystems (2 of 2)
Interactive
Batch Spooling
Communications
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
All jobs, with the exception of system jobs, run within subsystems. Each subsystem can run unique
operations. For instance, one subsystem can be set up to handle only interactive jobs, while
another subsystem handles only batch jobs. Subsystems can also be designed to handle many
types of work. The system allows you to decide the number of subsystems and what types of work
each subsystem handles.
The run-time characteristics of a subsystem are defined in an object called a subsystem
description. For example, if you want to permanently change the amount of work (number of jobs)
coming from a job queue into a subsystem you only need to change the job queue entry in the
subsystem description.
On the visual you can see some subsystems example like:
• Batch
• Interactive
• Spooling
• Communications
In the system there are many more.
Uempty
As the number of users on the system increases, a single subsystem for a set of work is often
insufficient. By dividing your users into multiple subsystems, you gain several advantages.
Improved manageability of work You get better control over what work is running in each
subsystem. For example, for server jobs, you might want to isolate all of the database server jobs to
one subsystem, the remote command server jobs to a different subsystem, the DDM server jobs to
yet a different subsystem. Additionally, by using multiple subsystems you can isolate groups of jobs
with their own memory pools. In this way, one group does not adversely impact other jobs.
Reduced downtime impact for users For example, if every Friday afternoon you must bring the
system to the restricted state for backup purposes, you can gradually take users offline by ending
one subsystem at a time.
Improved scalability and availability By having a single subsystem do work for fewer users. The
subsystem is less busy and can be more responsive to the work requests it handles.
Improved error tolerance in interactive subsystems by spreading the work across multiple
subsystems, should a network failure occur, multiple subsystems can manage the device recovery
processing.
Improved interactive subsystem startup time You can keep the subsystem startup times shorter by
subdividing the work across multiple subsystems.
Additional options for performance tuning By using multiple subsystems you can set up the
subsystems with a small number of routing entries.
Uempty
Subsystem description (1 of 2)
• A subsystem description determines:
• How much work can be initiated, including the number of storage jobs
• Where that work will be performed, including main storage pools
• The sources of work for a subsystem:
ƒ Autostart jobs
ƒ Workstations
ƒ Job queues
ƒ Communication jobs
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
A subsystem description is an object that defines the environment for the jobs that run in the
subsystem. The purpose is to have the jobs run most efficiently. The subsystem description
identifier is *SBSD.
All work within a subsystem is controlled by an i program known as a subsystem monitor. All
subsystem monitors are identical, regardless of the subsystem they control or the type of jobs that
run in it.
Each subsystem monitor uses a different subsystem description in performing its control functions.
A subsystem description is an object that contains information defining the characteristics of an
operating environment which can handle a specific type of processing, such as interactive, batch,
spooling, or communication. It defines:
• How many jobs the subsystem runs in parallel
• Where and how those jobs are run
• Where the subsystem looks for jobs to run
• Which resources the subsystem uses to perform the work
Uempty
A subsystem description can contain work entries (sources of work) for one or more of the
following:
• Autostart jobs
• Workstations (individual or by type)
• Job queues
• Communication jobs
A subsystem description also defines the amount of main storage that is available for jobs that are
run in the subsystem. The subsystem description is used by the subsystem monitor to establish the
environment for its jobs.
When a subsystem is started, it takes the name of the subsystem description it uses.
Uempty
Subsystem description (2 of 2)
Subsystem
description
PRESTART entries
ADDPJE
Routing entries
ADDRTGE
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Work entries identify the sources where jobs can enter a subsystem. Specific types of work entries
are used for different types of jobs. Work entries are part of the subsystem description.
The following information describes the different types of work entries and how to manage them.
There are five types of work entries; autostart job entries, communication entries, job queue entries,
prestart job entries, and workstation entries.
Autostart job entries
Autostart job entries identify the autostart jobs to start as soon as the subsystem starts. When a
subsystem starts, the system allocates several items and starts autostart and prestart jobs before it
is ready for work.
Communications entries
The communications work entry identifies to the subsystem the sources for the communications job
it processes. The job processing begins when the subsystem receives a communications program
start request from a remote system and an appropriate routing entry is found for the request.
Uempty
Job queue entries
Job queue entries in a subsystem description specify from which job queues a subsystem is to
receive jobs. When the subsystem is started, the subsystem tries to allocate each job queue
defined in the subsystem job queue entries.
Prestart job entries
You define the prestart job by using a prestart job entry. A prestart job entry does not affect the
device allocation or program start request assignment.
Prestart jobs for servers
In the prestart job model there is one primary listening job, generally called the daemon job or
listener job, and multiple server jobs that process the client requests. The daemon job listens on the
port for connection requests. When a new connection is received, the daemon does some general
work, then gives the socket descriptor to a waiting prestart server job.
Workstation entries
An interactive job is a job that starts when a user signs on to a display station and ends when the
user signs off. For the job to run, the subsystem searches for the job description, which can be
specified in the workstation entry or the user profile.
Uempty
Work entries
Workstation entries
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
An interactive job is a job that starts when a user signs on to a display station and ends when the
user signs off. For the job to run, the subsystem searches for the job description, which might be
specified in the workstation entry or the user profile.
The workstation entry guides the subsystem to prospective workstations. If a workstation is
available, the subsystem sends a sign-on screen to the display. Note: The subsystem description
for the controlling subsystem must contain a workstation entry for the console, and that entry must
be of type *SIGNON. (*SIGNON is a value for the AT parameter, specified on the Add Work Station
Entry (ADDWSE) command.) The *SIGNON value indicates that the sign-on display is shown at the
workstation when the subsystem is started. This requirement ensures that the subsystem has an
interactive device for the entry of the system and subsystem level commands. The End System
(ENDSYS) command ends the IBM i licensed program to a single session (or sign-on display) at the
console in the controlling subsystem. A subsystem description that does not contain a workstation
entry for the console cannot be started as a controlling subsystem.
Uempty
Routing entries
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
The routing entry identifies the main storage subsystem pool to use, the controlling program to run
(typically the system-supplied program QCMD), and additional run-time information (stored in the
class object). Routing entries are stored in the subsystem description.
A routing entry can be likened to a single entry in a shopping mall directory. Customers that cannot
find the store they need can use a directory to help send them in the right direction. The same is
true on your system. Routing entries guide the job to the correct place. Routing entries in a
subsystem description specify the program to be called to control a routing step for a job running in
the subsystem, which memory pool the job uses, and from which class to get the run-time
attributes. Routing data identifies a routing entry for the job to use. Together, routing entries and
routing data provide information about starting a job in a subsystem.
Routing entries consist of these parts; the subsystem description, class, comparison data,
maximum active routing steps, memory pool ID, program to call, thread resources affinity,
resources affinity group, and the sequence number.
Uempty
Class
Job run-time attributes are contained in the class object that is specified in the (CLS) parameter in
the routing entry. If a job consists of multiple routing steps, the class used by each subsequent
routing step is specified in the routing entry used to start the routing step. If the class does not exist
when the routing entry is added, a library qualifier must be specified because the qualified class
name is kept in the subsystem description.
Comparison data
The comparison value (CMPVAL) parameter of the routing entry specifies data that is compared with
routing data to determine which routing entry to use. (The routing entry also specifies the starting
position for the comparison.) The routing data is compared with the comparison value of each
routing entry in sequence number order until a match is found. The sequence number contained in
a routing entry defines the order in which the routing entries are scanned and can be used as the
identifier of the routing entry.
Maximum active routing steps
The maximum active routing steps (MAXACT) parameter of the routing entry specifies the maximum
number of routing steps (jobs) that can be active at the same time through this routing entry.
Memory pool ID
The memory pool ID (POOLID) parameter of the routing entry specifies the pool identifier of the
storage pool in which the program runs. The pool identifier specified here relates to the storage
pools in the subsystem description.
Uempty
Class information
QBATCH QINTER
Run priority 50 20
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Job run-time attributes are contained in the class object that is specified in the (CLS) parameter in
the routing entry. If a job consists of multiple routing steps, the class used by each subsequent
routing step is specified in the routing entry used to start the routing step. If the class does not exist
when the routing entry is added, a library qualifier must be specified because the qualified class
name is kept in the subsystem description.
Run-time attributes that are included in a routing entry class are:
• Run priority (RUNPTY) The run priority is a value ranging from 1 (highest priority) through 99
(lowest priority) that represents the priority at which the job competes for the processing unit
relative to other jobs that are active at the same time. For multi-threaded jobs, the run priority is
also the highest run priority allowed for any thread within the job. Individual threads within the
job might have a lower priority.
• Time slice (TIMESLICE) This is the time slice establishes the amount of time needed by a
thread in a job to accomplish a meaningful amount of processing. At the end of the time slice,
the thread might be put in an inactive state so that other threads can become active in the
storage pool.
Uempty
• Default wait time (DFTWAIT) This specifies the default maximum time (in seconds) that a
thread in the job waits for a system instruction, such as the LOCK machine interface (MI)
instruction to acquire a resource. This default wait time is used when a wait time is not
otherwise specified for a given situation. Normally, this is the amount of time the system user
might be willing to wait for the system before the request is ended. If the wait time for any one
instruction is exceeded, an error message can be displayed or it can be automatically handled
by a Monitor Message (MONMSG) command.
• Maximum CPU time (CPUTIME) This specifies the maximum processing unit time (in
milliseconds) that the job can use. If the job consists of multiple routing steps, each routing step
is allowed to use this amount of processing unit time. If the maximum time is exceeded, the job
is held.
• Maximum temporary storage (MAXTMPSTG) This specifies the maximum amount of temporary
(auxiliary) storage that the job can use. If the job consists of multiple routing steps, this is the
maximum temporary storage that the routing step can use. This temporary storage is used for
storage required by the program itself and by implicitly created internal system objects used to
support the job. It does not include storage in the QTEMP library. If the maximum temporary
storage is exceeded, the job is held. This parameter does not apply to the use of permanent
storage, which is controlled through the user profile.
• Maximum threads (MAXTHD) This specifies the maximum number of threads that a job using
this class can run with at any time. If multiple threads are initiated simultaneously, this value can
be exceeded. If this maximum value is exceeded, the excess threads will be allowed to run to
their normal completion. Initiation of additional threads will be inhibited until the maximum
number of threads in the job drops below this maximum value.
• Text description (TEXT) This specifies the text that briefly describes the object. This is an
attribute of the class object when it is created, but it is not a run-time attribute for a job.
• Authority (AUT) This specifies the authority you are giving to users who do not have specific
authority for the object, who is not on an authorization list, and whose group profile or
supplemental group profiles do not have specific authority for the object. This is an attribute of
the class object when it is created, but it is not a run-time attribute for a job.
Uempty
When a subsystem starts, the system allocates several items and starts autostart and prestart jobs
before the subsystem is ready for work.
The subsystem description is used to determine how items are allocated. The following list
represents the sequence of events that occur when the subsystem starts:
• Request to start subsystem is issued. The Start Subsystem (STRSBS) command is issued.
Key startup information is located in the subsystem description.
• Memory pools are allocated. Memory is allocated to the pools defined in the subsystem
description. The memory that is allocated to each defined pool is taken from the Base memory
pool. The system does not allocate memory to a pool if the amount of memory available to the
Base storage pool is less than the minimum size specified by the Base memory pool minimum
size system value QBASPOOL. If the system cannot allocate all of the requested memory, it
allocates as much memory as is available and allocates all the other as memory becomes
available.
• Prestart jobs are started. This information comes from the prestart job entries.
• Autostart jobs are started. This information comes from the autostart jobs entries.
Uempty
• Display stations are allocated (sign-on displays are up). If there are workstation entries and
the device is varied on and has not been allocated by any other subsystem, the subsystem can
allocate it and display the sign-on display. If the device is varied on and has been allocated by
another subsystem and is at the sign-on display (the sign-on display was displayed before the
second subsystem was started), a second subsystem can allocate the device from the first
subsystem and display the sign-on display. If the device is not varied on, the subsystem cannot
allocate it. The system arbiter (QSYSARB) and the QCMNARB jobs hold locks on all varied-off
devices. Workstation entries provide the information about what devices to check for allocation.
Note: For virtual display devices, the sign-on display is shown when the device becomes fully
varied on. This happens when a user connects to the IBM i using that device description
(assuming the connection request does not carry the data that is used to bypass the sign-on
display processing). A device can be taken from a pool of previously created device
descriptions and varied on as part of that connection processing, or a device can be created
and varied on. At a subsystem start, the subsystem pends a lock for any of the previously
created device descriptions that the subsystem wants.
• Job queues are allocated. The subsystem will not be able to allocate a job queue if it is
already allocated to another active subsystem. This information comes from the job queue
entries.
• Communications devices are allocated. Requests are sent to the QLUS (LU services)
system job, which handles device allocation for all communications devices. This information
comes from the communication entries.
The environment is ready for work.
Uempty
IBM ships predefined subsystem descriptions that can be used to provide the environments needed
on most systems.
The default subsystem configuration consists of a controlling subsystem called QBASE, a system
function subsystem called QSYSWRK, and a spooling subsystem called QSPL. In this
environment, all jobs on the system except for some system jobs and spooling jobs that are run
under the control of the QBASE subsystem. Certain system jobs run under the control of
QSYSWRK. Spooling jobs run under the control of the QSPL subsystem.
A more complex subsystem configuration is also provided and can be used instead of the default
QBASE/QSPL configuration. It consists of:
• QCTL The controlling subsystem
• QSYSWRK Which runs certain System jobs initiated by the OS
• QUSRWRK Was instituted in V5.1 and it is used by the system for system jobs
that are user-oriented
• QINTER The subsystem for interactive jobs
• QBATCH The subsystem for batch jobs
• QSPL The subsystem for spooling
Uempty
• CMN The subsystem used for communicating jobs
• QSERVER The subsystem used for file serving jobs
• QHTTPSVR The subsystem used for Web server jobs and programs
IBM ships several predefined subsystem descriptions. A system can be implemented through the
use of these shipped subsystems. It is also possible for a system implementer to implement a
system by creating brand new subsystem descriptions.
When it is shipped, every system has QBASE as its controlling subsystem; the controlling
subsystem is the only one started by i during IPL. QBASE is set up to handle all types of work on
the system (which includes the console, interactive jobs, batch jobs, and communication jobs),
except some system functions and spooling. In this environment, the QSYSWRK subsystem is
responsible for some system functions and the QSPL subsystem is responsible for all spooling jobs
(output to printers).
A more complex environment is also shipped and can be used instead of the default QBASE/QSPL
environment described above. This environment is used if there are a lot of different types of jobs
running on a System i.
The system value, QCTLSBSD (controlling subsystem) controls which subsystem configuration is
used.
IBM provides other subsystems, such as QSNADS, which supports jobs controlling the functions of
the SNADS network and IBM-supplied transaction programs, such as document interchange and
object distribution.
These subsystems are started and ended when the functions they support are started and ended.
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
• Shared pool:
ƒ A pool in which multiple subsystems can run jobs
ƒ Maximum of 64 shared pools on the system
• Private pool:
ƒ A pool in which a single subsystem can run jobs
ƒ Is assigned a size and activity level when the subsystem is created
• The activity level of a pool is the number of jobs that can have main
storage at the same time.
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
A memory pool is a logical division of main memory or storage that is reserved for processing a job
or group of jobs. On your system, all main storage can be divided into logical allocations called
memory pools. By default, the system manages the transfer of data and programs into memory
pools.
The memory pool from which user jobs get their memory is always the same pool that limits their
activity level. (The activity level of a memory pool is the number of threads that can be active at
same time in a memory pool.) Exceptions to this are system jobs (such as Scpf, Qsysarb, and Qlus)
that get their memory from the Base pool but use the machine pool activity level. Additionally,
subsystem monitors get their memory from the first subsystem description pool, but it uses the
machine pool activity level. This allows a subsystem monitor to always be able to run regardless of
the activity level setting.
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
Why pools?
Interactive Interactive
program program
Share
Only
batch
jobs Batch program
Pool
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
You can control how much work can be done in a subsystem by controlling the number and size of
the pools. The greater the size of the pools in a subsystem, the more work can be done in that
subsystem.
Using shared memory pools allows the system to distribute jobs for interactive users across
multiple subsystems while still allowing their jobs to run in the same memory pool.
Multiple pools in a subsystem help you to control the jobs' competition for system resources. The
advantages of having multiple pools in a subsystem are that you can separate the amount of work
done and the response time for these jobs. For example, during the day you might want interactive
jobs to run with good response time. For better efficiency, you can make the interactive pool larger.
At night, you might be running many batch jobs, so you make the batch pool larger.
Note: Although tuning and managing your system can help the efficiency of the flow of work through
your system, it cannot account for inadequate hardware resources. Consider a hardware upgrade if
the demands of your workload are significant.
Uempty
On the system, all main storage can be divided into logical allocations called memory pools. All
memory pools in a system are either private or shared. There are private memory pools, shared
memory pools, and special shared memory pools. As many as 64 memory pools, in any
combination of private and shared pools, can be active at the same time.
Private memory pools
Private memory pools (also known as user-defined memory pools) contain a specific amount of
main storage that can be used by a single subsystem to run jobs. These pools cannot be shared by
multiple subsystems. They are identified in IBM® Navigator for i by the subsystem name. You can
have as many as 62 private memory pools allocated for use in active subsystems.
Shared memory pools
Shared pools are either special or general; the Machine pool and Base pool are considered special
shared pools, and all other shared pools are considered general shared pools. You can specify 63
of the 64 shared memory pools that are defined on the system for use when creating subsystem
descriptions (the machine pool is reserved for system use).
Uempty
Special shared pools (*MACHINE and *BASE)
*MACHINE The Machine memory pool is used for highly shared Machine and operating system
programs. It is identified as Machine in IBM Navigator for i. The Machine memory pool provides
storage for tasks the system must run that do not require your attention. The size for this memory
pool is specified in the Machine memory pool size system value (QMCHPOOL). No user jobs run in
this memory pool. (On the Work with System Status display (WRKSYSSTS), the Machine memory
pool appears as system pool identifier 1.)
*BASE The Base memory pool, identified as Base in IBM Navigator for i, contains all unassigned
main storage on the system, (all main storage that is not required by another memory pool). The
Base pool contains storage that can be shared by many subsystems. The Base memory pool is
used for batch work and miscellaneous system functions. The Base memory pool minimum size
(QBASPOOL) system value specifies the minimum size of the Base memory pool. The activity level
for this memory pool is specified in the Base memory pool maximum eligible threads
(QBASACTLVL) system value. (On the Work with System Status display (WRKSYSSTS), the Base
memory pool appears as system pool identifier 2.)
General shared pools
General shared pools are pools of main storage that multiple subsystems can use at the same
time. On the character-based interface, they are identified as follows:
• *INTERACT is the interactive storage pool used for interactive jobs.
• *SPOOL is the storage pool used for spool writers.
• *SHRPOOL1 through *SHRPOOL60 are storage pools that you can use for your own use.
In IBM Navigator for i, the general shared pools are identified as Interactive, Spool, and Shared 1 -
Shared 60.
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
• Private
CRTSBSD ABC POOLS((1 1600 3) (2 2000 5))
• Shared
Specialized: *MACHINE *BASE
General: *INTERACT *SPOOL *SHRPOOL1...*SHRPOOL60
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
You can assign pools when you are creating or changing subsystems description.
Uempty
*SPOOL *SPOOL
QINTER
*INTERACT (1800) *INTERACT (2100)
POOL 2
QINTER
*BASE *BASE
POOL 1
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
To display subsystem description you can use the DSPSBSD command. Look at the option 1
Operational attributes.
Uempty
QINTER subsystem
Operational attributes
Pool definitions
Pool Storage
ID size (KB)
1 *BASE
2 *INTERACT
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Subsystem description attributes are common overall system attributes. When you create a
subsystem, the first step is to define the subsystem attributes.
Subsystem attributes include:
• The name of the subsystem description and the library where it is stored.
• All of the memory pool definitions that this subsystem uses A subsystem definition can have a
maximum of 10 memory pool definitions specified. Included in the subsystem definition are:
▪ Pool definition identifier: This is the identifier inside the subsystem description, of the
storage pool definition.
▪ Size: This is the size of the storage pool expressed in KB (1K=1024 bytes) multiples and is
the amount of main storage that the pool can use.
▪ Activity level: This is the maximum number of threads that can run at the same time in the
pool.
The maximum number of jobs that can be active in the subsystem at the same time.
A text description of the subsystem description.
The name and library of the sign-on display file that is used to show sign-on displays at work
stations that are allocated to the subsystem.
Uempty
A subsystem library name that you can use if you want to specify a library that should be entered
ahead of other libraries in the system portion of the library list. (This parameter allows you to use a
secondary language library.)
Also included in the subsystem description is information about authority levels to the subsystem.
This information is kept by Security and is not stored with the other attributes of the subsystem
description. You can view the subsystem description authority by using the Display Object Authority
(DSPOBJAUT) command.
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
The pool sizes and usage you can see using WRKSYSSTS command.
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
By pressing F11 function key you can change the view and see memory pool names.
Pagination option
The paging option associated with the pool. The paging option determines whether the system
should dynamically adjust the paging characteristics of the storage pool for optimum performance.
The following are the possible paging option values:
*FIXED
The system does not dynamically adjust the paging characteristics of the storage pool; it uses
system-default values.
*CALC
The system dynamically adjusts the paging characteristics of the storage pool for optimum
performance.
USRDFN
The system does not dynamically adjust the paging characteristics of the storage pool. It uses
values that have been defined through an application programming interface (API).
Uempty
WRKSHRPOOL
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
To work with all memory pool you can use command WRKSHRPOOL.
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
To work with Active Pools using IBM Navigator for i you have to:
1. Open web browser http://<system name or IP address>:2001.
2. Log on to the IBM Navigator for i.
3. On the left pane, expand Work Management.
4. Click Active Memory Pools link.
As you see that the shows information is similar like when you use WRKSYSSTS command. IBM
Navigator for i offering system status details you will see later on this unit.
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
To work with Shared Memory Pools using IBM Navigator for i you have to:
1. Open web browser http://<system name or IP address>:2001.
2. Log on to the IBM Navigator for i.
3. On the left pane, expand Work Management.
4. Under Active Memory Pools link expand All Tasks.
5. Expand Memory Pools.
6. Click Shared Memory Pools.
On the screen, you will be see all shared pools active and inactive it is similar to WRKSHRPOOL
command.
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
To see shared memory pool properties select pool name and right-click on. From the pop-up menu,
select Properties.
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Use the General tab to view and change attributes of a memory pool.
Use the Configuration tab to view and change configuration values for a memory pool.
You can find information about:
• Size
• Activity level
• Paging option
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Use the Performance tab to view performance statistics for an active memory pool.
You can see information about following parameters:
• State transitions per minute
• Database faults per second
• Database pages per second
• Non-database faults per second
• Non-database pages per second
Performance tuning is a way to adjust the performance of the system. There are many options for
tuning your system.
Each system environment is unique, requiring you to observe performance and make adjustments
that are best for your environment.
You can make performance adjustments to your system in the following ways:
• Automatic performance adjustments: You can choose to set up the system to make
performance adjustment automatically. When new systems are shipped, they are configured to
adjust automatically.
Uempty
• Manual performance adjustments: Some users have much more experience and knowledge
about IBM i work management functions and applications. You might want to perform additional
tuning by manually setting specific values such as pool size, and activity level.
• Customized performance adjustments: You can set values that control how the performance
tuner operates and then let the system make the performance adjustments automatically.
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
To work with System status using IBM Navigator for i you have to:
1. Open web browser http://<system name or IP address>:2001.
2. Log on to the IBM Navigator for i.
3. On the left pane, expand System.
4. Click System Status link.
When the System Status dialog opens, it displays statistical information about your system for that
instant in time. The exception is the CPU usage field, which displays a cumulative average during
the time displayed in the Elapsed time field.
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Use the General tab to view high level system status values that show the current status of the
system, such as elapsed CPU usage, total and active jobs in the system, permanent and temporary
addresses used, total disk space, and system disk pool capacity and usage.
You can find information about the following elements on this window:
• CPU usage (elapsed)
• Jobs
• Addresses used
• Total disk space
• System disk pool
• System Resources Health Indicators
Use the Jobs tab to view the number of total, maximum, and active jobs and threads running on the
system.
You can find information about the following elements on this window:
• Jobs
• Threads
• Active Jobs
• Jobs System Values
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Use the Processors tab to view the elapsed CPU usage and the number of processors in the
system.
You can find information about:
• CPU usage (elapsed)
• Type of processors
• Processing power
• Virtual processors
• Interactive performance
• Shared processor pool usage (elapsed)
• Uncapped CPU capacity pool usage (elapsed)
• CPU Health Indicators
Uempty
Note
Use the Memory tab to view the amount of memory on the system. You can also access the Active
Memory Pools window.
You can find information about:
• Total memory
• Active Memory Pools
• Active Memory Pools
Uempty
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Use the Disk Space tab to view the amount of disk space on the system. You can also access the
Temporary Storage Details window, the Disk Pools window and the Storage System Values
window from this tab.
You can find information about:
• Total disk space
• System disk pool
• Temporary storage used
• Temporary Storage Details
• Disk Status
• Disk Pools
• Storage System Values
• Disk Health Indicators
Use the Addresses tab to view information about address use on the system. When a permanent
or temporary address is created on the system, it is assigned an address by disk storage
management. The system uses this address to correlate references to the object with disk storage.
Uempty
It is important to regularly monitor the percentage of addresses used on your system. If the rate at
which addresses are being used will cause you to reach 100% during the planned lifetime of the
system or if address usage reaches 90% (critical limit), you should call your IBM software service
representative.
You can find information about:
• Addresses used
• Large addresses used (256 MB)
• Very large addresses used (4 GB)
Uempty
Review questions
1. True or False: A private memory pool is a pool in which
multiple subsystems can run jobs.
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
Review answers
1. True or False: A private memory pool is a pool in which
multiple subsystems can run jobs.
The answer is False.
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
Unit summary
• Describe what a subsystem is
• Describe what memory pools are
• List and describe the type of memory pools on the system
• Describe the types of work that can be run in the different memory
pools
• Explain why different types of memory pools exist
• List the commands used to display memory pool information
• Explain the information displayed on the work with system status
command display
Work management: Subsystem concepts and overview © Copyright IBM Corporation 2001, 2016
Uempty
Overview
Work management is the basis for all work that is handled in the IBM i system. To control and tune
the performance of a system, you must understand how jobs are processed. This unit covers
interactive, batch and spool job processing, and the relationships among the work management
objects. We will also discuss how to track jobs through the system and what the controls are for
limiting the number of jobs executing concurrently.
Uempty
Unit objectives
• Explain where work is processed on the system
• Explain the difference between a job and a thread
• List the types of system and users jobs that can be run on the system
• Explain when the different types of jobs start and end
• Explain the interactive job routing process
• Explain how paging works on the system
• Explain the different types of faults that can happen
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Uempty
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Uempty
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Depending on the job parameters each job can run in different subsystems using one or more
threads.
Uempty
Types of jobs
System jobs User jobs
Spooling
Interactive
Subsystem
monitor Batch
System
functions Autostart
Communication
Prestart
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Generally all jobs can be divided into System Jobs and User Jobs.
• System jobs:
• Spooling
• Subsystem monitoring
• System functions
• User jobs:
• Batch
• Interactive
• Autostart
• Communication
• Prestart
Uempty
* Unprinted spooled files for jobs that have ended are still managed by the system. This is reflected in the
"Jobs in system" values from WRKSYSSTS.
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
You can compare different start end actions for different jobs types.
Uempty
IBM i
Database
Application
program
Reports
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
An interactive job starts when you sign on to the system or transfer to a secondary or group job.
The interactive job ends when you sign off. Working from a display station, you interact with the
system by issuing commands, by using function keys, and running programs and applications. In
interactive jobs users communicate with operating system or applications (input data read results or
messages) using workstation.
The result of interactive job can be send to the display or to the output (outq and print or outq and
change to PDF, email, or stay in outq as a spool file).
The user see only input filed can put some value or run command/program and received result.
Uempty
Description
PROG 1
Data
CALL
Output
queue
PRTF
DSPF
PROG 2 Printer file
Display DEVD
file
Printer
device
description
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Programmer view is different than simple user. Programmer can manage what and how will be
displayed creating/changing display file. Programmer can manage data flow and manage
application logic. Programmer can have impact on the database (files structure, views indexes, and
so on). Similar to the display file, programmer can modeling printer file and produce different
printout for different functions or programs.
Uempty
QSYSOPR Startup
JOBQ
4 5
System System
A B
Others?
?
JOB
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
On the visual you see different jobs and for each of these jobs a different requirement. Each job
types have different characteristic and might have an impact on performance.
Uempty
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Uempty
Attributes
Storage Pools MAXJOBS(*NOMAX)
ID Storage Job description
1 *BASESign-on Display File USERLIB/USERJOBD
2 *INTERACT (QSYS/QDSIGNON)
User Name
Job Queue
Work Station Entry Job Priority
User Work Station JobDescription Output Priority
Password LWS1 *USRPRF Routing Data (QCMDI)
Request Data
Routing Entry Initial Library List
SEQNBR CMPVAL PGM Class Pool More . . . .
50 QCMDI QCMD QINTER 2
CLASS
User profile = XYZ QSYS/QCMD QGPL/QINTER
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
To determine the best approach for a particular job, you must first determine which program should
control the routing step.
Using QSYS/CMD for interactive jobs - benefits
The IBM-supplied command processor QSYS/QCMD gives the greatest flexibility in terms of
making functions available to workstation users. Using QCMD to control the routing step gives you
the following benefits: The attention program is activated if it is specified in the user profile.
The initial program that is specified in the user profile is called.
The initial menu that is specified in the user profile is called.
The user is placed in System/36 environment as it is specified in the user profile.
In addition, the default using QCMD brings you to the Main menu where you can enter commands
directly, including the CALL command, which is used to call user-written functions. Menu options
with online help are provided to give easy access to system functions. Also provided are command
selection menus, quick access to index search, and the command entry function (called by CALL
QCMD). The command entry functions are intended primarily for programmers and operators who
require the full range of functions available through the direct use of commands.
Uempty
Calling a user program directly for interactive jobs - benefits
Your programs can be directly called to control the routing steps for interactive jobs. These
programs can be designed to give a more specialized access to functions needed by your
workstation users than the IBM-supplied programs give. In addition, because your programs are
tailored for specific functions, they should typically require even less system resource to support
their running than the IBM-supplied programs. You might also want to provide functions such as an
initial program and initial menu.
After you have determined which program controls the routing step, you must determine whether
routing is to be based on the workstation from which the job was started, or on the user (user
profile) who signed on.
Routing based on the workstation is accomplished using the routing data that is specified in the job
description that is associated with the workstation entry or profile for the device. Routing based on
a user can be done using the initial program that is specified in the user profile or the job description
in the user profile mapping to a routing entry other than QCMD.
Uempty
JOB DESCRIPTION
3) RTGDTA
Routing Entry
4) CMPVAL
INLPGM 5b) PGM
QSYS/QCMD 5) PGM
INLMNU
?
5a) Appl.
5c) INLPGM Other Pgm
or
INLMNU
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Uempty
• Separate pools will protect pages and provide better performance for
the more important users’ jobs:
ƒ By default, all interactive users run in the same pool
ƒ Work management and standard security functions can be used to provide
different pools to different users
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Uempty
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Uempty
Pool benefits
• You can control work done in a subsystem by controlling the number
and size of pools. The greater the pool size, the more work can be done
in a subsystem.
• Multiple pools can separate the amount of work done and influence the
response time for jobs.
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
You can control how much work can be done in a subsystem by controlling the number and the size
of the pools. The greater the size of the pools in a subsystem, the more work can be done in it.
Using shared storage pools allows the system to distribute the storage requirements of interactive
users across multiple subsystems, still allowing their jobs to run in the same storage pool.
Multiple pools in a subsystem help you control the competition between jobs for system resources.
The advantage of having multiple pools in a subsystem is that you can separate the amount of work
that is done, and influence the response time for these jobs. For example, during the day you might
want interactive jobs running with a good response time. For better efficiency, you can make the
interactive pool larger. At night, you might be running many batch jobs, so you could make the
batch pool larger.
Do not divide the work too much because that makes it more difficult to tune and manage the
environment.
Uempty
Pages
The system moves what it needs or thinks it will need into memory.
P3 P4 G1 G2 G3 G4
P1 P2 P3 P4 P5 P6
Program
*PGM
F6 F7
F1 F2 F3 F4 F5 F6 F7 F8
File
P5
*FILE
G1 G2 G3 G4 G5
Process
G5 access group
F8
(PAG)
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
The system moves objects that it needs from auxiliary storage to main storage in storage pool
pages. This is normal system activity that occurs all the time. The entire object that a job needs
does not have to be in memory for the job to use it. Only those pages of the object that the job
currently needs for processing must be in memory.
A page fault occurs when a page that is referred to by an active program is not in main storage. On
a RISC machine, one page is 4096 bytes. Too many page faults impact performance.
There is a lot of information that a job needs in memory in order for it to function. We are familiar
with some of the objects it needs, and unfamiliar with others such as the Process Access Group
(PAG). A PAG is a group of job-related objects that can be paged out of storage in a single
operation when a job (process) enters or leaves a long wait.
Uempty
A A
A A
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Objects stored on auxiliary storage are not stored contiguously. This is sometimes called scatter
loading. Bringing an object into memory might take reads from several disks.
Uempty
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
The more page faults occur, the more times a job has to go to the disk to retrieve data. This can
have a negative effect, not just on this job, but on others that are waiting for data from the disk.
Uempty
• Non-database page faults occur when the following are needed but are
not in memory:
ƒ Program code
ƒ Job information
ƒ Data queue information
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
There are two types of page faults: Database and non-database (NDB).
• Database page faults occur when a file or part of a file, or an access path, is needed but is not
in memory.
• NDB page faults occur when objects such as programs (*PGM) or data queues (*DTAQ) are
needed in memory.
Uempty
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
The system keeps track of database and non-database page faults. Both figures are the number of
faults per second. The database category includes pages containing database data or access
paths. The non-database category includes pages other than database pages. At the top of the
window, the elapsed time is shown. Use F5 or select Options > Refresh to update the statistics.
Non-database Faults: This value indicates the number of times per second that a page (other than
data) was requested but was not in main storage.
Non-database Pages: The rate per second that pages (other than data) are read into main storage.
Current size: The amount of main storage available for pages that are needed. When requests are
made for pages, the pool that is to contain the page will be specified.
To work with Active Pools using IBM Navigator for i, you have to:
1. Open web browser http://<system name or IP address>:2001.
2. Log on to the IBM Navigator for i.
3. On the left pane, expand Work Management.
4. Click Active Memory Pools link.
In 5250 use WRSSYSSTS command.
Uempty
Paging (1 of 2)
JOB1 Needs
Memory = fixed size
9 pages
J1 J1 J1 J1
J2 J2
JOB2 Needs
J2 J1 J2 J1
11 pages
J1 J1 J2 J2
J2 J1 J2 J2
JOB3 Needs J2 J2
10 pages
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
When a page is brought into memory, it might not stay in memory for as long as it is needed. This
occurs when more jobs try to run than those that can fit in memory.
• Jobs J1 and J2 are in memory.
• Job J3 needs memory but there are not enough pages for it to fit in memory with the other two
jobs.
• Job J3 needs to steal pages that are in use by the other jobs.
Uempty
Paging (2 of 2)
Memory Disk
J1 J1 J1 J3
J2 J2 J3 J3
J2 J3 J2 J3 J1 J1 J1 J1
J1 J3 J2 J2
J2 J2
J3 J1 J2 J2
J3 J3 J2 J3
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Uempty
CUST NO.___________
NAME______________
ADDRESS___________
CITY/ST_____________
ENTER
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Not all interactive jobs require pages of memory at the same time.
A job that is waiting for a user to press Enter does not need its pages in memory. Only when the
user presses Enter does the job need its pages in memory again.
A job really needs its pages in memory only when it requires processing. While a user is typing in
data, there is no need for a job to keep its pages in memory. By writing the pages of memory to disk
for jobs that do not currently need their pages in memory, the operating system makes it easier for
other jobs to read their needed pages into memory.
Uempty
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Page swapping is a normal activity, but you want to minimize it. Avoid having too many jobs
compete for the same pool of memory.
Keeping page swapping to a minimum improves performance.
Uempty
Goal
The goal is to have enough memory so that once a job brings the pages
it needs into memory, it is able to use them before they are stolen by
another job.
Methodology
Either increase the amount of memory, or reduce the number of jobs
competing for it.
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
One of the methods to be sure that the system has enough memory is increase the amount of the
memory or reduce the number of jobs competing for it.
Uempty
T8 T7 T9 T1
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
The activity level of a storage pool is the number of threads that can be active at the same time in
a storage pool. A thread is an independent unit of dispatchable work. Each job has at least one
thread, the initial thread.
What happens if the activity level is nine and a tenth thread needs pages in memory? It goes to an
ineligible queue, where the system keeps track of those threads waiting for an activity level.
If a job needs memory but all the jobs that can compete for memory are active, the maximum
number being determined by the activity level, the thread must wait until another thread leaves its
activity level. This technique avoids a lot of repaging (thrashing) and reduces the total time that is
required by all threads.
An activity level does not affect the number of jobs that can be active in a system at one time.
Uempty
Activity
levels Yes
full
Ineligible
No queue
Main storage
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Storage pool uses something called activity levels to control the maximum number of threads that
can be active in a fixed amount of memory at any given time.
Uempty
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Uempty
State Transitions per Minute
Active -> Wait: The rate, in transitions per minute, at which threads move from an active to a
waiting condition. The thread no longer needs an activity level. Usually, this transition
represents the system beginning its wait for the user to press Enter or a function key.
Wait -> Ineligible: The rate, in transitions per minute, at which threads move from a waiting to
an ineligible condition. This usually means that a user pressed Enter or a function key and that
there was no available activity level.
Active -> Ineligible: The rate, in transitions per minute, at which threads move from an active
to an ineligible condition. The thread exceeded its time slice in an activity level.
Paging option
Determines whether the system should dynamically adjust the paging characteristics of the
memory pool for optimum performance. Possible values are:
▪ Fixed: The system does not dynamically adjust the paging characteristics of the memory
pool. It uses system-default values.
▪ Calculated: The system dynamically adjusts the paging characteristics of the memory pool
for optimum performance.
▪ User-defined value set via API: The system does not dynamically adjust the paging
characteristics of the memory pool. Rather, it uses values that have been defined through
an application programming interface (API).
It is possible that a system operator would be asked by a performance person to adjust the paging
value. To provide an understanding of the function, you might explain that not all jobs use memory
or disk in the same way. For instance, some BATCH jobs do very little I/O, while others are always
reading and writing to disk. The formula that the system regularly uses to determine where to store
new data can give one of these jobs better performance than the other. When the value for the
Paging Option is *FIXED, the system uses a standard formula; when the value is set to *CALC, the
system varies how it manages the space for a job which might give a job improved throughput;
when the value is set to *USRDFN, the system uses values identified in an application
programming interface (API) to adjust the paging characteristics. The value should not be altered
until someone with a solid performance background has analyzed the system and determined that
a change should be made to this value.
Uempty
Review questions
1. A (blank) is an independent unit of dispatchable work.
a. Job
b. Routing step
c. Thread
d. Work station entry
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Uempty
Review answers
1. A thread is an independent unit of dispatchable work.
a. Job
b. Routing step
c. Thread
d. Work station entry
The answer is thread.
Uempty
Unit summary
• Explain where work is processed on the system
• Explain the difference between a job and a thread
• List the types of system and users jobs that can be run on the system
• Explain when the different types of jobs start and end
• Explain the interactive job routing process
• Explain how paging works on the system
• Explain the different types of faults that can happen
Work management: Job processing concepts and interactive jobs © Copyright IBM Corporation 2001, 2016
Uempty
Overview
Work management is the basis for all work that is handled in the IBM i system. To control and tune
the performance of a system, you must understand how jobs are processed. This unit covers the
other types of job processing (batch and spool job, autostart, communication, and prestart) and the
relationships among the work management objects. We will also discuss how to track jobs through
the system.
Uempty
Unit objectives
• Explain where work is processed on the system
• Explain the function provided by the MAXACT attribute in a job queue
• Explain the function provided by the MAXPTYn attribute in a job queue
• Explain the batch job routing process
• Explain the function served by the timeslice attribute
• Explain the function served by the runpriority attribute
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
Batch jobs
Subsystem QSYS/QBATCH
Monitor Subsystem Description Main Storage
Program
Attributes
Maxjobs(*NOMAX)
Storage Pools
*INTERACT
ID Storage
1 *BASE
QBATCH
*BASE
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
A batch job is a predefined group of processing actions submitted to the system to be performed
with little or no interaction between the user and the system. Jobs that do not require user
interaction to run can be processed as batch jobs. A batch job typically is a low priority job and can
require a special system environment in which to run.
Batch jobs run in the system background, freeing the user who submitted the job to do other work.
Several batch jobs can be active at the same time.
Batch jobs can be started when a user:
• Causes a job to be placed in a job queue
• Issues a communication program start request
• Starts a subsystem with a prestart job
• Uses the spawn() API
When a user submits a batch job, the job gathers information from several system objects before it
is placed on a job queue.
1. A user submits a job.
Uempty
2. The job searches for job attributes. If the job attributes are not found on the Submit Job
(SBMJOB) command, the job looks in the job description (specified on the SBMJOB command),
the current user's user profile, and the currently active job (the job issuing the SBMJOB
command). Note: Similar to interactive job initiation, you can specify in the job description to
use the user profile. The user profile can specify to use a system value to find certain job
attributes.
3. Once the job has all of its attributes, it resides on the job queue.
4. When the subsystem is ready to handle a job, it looks for jobs in the job queues (those that the
subsystem has allocated).
5. Then, like interactive job processing, the subsystem checks the job description for the routing
data.
6. The subsystem uses the routing data to find a routing entry. The routing entry provides
information about which pool the job uses, which routing program is used, and from which class
the job gets its run-time attributes.
7. After this information is obtained, the routing program is run. If you use QCMD, QCMD carries
out the SBMJOB command. It runs the command specified on the CMD or RQSDTA parameter.
Uempty
Job selection
Job queue entries in subsystem description
? MAXJOBS = 3
MAXJOBS = 4
MAXJOBS = *NOMAX
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
For a batch jobs the most important parameter is maximum concurent jobs running at the same
time in a job queue. The parameter is set for job queue (MAXACT).
Uempty
1) QBATCH
Subsystem
Subsystem Description
Monitor PAY JOBQ
Program Max Jobs - *NOMAX QBATCH
Job Queue Entry
Routing Entry
SEQNBR CMPVAL PGM CLASS POOL
9999 *ANY QCMD QBATCH 1
4) CLASS
3) QGPL/QBATCH
Run Priority 6)
CALL PRPROC
5)
QSYS/QCMD
*BASE JOB MSGQ
PAY
7) PRPROC
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
The subsystem uses the routing data to find a routing entry. The routing entry provides information
about which pool the job uses, which routing program is used, and from which class the job gets its
run-time attributes. After this information is obtained, the routing program is run. If you use QCMD,
QCMD carries out the SBMJOB command. It runs the command specified on the CMD or RQSDTA
parameter
Uempty
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
QBatch is the Batch Subsystem job queue. The QBATCH jobq exist in QGPL library.
Uempty
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Batch jobs can be submitted by the system operator, programmers, and other users.
Uempty
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
STRSBS QSPL
QSYS/QSPL
1) Subsystem subsystem description Main storage
monitor
program Attributes
*SPOOL
Maxjobs *NOMAX
2) Storage Pools
ID Storage
*INTERACT
1 *BASE
(3)
2 *SPOOL
QSPL
*BASE
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
Autostart jobs
QBATCH
1) Subsystem Subsystem description Main storage
monitor
program
Job Attributes
description *SPOOL
startup Maxjobs *NOMAX
Storage Pools
ID Storage *INTERACT
User name 1 *BASE
Job queue
Job priority
Output priority
*BASE
Routing data QCMDI
Request data 2) Autostart job entry
4) CALL START 3)
Initial library list
*MACHINE
More . . . Job description
STARTUP
Program
START
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Autostart jobs
An autostart job is a batch job doing repetitive work, one-time initialization work that is associated
with a particular subsystem, initializes functions for an application, or provides centralized service
functions for other jobs in the same subsystem. An autostart job in the controlling subsystem can be
used to start other subsystems (as does the IBM-supplied controlling subsystem). The autostart
jobs associated with a subsystem are automatically started each time the subsystem is started.
To add an autostart job entry to the subsystem description, use the Add Autostart Job Entry
(ADDAJE) command. When the subsystem starts the autostart job, it uses the job description
specified in the autostart job entry to determine the routing data (RTGDTA) and tries to match that
to the compare value in the routing entries defined in the subsystem description. When a match is
found, other information in the routing entry is used to establish the work environment for the job
such as the class that will be used and the program that will be run. When the program name in the
routing entry is QCMD, the command processing program will look for the request data or
command (RQSDTA) on the job message queue. The request data is found in the job description for
the autostart job entry.
Uempty
If more than one autostart job is specified for a subsystem, all autostart jobs are started
immediately rather than one followed by another. If the value specified for the maximum jobs in
subsystem (MAXJOBS) is exceeded, no other jobs can be started in the subsystem until enough
autostart jobs have completed so that the number of jobs running is below the maximum jobs.
The job description that is used for an autostart job is specified using the Add Autostart Job Entry
(ADDAJE) command. When the subsystem is started, the job operates under the user profile name
in the specified job description. You can not specify the job description which contains
USER(*RQD). Because the autostart job operates under the user profile that is specified by the job
description, you need to control who is allowed to change the job description.
Uempty
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
Communication jobs
QCMN
Subsystem
subsystem description
monitor Main storage
program
Attributes
*SPOOL
Maxjobs *NOMAX
Storage Pools
Communications
network
ID Storage *INTERACT
1 *BASE
Line
*BASE
Control Communications entry
Unit
Dev Jobd
Device
*ALL *USRPRF
*MACHINE
Mode
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
A communications job is a batch job that is started by a program start request from a remote
system. Job processing involves a communication request and appropriate specifications.
For a communications batch job to run on an IBM® i system, a subsystem description containing a
work entry for communications jobs must exist on the system. The communications work entry
identifies to the subsystem the sources for the communications job it processes. The job
processing begins when the subsystem receives a communications program start request from a
remote system and an appropriate routing entry is found for the request.
Routing data for communication jobs
Job routing of communications jobs is determined by the program start request that is received
from the remote system. When a program start request is processed on the target system, a
fixed-length data stream that is used as routing data is created. Position 25 of the routing data
always contains PGMEVOKE for communications requests. Subsystem routing entries that specify
a compare value of PGMEVOKE in position 29 typically have *RTGDTA as the program name. This
means that the program name specified in the routing data (from the remote system's program start
request) is the program to run.
If a special processing environment is required for certain communications jobs, you can add an
additional routing entry to the subsystem description, specifying a compare value whose starting
position is 37. This compare value should contain the program name for the program start request.
Uempty
The routing entry must have a sequence number lower than the routing entry that uses
PGMEVOKE as the compare value. This method allows certain communications jobs to run with a
different class or pool specification.
Security
The security on the system controls who can use communications devices as well as who can
access the commands used with the associated device descriptions. You should consider
additional security measures when writing and running application programs on both remote and
target systems.
Job description for communication jobs
The job description used for communications jobs is specified on the Add Communications Entry
(ADDCMNE) command. The user specified on this job description is ignored. The system gets the
user name for communications jobs from the program start request. If the program start request
does not specify a user name, the system uses the default user value from the communications
entry. To ensure a greater degree of system security, include user information about the program
start request rather than specifying a default user in the communications work entry.
Uempty
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
Prestart jobs
Subsystem QBATCH
monitor subsystem description Main storage
program Attributes
Prestart job entry *SPOOL
Maxjobs *NOMAX
attributes
Storage Pools
Subsystem description
ID Storage *INTERACT
Program name
1 *BASE
User profile
Job name
Job description *BASE
Start jobs
Initial # jobs Prestart job entry
Max # prog. requests *MACHINE
Pool ID
Class
Job
Program
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
A prestart job is a batch job that starts running before a work request is received. The prestart jobs
are started before any other types of jobs in a subsystem. Prestart jobs are different from other jobs
because they use prestart job entries (part of the subsystem description) to determine which
program, class, and storage pool to use when they are started.
Within a prestart job entry, you must specify attributes that the subsystem uses to create and
manage a pool of prestart jobs. Use prestart jobs to reduce the amount of time required to handle a
work request. Two types of prestart jobs exist. Each type handles different types of requests. Before
a job waits for its first request, it will be shown as Prestart only because the system does not know
yet what type of requests the job will handle. Prestart communications The job is a communications
batch job that starts running before a remote system sends a program start request. Prestart batch
The job is a batch job that starts before a work request is received.
A prestart job starts before a work request is received, either when the subsystem starts or as a
result of the Start Prestart Jobs (STRPJ) command. Prestart jobs start from a prestart job entry
(PJE) in the subsystem description. The prestart job entry specifies attributes such as what
program to run in the prestart job, the user profile under which the prestart job starts running, the
job description, the class used to specify the run-time attributes of the job, and the memory pool in
which the prestart job runs.
Uempty
Prestart jobs can start and initialize themselves before a work request is received. This reduces the
amount of time required to handle the requests. Prestart jobs provide the ability to initialize once
and handle many requests so that a new job is not needed for every request. Many client/server
applications use prestart jobs to handle the requests for the client user. Having a job ready to go
makes the performance better in this situation because the prestart job can start processing the
request for the user immediately.
Note
The value specified for the maximum number of jobs in the subsystem can prevent prestart jobs
from starting. If the maximum number of jobs in the subsystem is exceeded, no prestart jobs can be
started. When enough jobs have completed so that the number of jobs running is below the
maximum number of jobs in the subsystem, prestart jobs in the subsystem can start.
Uempty
IBM i
Subsystem SBSD
Work
Job
entries JOBD
thread
Routing
entries Class
Program
Pools
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Whether you are new to work management or have been using work management tools for years,
these work management concepts might be useful for you.
The structure of your system
After receiving your IBM i product, you might want to know what subsystems are included with the
system, whether you need to change any start-up programs, and what kind of user interface you
will work with.
Subsystems
The subsystem is where work is processed on the system. A subsystem is a single, predefined
operating environment through which the system coordinates the work flow and resource use. The
system can contain several subsystems, all operating independently of each other. Subsystems
manage resources.
Memory pools
A memory pool is a logical division of main memory or storage that is reserved for processing a job
or group of jobs. On your system, all main storage can be divided into logical allocations called
memory pools. By default, the system manages the transfer of data and programs into memory
pools.
Uempty
Jobs
All work done on a system is performed through jobs. Each job has a unique name within the
system. All jobs, with the exception of system jobs, run within subsystems. A job can enter the
subsystem from any of the work entries, such as a job queue entry, workstation entry,
communications entry, autostart job entry, or prestart job entry.
Job scheduling options
The job schedule function allows for time-dependent scheduling of IBM i batch jobs. You can
schedule jobs to be released from the job queue at a particular time, or you can use a job schedule
entry to submit your job to the job queue automatically at the time you specify. Job scheduling
allows you to control the date and time a batch job is submitted to or becomes eligible to start from
a job queue. This flexibility can help you as you balance the work load on your system.
Job queues
A job queue contains an ordered list of jobs waiting to be processed by a subsystem. The job queue
is the first place that a submitted batch job goes before becoming active in a subsystem. The job is
held here until a number of factors are met.
Output queues
Output queues are areas where printer output files (also called spooled files) wait to be processed
and sent to the printer. Printer output is created either by the system or by the user using a print file.
Job logs
A job log contains information related to requests entered for a job. A job log has two forms, a
pending form and a spooled form.
Job accounting
The job accounting function gathers data so that you can determine who is using your system and
what system resources they are using. It also assists you in evaluating the overall use of your
system. Job accounting is optional. You must take specific steps to set up job accounting. You can
request the system to gather job resource accounting data, printer file accounting data, or both. You
can also assign accounting codes to user profiles or specific jobs.
Uempty
http://www.ibm.com/training
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
This 4-day course includes hands-on activities using performance data from IBM i systems to help
the student appreciate the concepts discussed. This course is designed for those running Power
Systems on IBM i. While it includes i 7.2 content, it is suitable for those currently using prior
versions of IBM i.
The first day of class (units 1-6) focuses on teaching the performance management process, the
performance considerations of key hardware components and virtualization options, and tuning
options to help optimize performance. During these lectures, students should gain an appreciation
of the unique storage management and work management components in the IBM i architecture
and how these components need to be managed for optimal performance.
Days 2-4 of the class focus on the tools and techniques to monitor, analyze, and plan for
performance of Power Systems with IBM i and Logical partitions (LPARs).
The primary analysis tool that will be used is the Performance Data Investigator (PDI) which is
included with IBM Navigator for i. PDI is also used with IBM Systems Workload Estimator (WLE) for
capacity planning activities.
Uempty
Review questions (1 of 2)
1. The (blank) specifies the maximum number of jobs that can
be concurrently active from a job queue.
A. SEQNBR
B. MAXACT
C. MAXPTYn
D. MAXJOBS
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
Review answers (1 of 2)
1. The MAXACT specifies the maximum number of jobs that can be
concurrently active from a job queue.
a. SEQNBR
b. MAXACT
c. MAXPTYn
d. MAXJOBS
The answer is MAXACT.
2. The MAXPTYn can limit the number of jobs of a specific priority that
can be released at one time from the job queue.
a. SEQNBR
b. MAXACT
c. MAXPTYn
d. MAXJOBS
The answer is MAXPTYn.
Uempty
Review questions (2 of 2)
4. True or False: Run priority is used to determine the order in
which jobs are chosen to use a processor.
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
Review answers (2 of 2)
4. True or False: Run priority is used to determine the order in which
jobs are chosen to use a processor.
The answer is true.
6. True or False: The job routing for QSPL is identical to that of batch.
The answer is true.
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
Unit summary
• Explain where work is processed on the system
• Explain the function provided by the MAXACT attribute in a job queue
• Explain the function provided by the MAXPTYn attribute in a job queue
• Explain the batch job routing process
• Explain the function served by the timeslice attribute
• Explain the function served by the runpriority attribute
Work management: Job processing concepts of other job types © Copyright IBM Corporation 2001, 2016
Uempty
Overview
This unit will discuss batch processing and spooling. We will look at the ways to submit batch jobs
and how to track these jobs as they go through the system. The spooling readers and writers are
system batch jobs which are used by interactive and jobs when they generate print output. We are
going to discuss how spooling interfaces with the user's job and how to control readers and writers.
Uempty
Unit objectives
• Describe what command is used to submit a job to run in batch mode
• Explain the process on the system when a job is submitted to run in
batch
• Explain how to schedule a batch job
• List and explain the commands you can use to track jobs on the system
• Explain how data management intercepts output generated by a
program
• Explain the function of a printer device file
• Explain the decision process used by the system to determine where to
send your output
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
Uempty
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
The Submit Job (SBMJOB) command allows a job that is running to submit another job to a job
queue to be run later as a batch job. Only one element of request data can be placed on the new
job's message queue. The request data can be a CL command if the routing entry used for the job
specifies a CL command processing program (such as the IBM-supplied QCMD program).
Uempty
JOBQ POOL
JOBY QBATCH *BASE
Routing Entries
RTGDTA=
QCMDB SEQNBR CMPVAL PGM CLS MAXACT POOLID
Since batch jobs are typically low priority jobs that require a special system environment in which to
run (such as running at night) they are placed in batch job queues. In the job queue, the batch job
receives a run-time schedule and a priority. To submit a job to a batch job queue, you use the
character-based interface and one of two commands.
Command: Submit Job (SBMJOB)
Command: Submit Database Job (SBMDBJOB)
The difference in these commands is the source of the job:
The SBMJOB command submits a job to a batch job queue by specifying a job description and by
specifying a CL command or request data, or specifying routing data to run a program. If you want
to run a single CL command in a batch job, use the CMD parameter on SBMJOB, which does
syntax checking and allows prompting.
The SBMDBJOB command can be used to submit a job to a batch job queue from a database file.
For these jobs, the job description comes from the BCHJOB statement in the input stream.
Uempty
Inline data files
An inline data file is a data file that is included as part of a batch job when the job is read by a
reader or a submit jobs command. You use SBMDBJOB or STRDBRDR to queue a CL batch stream
(stream of CL commands to be run). That CL batch stream can include data to be placed into inline
data files (temporary files). When the job ends, the inline data files are deleted.
Considerations for opening inline data files
You need to consider these elements when you open inline date files.
1+1 2 Example
In the following example, the SBMJOB command submits a job named WSYS, using the job
description QBATCH, to the job queue QBATCH. The CMD parameter gives the CL command that
will run in the job. SBMJOB JOBD(QBATCH) JOB(WSYS) JOBQ(QBATCH) CMD(WRKSYSSTS)
Note: If you get a message that the job was not submitted, you can display the job log spooled file
to find errors. Use the WRKJOB command. Specify the job that was not scheduled, select option 4
for spooled files. Display the job log spooled file to find the errors.
Uempty
JOBY
JOBQ CALL
PGMY
Uempty
WRKJOBSCDE
ADD... CHG...
HLD... RLS...
RMV...
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
You can schedule a job to run using the Advanced Job Scheduler, by using the IBM® Navigator for
i Job Properties window, or by changing the job schedule entry via the character-based interface
5250. In the 5250 interface, you can run WRKJOBSCDE command or ADDJOBSCDE you can also use
SBMJOB with SCDDATE( ) SCDTIME( ).
To schedule a job using IBM® Navigator for i, use the following instructions:
• Expand Work Management > Job Queues > Active Job Queues or All Job Queues > The
job queue that contains your job.
• Right-click the job and click Properties.
• On the Job Properties window, click the Job Queues tab.
To schedule the job, use the options that are located under “When to make job available to run”.
The IBM Advanced Job Scheduler for i (5770-JS1) licensed program is a powerful scheduler that
allows unattended job processing 24 hours a day, 7 days a week. This scheduling tool provides
more calendar features and offers greater control over scheduled events than the base scheduler.
You can also view job completion history and manage notification of a job's status.
Uempty
JOBA Pool1
JOBB *BASE
JOBC
JOBQ
QSPL Subsystem
Writers
*SPOOL
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
On the diagram you can see the process of putting job to job queue.
Uempty
Tracking jobs
QINTER Subsystem
WRKJOBSCDE
Job Schedule Object Workstation
Interactive Jobs
entry . . .
entry . . . WRKJOB
WRKSBMJOB *INTERACT
WRKACTJOB Batch Jobs
WRKUSRJOB
WRKSBS *BASE
JOBA
JOBB
JOBC
JOBQ
WRKJOBQ
QSPL Subsystem
Writers
*SPOOL
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
There are a lot of commands to control the job. From commands like WRKJOBSCDE, which allows
you to prepare a job, through the command which allows you to control a job when it is running, to
the commands which help you control output.
Uempty
Spooling intercept
Program
Device File
QPRINT
Data
SPOOL(*YES) Spooling
Management
Intercept
QPRINT Print
Spooled Data
OUTQ File
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
Spooling functions are performed by the system without requiring any special operations by the
program that creates the output. When a program opens a printer file, the operating system
determines whether the output is to be spooled by looking at the printer file SPOOL parameter.
When a printer file specifying spooling is opened, the spooled file containing the output of the
program (data to be printed) is placed on the appropriate output queue in the system. A spooled file
can be made available for printing when the printer file is opened, when the printer file is closed, or
at the end of the job. This is done by specifying a particular value on the schedule parameter.
*IMMED makes the spooled file available to the writer as soon as the program is opened.
*FILEEND makes the spooled file available to the writer as soon as the file is closed. *JOBEND
makes the spooled file available to the writer as soon as the job is complete.
This process of spooling prevents a potential job limitation imposed by the availability or speed of
the printer devices. That is, the system can process application programs that generate printed
output much faster than printers can print the output.
By spooling (that is, sending the output to output queues to await printing), the system does not
have to wait until the printing for that application program is complete before it can start processing
the next application program.
Uempty
Spooling is especially important in a multiple-user environment where the number of jobs running
often exceeds the number of available printer devices. Using spooling, output can be easily
redirected from one output queue to another or from one printer to another.
Uempty
QPRINT
QPRINT
SPOOL = (*YES)
OUTQ = (*JOB) OUTQ
FORMTYPE = (*STD)
COPIES = (1)
SCHEDULE = (*FILEEND)
SAVE = (*NO)
DEV = (*JOB)
More . . .
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
When spooled files are created, the spooled file name is typically the same as the name of the
printer file that was used to create it. For example, if the Print key is pressed, the spooled file is
called QSYSPRT because QSYSPRT is the printer file used by the Print key operation.
There are several ways in which the spooled file can have a different name:
1. The Override with Printer File (OVRPRTF) command was used and a name was specified in the
SPLFNAME parameter. For example, typing the following command:
OVRPRTF QSYSPRT SPLFNAME(REPORT1) causes the name of the spooled file to be
REPORT1 instead of QSYSPRT.
2. The OVRPRTF command was used and a different printer file is specified in the TOFILE
parameter. For example, typing the following command:
OVRPRTF QSYSPRT TOFILE(PRTF2) causes the spooled file to be called PRTF2 (the name
of the printer file specified in the TOFILE parameter of the OVRPRTF command).
Some IBM applications might create spooled files that have names different from the printer files
used to create them. Users have no control over spooled file names in this situation.
Uempty
Device Description
PRTDEV (*SYSVAL)
OUTQ (*DEV)
System Value
QPRTDEV (PRTO1)
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
When a printer is configured to the system, the system automatically creates the printer's default
output queue in library QUSRSYS. The output queue is given a text description of 'Default output
queue for printer xxxxxxxxxx', where xxxxxxxxxx is the name assigned to the printer during
configuration. The printer name is specified in the device description (DEVD) parameter.
The AUT parameter for the output queue is assigned the same value as that specified by the AUT
parameter for the printer device description. All other parameters are assigned their default values.
Use the Change Command Default (CHGCMDDFT) command to change the default values used
when creating output queues with the CRTOUTQ command.
The default output queue for a printer is owned by the user who created the printer device
description. In the case of automatic configuration, both the printer and the output queue are owned
by the system profile QPGMR.
The system is shipped with the defaults set to use the default output queue for the system printer as
the default output queue for all spooled output. The system printer is defined by the Default printer
(QPRTDEV) system value.
When a spooled file is created by opening a printer file and the output queue specified for the file
cannot be found, the system attempts to place the spooled file on output queue QPRINT in library
QGPL. If for any reason the spooled file cannot be placed on output queue QPRINT, an error
message is sent and the output is not spooled.
Uempty
When job starts first will be taken defaults from printer file after from job description and user profile
and in the end from the device description and system value.
Uempty
QINTER Subsystem
Interactive Jobs
Workstation
*INTERACT
Batch Jobs
JOBA
*BASE QPRINT
JOBB
JOBC WRKOUTQ
OUTQ
WRKJOB
JOBQ
WRKSPLF
QSPL Subsystem
WRKSPLFA
Writers Spooled
*SPOOL Files
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
By default each job which want to print something sends data to default outq QPRINT. You can
control the whole process using these commands:
WRKJOB
WRKOUTQ
WRKSPLF
WRKSPLFA
Uempty
Spool writers
QINTER Subsystem
Interactive Jobs
*INTERACT
*BASE OUTQ
Spooled
Files
QSPL Subsystem
WRKWTR
Writers
*SPOOL
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
The spooled file subsystem, QSPL, is used for processing the printer writer programs and must be
active when printer writer programs are active. The spooled file subsystem and the individual
printer writer programs can be controlled from jobs that run in other subsystems. The Start Printer
Writer (STRPRTWTR) command submits writer jobs to the job queue of the spooled file subsystem.
Requests for writer jobs are placed on the QSPL job queue, and the next entry on the QSPL job
queue is selected to run if:
• The number of active jobs is less than the QSPL subsystem attribute of MAXJOBS.
• The number of active jobs from the QSPL job queue is less than the MAXACT attribute for the
job queue.
A writer is an IBM i program that takes spooled files from an output queue and produces them on
an output device. The spooled files that have been placed on a particular output queue remain
stored in the system until a writer is started to the output queue.
The writer takes spooled files one at a time from the output queue, based on their priority. The
writer processes a spooled file only if its entry on the output queue indicates that it has a ready
(RDY) status. You can display the status of a particular spooled file using the Work with Output
Queue (WRKOUTQ) command.
Uempty
If the spooled file has a ready status, the writer takes the entry from the output queue and prints the
specified job or file separators or both, followed by the output data in the file. If the spooled file does
not have a ready status, the writer leaves the entry on the output queue and goes on to the next
entry. In most cases the writer continues to process spooled files (preceded by job and file
separators) until all files with a ready status have been taken from the output queue.
The AUTOEND parameter on the start writer commands determines whether the writer continues to
wait for new spooled files to become available to be written, end after processing one file, or end
after all spooled files that have a ready status have been taken from the output queue.
Uempty
Spooling summary
Job queues:
• Any number of job queues is allowed.
• Ordered by job queue sequence number.
• IBM shipped queues use sequence number.
• More than one job queue can be activated in a subsystem.
• Any job queue can be fed at any time.
Output queues:
• Any number of output queues is allowed.
• One output queue can be active to up to 10 printers at a given time.
• Any output queue can be fed at any time by any program executing in
the system.
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
Job queues:
• Any number of job queues is allowed.
• Ordered by job queue sequence number.
• IBM shipped queues use sequence number.
• More than one job queue can be activated in a subsystem.
• Any job queue can be fed at any time.
Output queues:
• Any number of output queues is allowed.
• One output queue can be active to up to 10 printers at a given time.
• Any output queue can be fed at any time by any program executing in the system.
Uempty
Review questions
1. True or False: The submit job command is used to run an
interactive job.
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
Uempty
Review answers
1. True or False: The submit job command is used to run an
interactive job.
The answer is False.
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
Uempty
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
Uempty
Unit summary
• Describe what command is used to submit a job to run in batch mode
• Explain the process on the system when a job is submitted to run in
batch
• Explain how to schedule a batch job
• List and explain the commands you can use to track jobs on the system
• Explain how data management intercepts output generated by a
program
• Explain the function of a printer device file
• Explain the decision process used by the system to determine where to
send your output
Work management: Submitting and tracking of batch jobs © Copyright IBM Corporation 2001, 2016
Uempty
Overview
This unit is provided to teach the students how to write a simple Control Language (CL) program. In
this unit, we will discuss the concepts of programming.
Uempty
Unit objectives
• Discuss the concepts behind programming
• Explain the steps involved in creating a program
Uempty
You can create a program to perform the needed steps in the sequence you specify. The name of
the CL program will be MIDDAY.
Here is an example of a series of steps an operator would want to automate. You might never have
heard of journaling or of a journal receiver, but the steps will still look logical. Rather than going into
detail on each CL command concentrate on the process of grouping together a series of CL
commands that must be run each day.
Ask the instructor about explanation of a journal receiver as an object that holds a copy of each
record changed in a file. Journaling makes it possible to recover a file up to the last record
processed rather than to the last file backup. At noon, this company plans to set up a new receiver
for the afternoon work and to back up the receiver used in the morning.
These are a series of CL commands that a system operator enters on a daily basis to back up a
journal receiver in the middle of the day. The operator enters these same CL commands in the
same sequence every day. Wouldn't it be nice, then, to place those commands in a program that
executed the commands in the proper sequence?
Uempty
Because the commands are placed in a program called MIDDAY, operators now needs only to
CALL the MIDDAY program.
When they do this, the four commands will be executed in the correct sequence.
Uempty
What is a program?
A program definition
is a sequence of
instructions that a
computer can
interpret and run.
You might also add that the instructions should be organized in a detailed and logical sequence.
Next, we will look at the steps involved in creating a program.
Uempty
Uempty
Uempty
The three editions of IBM Rational Developer for i represent the evolutions of products previously
marketed under the following names: IBM Rational Developer for Power Systems Software RPG
and COBOL Tools for i, IBM Rational Developer for Power Systems Software Power Tools for i, and
IBM Rational Developer for i for SOA Construction.
Uempty
More source
members can be
added.
MIDDAY
Object Type
*PGM
Programming concepts © Copyright IBM Corporation 2001, 2016
A source physical file contains the uncompiled program source statements. A source physical file
contains one or more source members. Each source member contains the source for one program
or object.
Generally, the source physical file name reflects the type of source that it contains. For example
QCLSRC for CL programs, QRPGSRC for RPG programs, QDDSSRC for a DDS file source, and
so on. You can have multiple QCLSRC files (in different libraries) each containing the source for CL
programs for one library or one application.
Uempty
Review questions
1. True or False: Tasks or operations that are repetitive in
nature are prime candidates for a CL program.
3. True or False: You can only create one source physical file
on your system.
Uempty
Review answers
1. True or False: Tasks or operations that are repetitive in
nature are prime candidates for a CL program.
The answer is True.
3. True or False: You can only create one source physical file
on your system.
The answer is False.
Uempty
Unit summary
• Discuss the concepts behind programming
• Explain the steps involved in creating a program
Uempty
Overview
This unit is provided to teach the students how to write a simple Control Language (CL) program. In
this unit, we will discuss some of the basics of CL programming.
Uempty
Unit objectives
• Discuss the basic statement required in a CL program
• Discuss the basic structure of a CL program
• Explain some of the basic coding rules for a CL program
• Explain how to communicate between a user and the CL program
• Explain how to set up prompting for some of the CL commands or
parameters
Uempty
CL programs
• Are compiled into executable code
• Can control work flow
• Can perform logical operations
• Can communicate with the user
• Can allocate required resources
Uempty
• An OPM CL program is a program that conforms to the original program model (OPM). OPM CL
programs are objects that result from compiling source using the Create CL Program
(CRTCLPGM) command.
Uempty
Thousands of CL commands are shipped as part of the base operating system and optionally
installable parts of the base operating system.
Other CL commands are shipped with licensed program products (LPPs). For example:
• The Start Performance Tools (STRPFRT) command is shipped with Performance Tools.
• The Work with Saved Objects Using BRM (WRKOBJBRM) command is shipped with Backup,
Recovery, and Media Services (BRMS).
Uempty
You have probably used all of these commands by entering them on a command line or executing
them by using a menu option. All of these commands can be used in a CL program. In fact, most
other commands can be used in a CL program as well.
• CALL (Call Program) -SAVLIB (Save Library)
• CHKOBJ (Check Object) - SAVOBJ (Save Object)
• CHKTAP (Check Tape) - SNDMSG (Send Message)
• CRTSAVF (Create Save File) - SNDBRKMSG (Send Break Message)
• DSPMSG (Display Message) - STRPRTWTR (Start Print Writer)
• RSTLIB (Restore Library) - WRKOUTQ (Work Out Queue)
• RSTOBJ (Restore Object) - WRKWTR (Work Writer)
Uempty
DO
PGM ENDDO
ENDPGM
IF
ELSE
GOTO
DCL Label
There are some CL commands which can only be executed from within a CL program. You might
not be familiar with these commands because they cannot be executed from a command line. This
visual shows some of these commands. Notice the grouping to used to indicate that these two
commands work in conjunction with each other.
• PGM (Program) ENDPGM (End Program)
• DCL (Declare Variable, File)
• IF (If) ELSE (Else)
• DO (Do) ENDDO (End Do)
• GOTO (Go To) Label
Uempty
Command format
SAVLIB + Command prompting
F4
Free format--keyword
SAVLIB LIB(AS2700) DEV(TAP01) ENDOPT(*UNLOAD)
Free format--positional
SAVLIB AS2700 TAP01 *UNLOAD SAVLIB LIB(AS2700)
There are three ways you can enter a command that is not part of a CL program:
Command Prompting
If you need help entering the parameters for a command, you can request that a display be shown
that is tailored to the command name. The display prompts for the parameters.
You can request command prompting either by pressing F4 after you type just the command name,
or you can type a question mark immediately preceding the command name and press Enter.
Free format method - Keyword format
In the keyword format method you enter the command name followed by a keyword followed by the
appropriate value for the keyword. You can enter the keywords in any order. You must be familiar
with the commands and their parameters to use this method.
Free format method - Positional format
This method requires that you be very familiar with the keywords and their parameters. In this
method, you enter the command name followed by the parameters in the exact order that IBM i
expects them to be. The order in which the values are entered is of utmost importance.
Uempty
or
• Positional
CLRLIB AS2700
• Label
LABEL: CLRLIB LIB(AS2700)
When you enter a command in a CL program, the command format is the same as when you enter
the command on a command line. One addition is that you can add is a label to allow you to identify
a command or a specific record within the program. This label can be used for branching when
using conditional logic.
The only addition to the format that the students already know is the optional LABEL: parameter.
• A label identifies the statement in the procedure to which processing is directed by the GOTO
command.
• To use a GOTO command, the command you are branching to must have a label.
• The label in this example is LABEL.
• A label can have as many as 10 characters and must be immediately followed by a colon, but
blanks can occur between the label and the command name.
Uempty
Single apostrophe Indicates the beginning and end of a SNDMSG MSG ('Program completed') TOUSR(QPGMR)
' ' quoted character string (a constant)
When typing in the entire command (that is, without prompting) there are certain rules that apply.
This visual shows some of these rules.
This visual shows coding rules with which you should be familiar.
Since most new operators enter command parameters via prompting, these rules might not be
familiar to you.
Uempty
Variable name &xxx Used to store and update data and to receive parameters; it
must begin with an ampersand (&)
Uempty
Uempty
Program-level MONMSG
monitor messages MONMSG
IF
IBM commands ELSE
COMMAND
Command-level MONMSG
monitor messages MONMSG
and/or
User commands
Uempty
Declare CL variable
DCL VAR(&NAME) TYPE( ) LEN( ) VALUE( )
Examples:
Character variables are just one type of variable that you can declare. They are used to store and
update data within a program. Their value is assigned or changed while the program is running.
This visual shows the Declare (DCL) command parameters. Following is an explanation of these
parameters:
• VAR (Variable): Specifies the name of the CL variable being declared. The variable name must
begin with an ampersand (&).
• TYPE (Type): Specifies the type of variable. In the example shown on the visual you are
learning how to declare a character (*CHAR) variable.
• LEN (Length): Specifies the number of characters that the value in this CL variable can have.
The minimum, maximum and default values are shown on the visual.
• VALUE (Value): Specifies the initial value assigned to the CL variable when it is declared in the
program. If no value is specified, a character variable is set to blanks.
A character variable can be used to hold a user's response to an inquiry message so that it can be
tested. We will see this in the upcoming examples.
Uempty
DCL examples
Uempty
DCL &TO *CHAR LEN(6)
This command declares a CL variable named &TO that contains a character value that is 6
characters in length. The initial value of &TO is blanks.
DCL &FILNAM *CHAR VALUE(FILEA)
This command declares a CL variable named FILNAM whose initial value is FILEA. Because the
value contains 5 characters, and the LEN parameter is not specified, the length of the variable is
also 5 characters.
Uempty
Which library
do you want
to save?
Reply________
Uempty
SNDUSRMSG parameters
MSG ('message-text')
VALUES *NONE
allowable-values (20-max)
DFT ('default-reply-value')
MSGTYPE *INQ
*INFO
TOUSR *SYSOPR
*REQUESTER
user-profile-name
TOMSGQ *
*SYSOPR
*EXT
message-queue-name
Uempty
• TOMSGQ (To message queue): Specifies the qualified name of the message queue to which
the message is sent. If ‘*’ is specified for an interactive job, the message is sent to the external
message queue (*EXT), while for a batch job, the message is sent to the system operator's
message queue (QSYS/QSYSOPR).
• MSGRPY (Message reply): Specifies the CL character variable (of up to 132 characters) that
contains the reply received in response to an inquiry message. This parameter is valid only if
MSGTYPE(*INQ) is specified. If the reply is longer than the variable, it is truncated; if it shorter,
it is padded to the right with blanks.
Uempty
SNDUSRMSG example
SNDUSRMSG
• MSGRPY(&LIB)
This visual shows an example of the SNDUSRMSG command. Review the parameters that are used.
Ask which message queue will receive the message.
Ask how and where is &LIB defined.
• &LIB is defined in a Declare (DCL) command earlier in the CL program.
Uempty
Notice all the places where the variable name &LIB appears.
• First, it is declared (DCL).
• Then, it holds the reply to the message.
• Then, it is used to identify which library should be saved.
Notice that when a command is longer than one line you can use a plus sign (+) to indicate
continuation of the command on the next line.
This visual shows the SNDUSRMSG used in a CL program.
• This program sends a message to the user and tests for the user's reply.
• The reply is used to decide which library is to be saved.
• When the library is saved, a message is sent to the user that called the program.
Uempty
PGM
GOTO CMDLBL(DAYEND)
DAYEND:
ENDPGM
The GOTO command allows unconditional branching within a CL program. The branching is always
to a LABEL.
After the branch to the labeled statement, processing begins at that statement and continues in
consecutive sequence. It does not return to the GOTO command unless specifically directed back by
another instruction.
The GOTO command has one parameter which contains the label of the statement branched to.
A label can have a maximum of 10 characters and must be immediately followed by a colon. Blanks
can occur between the label and command name.
Uempty
If-Then ELSE (1 of 2)
relational
IF COND( or logical ) THEN (command)
expression
Examples:
IF COND(&X='Y') THEN(GOTO SAVEFILE)
IF COND(&YREND *NE '1231') THEN(GOTO MTHEND)
IF (&TIME>170000) RLSJOBQ NIGHTTIME
The IF command is used to state a condition that, if true, specifies some statement in the program
to run. The command includes an expression, which is tested (true or false), and a THEN parameter
that specifies the action to be taken if the expression is true. Following is the format of the
command:
IF COND(logical-expression) THEN(CL command)
The IF command allows conditional processing within CL programs. If the IF condition is true, the
CL command or group of commands specified within the THEN parameter is executed. If it is false,
the CL command or group of commands is not executed.
Review the examples of IF commands at the bottom of the visual. Both COND and THEN are
keywords on the command which can be omitted. The last example on the visual shows these
keywords omitted.
Embedded IF commands can be used in a CL program.
Uempty
If-Then Else (2 of 2)
• ELSE CMD(CL-COMMAND)
ƒ Used with an IF command
ƒ Processed only if the preceding IF command is false
ƒ Examples
Uempty
The IF command uses these relational operators to make its comparisons. The relational operators
can become complex statements if they are linked by AND (*AND (&)) or *OR (|).
This visual shows the valid relational operators that can be used within an IF command. Review the
examples at the bottom of the visual. Notice the complex tests that can be performed.
Uempty
DO / ENDDO
DO/ENDDO allows processing of multiple CL commands
if the logical expression of an IF* is true.
IF (&X='YES') THEN(DO)
CRTSAVF
SAVOBJ
ENDDO
The DO command allows you to process a group of commands together. The group is all of the
commands between the DO command and the next ENDDO command.
Processing of the group of commands is usually conditioned on the evaluation of an associated
command, such as the IF command.
• If the evaluation of the command is true, then the DO group is processed.
• If the expression is not true, then processing starts after the ENDDO command.
Sometimes when a condition is true, you want to process more than one CL command.
• If so, then for the THEN parameter specify DO. The DO command says that if the condition is
true, process all the subsequent commands in sequence up to the ENDDO command.
• If, however, the condition is false, do not process the THEN command, but continue processing
at the statement following the ENDDO.
DO groups can be nested within other DO groups. There can be a maximum of 10 levels of nesting.
Uempty
Command prompting
?SNDMSG TOUSR(*SYSOPR)
? PRECEDING COMMAND CAUSES ENTIRE COMMAND TO BE PROMPTED
A question mark (?) preceding a command causes the entire command to be prompted at
execution time.
• All parameters will be displayed.
• Only parameters which do not have specified values can be entered.
F10 will allow the user to see and change the additional command parameters.
Within a CL program that is designed to run interactively, you can include simple command
prompting to enhance the flexibility of the program.
Using the question mark (?) character, you can control whether a prompt display is shown, as well
as control which fields of the prompt the user can modify. In effect, you are allowing the user of the
program to change the CL command as the program runs. The user will see the same prompted
command parameters that they would see when keying a command after pressing F4 (Prompt).
Prompting at execution time can be done in two ways.
• If the ? precedes the command name then all parameters will be prompted except those that
are specifically coded and these can not be changed. This gives your user great flexibility but
still allows you to control some of the parameters.
• To prevent a parameter from being changed, simply fix a value for it in the program.
Uempty
• If you do not want the user to see that parameter, put ?- immediately in front of its keyword.
If you want a more controlled prompting, where the user does not need to be prompted for every
parameter, then do not place the ? in front of the command. Instead, put it selectively in front of
keywords that need to be changed. The following visuals illustrate both methods.
This visual shows an example of command processing.
• Notice that TOUSR has a specified value so this parameter is protected on the display and
cannot be changed.
• Notice as well, that the user can press F10 to view additional parameters which can be
changed.
Uempty
Uempty
Without the "?" in front of the command, only those parameters you mark with "?" or "??" will be
displayed. F10 is not available for the additional parameters. Therefore, all other parameters will
use the defaults.
Notice that in this example the "?" is not in front of the command.
• This is controlled prompting.
• The LIB parameter will be prompted and can be changed.
• The DEV parameter will be shown on the prompt screen but cannot be changed.
• The ENDOPT parameter has been coded with a value and will not be seen nor can it be
changed.
What is important is that the user will not be able to press F10 to get additional prompting for other
parameters. All other parameters will use the defaults.
Uempty
Whoops!
Uempty
MONMSG example
Let us try to clear a save file that might or might not already exist. If
it does not exist, create it.
CLRSAVF FILE(APSAVF)
MONMSG MSGID(CPF9812) EXEC(CRTSAVF FILE(APSAVF))
Uempty
• MONMSG MSGID(CPF3400)
ƒ Monitors for messages beginning with ‘CPF34’
You can monitor for a range of messages, instead of for specific messages. This visual shows two
examples of monitoring for a range of messages.
Uempty
This program runs a typical series of commands that a system operator might have to perform:
1. First, it initializes a tape on device TAP01.
2. Then, it saves the libraries PAYROLL and APLIB to the device TAP01 and it unloads the tape.
3. Lastly, it calls the program PAYENDDAY.
Having these commands in a program ensures that no matter who runs the program for end of day,
the same commands are always run and in the correct order.
This and the next visual can be used to summarize the ideas taught in this unit.
This visual shows an example of a simple program an operator can run. Work flow is controlled by
the sequence of the CL commands.
Uempty
Adding the variable and the SNDUSRMSG command allows the program and the user to
communicate.
This program includes many of the programming techniques discussed in this unit.
The program will continue to loop and perform the INZTAP command until the user decides to stop.
After the tapes are initialized, the SAVLIB command executes and when it is done, a message is
sent to the workstation.
Uempty
Syntax
Using RD for i checking
or SEU *FILE
QCLSRC
Listing
source
of source
file
code Create CL program
and errors CRTCLPGM
(Compile CL source) PROGA
PROGB
*PGM PROGC
Program
object
Test CL
program by
User steps executing
Data paths
The command used to create the source physical file that will be used to store all CL programs is:
CRTSRCPF FILE(QCLSRC).
You enter the source code for a CL program by using Programming Development Manager (PDM)
and Source Entry Utility (SEU) or by using Rational Developer for i editor.
Uempty
Review questions
1. True or False: All CL commands are available to be used from a
command line or within a CL program.
Uempty
Review answers
1. True or False: All CL commands are available to be used from a command line or
within a CL program.
The answer is False.
2. In a CL program, a comment statement will always begin and end with which of the
following?
a. ( )
b. +
c. /* */
d. &
The answer is /* */.
3. True or False: A CL program should always start with a PGM command and end with
an ENDPGM command.
The answer is True.
4. Which of the following is used within a CL program to monitor for a specific message?
a. MONITOR
b. PGMLST
c. MONMSG
d. SNDMSG
The answer is MONMSG.
CL programming concepts © Copyright IBM Corporation 2001, 2016
Uempty
Unit summary
• Discuss the basic statement required in a CL program
• Discuss the basic structure of a CL program
• Explain some of the basic coding rules for a CL program
• Explain how to communicate between a user and the CL program
• Explain how to set up prompting for some of the CL commands or
parameters
Uempty
Overview
This unit is provided to teach the students how to write a simple Control Language (CL) program. In
this unit, the students will learn how to use the traditional application development tools used from a
green screen 5250 emulation session. Specifically, you will be using Programming Development
Manager (PDM) and Source Entry Utility (SEU). The lecture materials will then be reinforced with a
lab exercise.
Uempty
Unit objectives
• Use PDM and SEU to create a CL program
• Use prompting for CL program statements
• Perform the steps to compile a CL program
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
Uempty
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
Programming Development Manager (PDM), Source Entry Utility (SEU) and Screen Design Aid
(SDA) are part of the IBM Application Development Tool Set (ADTS) for System i which is a
licensed program. Being a licensed program means this software might or might not be installed on
the customer system.
Rational Developer for i allows users to perform the same functions as in PDM, SEU, and SDA by
using a Windows interface.
The Start PDM (STRPDM) command starts the programming development manager. From the
Programming Development Manager (PDM) menu, you can work with libraries, objects,
members, and user-defined options.
Because source code is typed into members of a source physical file, select option 3 (Work with
members).
The role of PDM is to create a productive working environment. It does so by making it easy to use
the functions of the system while letting the user look at the objects and members in it.
Option 1 is for users looking for the ‘big picture’. Taking this option lets them see all or some of the
libraries. If users decide to choose this option, they will be able to save a whole library, delete a
whole library, and so on.
Uempty
Option 2 is for users who need to work with finished goods, the objects of the system. When this
option is chosen, users see the objects in a particular library and can save an individual object,
delete an object, and so forth.
Option 3 is for users interested in the development of source code. If they choose this option, they
are able to delete a source program, copy a source program, and so forth.
Option 9 is not covered in this unit. It allows users to add more functions to PDM.
Since we are going to enter a source program, let’s select option 3.
Uempty
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
On this page you will first need to specify the name of the library that contains the source file.
The second value to specify is the name of the source file where your program will be stored.
Optionally you can specify the name and type for a member that already exists. To display or make
changes.
Uempty
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
This screen will display the name of the source file and the name of the library where this file is
stored in the upper left of the screen.
The screen will display any members that already exist as well as the type of member. Even though
it is possible to store all different types of members within one source file, the standard is to create
a source specific to the type of members it will contain.
There are several options that can be performed against an existing member. Use the F23 key to
display additional options that can be performed.
Press the F6 = Create key to display the screen capture on the next page that is used to create a
new member.
This screen can be reached also using WRKMBRPDM command.
Uempty
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
On this page you will specify the name and type of member to be created.
The system will perform syntax checking based on the type of member specified on this page.
It is also recommended that you fill in something meaningful and descriptive every time that you
create a new member.
Uempty
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
Uempty
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
After you enter all commands you can exit with save option. To do that press F3 key and press
Enter.
Uempty
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
To compile program type option 14 Compile next to member name and press F4 to see parameters
prompt screen. You can specify the name of the program (default is same as member name),
library where program will be created.
If you set Replace program * YES if program exist in library will be replaced.
Uempty
Reference materials
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
Uempty
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
Uempty
Programming education (1 of 2)
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
OL20G
Learn to write easy to use and efficient control language (CL) programs which can be used to
perform a variety of system and application control functions. You are taught to write basic and
intermediate level, interactive, and batch CL programs, user commands, and CL programs that
function as user tools (programs that use the output of display commands as input).
You will learn to write Control Language (CL) programs which can be used to perform a variety of
system and application control functions. You will be taught to write basic and intermediate level
interactive and batch CL programs as well as programs that function as user tools (programs that
use the output of display commands as input).
U5AS527G
Gain an introduction to IBM i features and programming facilities, including: Rational Developer for
IBM i (LPEX Editor, Remote Systems Explorer (RSE), Screen Designer and Report Designer
Programming Development Manager (PDM) Source Entry Utility (SEU) Control Language (CL)
Access for Windows and IBM i Navigator Interactive SQL Also covered, but with less emphasis:
Screen Design Aid (SDA) Data File Utility (DFU) Web Query/Query for IBM i Hands-on machine
exercises give you the opportunity to use and experiment with these facilities.
Uempty
Programming education (2 of 2)
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
AS06G
RPG IV Programming Fundamentals Workshop for IBM i (AS06G) teaches the basics of the IBM i
RPG IV programming language. It is the first of two courses that should be attended in sequence.
This course is a comprehensive exposure to the basic features and functions of RPG IV for Version
7. It does not introduce either information processing or programming in general. Students who are
new to programming should attend other courses that are offered by local technical colleges or
self-study methods.
This course is designed to enable a trained programmer to develop and maintain simple RPG IV
programs written using the latest features and techniques available in the Version 7 compiler.
Uempty
Review questions (1 of 2)
1. True or False: PDM, SEU and SDA are all part of the IBM
Application Development ToolSet (ADTS).
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
Uempty
Review answers (1 of 2)
1. True or False. PDM, SEU and SDA are all part of the IBM
Application Development ToolSet (ADTS).
The answer is True.
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
Uempty
Review questions (2 of 2)
3. True or False: PDM option 16 is used to compile a CL
program.
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
Uempty
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
Uempty
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
Uempty
Unit summary
• Use PDM and SEU to create a CL program
• Use prompting for CL program statements
• Perform the steps to compile a CL program
CL programming using PDM and SEU © Copyright IBM Corporation 2001, 2016
Uempty
Overview
This unit will teach students how to create a menu using Screen Design Aid (SDA).
Uempty
Unit objectives
• Start SDA
• Explain the steps necessary to create a menu using SDA
• Explain the available options to customize your menu
Uempty
SDA features
• SDA offers the following functionality:
• Design or modify displays which are used in high-level language
programs.
• Create or modify menus.
• Create or modify help information for displays and menus.
• Test displays without the need of the high-level program which uses it.
• With SDA you can develop menus and displays in an interactive
manner by answering questions:
ƒ Fill-in-the-blank
ƒ Yes/no
Uempty
The Start Screen Design Aid (STRSDA) command is used to start SDA.
SDA allows you to easily create menus to run commands or programs.
STRSDA begins an SDA session. To bypass this display, you could enter STRSDA 2.
Uempty
Just as with CL programs, the source for menus is stored in a source physical file.
Standard practice calls for a menu source file to be created for storing all menus created on a
system. The naming convention is for the menu source file to be name QMNUSRC. The command
used to create this source file is CRTSRCPF.
In the Menu field, enter the name for the menu that you will be creating.
Uempty
Make sure the Work with menu image and commands field is set to Y.
Notice also that you can design help for your menus.
Note the message at the bottom of the screen. SDA is now starting to create the menu MYMENU.
Uempty
Type the text you want for your menu options directly onto this display.
Avoid using keys which delete and insert characters (field exit, insert and delete). Rather, use the
left, right, up, and down arrow keys (the cursor movement keys) to position the cursor. The reason
is that the data in the display is created like one long field, starting with row 1, column 1 and ending
with row 24, column 80.
This is the work screen. On this display you type what you want the menu to look like.
Uempty
To delete something, type a “d” in the attribute byte (the byte preceding the text) and press Enter.
In the class example we will delete the title that is created by default to replace it with a different
title.
Uempty
Uempty
When typing new text enclose phrases that are to be treated as a unit in quotation marks.
This makes moving and defining attributes simple.
Uempty
When Enter is pressed, the quotation marks disappear. Now the entire string of text is treated as a
whole.
Uempty
The text for the title should be centered, so type AC into the attribute byte and overlay the first
character of the field, General Backup Menu.
• Lines 1 through 20 are the menu body.
• When you create a new menu, the menu name and the title are on line 1.
• The menu outline on lines 3 to 18 are all SDA defaults. These can be changed or deleted.
• Lines 19 and 20 can be used if the display function keys prompt is set to *NO on the Create
Menu display.
• The first position (line 01, column 01) is reserved by SDA as an attribute position. You cannot
place anything in this position. To use special editing attributes or color attributes against a
constant on line 01, column 02, you must first shift the constant right.
Reposition fields on the work screen by using their attribute position.
The attribute position is the space directly in front of the field. Press F19 to go to the attribute
position of the previous field. Press F18 to go to the attribute position of the next field.
Uempty
Choose from the following methods and press Enter:
• Centering a field: Type AC in the attribute position of the field to move the field to the center of
the same row.
If a field starts and ends on different rows, then the field will be centered on the row where
the field starts.
• Moving a field -, =: Type - in the attribute position of the field and type = where you want the
field to appear.
• Copying a field -, ==: Type - in the attribute position of the field and type == where you want a
copy of the field to appear.
• Moving a block of fields -, -, =: Type - in the upper left corner of the block of fields. Type - in the
lower right corner of the block of fields so the - is one character beyond the longest field in the
block. Type = where you want the group of fields to be moved to.
If any fields partially or completely overlap, a field that overlaps is not moved.
• Copying a block of fields -, -,==: Type - in the upper left corner of the block of fields. Type - in
the lower right corner of the block of fields so the - is one character beyond the longest field in
the block. Type == where you want a copy of the group of fields to appear.
If any fields partially or completely overlap, a field that overlaps is not copied.
• Shifting a field <<<, >>>: Type <<< in the position preceding the field (the attribute byte of the
field), or type >>> after the field (over the ending attribute byte), to shift the field left or right as
far as the signs extend. You can type as many > or < as you want, and you can shift more than
one field at a time on the work screen.
• Shifting single- and multiple-choice selection fields: Single-choice and multiple-choice selection
fields occupy a rectangle on the work screen. The size of the rectangle is determined by the
length of the choice with the most characters and the last choice in the list. You can press F20
to make the rectangle visible. The ending attribute is in the lower right corner of the rectangle.
To shift all the fields within the rectangle to the right, type >>> over the ending attribute byte. To
shift all the fields within the rectangle to the left, type <<< in the position preceding the field (the
attribute byte of the field).
Uempty
The text for the title should now be centered. Now you can further customize your menu.
Adding Constants
Surround a constant that contains blanks or special characters with single quotation marks to
define it as a single constant.
You can add or change constants in the menu body by using the following editing rules:
• Type a constant. A blank character ends the constant.
• Surround several constants with single quotation marks to redefine them as one constant.
• Use a double quotation mark to end one constant and start a new constant while taking up only
one position.
The original constant must be surrounded by single quotation marks.
• Type *DATE to create a field that shows the current session date.
• Type *TIME to create a field that shows the system time.
• To add the user name, type *USER. To add the system name, type *SYSNAME.
• Type +M(nn) to create a message constant field of length nn.
Uempty
You will be prompted for the message identifier and the message file from which the first nn
characters of test are to be extracted.
• Type a question mark (?) in the attribute position of the message constant to look at or change
the message identifier and the message file.
The following examples illustrate constant fields:
'xxx"yyY' Defines two constant fields.
'xxx yyy zzz' Combines three constant fields into one field.
+MMM or +(M3) The Define Message Constant display appears.
Uempty
Notice that the date and time field have now been processed and this is the format that will be used
to display that data.
Uempty
The next step is to type the text for each of the menu options. Note how each text option is
enclosed within quotes.
When done press Enter to see the screen on the next page.
This visual shows the completed work with menu display.
F20 on this display shows the full field length in reverse image, important if the field has beginning
or trailing blanks. You need to know where they are located if you need to delete or write over any
of the menu items.
It is time to enter the commands that the options will execute.
We will first work with F10 (Work with commands).
Uempty
Notice the quotes are gone, each of the menu options is saved as a single text field. The text for
option 1 is one next field. The text for option 2 is another text field, and so on.
Once you are satisfied with the look of the menu, you can begin to add some personality or
character to the menu by further customizing it.
Adding or Removing Attributes and Colors
To add or remove display attributes or colors on the Design Image work screen, type one of
following commands in the position preceding the field (the attribute byte of the field).
You can use either uppercase or lowercase for your commands, but if your remove attribute
command is the same as the first letter of the field, your command must be in the opposite case. If,
for example, the field name is Allowance and you want to remove all its attributes, you should type
-a instead of -A in the attribute position.
Command Command
AddRemoveAttributeAddRemoveColor
H -H High intensityCB-CBBlue
R -R Reverse imageCG-CGGreen
S -S Column separatorsCP-CPPink
Uempty
B -B Blink CR -CR Red
N -N NondisplayCT -CT Turquoise
U -U UnderscoreCW-CW White
-A Remove all attributes-CARemove all colors
You can carry out the above operations by typing an asterisk (*) in the position preceding the field
(the attribute byte of the field), pressing Enter, and working with the field keyword displays that
appear.
The quotes are now gone. It is time to customize the menu by adding color or other attributes to the
menu text.
When you are done customizing the menu then press either
• The F10 = Work with commands key
• The F13 = command area key
To see the visual on the next page.
Uempty
F4 = Prompt
Both prompting and help are available for command and/or parameters within SDA and works the
same as it does from the command line or within SEU for a CL program.
You can code up to 99 different options. Prompting is active in SDA while entering commands.
Uempty
Page
Down
Uempty
The ‘F13 = Command area’ allows you to enter commands while viewing the menu options.
Commands are entered one at a time. Use the Page Up and Page Down keys to scroll through the
commands. You can enter a command and press F4 to prompt for the command. The F1 help key
is also available.
The Position to field positions you to the menu option you specify.
F13 returns you to the image display with the function key options again shown.
This visual shows a command in the command area.
The "??" works the same way as when it is in a CL program. That parameter will be prompted for
when option 1 is selected from the menu.
Show the students how the Page Up and Page Down and F4 (Prompt) keys work. To return from
the command area, press F13 again.
Uempty
Press F3 to exit SDA and the Specify Menu Functions display appears.
You can return to the menu work display or work with menu help, if necessary.
Press F3 to continue exiting SDA.
Uempty
The Exit SDA Menus display appears. Here you are promoted for whether the source should be
saved and if you want to create (compile) the menu objects.
Note the two members shown at the upper right of this display.
• DDS member, MYMENU, is where the image or the display screen source is stored. When it is
compiled it produces an object type *DSPF.
• Commands member MYMENUQQ is where the commands are stored. Once it is compiled it is
an object type *MSGF.
Verify the library where the source is to be stored as well as the library where compiled object is to
be stored.
Press Enter to finish creating your menu.
This visual shows the Exit SDA Menus display. Do not forget to add text.
• Point out the DDS member MYMENU (executable object, type *DSPF).
• The commands member MYMENUQQ (executable object, type *MSGF).
Uempty
Notice message
Uempty
Sample menu
Uempty
The Prompt for parameters field on the Exit SDA menus display allows you to make some other
decisions about how your menu will appear and run when you change the ‘N’ to ‘Y’.
Change this parameter to Y to see the screen on the next page.
Resume visual presentation here. Some additional options when creating a menu.
Uempty
Prompted parameters
Here you can determine whether you want the users of the menu to have access to a command
line (Command line parameter) or function keys (Display function keys parameter). Function keys
(F keys) are active even if their description does not appear in the display.
Uempty
Command line
*LONG
===> __________________________________________________________
_______________________________________________________________
F3=Exit F4=Prompt F9=Retrieve F12=Cancel
F13=Information Assistant F16=AS/400 main menu
*SHORT
Selection or command
===> __________________________________________________________
F3=Exit F4=Prompt F9=Retrieve F12=Cancel
F13=Information Assistant F16=AS/400 main menu
*NONE
Selection or command
____
F3=Exit F12=Cancel
F13=Information Assistant F16=AS/400 main menu
Uempty
To completely delete all parts of a menu including the source, delete the menu object by name and
its reference objects, a *DSPF and a *MSGF. From the source file QMNUSRC, you remove two
members: one with the menu name and another with the menu name and 'QQ' appended.
Uempty
Review questions (1 of 2)
1. True or False: The tool used to create a menu is Menu
Design Aid.
Uempty
Review answers (1 of 2)
1. True or False: The tool used to create a menu is Menu
Design Aid.
The answer is False.
Uempty
Review questions (2 of 2)
3. True or False: Command prompting is available when
entering commands in an SDA menu.
Uempty
Review answers (2 of 2)
3. True or False. Command prompting is available when
entering commands in an SDA menu.
The answer is True.
Uempty
Uempty
Unit summary
• Start SDA
• Explain the steps necessary to create a menu using SDA
• Explain the available options to customize your menu
Uempty
Overview
This unit will cover ways to change defaults, make the system easier for the users, and make
operations more streamlined for the system operator and otherwise improve system operations.
Uempty
Unit objectives
• Create a user-defined proxy command
• Change how a command is used
• Permanently change a command's defaults
• Explain how to use the System Reply List to automatically reply to
messages
• Explain how to leave a job temporarily through the attention key or how
to disconnect a job
• Use printers efficiently through printer load balancing
• Describe the process of creating a virtual optical device to use when
performing a software upgrade or installing PTFs
• Describe how perform FTP transfer included batch mode
• Explain some SST/DST function to diagnostic problems
The tools that will be covered in this unit to achieve these objectives are:
• CRTPRXCMD: Create proxy (shortcuts) to target commands
• CHGCMD: Change how a command is used
• CHGCMDDFT: Permanently change a command's defaults
• System Reply List: Use the System Reply List to reply to messages
• QUSRTOOL: Tools available from QUSRTOOL library
• Set Attention Program: How to leave a job temporarily
• DSCJOB: How to disconnect a job
• CRTDEVOPT: Create virtual optical device as a tool to upgrade software or install PTF’s that
were downloaded electronically
• Printer Load Balancing: Using printers more efficiently
Uempty
Uempty
Proxy commands
• Instead of duplicating a command, you can now create a shortcut to a
target command:
ƒ Use the Create Proxy Command (CRTPRXCMD) to create the proxy.
ƒ Requires a command name (the new proxy command) and a target
command (the original command)
ƒ Optional parameters include a text description (TEXT), authority (AUT), and a
replace command (REPLACE) option.
• Specifying a proxy command for the TGTCMD parameter is allowed.
• When creating a proxy command, you do not specify the command
definition source.
• Does not contain any parameter information, prompt control
information, or interparameter dependency information.
• Use Display Command (DSPCMD) to determine whether a command is a
proxy or if it is an original command.
Proxy commands are used to create shortcuts to target commands. A proxy command differs from
a typical IBM i command in its ability to run a target command, rather than a command processing
program.
• Use the Create Proxy Command (CRTPRXCMD) to create a proxy command.
• Create Proxy Command (CRTPRXCMD) requires a Command name (CMD) and a Target
command (TGTCMD).
• Optional parameters include a Text description (TEXT), Authority (AUT) and a Replace
command (REPLACE) option. For example, to create a proxy command that has a target
command of QSYS/DSPJOB, enter the following command:
▪CRTPRXCMD CMD(MYLIB/PCMD1) TGTCMD(QSYS/DSPJOB) TEXT(‘dspjob proxy’)
• Specifying a proxy command for the TGTCMD parameter is allowed.
▪ A proxy “chain” can be up to 5 proxy commands in length, ending with a 6th non-proxy
command.
▪ Running a proxy command with a chain of more than 5 proxy commands will cause a
CPD0196 error “Number of chained proxy commands exceeds 5.”
• When you create a proxy command, you do not specify command definition source.
Uempty
• A proxy command does not contain any parameter information, prompt control information, or
interparameter dependency information. When a proxy command is used, all of that information
is inherited from the target command defined in the proxy command. You specify all the same
parameters for the proxy command that you would for the target command.
Use the Change Proxy Command (CHGPRXCMD) command to change a proxy command or the
Delete Command (DLTCMD) command to delete a proxy command.
To run or process a command that is “resolved to” using a proxy chain, the user must have the
correct authority for that command and library, as well as *USE authority for each of the proxy
commands (and libraries) in the chain.
Determine whether the QSYS command is a proxy command. You can do this interactively using
the Display Command (DSPCMD) command or programmatically by using the Retrieve Command
Information (QCDRCMDI) API.
Since proxy commands run other commands, attempting to register an exit program for a proxy
command is not allowed, and will cause the error message CPF019A to be issued. When a proxy
command is run, and the non-proxy command that it resolves to has a registered exit program, the
proxy chain that was followed will be placed in the RTVC0100 or CHGC0100 returned format data.
Uempty
The command (*CMD) objects of most licensed program products (LPPs) and all options of IBM i
that ship commands in a product library (other than QSYS) are copied to the QSYS library when the
LPP or OS option is installed.
Proxy commands are created in the system library QSYS. A proxy command is a *CMD object that
points to a target command. When the proxy *CMD is prompted or run, the operating system uses
the target command.
Attempts to prompt or run the proxy command in QSYS will check the authority of the target
command in the product library. Therefore, you should grant private authorities for the command
only to the regular command in the product library.
Some of the IBM commands in QSYS could be proxy commands. If you duplicate any of these
commands from QSYS into another library by using the Create Duplicate Object (CRTDUPOBJ)
command, your duplicate commands might be proxy commands.
When using the CHGCMD and CHGCMDDFT on a proxy command, the actual command changed will
be the command that is the target of the proxy. For LPP proxy commands in QSYS, if you change
the proxy command by using CHGCMD or CHGCMDDFT, you will change the target command in the
LPP library.
Uempty
If you want CHGCMDDFT and CHGCMD to affect only the duplicate that you create, then do the
following:
• Determine whether the QSYS command is a proxy command. You can do this interactively using
the Display Command (DSPCMD) command or programmatically by using the Retrieve
Command Information (QCDRCMDI) API.
▪ If it is not a proxy command, use CRTDUPOBJ to duplicate it.
▪ If it is proxy command, use DSPCMD or QCDRCMDI to determine the target of the proxy
command, and duplicate the target command instead of duplicating the proxy command in
QSYS.
If an exit program had been previously registered for the copy of a licensed program command in
the QSYS library, the exit program will not be run for the proxy command that replaced it when. You
will need to register your exit program against the original command in the product library. For
example, if you had an exit program registered for the QIBM_QCA_CHG_COMMAND exit point for
the Create SQL ILE RPG Object (CRTSQLRPGI) command in QSYS, you will need to register your
exit program for the original command in the QSQL library.
Uempty
Interactive Prog1
Create a program
interactively
Interactive Prog2
Would not it be nice to keep users from disrupting the system by running interactive jobs that
should only be run in batch? Operations like compilations that run interactively and intensive
queries can negatively affect the response time of true interactive jobs.
The Change Command (CHGCMD) can be used to change the attributes of a command. It can be
used to specify for example:
• In what environments the command can be processed
• What current library and product library should be used when the command is executed
The user must have object management authority for the command that is being changed.
Although this example deals with specifying the operating environment, other parameters of
CHGCMD include:
• The mode: production, debug, or service
• The current library
• The product library
• Whether to allow limited capability users to run
• The help panel group
Uempty
Remember in the work management topic how interactive jobs (or threads) shared memory
(paging)? Does a batch job ever reach a point where it can go into a long wait? Probably not. A
batch job does not share memory fairly with interactive jobs. Look at the jobs in the queue waiting
for memory. Ask how the additional wait time for the interactive jobs affects their response time.
Uempty
ALLOW
(Some choices)
*ALL In a batch input stream, in a CL program, in a REXX
procedure, in a CL ILE module, or when processed
interactively. Can also be passed to system program
QCMDEXC (or QCAEXEC) for processing.
*BATCH In a batch input stream, external to a compiled CL
program.
*INTERACT Interactively, external to a compiled CL program.
*BPGM In a compiled CL program that is called from batch
entry.
*IPGM In a compiled CL program that is called from an
interactive entry.
Uempty
CBL
CL
DFU
JVA
RPG
And so on…
The Change Command (CHGCMD) command changes the attributes of a command definition. This
command gives you the ability to specify a different command processing program to process the
command. You can also change the type of operating environment (production, debug, or service)
in which the command can be processed, and the text description of the command. CL programs
that use the command being changed by the Change Command (CHGCMD) command do not
have to be created again. The Change Command (CHGCMD) command does not change the
parameter descriptions or validity checking information in the command definition object.
Listed in the visual are some of the create program commands, those commands that compile a
program, which you might not want to allow to run interactively on your system. Any of the
commands that are used to compile programs or any commands that are used to run batch type
programs are prime candidates to be changed. All of these commands should be changed so that
they cannot be run interactively.
Any other commands that create objects on your system while probably not as resource intensive
as the program compile commands should also run in batch mode.
Verify that you are making changes to an ‘original’ command. If you make a change to a proxy
command, then the original command is what will be changed.
Uempty
PRECHK(*NO)
ACCPTH(*SYSVAL) PRECHK(*NO)
ACCPTH(*SYSVAL)
PRECHK
ACCPTH
Uempty
Save access paths (ACCPTH) - Specifies whether the logical file access paths that are dependent
on the physical files being saved are also saved. The access paths are saved only in the case of
the following:
• All members on which the access paths are built are included in this save operation.
• The access paths are not invalid or damaged at the time of the save.
The system checks to ensure the integrity of the access paths. Any discrepancies found by the
system will result in the access paths being rebuilt.
The valid values that can be specified for this parameter are:
• *SYSVAL - The QSAVACCPTH system value determines whether to save the logical file access
paths that are dependent on the physical files that are being saved.
• *NO - Only those objects specified on the command are saved. No logical file access paths are
saved.
• *YES - The specified physical files and all eligible logical file access paths over them are saved.
QSAVACCPTH - Help
System Value QSAVACCPTH - Save access paths. This system value specifies whether the logical
file access paths that are dependent on the physical files being saved are also saved when
ACCPTH(*SYSVAL) is specified on a save command. A change to this system value takes effect at
the start of the next save operation. The shipped value is 1 = Save access paths.
The defaults for the parameters (prechk and accpth) is what is displayed on the visual.
Saving Access Paths
• The default for this parameter is to use the QSAVACCPTH system value. If this system value is
set to YES, then all access paths on the system will be saved.
• The alternative is to control this at the command level. If the system value is set to NO, then at
run time you can determine whether you want to save access paths or not. This will put both the
control and the responsibility in the operators hands!
Verify that you are making changes to an ‘original’ command. If you make a change to a proxy
command, then the original command is what will be changed.
Uempty
It is recommended that you do not change the original IBM-supplied command. Instead, duplicate it
and change your copy.
The format of the command is as follows:
CHGCMDDFT CMD(LIBRARY/COMMAND) NEWDFT('PARAMETER(NEW DEFAULT)')
The following is an example of two ways to run CHGCMDDFT for multiple parameters in the same
command. You could run the command twice to change the two defaults:
CHGCMDDFT CMD(USRQSYS/SAVLIB) NEWDFT('PRECHK(*YES)')
CHGCMDDFT CMD(USRQSYS/SAVLIB) NEWDFT('ACCPTH(*YES)')
Or you could combine these two commands into a single command:
CHGCMDDFT CMD(USRQSYS/SAVOBJ) NEWDFT('PRECHK(*YES) ACCPTH(*YES)')
Some OS functions that use IBM commands can specify a library in which to locate the command,
rather than the library list.
Uempty
DLTCMD USRQSYS/SIGNOFF
Repeat DLTCMD, CRTDUPOBJ and CHGCMDDFT for each command you want
changed
ENDPGM
When installing a new release of a licensed program, the system will replace all IBM-supplied
commands. A new release might cause changed commands not to function properly.
We suggest by using a CL program to change IBM-supplied commands. This will allow you to
recreate the changed commands after installing a new version or a new release of the OS.
This technique applies to commands changed by using the CHGCMD / CHGCMDFT commands as
well as changes made to other system objects, such as subsystem descriptions and job
descriptions. A CL program allows you to track the changes and recreate them after installing the
new release.
Why is it important to keep track of changes made to IBM-supplied commands?
All changes will be made to an ‘original’ command and not to a proxy.
In this case we are creating duplicate commands to keep a copy of the original command (with its
original settings) on the system as a backup. Users will be instructed to use the new duplicated,
customized command.
Because new releases replace the IBM commands, you might want to make your changes to the
commands via a program. Then when installing a new release on the system, you will only need to
rerun the program to recreate the commands.
Uempty
Uempty
Uempty
MESSAGE QUEUE
REPLY: RIGHT
INQMSGRPY(*SYSRPYL)
3
REPLY *MSGQ 2
System Reply List
MESSAGE ABC1234
MESSAGE ID REPLY
REPLY: RIGHT
ABC1234 RIGHT
*MSGQ
Tips for improved operation © Copyright IBM Corporation 2001, 2016
This visual is an example of how a message called ABC1234 will be answered if the job is using the
System Reply List (INQMSGRPY (*SYSRPYL)).
1. The user job sends a message to the system operator message queue.
2. The message is found on the System Reply List with a reply value of 'RIGHT'.
3. The reply 'RIGHT' is sent with no action by the system operator.
This is a pictorial demonstration of what happens when inquiry messages of a job are responded to
via the System Reply List.
• The interactive job has the job attribute INQMSGRPY(*SYSRPYL).
• Therefore any inquiry message that this job sends, is responded to by the System Reply List.
1. DSP25 sends an inquiry message to the system operator message queue.
2. The system operator does not enter the reply;
3. the reply is entered from the System Reply List.
4. The message queue which receives the reply like it always has.
Uempty
The job description can specify whether to use the System Reply List. Both CRTJOBD and CHGJOBD
have the parameter INQMSGRPY with possible values as follows:
• *RQD: A reply is required for any predefined inquiry message that is issued by a job that uses
this job description.
• *DFT: The default message reply is used to answer any predefined inquiry messages issued
during running of a job that uses this job description. The default reply is either defined in the
message description or is the default system reply.
• *SYSRPYL: The System Reply List is checked to determine whether an entry matches the
message identifier and optional compare value for any inquiry message issued by a job that
uses this job description. If a match occurs, the reply value in that reply list entry is used. If no
entry exists for that message, a reply is required.
Use the INQMSGRPY parameter to override the job description value on the CHGJOB or SBMJOB
command.
At job initiation time it is the job description that determines the value for INQMSGRPY.
Print jobs run in the QSPL subsystem and have characteristics similar to batch jobs.
Uempty
There are additional job descriptions for print writers:
• QSPLAFPW: Advanced Function Printing Writer
• QSPLRMTW: Remote Spooling Writers
• QSPLSTRWTR: Auto start Remote Spooling Writers
All of these job descriptions have the INQMSGRPY (*SYSRPYL) attribute.
The INQMSGRPY parameters determine whether the *INQ messages for a job uses the System
Reply List.
You can specify that:
• Inquiry messages need to be answered in the usual manner
• A default reply is issued
• If certain conditions are met, an answer is issued to the inquiry based on those conditions and
the reply specified in the System Reply List
Uempty
WRKRPYLE
IBM ships the System Reply List with these initial entries defined. For the system to use these
entries, you must specify *SYSRPL for the inquiry message reply attribute for the job.
These entries indicate that a reply of ‘D’ is to be sent and a job dump is to be taken if the message
• CPA0700-CPA0799
• RPG0000-RPG9999
• CBE0000-CBE9999
• PLI0000-PLI9999 (which indicate a program failure) is sent by a job using the System Reply
List.
The Work with System Reply List Entries (WRKRPYLE) command can be used to display or print
all the reply entries currently in the system message reply list. The System Reply List contains
replies that are automatically sent in response to inquiry messages.
The following information is shown for each reply in the System Reply List:
• Sequence number: The number that is used to specify the search order of the entries in the
reply list.
• Message ID: The identifier of an inquiry message for which automatic system action is to be
taken.
Uempty
• Reply: The default reply to the inquiry message is sent (*DFT) or a specific reply to the inquiry
message is required (*RQD) or a character string (the character string to be sent as the reply to
the inquiry message).
• Dump indication: The job that sent the inquiry message is not dumped (*NO) or the job that sent
the inquiry message is dumped before control is returned to it (*YES).
• Compare value: The character string that is compared with the message data of the inquiry
message.
• Compare start position: A position in the message data of the inquiry message at which the
comparison with the Compare Value starts.
From this display the user can add, change, or remove individual reply list entries.
The reply list is only used when an inquiry message is sent by a job that has the inquiry message
reply attribute of the System Reply List specified (*SYSRPYL is specified on the INQMSGRPY
parameter). The INQMSGRPY attribute can be changed with the CHGJOB command.
The user can add reply list entries with the Add Reply List Entry (ADDRPYLE) command. Specific
attributes of a reply list entry can be changed with the Change Reply List Entry (CHGRPYLE)
command. Each reply list entry remains in the list until it is removed by the Remove Reply List Entry
(RMVRPYLE) command.
Uempty
By displaying the message description for IBM-supplied messages, using the Display Message
Description (DSPMSGD) command, you can see all of the valid replies.
• *DFT specifies that the default reply is issued, or any of the other valid replies can be specified.
• *RQD means that a reply is required from the user, and causes the message to act as though
the reply list was not in effect.
The default message file in which the system looks for the specified message ID is QCPFMSG.
Program products such as RPG and COBOL have their own message files, such as QRPGMSGE
and QCBLMSGE.
Uempty
CPA4002
CPA3387
CPA3394
To have the System Reply List reply to printer messages CPA4002, CPA3387, and CPA3394, you
add them to the System Reply List. The compare value allows you to vary the response, in this
case, by printer.
• For message CPA4002, suppose alignment is only an issue for the printer in the accounting
department, printer ACCTPRT, where preprinted forms are used and which are changed
frequently. These reply list entries will direct the system to send the default reply (I) to all
printers except ACCTPRT. The specific entry for printer ACCTPRT must be before the general
entry. Once a match is found, entries further down the list are not considered.
• For message CPA3387, this entry directs the system to always send a cancel reply if a print
device is not available.
• For message CPA3394, suppose that load form type messages are generally important to you
and you want the user to have to answer them, but for printer PRT01 the paper type is never
changed and you want to print regardless on what is loaded. These entries will handle this
policy. The specific entry must be before the general entry. Once a match occurs, entries further
down the list are not considered.
At job initiation time it is the job description that determines the value for INQMSGRPY.
Print jobs run in the QSPL subsystem and have characteristics similar to batch jobs.
Uempty
These printer messages can annoy a system operator, especially if they occur for a printer that
always has the same type of paper loaded and stays aligned. So, these messages would be ideal
candidates to have the system respond to these automatically.
An easy way to find out the message ID for a message is to place the cursor on the message and
press F1. The message ID field will be in the upper left corner of the display.
For a message to be automatically responded to via the System Reply List, the message must first
be added to the System Reply List with the wanted reply.
Uempty
Here is the System Reply List in which the entries have been added for the printer messages.
Uempty
Uempty
Attention key
Uempty
ATNPGM(PROGRAM-NAME)
Attention key
One of the parameters in a user profile is the Attention program (ATNPGM) parameter. The possible
values for this parameter are:
• *SYSVAL: Calls the program specified in the System Value QATNPGM.
• *ASSIST: This is a special value that calls the Operational Assistant Main menu. It allows the
user to execute options from this menu as though they had used GO ASSIST, but without
having to end their current task or use the command line to do so. *ASSIST could also be the
value of QATNPGM, if you would like it to be the default for the system
• *NONE: No initial attention program is specified for this user.
• Program-name: This is the name of the program called when the Attention key is pressed. This
could be a special CL program, a menu of options for this user, or it could be an application
program written specifically to do Attention key handling.
The value in the user profile can be overridden by the SETATNPGM command. Generally this
command is used within a CL program.
Uempty
An experienced programmer should be involved when specifying anything other than *SYSVAL,
*ASSIST, or *NONE in a user profile or when naming a specific program in the system value
QATNPGM. Because the attention program runs within the interrupted program, there are special
considerations. See the Work Management manual for more information on using the SETATNPGM
command to override the value in the user profile on a job or application basis and on defining a
program as an attention-key-handling program.
Uempty
Sign on
User:_______
Password:
Return to work.
Sign on to same
workstation with
same password. Executive
payroll
top secret
The Disconnect Job (DSCJOB) command is not an end of job. It is a command that is valid only for
interactive jobs. It allows the interactive user to disconnect a job from a workstation and return to a
sign-on display. At the next sign-on to the same workstation with the same user profile, the
interactive job reconnects to the workstation exactly where it was prior to DSCJOB.
The system value QDSCJOBITV (Time value before disconnected job ends) indicates the length of
time in minutes, that an interactive job can be disconnected before it is ended by the system. The
values allowed are:
• Five through 1440:The number of minutes that the system waits before ending a disconnected
job.
• The default value for this parameter is 240 minutes.
• *NONE: The system will not automatically end a disconnected job.
This visual shows conceptually how DSCJOB works. DSCJOB takes less system resource than
signing off and then signing back on. However, the DSCJOB job is tracked by the system.
Another interactive job can be started on the device under a different user name.
The DSCJOB command can also be run by selecting option 13 = Disconnect on the Work with User
Jobs display.
Uempty
Some considerations when using DSCJOB:
• A TCP/IP TELNET job can be disconnected if the session is using a named device description.
You can create a named device description using one of the following ways:
▪ Network Stations with the DISPLAY NAME parameter
▪ System i Access support with the workstation ID function
▪ TCP/IP TELNET Device Initialization exit point to specify a workstation name
• All jobs will be disconnected for group jobs. When they are connected again, you return to the
place where the disconnect was issued. If the last active group job ends before you connect
again you return to the next group job.
• All disconnected jobs in the subsystem end when the subsystem ends.
• If a subsystem is ending, the DSCJOB command cannot be issued in any of the jobs in the
subsystem.
• Disconnected jobs that have not exceeded the QDSCJOBITV value, end when the subsystem
is ended or when an IPL occurs.
Uempty
Uempty
Uempty
CRTOUTQ, CHGOUTQ
(MAXPAGES (100 0800 1700)
(15 1200 1300)
(500 0000 2400))
You could schedule your printing such that the following guidelines apply:
▪ No more than 100 pages printed from 8:00 to 17:00
▪ No more than 15 pages printed from noon to 13:00
▪ Never print more than 500 pages without explicit operator control
In order to do so, you can implement the following:
• MAXPAGES parameter on output queue commands (CRTOUTQ, CHGOUTQ):
▪ Maximum pages allowed in time range
▪ Start time
▪ Stop time
• Up to five sets or iterations of this parameter is allowed
▪ Ranges can overlap for maximum flexibility
▪ Smallest maximum has priority
• Status: *DEFERRED
Uempty
▪ Spool files greater than maximum will be assigned *DEFERRED status until the ending time
expires.
▪ When maximum time expires, spool file set to *READY status.
Deferred (DFR) spooled file status can change:
• When a writer is started for an output queue, it will calculate the maximum spooled file size for
the current time and change any RDY files which exceed the limit to DFR. Any spooled files
which are added to the output queue (created or moved) after a writer is started for the queue,
will have a status of DFR if the file exceeds the current limit. When the system time-of-day
changes such that a new maximum spooled file size is to take effect, the writer will go through
the output queue again and update RDY files to DFR, or DFR to RDY, depending on the new
limit and the size of the particular spooled file. When the writer is ended, all DFR spooled files
will return to RDY.
• When time ranges for the maximum spooled file size overlap, the smaller of the number of
pages values will be used. For example, assume that there were two time ranges of
08:00:00-16:00:00 and 12:00:00-12:30:00, with number of pages 40 and 10, respectively. The
largest spooled file that would print from 8:00 a.m. to 12:00 p.m. would be 40 pages, the largest
file that would print from 12:00 p.m. to 12:30 p.m. would be 10 pages, and the largest file that
would print from 12:30 p.m. to 4:00 p.m. would be 40 pages.
If a file is *DEFERRED, it is not *HELD, and therefore cannot be *RELEASED. A file can be
*DEFERRED and then changed to *HELD. Then, when *RELEASED, it will either change to
*READ or *DEFERRED status, depending on the MAXPAGES limit in effect at that time.
Uempty
Uempty
You can also use a tape image catalog and a virtual tape device to install PTFs or to install single
licensed programs. However you cannot use a virtual tape device to install or upgrade to an OS
release.
Image catalog requirements:
• An image catalog upgrade works like a D-mode IPL without a console during the installation of
Licensed Internal Code (LIC). Reference codes are used to display the status.
• Installations done by using image catalogs requires an OS command line to initiate the
installation.
• Image files cannot reside in an independent auxiliary storage pool (iASP). An installation cannot
be performed from an (iASP).
• To perform an installation using image catalogs, you must have at least 1074 MB of free storage
on the load-source disk unit.
You can use virtual optical media to save images directly to system disk units for convenience,
flexibility, and in some cases improved performance.
Uempty
Virtual optical is beneficial for unattended saves because it eliminates media errors that could halt
an unattended save.
If you do not allocate enough space in the image catalog to save the intended information, virtual
optical will use the autoload feature to create additional images with the same capacity as the last
image you loaded, provided the disk storage is available.
Uempty
These steps show how you create an image catalog and an image catalog entry, add an image
catalog entry, and load the image catalog in preparation of performing an OS software upgrade.
The specific steps to use a virtual optical device are:
1. Create a virtual optical device. Once it has been created this device can be reused so it is not
necessary to recreate every time this is needed.
To create a device description, enter the following command:
CRTDEVOPT DEVD(virtual-device-name) RSRCNAME(*VRT) ONLINE(*YES)
TEXT(text-description)
Uempty
Uempty
3. Create an image catalog. Create an image catalog for the licensed programs that you want to
install. The Create Image Catalog (CRTIMGCLG) command associates an image catalog with a
target directory where the optical image files are loaded.
CRTIMGCLG IMGCLG(catalog-name) DIR(catalog-path) CRTDIR(*YES)
TEXT(text-description
Note
Specify CRTDIR(*YES) only if the directory specified in the DIR parameter does not exist.
Uempty
4. Add an image catalog entry. Add an image catalog entry for each physical media or optical
image file that you have. You need to repeat this step for each volume of media. You should add
the physical media or optical image files in the same order as if you were going to install from
them. Start with the first media in the list and continue until all the media are loaded.
You can add the entries from either an optical device or from an existing optical image file.
Select one of the following ways:
From an image file:
▪ (This is the fastest way.) To add an image entry to an image catalog from an
integrated-file-system file that is already in the image catalog directory, enter the following:
ADDIMGCLGE IMGCLG(catalog-name) FROMFILE(file-name) TOFILE(*fromfile)
TEXT(text-description)
▪ To add an image catalog entry to an image catalog from an existing integrated-file-system
optical image file from a directory other than the image catalog directory, enter the following:
ADDIMGCLGE IMGCLG(catalog-name)
FROMFILE(/directory-name/directory-name/file-name) TOFILE(file-name or
*FROMFILE) TEXT(text-description)
Uempty
From a physical device:
▪ To add an image catalog entry to an image catalog from a physical optical media using
optical device named OPT01, enter the following:
ADDIMGCLGE IMGCLG(catalog-name) FROMDEV(OPT01) TOFILE(file-name or *GEN)
TEXT(text-description)
Note: To generate a name for the TOFILE parameter, specify *GEN. To generate a text
description from the media, specify *GEN.
Uempty
5. Load the image catalog. This step associates the virtual optical device to the image catalog.
Only one image catalog at a time can be associated with a specific virtual optical device. To
load the image catalog, type the following command:
LODIMGCLG IMGCLG(catalog-name) DEV(virtual-device-name) OPTION(*LOAD)
You can also use the WRKIMGCLG command.
Uempty
Attention
If you are here because you are performing the steps in Preselecting the licensed programs to
install, do not perform this step at this time. You are directed to perform this step later.
• If you are preparing for an upgrade, you need to verify that the required media for an upgrade
exist and are sorted in the correct sequence. You also need to verify that your software
agreements have been accepted, that you have enough storage on the load source, and that
you have enough reserved storage for the Licensed Internal Code.
• Enter the following command:
VFYIMGCLG IMGCLG(catalog-name) TYPE(*UPGRADE) SORT(*YES)
• To verify that images are added. An additional method would be to enter the following:
WRKIMGCLGE IMGCLG(catalog-name)
Uempty
• Then press PF7 to prompt for the VFYIMGCLG command. Enter *UPGRADE for the type and
*YES for the sort field.
• The system puts the images in the correct order. (If you are not successful, refer to Image
catalog recovery.) By default, the volume with the lowest index is mounted. Then all the other
volumes are loaded. To see the order of the images, use the Work with Image Catalog Entries
(WRKIMGCLGE) command:
WRKIMGCLGE IMGCLG(catalog-name) After completing these steps, your image catalog
is ready for use.
Uempty
Uempty
Uempty
Uempty
Uempty
FTP in/out
FTP in/out
There are a few methods to transfer data to and from IBM i partition. One of them is FTP (File
Transfer Protocol). Transfer data using FTP is easy but depending on the environment it might
required a different syntax.
Uempty
FTP PC-IBM i
If you want to transfer data to or from IBM i on the workstation open command line Start > Run >
type CMD end press Enter.
In the pop-up window type: ftp <<system name or IP address>> and press Enter.
If need help type ftp /? and press Enter.
Once connected to the partition enter your IBM i user name and password to logon.
Depending on the data you transfer you can chose different mode in most case it is binary mode
(the binary mode transmits all 8 bits per byte and thus provides less chance of a transmission error
and must be used to transmit files other than ASCII files) for example to transfer PTF’s package you
have to use binary mode.
On the command line type bin and press Enter.
By default, FTP (File Transfer Protocol) uses the traditional IBM i file naming conventions -
Libraries, which contain Files, which in turn contain Members. This is also known as the *LIB
Naming Format, and looks like the following: Libraryname/Filename.Membername.
Uempty
Default Naming
Format NAMEFMT 0
By default, FTP (File Transfer Protocol) uses the traditional IBM i file naming conventions -
Libraries, which contain Files, which in turn contain Members. This is also known as the *LIB
Naming Format, and looks like the following: Libraryname/Filename.Membername.
When you type DIR command, you will be see your current library if you do not have specified
library in your profile by default it will be QGPL.
If you want to work with object in IFS you have to change naming format to IBM i Integrated File
System Naming Format. This looks much more like a UNIX or Personal Computer Directory
system. We must use this Naming Format known as *PATH or 'NAMEFMT 1' to access files in the
Integrated File System, the document library services QDLS folders, QOPT optical files, or to send
save files.
To change format type cd/.
A lot of ftp clients offer a graphical interface where you can easy change the naming format.
Uempty
Downloading command
get
By default, FTP (File Transfer Protocol) uses the traditional IBM i file naming conventions -
Libraries, which contain Files, which in turn contain Members. This is also known as the *LIB
Naming Format, and looks like the following: Libraryname/Filename.Membername.
When you type DIR command you will be see your current library if you don’t have specified library
in your profile by default it will be QGPL.
If you want to work with object in IFS you have to change naming format to IBM i Integrated File
System Naming Format. This looks much more like a UNIX or Personal Computer Directory
system. We must use this Naming Format known as *PATH or 'NAMEFMT 1' to access files in the
Integrated File System, the document library services QDLS folders, QOPT optical files, or to send
save files.
To change format type cd/.
A lot of ftp clients offer a graphical interface where you can easy change the naming format.
To send something you have to use command put or mput (for group of files. To download you
have to use get command or mget (for group of files).
To close ftp session type quit and press Enter.
Uempty
Transfer between two IBM i partitions is similar to PC-IBM i transfer. You have to type in the
command line command ftp <<system name or IP address>> and press Enter.
After you enter the user name and password you will be connected to remote system (default) in
QGPL library using default name format.
Uempty
To change name format use command namefmt 1 If you wan to back to IBM i library name
convention use namefmt 0.
To end ftp session type quit and press Enter or press F3 function key and type 1 Yes and confirm
with Enter.
Uempty
Uempty
OVRDBF FILE(OUTPUT) TOFILE(AS2700/QCLSRC) MBR(FTP_RES)
FTP RMTSYS(&NAME)
GOTO CMDLBL(LOOP)
END:
ENDPGM
When you create it compile to CL program.
In program you work with two file members.
First is an input member where you have to type the user password, name format, binary mode and
what do you want transfer.
Example:
USER PASSWORD
BIN
NA 0
PUT AS2700/CUSTMASTER AS2700/CUSTMASTER
QUIT
However the member is in QCLSRC file but type must be TXT and do not try to compile it.
Second member is an output which receive messages from ftp server here you can find any errors
during connection or transfer. In the member you can find this same information when you try
connect to any system interactive.
Uempty
To start ftp transferring call the program ftp_auto and see result in the ftp_res member in the
QCLSRC file.
Of course you can connect to any operating system not only IBM i.
Uempty
Uempty
A large number of spooled files are generated every day, some of them are important some not and
can be deleted by a simple clear outq.
Uempty
For each spool file you can set an expiration. To set the expiration: Select the spool file. Select
option 2 Change press the F10 function key. PGDWN and find Expiration date for file (EXPDATE
keyword).
Of course this is good for one or many files.
You can also use:
Change Spooled File Attributes (CHGSPLFA) command or by taking Option 8 (Attributes) from the
Work with Spooled Files (WRKSPLF) or Work with Output Queue (WRKOUTQ) commands. For
example:
CHGSPLFA FILE(QPRTLIBL) JOB(*) SPLNBR(1) EXPDATE(*DAYS) DAYS(30)
CHGSPLFA FILE(QPRTLIBL) JOB(*) SPLNBR(1) EXPDATE(*NONE)
Uempty
Uempty
If you using BRMS (Backup and Recovery Media Solution) you can setup expiration of saved spool
files. To do that you have to create or change (use WRKLBRM command) the Spooled File List which
will be added to Control Group. On the Create/Change Spooled File List enter which spool file will
be saved and press F11 function key to setup spool file expiration.
There are two available values:
*SAVDAT
The number of days specified in the Expiration field is added to the start date of the save
operation.
*CRTDAT
The number of days specified in the Expiration field is added to the creation date for each
spool file.
Uempty
After expiration is set for a spool file you can use the DLTEXPSPLF command to delete expired
spooled files.
You can also to do this with:
SBMJOB CMD(DLTEXPSPLF ASPGRP(*ALL)) JOB(DLTEXPSPLF)
ADDJOBSCDE JOB(DLTEXPSPLF) CMD(DLTEXPSPLF ASPGRP(*ALL)) FRQ(*WEEKLY)
SCDDATE(*NONE) SCDDAY(*ALL) SCDTIME(010000)
JOBQ(QSYS/QSYSNOMAX)
TEXT('Delete expired SPLFs on a weekly basis')
The Delete Expired Spooled Files (DLTEXPSPLF) command removes expired spooled files on the
system or the auxiliary storage pool (ASP) group specified by the user. A spooled file expires at
23:59:59, system local time on the date specified in the Expiration date for file (EXPDATE)
spooled file attribute.
Uempty
Uempty
Problem determination
For simple problem reporting you can use two tools Product Activity Log (PAL) and Work with
service action log (SAL). To use this tool on the command line type STRSST (Start Service Tools)
and press Enter.
On the SST menu chose option 1 Start a service tool and then again option 1 Product activity log.
Uempty
Uempty
If you chose report output on the display you can work with existing problems.
Uempty
To Work with service action log (SAL) from the SST menu select option 1 Start service log. Then
select option 7 Hardware service manager and chose option 6 Work with service action log.
Uempty
From the action log you can also chose data and time. On the report list you can display, close
entry, or delete closed entry.
Uempty
Uempty
Using SST you can analyze of the disk health status. Because now is the trend to move to external
disks. The external this are present to the system with multipath connection. It is very important to
verify all path are in proper state. Internal disks presented by modern SAS adapter will show on the
system more than one access path to the disks. Work with disks you have to select from SST menu
option 3 Work with disk units option 1 Display disk configuration. Here you can analyze more disks
health information one them is path status. To work with path status chose option 9 Display disk
path status.
Uempty
Depending on the configuration you can see all path Active or mix Active Passive (often in SAS
disks).
Uempty
Review questions (1 of 2)
1. True or False: A proxy command is the same as a
duplicated command.
Uempty
Review answers (1 of 2)
1. True or False. A proxy command is the same as a duplicated
command.
The answer is False.
Uempty
Review questions (2 of 2)
4. An optical image catalog can be used to:
a. Upgrade to the next version or release of OS
b. Install PTFs
c. Install an LPP
d. All of the above
Uempty
Review answer (2 of 2)
4. An optical image catalog can be used to:
a. Upgrade to the next version or release of OS
b. Install PTFs
c. Install an LPP
d. All of the above
The answer is All of the above.
Uempty
Uempty
Unit summary
• Create a user-defined proxy command
• Change how a command is used
• Permanently change a command's defaults
• Explain how to use the System Reply List to automatically reply to
messages
• Explain how to leave a job temporarily through the attention key or how
to disconnect a job
• Use printers efficiently through printer load balancing
• Describe the process of creating a virtual optical device to use when
performing a software upgrade or installing PTFs
• Describe how perform FTP transfer included batch mode
• Explain some SST/DST function to diagnostic problems
This unit has covered ways to change defaults, make the system easier for the users, and make
operations more streamlined for the system operator as well as otherwise improve system
operations.
Uempty
Overview
Journal management is a very valuable and powerful tool which is an integral part of the operating
system. When used properly as part of a comprehensive recovery plan, it significantly improves the
ability of the administrator to recover from many types of job and system failures.
Uempty
Unit objectives
• Describe how journal management can be used to recover data lost
during a failure
• Implement journal management on your IBM Power System with IBM i
as part of a comprehensive recovery plan
• List the advantages and considerations of journal management
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Uempty
Data file
• What if it disappeared?
• How would you get it back?
ƒ RSTOBJ
ƒ Rekey all data from last save plus data since last save
• How much time would it take?
• Do you need to shorten the recovery time for data files?
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Uempty
Single-level storage
ON
OFF
Volatile storage
Main memory N S
Data file
scatter loading
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Journal management enables you to recover the changes to an object that have occurred since the
object was last saved. You can also use journal management to provide an audit trail or to help
replicate an object. You use a journal to define what objects you want to protect with journal
management. The system keeps a record of changes you make to objects that are journaled and of
other events that occur on the system.
1. Journal management intercepts the database record (add, update, or delete).
2. Journal entry is forced to the journal receiver on a disk with a force ratio of one.
3. The database record is given to database data management.
4. The database record is written to disk
FRCRATIO(*NONE) is recommended for journaled files.
Information in volatile storage, also called main memory, gets destroyed while information on disk is
still there.
A file is a very complex object and a journal is a very simple object, so force write ratio uses more
disk arm movement than journaling. With journaling, CPU power is not the issue, disk space, and
disk I/O are. This topic also shows how to manage that disk space and I/O.
Uempty
Updates to database pages are made in main storage. When the update is complete and journaling
has been implemented, journal management writes the updated record to the receiver on disk. The
physical file on disk is updated asynchronously when the system page out task is invoked at a later
time. In addition to a copy of the updated data record, the journal entry contains information about
the user, the time, the program, the file, and so on, for which the entry was made.
Uempty
Journal objects
Journaling data flow
PGMX PGMY
Journal
receiver
Object A change
Object B change
Object B change
Obj. A Obj. B Obj. C
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The system keeps a record of changes you make to objects that are journaled and of other events
that occur on the system. These records are called journal entries. You can also write journal
entries for events that you want to record, or for objects other than the object that you want to
protect with journaling.
Contents of a journal entry:
• Information identifying the type of change
• Information identifying the record that was changed
• After image of the record
• Before image of the record (optional) (this is a separate journal entry)
• Information identifying the job, the user, the time of change, and so forth
• Information that identifies whether the file was opened, closed, reorganized, cleared, or saved
• The journal identifier of the object
A very important point here is the fact that journaling is done by file, not by program. This means no
programming changes need be made. More important, journaling records all activity on the files
being journaled no matter where or when the activity takes place, now or in the future, such as
adding, deleting, or renaming a file member.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Display Journal (DSPJRN) command allows you to convert journal entries (contained in one or
more receivers) into a form suitable for external representation. Output of the command can be
displayed or printed with the job's spooled printer output or directed to a database output file. If the
database output file exists, records can either replace or be added to the current data in the
indicated file member. The system creates the specified database file and member if they do not
exist. Database files created by the system have a standard format. A warning message is sent and
the records are truncated if any of the entries are longer than the specified maximum record length
of the output files.
The Display Journal display shows a list of the journal entries that you requested to be displayed.
Only basic information about the journal entry is shown on this display. From this display, you can
request to see all of the information for a specific journal entry.
To see all of the information for a specific journal entry, type 5 next to the journal entries that you
want more information about, and press Enter.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Display Journal Entry (option 5) display shows all of the information about a specific journal
entry. The journal entry shown is one that you requested on the Display Journal display.
Sequence - The journal sequence number
The sequence number is initially 1. Each journal entry is sequentially numbered without any breaks
until the Change Journal (CHGHRN) command resets the sequence number. However, when journal
entries are converted and displayed, there can be breaks in the sequence numbers. The system
uses some journal entries only internally and combines some entries into one during conversion.
Incomplete data
Indicates whether this entry has entry-specific data which is not being displayed for one of the
following reasons.
• The length of the entry-specific data exceeds 32,766 bytes.
• The entry is associated with a database file that has one or more fields of data type BLOB (binary
large object), CLOB (character large object), or DBCLOB (double-byte character large object)
The possible values are:
• No - This entry has all possible data
• Yes - This entry has incomplete data
Uempty
The data which is not visible through this interface can only be accessed by using the Retrieve
Journal Entries (QjoRetreiveJournalEntries) API or by specifying ENTFMT (*TYPEPTR) on the
RCVJRNE command.
Entry-specific data
This is additional information about the entry. The contents of this field are dependent on the kind of
journal entry. If there is no entry-specific data for the kind of entry being shown, the message No
Entry specific data is shown in this field. The information shown in this field is not formatted. For
a description of the format of the entry-specific data, see the IBM Power Systems with IBM
Knowledge Center.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Display Journal Entry Details display shows only the detail entry data for a specific journal
entry. The journal entry shown is one that you requested on the Display Journal display.
If you see More... on the lower right side of your display, there is more information to view. Press
Page Down (or Roll Up) to move toward the end of the information. Press Page Up (or Roll Down)
to move toward the beginning of the information.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Uempty
Implementing journaling
• For example: Implementation of object journaling
1. Create the journal receiver.
CRTJRNRCV JRNRCV( )
• That is it!
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Create Journal Receiver (CRTJRNRCV) command creates a journal receiver. Once a journal
receiver is attached to a journal (with the Create Journal (CRTJRN) or Change Journal (CHGJRN)
command), journal entries can be placed in it. A preferred auxiliary storage pool (ASP), and a
storage space threshold value can be specified for the journal receiver.
The Create Journal (CRTJRN) command creates a journal as a local journal with the specified
attributes, and attaches the specified journal receiver to the journal. Once a journal is created,
object changes can be journaled to it or user entries can be sent to it. The journal state of the
created journal is *ACTIVE.
The different types of objects that can be journaled and the commands that you will use are:
• Start to Journal an Access Path (STRJRNAP) command is used to start journaling the access
paths for all members of a database file to a specified journal. Any new member that is later
added to the file also has its access path journaled.
• Start to Journal a Library (STRJRNLIB) command is used to start journaling changes (made to a
library or list of libraries) to a specific journal, and optionally to start journaling changes to
objects within the library or list of libraries. Objects created in, moved into, or restored into a
journaled library can be automatically journaled to the same journal the library is journaled to.
Uempty
• Start to Journal an Object (STRJRNOBJ) command is used to start journaling changes (made to
an object or list of objects) to a specific journal. The object types which are supported through
this interface are Data Areas (*DTAARA) and Data Queues (*DTAQ).
• Start to Journal a Physical File (STRJRNPF) command is used to start journaling changes made
to a specific database physical file to a specific journal. Changes in new members added to the
file are also journaled.
• Start to Journal IFS Objects (STRJRN) command is used to start journaling changes (made to an
object or list of objects) to a specific journal. The object types which are supported through this
interface are Stream Files (*STMF), Directories (*DIR), and Symbolic Links (*SYMLNK). Only
objects of type *STMF, *DIR, or *SYMLNK that are in the “root” (/), QOpenSys, and user-defined file
systems are supported.
For more information about the possible journal entries which can be sent, see the Journal
management topic collection in the IBM Knowledge Center at:
http://www.ibm.com/support/knowledgecenter. Search for “journal entry finder”.
The commands follow this visual.
When you start journaling for a physical file, the system assigns a unique journal identifier (JID) to
every member. The JID is part of every journal entry for the file. The JID is used to associate the
journal entry with the file. If a file is saved before journaling is started, it does not have a JID. If the
file is restored, it does not have a JID. It is critical to save a journaled file every time a member has
been added to it.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
It is recommended that the journal receiver name should be unique for your system, not unique
within a library. If you have two journal receivers with the same name in different libraries and they
both become damaged, RCLSTG renames both journal receivers when they are placed in the QRCL
library.
The Create Journal Receiver (CRTJRNRCV) command creates a journal receiver. Once a journal
receiver is attached to a journal (with the Create Journal (CRTJRN) or Change Journal (CHGJRN)
command), journal entries can be placed in it. A preferred auxiliary storage pool (ASP), and a
storage space threshold value can be specified for the journal receiver.
Restrictions
• A Journal receiver cannot be created in library QTEMP.
• This command cannot be used to create a journal receiver for a remote journal.
• If the library to contain the journal receiver is on an independent ASP, then ASP(*LIBASP) must
be specified.
Setting the threshold is very important for managing journaling disk space. More on this in later
visuals. You must set the stage now however.
Uempty
It is recommended that the journal receiver name be unique for your entire system and not just
unique within a library. If you have two journal receivers with the same name in different libraries
and they both become damaged, RCLSTG renames both journal receivers when they are placed in
the QRCL library.
The ASP parameter determines in which auxiliary pool to place the journal receiver.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Create Journal (CRTJRN) command creates a journal as a local journal with the specified
attributes, and attaches the specified journal receivers to the journal. Once a journal is created,
object changes can be journaled to it or user entries can be sent to it. The journal state of the
created journal is *ACTIVE.
Restrictions
1. A journal cannot be created in the library QTEMP.
2. The specified journal receivers must be created before the running of this command and they
must be empty. That is, the receivers must not have been previously attached to a journal or
have been in the process of being attached to a journal.
3. This command cannot be used to create a remote journal. See the Add Remote Journal
(QjoAddRemoteJournal) API in the IBM Power Systems with IBM i Information Center
(Programming -> APIs).
4. If the library to contain the journal is on an independent ASP, then the journal receiver specified
must be located on an independent ASP that is in the same ASP group as the journal's library.
Likewise, if the library to contain the journal is not on an independent ASP, then the journal
receiver specified cannot be located on an independent ASP.
5. If the library to contain the journal is on an independent ASP, then ASP(*LIBASP) must be
specified.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Start Journal Access Path (STRJRNAP) command is used to start journaling the access paths for
all members of a database file to a specified journal. Any new member that is later added to the file
also has its access path journaled.
If a physical file is specified, journaling can be started for its access paths. When access path
journaling is started for a physical file, only the access paths for the physical file members are
journaled. Journaling for any logical file access paths is started only when access path journaling is
started for the logical file.
The journal entries created after running this command cannot be used in any apply or remove
journaled changes operation. These entries are used only to recover the access path without
rebuilding it after an abnormal system operation ending.
If you do not want the overhead of managing the access path journaling yourself, consider taking
advantage of the system-managed access-path protection support SMAPP which will be covered
later in this unit.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Start Journal Library (STRJRNLIB) command is used to start journaling changes (made to a
library or list of libraries) to a specific journal, and optionally to start journaling changes to objects
within the library or list of libraries. Objects created in, moved into, or restored into a journaled
library can be automatically journaled to the same journal the library is journaled to.
After journaling begins for the object, the user should save the journaled object to preserve its
journal attribute information. Also, the object must be saved because, for example, journaled
changes cannot be applied to a version of the object that was saved before journaling was in effect.
Objects created, moved, or restored into the library that is eligible for journaling can automatically
start journaling to the same journal as the library. Which objects inherit the journal state of the
library and what journaling attributes they start journaling with are determined by the inherit
journaling attributes of the library.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Start Journal Object (STRJRNOBJ) command is used to start journaling changes (made to an
object or list of objects) to a specific journal. The object types which are supported through this
interface are Data Areas (*DTAARA) and Data Queues (*DTAQ).
Additionally, the user can specify that only the after image or both the before and the after images
of an object of type *DTAARA be journaled. Before images are necessary to remove journaled
changes by using the Remove Journaled Changes (RMVJRNCHG) command.
After journaling begins for the object, the user should save the journaled object to preserve its
journal attribute information. Also, the object must be saved because, for example, journaled
changes cannot be applied to a version of the object that was saved before journaling was in effect.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Start Journal Physical File (STRJRNPF) command is used to start journaling changes made to a
specific database physical file to a specific journal. Changes in new members added to the file are
also journaled.
The user can specify that only the after image or both the before and after images of records in the
journaled physical file be journaled. Before images are necessary to remove journaled changes by
using the Remove Journaled Changes (RMVJRNCHG) command. In addition, the system will
automatically capture the before images for a database file if the file is opened under commitment
control.
After journaling begins for the file, and after any new members are added to the file, the user should
run the Save Changed Object (SAVCHGOBJ) command with OBJTYPE(*FILE) and OBJJRN(*YES)
specified. The file must be saved because journaled changes cannot be applied to a version of the
file that was saved before journaling was in effect.
When the file being journaled is a distributed file, the STRJRNPF command is also distributed, if
journaling was successfully started locally. Even if the distribution request fails, the local file
remains journaled.
Up to 50 files can be specified per command.
Uempty
There is no limit, other than a practical one, to the number of files that can be journaled to a single
journal.
From a security point of view, omitting the file opens and closes could be dangerous because if a
program opened a file for read only, no entry would be recorded in the journal receiver.
IMAGES(*BOTH) is recommended. It allows backout recovery (RMVJRNCHG). However, it takes
more space.
OMTJRNE(*OPNCLO) is not recommended. You cannot use the journal to audit who opened a file.
You cannot apply entries to open and close boundaries by using the TOJOBO and TOJOBC
parameters.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Start Journal (STRJRN) command is used to start journaling changes (made to an object or list
of objects) to a specific journal. The object types which are supported through this interface are
Stream Files (*STMF), Directories (*DIR), and Symbolic Links (*SYMLNK). Only objects of type *STMF,
*DIR or *SYMLNK that are in the “root” (/), QOpenSys, and user-defined file systems are supported.
The user can specify that only the after image or both the before and the after images of an object
of type *DTAARA be journaled. Before images are necessary to remove journaled changes by using
the Remove Journaled Changes (RMVJRNCHG) command.
After journaling begins for the object, the user should save the journaled object to preserve its
journal attribute information. Also, the object must be saved because, for example, journaled
changes cannot be applied to a version of the object that was saved before journaling was in effect.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
On the IBM Navigator for i you can manage journals and journal receivers.
To manage journals on the IBM Navigator for i welcome page on the left pane click Journal
Management then on the main pane you will be see the Journal Management window.
The welcome page provides links to the most commonly used Journal Management tasks. There
are links to manage journal and receiver and a button which allows you to set database and library.
You can also manage journaling from the database perspective.
1. On the left pane, expand Database then expand Databases.
2. Expand your database (could be system name).
3. Click Schemas and from the Actions menu chose Select Schema to Display.
4. On the left pane, expand Schemas and find yours and click it.
5. On the main pane, you will be see all your schema objects icon. There will be also journal and
journal receivers.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
To start journaling right-click the object and chose Journaling from pop-up menu.
Uempty
Save objects
• When?
ƒ Immediately after STRJRNxx or if a new member is added to the file
• Why?
ƒ Checkpoint for recovery (F/MS journal entry)
í Restore damaged object
í Apply journaled changes from *LASTSAVE
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
When you start journaling for a physical file, the system assigns a unique journal identifier (JID) to
every member. The JID is part of every journal entry for the file.
The JID is used to associate the journal entry with the file. If a file is saved before journaling is
started, it does not have a JID, and if the file is restored it does not have a JID.
It is critical to save a journaled file every time a member has been added to it.
The whole idea of journaling is to recover data files. Because of this, it is important to fix a point in
the journal receiver so the recovery starts in the proper place. What better place than when the file
was last saved?
When you start journaling for a physical byte, the system assigns a unique journal identifier (JID) to
every member. The JID is part of every journal entry for the file. The JID is used to associate the
journal entry with the file. If a file is saved before journaling is started, it does not have a JID, and if
the file is restored, it does not have a JID. It is critical to save a journaled file every time a member
has been added to it.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Uempty
*PGM
RCV0001
Old
receiver
RCV0002
Current
receiver
*File
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Change Journal (CHGJRN) command changes the journal receiver, the journal message queue,
the manage receiver attribute, the delete receiver attribute, the receiver size options, the journal
state, allowing minimized entry-specific data, journal caching, the journal receiver's threshold, the
journal object limit, the journal recovery count, or the text associated with the specified journal. The
command allows one journal receiver to be attached to the specified journal. This replaces the
previously attached journal receiver. The newly attached journal receiver begins receiving journal
entries for the journal immediately.
The sequence numbering of journal entries can be reset when the receiver is changed. If the
sequencing is not reset, an informational message is sent indicating the first sequence number in
the newly attached receiver.
The Manage receivers (MNGRCV) parameter is used to specify how the changing of journal receivers
(detaching the currently attached journal receiver and attaching a new journal receiver) is
managed. You can specify a value for the MNGRCV parameter for both the CRTJRN and the CHGJRN
commands.
Uempty
For this parameter you can specify:
*USER
The user manages the changing of journal receivers by issuing the Change Journal (CHGJRN)
command to attach new receivers and detach old receivers.
*SYSTEM
• The system manages the changing of journal receivers. This function is called system
change-journal management.
• When an attached journal receiver reaches its size threshold, the system detaches the attached
journal receivers and creates and attaches new journal receivers. Message CPF7020 is sent to
the journal message queue when the journal receivers are detached.
• Additionally, during an initial program load (IPL), the system performs a CHGJRN command to
create and attach new journal receivers and to reset the journal sequence number of journals
that are not needed for commitment control recovery for that IPL.
• Also, the system attempts to perform a CHGJRN command to reset the sequence numbers when
the journal receiver's sequence number exceeds 2,147,000,000.
Uempty
• DLTRCV(*YES) uses
ƒ Journaling for commitment control or explicit access path protection
ƒ Journal receiver is being replicated through remote journal
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Manage receivers (MNGRCV) parameter is used to specify how the changing of journal receivers
(detaching the currently attached journal receivers and attaching new journal receivers) is
managed. The possible values are *USER or *SYSTEM.
The Delete receivers (DLTRCV) parameter is used to specify whether the system deletes journal
receivers when they are no longer needed or leaves them on the system for the user to delete after
they have been detached by system change-journal management or by a user-issued CHGJRN
command.
Note
Uempty
*YES
The journal receivers are deleted by the system.
When the journal has the DLTRCV(*YES) attribute, the following conditions can prevent the system
from deleting the receiver. When one of these conditions occurs, the system sends message
CPI70E6 to the journal message queue, and then retries the delete operation every 10 minutes
until the operation is successful.
• A lock conflict occurs for either the journal receiver or its journal.
• An exit program that was registered by way of the QIBM_QJO_DLT_JRNRCV exit point indicates
that a receiver is not eligible for deletion.
• A journal has remote journals associated with it and one or more of the associated remote
journals do not yet have full copies of this receiver.
Use automatic deletion of journal receivers with care if you use save-while-active operations to
save objects before they reach a commitment boundary. Ensure that you save the journal receivers
before the system deletes them. If an object is saved before it reaches a commitment boundary it
can have partial transactions. To avoid data loss, you must have access to the journal receivers that
were attached during the save-while-active operation when you restore the objects with partial
transactions.
Uempty
J PR RCV0006
RCV0007
J NR RCV0008
J PR RCV0007
RCV0008
J NR RCV0009
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The PR and NR entries are automatically added when a receiver is created or changed. They are
used by the system to make recovery seamless across a journal receiver chain.
PR stands for previous receiver.
NR stands for next receiver.
Uempty
WRKJRNA command
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Work with Journal Attributes display shows the current attributes of this journal and the names
of the journal receivers that are currently attached to this journal, if any.
You can use function keys to display lists of objects associated with this journal. You can request
the following lists:
• F13 - Files journaled to this journal
• F14 - Access paths journaled to this journal
• F15 - Receivers that have been used or are being used by this journal
• F16 - Remote journal information
Some of these lists or options are not available when working with an internal system journal
(*INTSYSJRN for JRN).
The type of journal, the possible values are:
• *LOCAL - A local journal
• *REMOTE - A remote journal
Uempty
Journal state
The journal state describes an attribute for a journal. The attribute value can be *ACTIVE, *INACTIVE
(remote journal only), or *STANDBY (local journal only). For a local journal, *ACTIVE indicates that
journal entries are currently allowed to be deposited into the journal. *STANDBY indicates that most
journal entries are not deposited.
The state of the journal, the possible values are:
• *ACTIVE: If this is a local journal, this means journal entries can be deposited to this journal. If
this is a remote journal, this means journal entries can be received from a source journal.
• *INACTIVE: If this is a local journal, this means journal entries cannot be deposited to this
journal, unless they have been designated as journal entries which must be deposited. See the
'Journal Entry Information' IBM Knowledge Center for the journal entry designations. If this is a
remote journal, this means journal entries cannot be received from a source journal.
• *FAILED: If this is a remote journal, this means journal entries cannot be received from a source
journal due to a remote journal function failure, such as a communication line failure. Before
inactivating the remote journal by issuing the Change Remote Journal (CHGRMTJRN) or the
Change Journal (CHGJRN) command or by calling the Change Journal State
(QjoChangeJournalState) API, you might want to receive, retrieve, or display any unconfirmed
entries from the journal.
• *STANDBY: This is the state of a local journal after the Change Journal (CHGJRN) command
specifying JRNSTATE(*STANDBY) is used to not allow deposits into the local journal. The local
journal can also be in *STANDBY state after an IPL if the local journal is in *STANDBY state when
the system ends. Objects journaled to the local journal can be restored or changed, but most
journal entries are not deposited until the journal state for the local journal is again changed to
*ACTIVE. This can be performed by using the Change Journal (CHGJRN) command specifying
JRNSTATE(*ACTIVE).
• This value does not apply to local journals.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
The Work with Receiver Directory display shows a list of all journal receivers that are associated
with this journal, if any. You can reach this screen by pressing function key F15 Work with receiver
directory. The list of receivers is ordered from the oldest (first attached) at the top of the list, to the
newest (currently attached) at the bottom of the list.
You can make selections on the list to:
• 8 - Display the attributes of the selected receivers
• 4 - Delete the selected receivers
Number column
A number is associated with a journal receiver and assigned by the system which is relative to all
other receivers in the receiver directory at a given time. The first 2 digits identify the journal chain
number and the last 3 digits identify the receiver number within the chain.
A chain identifies a group of receivers that are contiguous allowing the system to process entries
across receivers within the same chain.
The chain number starts with zero and is incremented sequentially each time a new chain is
needed. New chains are started when a damaged receiver is recovered by restoring a partial
version.
Uempty
Status column
The status of the receiver can be one of the following:
ATTACHED: The receiver is currently attached to the journal.
ONLINE: The receiver is online. The receiver has not been saved and it has been detached from
the journal.
SAVED: The receiver was saved after it was detached. The receiver storage was not freed when it
was saved.
FREED: The receiver was saved after it was detached. The receiver storage was freed when it was
saved.
PARTIAL: The receiver status is partial for one of the following reasons:
• It was restored from a version that was saved while it was attached to the journal. Additional
journal entries might have been written that were not restored.
• It was one of a pair of dual receivers, and it was found damaged while attached to the journal.
The receiver has since been detached. This receiver is considered partial because additional
journal entries might have been written to the dual receiver.
• It is associated with a remote journal and it does not contain all the journal entries that are in the
associated journal receiver attached to the source journal.
DELETED: The receiver has been deleted. This status is shown after option 4 (Delete) completes.
If you refresh (F5) the list, deleted receivers are removed from the list.
Uempty
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Uempty
Review questions (1 of 3)
1. Which of the following is not a valid object that can be
journaled?
a. Database files
b. Data area
c. Data queue
d. Root folders
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Uempty
Review answers (1 of 3)
1. Which of the following is not a valid object that can be journaled?
a.Database files
b.Data area
c.Data queue
d.Root folders
The answer is root folders.
3. What is the first object that needs to be created when you start
journaling?
a.Journal audit trail
b.Journal receiver
c.Journal
d.Journal access path
The answer is journal receiver.
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Uempty
Review questions (2 of 3)
4. Which object contains the images and details of the objects
that are being journaled?
a. Journal audit trail
b. Journal receiver
c. Journal
d. Journal access path
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Uempty
Review answers (2 of 3)
4. Which object contains the images and details of the objects that are being
journaled?
a. Journal audit trail
b. Journal receiver
c. Journal
d. Journal access path
The answer is journal receiver.
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Uempty
Review questions (3 of 3)
7. The (blank) command is used to see the attributes
associated with your journal.
a. WRKJRN
b. CRTJRN
c. DSPJRNA
d. WRKJRNA
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Uempty
Review answers (3 of 3)
7. The WRKJRNA command is used to see the attributes associated with
your journal.
a. WRKJRN
b. CRTJRN
c. DSPJRNA
d. WRKJRNA
The answer is WRKJRNA.
Uempty
Unit summary
• Describe how journal management can be used to recover data lost
during a failure
• Implement journal management on your IBM Power System with IBM i
as part of a comprehensive recovery plan
• List the advantages and considerations of journal management
Journaling overview and basic operation © Copyright IBM Corporation 2001, 2016
Uempty
Overview
There are few methods to communicate IBM i system with network in this unit shows two of them
Virtual IP and EtherChannel. However, intention of this unit is not teach how make configuration the
process is shown. But the main target is understood how the configurations works.
Uempty
Unit objectives
• Explain EtherChannel and Virtual IP differences
• Explain how works EtherChannel
• Explain how works Virtual IP
• Be able to manage both solutions
There are few methods to communicate IBM i system with network in this unit shows two of them
Virtual IP and EtherChannel. However, intention of this unit is not teach how make configuration the
process is shown. But the main target is understood how the configurations works.
Uempty
Topic 1: EtherChannel
Uempty
EtherChannel
Link aggregation, which is defined by the Institute of Electrical and Electronics Engineers (IEEE) as
802.3ad or 802.1ax, provides both redundancy and performance advantages. When properly
implemented, link aggregation can both increase the resiliency of your system to network failures
and provide a significant performance benefit. This tip refers to the technology as aggregation;
however, it is also known as EtherChannel, teaming, or trunking.
Uempty
Before you create an aggregate line description, select the Ethernet resources to be aggregated.
Up to eight ports can be aggregated in one line description.
None of the ports can be in use by another line description, LAN console, or remote support.
Virtual Ethernet ports (type 268C) are not supported in an aggregate line description.
A Host Ethernet Adapter (HEA) logical port, native SR-IOV logical port, or virtual NIC (VNIC) port is
only supported if it is the only logical port on its corresponding physical port, and if the aggregate
line uses the Link Aggregation Control Protocol (LACP) by specifying *LNKAGG in the Aggregate
Policy (AGGPCY) for the line description. Any other configuration can prevent the link partner from
detecting faults, causing lost packets.
All of the ports must support full duplex and the preferred line speed. Each port must support 1
Gbps or higher, even if that is not the preferred line speed.
All of the ports must be connected to the same link partner (switch).
If you use static aggregation (*ETHCHL), all of the corresponding ports on the link partner must be
configured in a common static aggregation. If you use LACP (*LNKAGG), configure all of the
corresponding ports on the link partner with LACP and share a common key.
Uempty
IBM i Link Aggregation supports static aggregation (*ETHCHL) with any link partner, and supports
LACP (*LNKAGG) with Cisco and IBM Networking switches. Other LACP-capable link partners
might work, but are not officially supported.
Uempty
Use the WRKLIND command to work with all line description then press function key F6 to create
new one. Enter the line name and type *ELAN.
Uempty
An aggregated line description is created by using the Create Line Desc (Ethernet) (CRTLINETH)
command.
The following parameters are relevant to aggregation: Resource Name (RSRCNAME): set to new
special value *AGG to indicate aggregation.
Duplex (DUPLEX): Half duplex is not supported.
Aggregated Resource List (AGGRSCL): up to eight Ethernet port resource names (starting with
CMN) with the restrictions laid out in Preparing to Create an Aggregate Line Description.
Aggregate Policy (AGGPCY): This parameter is split into two elements. The Standard controls any
negotiation that is done with the link partner, and requires specific configuration with the link
partner, as described under *ETHCHL and *LNKAGG. The Policy type describes the process for
deciding what port is used for each outgoing Ethernet frame; this type can have performance
implications.
Choosing *ETHCHL as the Standard uses static aggregation, which performs no negotiation with
the link partner. The link partner must also be configured for static aggregation. The Ethernet ports
in the Aggregated Resource List (AGGRSCL) and the set of ports that are configured at the link
partner should correspond exactly. If they do not, then some Ethernet packets might not get to the
correct destination. There are several opportunities for error: Having ports in AGGRSCL that are
Uempty
connected to a different link partner or to the wrong ports in the correct link partner, or having ports
that are selected in the link partner's aggregate that are connected to ports not in AGGRSCL.
Setting the Standard as *LNKAGG forces use of the Link Aggregation Control Protocol (LACP) as
described in the IEEE 802.3ad standard. This negotiation detects the identity of the link partner for
each Ethernet port in the Aggregated Resource List (AGGRSCL). This Standard requires that the
link partner to enable LACP with common identification information on all ports that are connected
to ports in AGGRSCL. In order for a port to aggregate and be used for Ethernet traffic, its partner
port must respond to the LACP negotiation, and the response must match the identifying
information to all other aggregated ports. The aggregation panel in Display Line Description
(DSPLIND) shows the aggregation status of each port, and the status helps describe why any other
ports are not aggregated.
The round-robin (*RNDRBN) is only accepted if Standard is *ETHCHL, and it directly forces each
batch of outgoing packets to use the next available port, ensuring that all ports are used in
near-equal fashion. However, that creates risk that packets can be delivered out of order, and
out-of-order delivery within a TCP connection causes retransmissions and large delays. Use this
option only if that is not a concern.
The remaining policy types could all be called hash modes, and they describe what data within a
packet is used to determine which Ethernet port is used for each outgoing frame. All of the hash
modes force a specific TCP connection to stay single-threaded on a specific Ethernet port to avoid
the out-of-order delivery problem. They differ in how much packet data is used to decide which port
to use. The best network usage comes from configurations that split outgoing traffic roughly equally
among the ports in the Aggregated Resource List (AGGRSCL). As more packet data is used, the
system can do more to spread unrelated traffic among the ports. However, using more packet data
also forces some additional processing and cache usage for each outgoing packet.
The *DFT hash mode uses the least amount of data, looking only at the destination IP address (or
MAC for non-IP frames). This mode uses little processor, but spreads evenly only if traffic is running
too many different IP addresses at the same time (as for a busy server).
The *SRCPORT, *DESTPORT, and *SRCDESTP hash modes also look at the source and
destination TCP or UDP port numbers (if present) for each outgoing packet. This evaluation incurs
more per-packet processing, but is better able to split unrelated traffic among multiple Ethernet
ports, like parallel file transfers to the same remote host. If host processor is not known to be a
constraint, *SRCDESTP is likely the best choice for most systems.
To create a static two-port aggregate that uses as much packet data as possible to spread outgoing
traffic, use the following example:
CRTLINETH LIND(ETHAGG) RSRCNAME(*AGG) AGGPCY(*ETHCHL *SRCDESTP) AGGRSCL(CMN02
CMN03)
Uempty
After line VARY ON you can check the status of physical resources. On the Work with Line
Description screen use option 5 and press Enter seven times to see status of each physical
adapter.
Uempty
A non-aggregate line description cannot be changed to an aggregate line description, nor can an
aggregate be changed later into a non-aggregate. The AGGPCY and AGGRSCL parameters can be
changed by the Change Line Desc (Ethernet) (CHGLINETH) command, but the line description
must be varied off.
When the line description is varied on, the configuration is verified and all of the resources are
activated and establish link with the partner. If the system detects any configuration errors, the line
description does not vary on successfully. Any ports that fail to establish link when varying on are
not aggregated until the line description is varied off and back on.
After the line description is varied on, the aggregation status of each resource can be viewed on a
new panel from the Display Line Description (DSPLIND) command. The DSPLIND command can
be used to monitor for any links that are not operational.
On systems with support for link aggregation, resources with type 6B26 are displayed on the Work
with Communication Resources panel. This panel can be displayed by using the Work with
Hardware Resources (WRKHDWRSC) command and the Type (TYPE) parameter of *CMN. When an
aggregate line description is varied on for the first time, a new Comm Port resource with type 6B26
might be added. When an aggregate line description is deleted, one of the Comm Port resources
might be removed. All resources with type 6B26 are invalid for configuration by line descriptions or
for LAN console or remote support. When an aggregate line description is deleted, a resource with
type 6B26 might no longer be displayed on the Work with Communication Resources panel.
Uempty
Topic 2: Virtual IP
Uempty
Virtual IP resources
Easier way create and manage Virtual IP is using IBM Navigator for i:
Before you start make sure you have two Ethernet adapters (virtual / physical) and created two
interfaces on it.
To create Virtual Interface by using IBM Navigator for i do:
• On the left pane, expand Network.
• Then, expand TCP/IP Configuration and IPv4.
• Click the IPv4 Interfaces.
• On the main pane click Actions and from the pop-up menu select New Interface and Virtual
IP.
A virtual IP interface defines a single IP address that can be used to redirect TCP/IP traffic to other
interfaces or networks.
Virtual IP interfaces are useful for TCP/IP load balancing, network address translation (NAT), frame
relay multi-access, and unnumbered networks.
The wizard will take you through the steps that are needed to configure a TCP/IP interface.
Uempty
Virtual IP wizard (1 of 4)
Uempty
Virtual IP wizard (2 of 4)
Enter Virtual IP address. The virtual IP address must be on the same subnet as the physical
interfaces.
Uempty
Virtual IP wizard (3 of 4)
Uempty
Virtual IP wizard (4 of 4)
Review summary and confirm creation with Finish. After you can test the interface if you want to or
go on by click OK.
Uempty
Virtual IP created
Now your Virtual IP interface is created but before it is ready it needs some more work.
Uempty
You have to assign physical interfaces to your Virtual IP. To do that on the virtual IP interface
right-click and chose Properties.
Uempty
On the properties click Advanced tab and in the Proxy ARP field chose Preferred interface and
click OK.
Uempty
On this screen you can select Available interfaces (left side) and use the Add button to add
interfaces to manage. Use the Move Up or Move Down button to select which one will be
preferred.
Uempty
After you setup the preferred IP (on the previous screen) physical address and confirm your choice
by pressing the OK button, you will see the interfaces list preferred physical IP address (associated
interface) for your virtual IP address.
Uempty
If preferred interface fails or stops the virtual IP interface will automatically switch to spare IP
address. After the preferred interface is repaired or restarted the virtual IP interface will switch back
to the preferred interface.
Uempty
Virtual IP 5250
Uempty
Review questions
1. True or False: Virtual Ethernet adapter can be used to create
EtherChannel.
Uempty
Review answers
1. True or False: Virtual Ethernet adapter can be used to
create EtherChannel.
The answer is false.
Uempty
Unit summary
• Explain EtherChannel and Virtual IP differences
• Explain how works EtherChannel
• Explain how works Virtual IP
• Be able to manage both solutions
backpg