You are on page 1of 93

| 


 


i  
! Y 
! Y
   

!  Y

!  

! 
 |  
!      
!  ! "##$%&$$ 
'$  $$
!  ( ! "##)
!  *$ +  ,##
! +   
! -., %& Y

! / 
 Y

! Y
 ' 0.12 ! 12
i  
! !  ( Y
  1
!  '  $
34  3    (1

! $ 5  3


!   (
(((13  1
  
     
 | 
   
! +( 3'  ! $ 3
! + Y6  $ 
 
  Y
 ! Y3 
   Y "##
! 2  6   ! 7% Y
 '  3
      Y

! 2    '$$ 
*  ' Y
 
! + $$ ! !  $$
( 3 ( 3  Y

! +  $
3 3$
( 3  Y

  
! 2  6   
! +%7YY%8  
! 7%YY%89   
! + 6  
!   ' Y

  
! +$   $ 
 $ 6   $
    
Create Query Management Query (CRTQMQRY)

Type choices, press Enter.

Query management query . . . . . Name


Library . . . . . . . . . . . *CURLIB Name, *CURLIB
Source file . . . . . . . . . . QQMQRYSRC Name
Library . . . . . . . . . . . *LIBL Name, *LIBL, *CURLIB
Source member . . . . . . . . . *QMQRY Name, *QMQRY
Text 'description' . . . . . . . *SRCMBRTXT

Sort sequence . . . . . . . . . *SRC Name, *SRC, *JOBRUN, *JOB...


Library . . . . . . . . . . . *LIBL Name, *LIBL, *CURLIB
Language ID . . . . . . . . . . *SRC *JOB, *JOBRUN...

Additional Parameters

Authority . . . . . . . . . . . *LIBCRTAUT Name, *USE, *CHANGE, *ALL...


Replace object . . . . . . . . . *YES *YES, *NO
   | 

Start Query Management Query (STRQMQRY)

Type choices, press Enter.

Query management query . . . . . Name


Library . . . . . . . . . . . *LIBL Name, *LIBL, *CURLIB
Output . . . . . . . . . . . . . * *, *PRINT, *OUTFILE
Query management report form . . *SYSDFT Name, *SYSDFT, *QMQRY
Library . . . . . . . . . . . Name, *LIBL, *CURLIB

Additional Parameters

Relational database . . . . . . *NONE


Connection Method . . . . . . . *DUW *DUW, *RUW
User . . . . . . . . . . . . . . *CURRENT Name, *CURRENT
Password . . . . . . . . . . . . Character value, *NONE
Naming convention . . . . . . . *SYS *SYS, *SQL, *SAA
Allow information from QRYDFN . *NO *NO, *YES, *ONLY

Set variables:
Variable name . . . . . . . .
Variable value . . . . . . . .
´      
! +  YYY%8 %+
! :  3;
! %<.%- Y  
! =>-  =-/$ 
! +  3$ 
Y++%7YY%8YY%8:?
?2; %+>*
:?
?>;
Y% 7%YY%8YY%8:?
?2;

!   Y
    @ 3
 3Y+-$  $ @ 3Y% 
  
  
! &'  3   6  3 (
$$       3$ 
! *  '  $$ 
! *+
$  ' 
$
! 03 9
! .$ ( 3A?B
! 3 = %
! +$$   Y
  

+7-* 7*2+7?>*
->%/?
*.?>*
/%- %.8?/%- %.8
³Type a value for variable ³FIELD" and press Enter. ³
  !
"#
 C3(3  DE/5
  D?+= 7/ %
 C   
(3  ?+= 2!
ou need to include the quotes into the value
passed to Query Manager ±

When prompted, you¶d enter: µCPCU%¶


  $
 
! +
'3 3 '
! 8  $4   
3 
! $+
  
7%YY%8YY%8:7 7Y%8;/=7=7:C%*27;F
70!%::>%/?>-!7 !;:7/?7-!7 !;;
  $
 
DCL VAR(&CDATE) TYPE(*CHAR) LEN(8)
RTVJOBA CYMDDATE(&JDATE)
CVTDAT DATE(&JDATE) TOVAR(&CDATE) FROMFMT(*CYMD) +
TOFMT(*YYMD) TOSEP(*NONE)
STRQMQRY QMQRY(SHPPRT) OUTPUT(*OUTFILE) +
OUTFILE(SHIPPF) SETVAR((FDATES &CDATE) +
(TDATES &CDATE))

! | 
       
SELECT SUM(SHPQTY)
FROM SHPHST
WHERE SDATE BETWEEN &FDATES AND &TDATES
  $
 
  
 $ 
|  "
& 4  
-+
0!%:?
*.#;78 :C+G!%;
2:#;F
0!
= :H,"IJ#H;
-+
 0!%:?
*.,;78 :C+G!%;
2:,;
+G&0!%0!%:?
*.,;0!
= :HHHC7+!7?
*.#C7+!7HHH;
7%YY%8YY%8:7 7Y; 70!%::>%/
*.?
*.,;;

    
 C$6$(3D?>%/
*.
º |  $
%&  
! 73% 'YY ( ' 3
Y
 Y "##6
!   3 Y
 Y "##4  
   3'( @ @
 YY  1
! +  3 $  Y ( 3
$$ Y 4 
º   
Retrieve Query Mgmt Query (RTVQMQRY)

Type choices, press Enter.

Query management query . . . . . Name


Library . . . . . . . . . . . *LIBL Name, *LIBL, *CURLIB
Source file . . . . . . . . . . Name
Library . . . . . . . . . . . *LIBL Name, *LIBL, *CURLIB
Source member . . . . . . . . . *QMQRY Name, *QMQRY
Allow information from QRYDFN . *NO *NO,  
'$  
 
$
PGM PARM(&LIBRARY &FILE)
DCL VAR(&LIBRARY) TYPE(*CHAR) LEN(10)
DCL VAR(&FILE) TYPE(*CHAR) LEN(10)
DCLF FILE(QTEMP/QRYOBJS)
DLTF FILE(QTEMP/QRYOBJS)
MONMSG CPF0000

DLTF FILE(QTEMP/&LIBRARY)
MONMSG CPF0000

CRTSRCPF FILE(QTEMP/&LIBRARY)
DSPOBJD OBJ(&LIBRARY/*ALL) OBJTYPE(*QRYDFN) +
DETAIL(*FULL) OUTPUT(*OUTFILE) +
OUTFILE(QTEMP/QRYOBJS)
BEGIN: RCVF /* GET QUERY NAME AND LIBRARY NAME */
/* IF END OF FILE REACHED, EXIT LOOP */
MONMSG CPF0864 EXEC(GOTO EOF)

º º  º  
  
  
º    º
º 
 º
 
GOTO CMDLBL(BEGIN)

EOF: FNDSTRPDM STRING(&FILE) FILE(QTEMP/&LIBRARY)


MBR(*ALL) OPTION(*NONE)
PRTMBRLIST(*YES)
ENDPGM
| | #
ù 
 ( ù
*  (3 3  
 3 

 1$ @1$


36$ 
1$ D1$

 1$ @1$


3@
$ 
(31$ D1$
ù 
 ) ù
/   $ 
' 3    3
 1

 1$ @1$


3  6$ 
1$ D1$
ù 
 *
ù( 3 3 

 C>3
6 
1 D1 
6$ 
1$ D1$
ù 
 "#  ù
O 
      
   
 
 C3
 $ 6$ 
1$ D1$

 C3
(31$  
: $ $ ;
ù  $$
 C$ 
66$ 
1 $'D1$

´ () | 
! 73   3   ( Y
   
 3 $ @  3 (  
 
! -   
!  ' 3  
! 73 3     3' 3
  :3@@ 1;
! >2/7  3
!   3' 3  3
   

´  | !
"#
! ==2*/2     
 E/5( $@@$@ $
>  
=
 E7 5( $@#@#@ : $;
>  
/( $@

! ==  ( 


! >( 3  
  @  @ 
=
  @  @   3
i*
! =! 7 @ 3 
 1
! 8 2/7  ' 3 @ 
 
! $K
i   
i


! *  ( 3A2 2 B@   $
  ' 
i*
! * -$  '+>
( 3    (
+37 7    1:+*;
! 73$ 5  3
! 7 '$$ @
3 3/-.+ $1
i* 
! 8  $   3 $  (
3 

414 :H!--%8
 Y2.%:; &*-:+!,.,;
%8:HH*HH;H@########"I1#####;
+!

Y 8 1Y+- L+:HY 8 +G&ù/.


*2Y &%8:C 8 %8
;H@########1#####;
!   $ !
414 :H%0%8
 Y2.%:;H@########,1#####;
+!

Y 8 1Y+- L+:HY 8 +G&ù/.


*2Y &%8:C->7;H@########,J1#####;
´ |  º)
 
! 3 (  7
>     

+7  
! =  '3'  0(
! =    Y

3(   3 ' 3
>%/
´ |  º)
 ! "#
! . 

+7 @'
>%/36
:  @4 C$' ;
1 D1 

! *%&$

+7 @'
>%/36
:  @4 C$' 
3  DK ;
1 D1 

! &     '  


   :C;
:      ;
ù $'
$$ 
* 
! + ù
> -- 6
Y "##@ 36  3' 3
  
! 2 4    Y

! >'  3   


  
ù $'
$$ 
* ! "#
* 3 3 
  3 +!2576 3Y "##
=     '  3' 

 C
3  6 
1 D +1 @@#;
| * 
! 4 4   3
4 @ ( 3$ 31
!   @  4 G % 
G!0*2& 1
! 4  '  
| *  "#
  @$
 
(3$M+  + ,
$,
$
| * 
! ù     4 ( 3
  
! 8   3  Y

   ( 3
!  '  3(
 
! +$ 
| * 
"#
  @$@
> 
3$M
: ':$; (3
1  D1  ;
)i"|"
! 73+/!
+     3'  3 9 
 $1
! =   3' 3$ 3' ' 
|""- 72/@- 72! @)i"|":&%2/@5!. 275;@!-%- 7
º)- !%7 27
´ $i 

*
! ù  $ 
! Y
    6 
$ 
! 8 3('@ $ ' 
  3
´ $i 

* "#
$ 3
 $ D: $ $ (3
$DH*7H;
(3$ D"#

$ 3
 ' D
: : :$C4   ;@#;
 
(33:1 ;D1 ;
´  '

$i 
* "#
$ 
 :@,;D
: 1@1,
,
(31 D1 
1 ,D1 ,;
(3  : 1 
,
(31 D1 
1 ,D1 ,;

 
! +G!% $)@-*&*7 H 1
! * 3'2= %*+:I@#; 4  
###""K
! +G!%( 'H""H@
! -*&*7 ( 'H###""H1
  

! .  9   = %=+!
 C  
3 $$: ;D $$:K ;
!
/ %
+! $$  

! $' $ )    3


 ( ( 37%27.
@!
7 YC
!2&*- G%
 3  173 $  ( 3
   3- Y 
/$ )  1
´ i|"
!   %&+!
! * 3
    2=


 
! '   3 

|"" 2/@>*% 72 @*-*2*7@


! 72! @
i|"
-"  -
0
NI" 5 +/2-!%85
-"  -
0
N" 5+/

& 5
"|"5/ 7&%!-=!7 5
" 
º) 
/8
´ 
i|"# 
  @
+  :- : ;@@,;
3H#H73Hù!2H
3H#,H73H> .H
3H#H73H!%H
3H#"H73H!%H
3H#IH73H!8H
3H#H73Hù=2H
3H#JH73Hù=
H
3H#H73H!=&H
3H#H73H H
3H#H73H/+7H
3HH73H2/0H
3H,H73H- +H
E H

>3
 $i|"
! =  $' -'#

  @$@


+
(3 D# 3#
$
 $
>
 *'
 
 
! >   3+% !7 7!.
    $
3:  O ;
+% !7 7!.
  O :  O>/%+/
=2 +G!%:,#;@
  O >/%+/
=2  +G!%:"#;;

! 73 :  3 ;(


+= 7/####

! 73% 2! 7!.


    
3 :  ; 39 Y
 K
% 2! 7!.
  O 7/ 8 7 2!   
´  !*$

! * (   $  ( 3


@  3( Y
K
+% !7 !
*!  9>/% 9 9: 9
;

! 73   Y


 3

+7C>%/ 91
ºÔ *$
 
!   ( 0I% $

 C

>
 3 #(
i  *
'
  
! +   3' Y
-'$   
   3 3  (  4 
! 2 !--%-.-*%  % - - 
 
! 73 +/22 +7 Y
     Y

 1
! ! $$  '  3  
  /@ Y
 '@ 

+ 4
+F  K3  K  K$(
+9 
i

! ! $ $   Y

  
! +'   3 
! >  33    -!7 

! = 3-!7      -!7  
$
!  -  3 
i

! !  
 O @
 :H,#HPP  : :O ;@@,;PP
H9HPP
  : :O ;@@,;PPH9HPP
  : :O ;@I@,;/%- %O-!7 -  $
;F,# "#@"I #I#I#"
 

 O @


 :H,#HPP  : :O ;@@,;PP
H9HPP
  : :O ;@@,;PPH9HPP
  : :O ;@I@,; /%- %O-!7 -  $
;F 3 "#@"I #II#"
 
i

!    (2 -   
 @   
 O @3$O @
-: :H,#HPP  : :3$O ;@@,;PPH9HPP
  : :3$O ;@@,;PPH9HPP
  : :3$O ;@I@,;
;;9
-: :H,#HPP  : :O ;@@,;PPH9HPP
  : :O ;@@,;PPH9HPP
  : :O ;@I@,;
/%- %O-!7 G*O-!7 2 
;;  $
 
"#@"I "#@I 

! %  - 


i

!    (2 -   
 @   
 O @3$O @
 :H,#HPP  : :3$O ;@@,;PPH9HPP
  : :3$O ;@@,;PPH9HPP
  : :3$O ;@I@,;
;9
 :H,#HPP  : :O ;@@,;PPH9HPP
  : :O ;@@,;PPH9HPP
  : :O ;@I@,;
/%- %O-!7 G*O-!7 2 
;  $
 
"#@"I "#@I #

! %   3-  3


i
  |  

! / D$ 3    88--


+7 :  : @@,;PPHHPP
  : @I@,;PPH,#HPP
  : @@,;;
>%/$6$
(3 NMHH
 :  : @@,;PPHHPP
  : @I@,;PPH,#HPP
  : @@,;;N   9 ,I
"*| 
| i|  
! 3 Y
   @ (  +>1
! ! Y
+! ' 3  $   3
3  ' Y
   1
! . 3    3$:(3 $D
Y
%& ;
! -  $ (3 Y
   $    
   
! &  3 3  Y
77 ' Y

  
! <  K
! Y
+/-D  
! Y
77D    9  
! Y
%D2 ( 3  
! +$   3 Y
%  !$$ .
) 
! +  + $ 
! /  Y
@ %&=$ @ 1

! * 5 C2/2  3  3 


6 
! $$  $ 3' 

! *   9  @   
 Y


 $º | 
! =       3 3
%&
! 2 4    $ 3 

! - 3    $  3/$ 3
 
! /$ 3 
! > 3 3   3  
%&'
! %$  3 > 3   > @ 
Y
77DE#,###5
! + 3+ 

 $º | 
**************************************** C/exec sql
********************** C+ fetch c1 into :odobnm, :odlbnm
* Sample program to read selected C/end-exec
fields from file via SQL

**************************************** C dou sqlstt <>


********************** '00000'

* This defines all the fields in the * Do something with each record
record
D InRec e ds
extname(pfdata) C/exec sql
C+ fetch c1 into :odobnm, :odlbnm
C/exec sql C/end-exec
C+ declare c1 cursor for
C+ select odobnm, odlbnm C enddo
from pfdata C
C/end-exec
C/exec sql
C/exec sql C+ close c1
C+ open c1 C/end-exec
C/end-exec
C move *on
*inlr
´  .*
! /3 $  3
! =%&$' 3 Y
  
! 0  3%&' Ô
´  .*
**************************************************************
* Sample program to run a single SQL statement using
* static SQL with a parameter
************************************************************** $$K
D Parm1 s 6a
D Parm2 s 10a CALL PGM(SQL2) PARM(µTEST' 'MLIB')
C *entry plist
C parm parm1
C parm parm2

C/exec sql
C+ update pfdata set ODDDAT = :parm1
C+ where ODLBNM = :parm2
C/end-exec

/free
if sqlstt <> '00000';
// handle the error condition

else;
// completed normally - show how many records were updated
dsply sqler3;
endif;

*inlr = *on;
/end-free
"# (
! = (3     Y

    3'
$ 
! 2  4  @  3 Y

   
! 8 3  $   
*  ' Y
  
! &  4   Q
"# (
**************************************************************
* Sample program to run a single SQL statement using an
* EXECUTE IMMEDIATE after building the SQL on the fly
**************************************************************

***** call sql3 '''abc'''

DParm1 s 10a
DSQLStmt s 100a inz('Update pfdata set -
D odddat = ')

C *entry plist
C parm parm1

/free
// Build the SQL statement to be executed
SQLStmt = %trim(SQLStmt) + parm1;
/end-free

C/exec sql
C+ execute immediate :SQLStmt
C/end-exec

/free
if sqlstt <> '00000';
// handle the error condition
else;
// completed normally - show how many records were updated
dsply sqler3;
endif;

*inlr = *on;
/end-free
º 
! 3  Y
( 3
*< %&' 
   R7%*
! %&'( $
! =$ + 3 $ $>" 
$$   (5 $$ ( 3(+  (
$
! +/*7$$    ' C+G&
!   3 '  3 3 Y
 33    
 4
F  /$ - > DC* /@+ DC2@+ Y
+DC 
9 
´ (  $ 
 
! 73 9MKhost-identifier *2-*+!7/%Khost-indicator
! + 
+7*27/@> 7+G@ 7'@0!
= *27/
! 73 $ 3(K
! 2 ' (   D9
! 2 '    $$  D9,
! +3   ' 
! 2 ': ('(;
! ! 3  $:'#;
! -   $':   $ 3  ( 3 3'
 3  3$ ;
! $   3  '  '
!    $$
! ! '  3  '
! !   =. 7%   
! / 3    
! % 3$   3      
3 '1
´ (  $ 
 
D MaxSize s 15s 0
D AvgSize s 15s 0
D MaxTxt s 30a
D DivVal s 15s 0
D Ind_avg s 5I 0
D Ind_max s 5I 0
D Ind_txt s 5I 0
D Ind_div s 5I 0

C/exec sql
C+ select avg(odobsz), max(odobsz), max(odobtx), 9/0
C+ into :avgsize :Ind_avg, :maxsize :Ind_Max,
C+ :maxtxt :Ind_txt, :divval :ind_div
C+ from pfdata
C/end-exec
|   
 
´$   
-
|   /
! Y
5'$
! 73$$ (  3 $   
!  $  3
! +    
 $$|  
! 0    $$  3 
 3$$ $  $ $ 
! 2 (      $( 3'
    3
! +     6 
! = 3$    3   
! G' 3  9    $( 3( Y

$$ 
! +      $$ 
! +5      %&$
'$|
  
! Y

!    


: Y
 
 ;

! 
!   $  ù'
"# |   
!   $ 
! %&@+/./
@ 1
! +% !7 %/+ -=%   Y
   3C&6   3
 
! !   3'   Y
   1* 
  $  1
! !3 3'$ $ (  $( 
9      $    
!   C&6
! 2$    3$
! +$( '  $:C+!

%;
"# |   
"#
! |   
  
   
 

!    
 
 |

Dadd1n s 3p 0
Dadd2n s 3p 0
Dresult s 6p 0

C *entry plist
C parm add1n
C parm add2n
C parm result

C*
/free
result = add1n + add2n;
return;
/end-free

|   
! = 2'    : (;
! /  3   3   3
  %=2 Y
7
! /   3 3 3 3 Y

  *$ / $ 
!
 
*  '@Y @/-.+@ 1

+% !7 %/+ -=% %+7 7: !  3


*2!--- +*!
:@#;@ $ 
*2!--,- +*!
:@#;@
/=7S% =
7S- +*!
:@#;;

!2&=!& %&

 +*>*+%+7 7
L7 %2!
2! H%+7 7H
!%! 7 % 78
& 2 %!
T
"# 
|   
!         
  
 

  |

d result s 6p 0
d a s 3a
d b s 3a
d an s 3p 0
d bn s 3p 0
C *entry plist
C parm a
C parm b

c move a an
c move b bn
C/exec sql
C+ CALL PRCTEST (:an, :bn, :Result)
C/end-exec
c dsply result
c move *on *inlr
| |   
!   Y

 
! 0  Y

  3 (33   
 $
! +'  *
+$( 3 Y

! %4  
!   0"%,33
! 0"%, 0"%I
!   3' Y
-'$ <  
!   3' 3*
++$
! 0I%33
!   3' Y
-'$ <   3'$ 3
    '

 
*  '
.0º
! = 3- 0($  3$
Set Option DbgView =*Source
! 8   3$  3%=2 Y
7

! - ( 3 36 3   3$ 


  3'( Y7 
! 7>(  3'(  $ 
! 0I%99 *#"
! 0I%,99 *#I,

! 7'( 3   @$ 0I%, ( 3'  


$  $  3 $

! *0I%, $ 3%  Y


 $ ((2' 
 3 $ $$ 3 1

! 7>5'0I% */I@ */#@ */I


|$|    
- +
!% +/27*2= G!2-
%>/%O O 
.
7 ODT
T

77/7+/=27D#T
7 OD#T
/ 2+,T
G*
!7O 2-D#-/
> 7+G+,*27/
*.2! @
*.+/=27T
77/7+/=27D7/7+/=27F
*.+/=27T
2-G*
T

+
/ +,T
2-T
´$ % "1
! Y+-Y+- L+  $ 
! Y+-
! ' 
! 3 5*  ' Y
  @  
3( Y
K
CALL QCMD
! Y+- L+
!  +
$ 
CALL QSS/QCMDEXC ('CHGQRA QRTIMLMT(120)',
0000000022.00000)
CALL QSS.QCMDEXC('chgcurlib curlib(fred)',0000000023.00000);
´$   
!    @   
( ' 
! +(  Y
 :%&@ 1;
!    2' 
! -( 
! %3   2(@>  @ Y

! +  =  


 3   Y

´$   


´$   
´$   
´$   
! $ Y
  
 1C@   : @3$ ;
 

! % 
    :'O @$ O ;
> 

! -  Y

   Stored
Procedures, Triggers and User Defined Functions
on DB2 Universal Database for iSeries
$ 
$ 
! %  Y
  '(6
    
 1
! ù(   '
 ! 3 3 
     
 $ $ 3 $ $
$1
| * $ 
i 
!  -  3 60.$$   
= 3$3$3    $$ 
! 7  - K
 +/2D'1 6 :S!-/-.1+ S;
 +-D'1 6 :S!-/-.1+S;
C$ 3 C
+/21/$S- 2D8! "##T=*-D T-D$(TS
1 ' D
1  DS414 :H  $$:C;H@########,#1#####;S
1  
C 3'    3"##4 $    C

-!2(*.1- 1-.,1 1-.,+ 


1+  DS-!7! /=%+ D"##T=*-D T-D$(S
-!2(*.1- 1-.,1 1-.,+
1+ D
1+7 DS414 :H  $$:C;H@########,#1#####;S
1/$:;
1  2Y :;
1+:;
! 7 - 
1  DS414 :HH@#########1#####;A
1  
!   3YU-! /*2*76  3Y %0 %  
|ù*  
4  H,H
% !%     Y
7%*2&$ 1
/- 1
/-  1
%(  =-!7 1
- 
82 7 7
*.
/- 1
/-  1
%(  =-!7 1
- 
82 7 7
*.,
/- 1
/-  1
%(  =-!7 1
- 
82 7 7
*.
|ù*  
!$ 3(>*
!1
! $ 3( 1
!$ 3(>*
.1
! $ 3( 1
!$ 3  >*
.1
>>*
!$6$ 1
!$ 3  >*
!1
>>*
.$6$ ,1
|ù*  
! * 

*-111111K+*",>
-  111111K,#7 111111K#K,JK,J

1111K!$ 3  >*


!1

+ 11111K7$'$ 34 $ )  


$ $ 3  ( 3 3  173
$ 3(>*
!>*
!
7 7
*.1
* 3   3 (@ 34 $ )
3  $ 173 
   $ 
 '  34 1  3 
   3    3$
 $ 1   3  
   3   1*  $  3  
º  
! (((1"##$1
! (((1 ( 1  $ 4  @ 
! *. -., 
! 3 $K$ 1 11'I,,," 13 V)3)3#13 
! Preparing for and Tuning the V5R2 SQL Query Engine on DB2 Universal Database
for iSeries Redbook
! http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg246598.html?Open
! Stored Procedures, Triggers and User Defined Functions on DB2 Universal Database
for iSeries Redbook
! 3 3  *. 3 *5'   
! 3 $K$ 91 11% 1#IJIJI,I##IIJ,V/$- 
! *. !$$ -'$    
! +    Y
$
! 3 $K(((911'    O$'13 V$'
! -., 7$
3 $K(((911'',, $13 

 23333


$4 
     
'''