1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (6) Stock Iamge基本操作/カスタマイズ

Last updated at Posted at 2023-06-29

はじめに

ここではWazi aaSのStock Imageを使用する場合の基本的な操作やカスタマイズの例について記載していきます。

※当記事は 2023年3月時点で提供されるStock Image: ibm-zos-2-4-s390x-dev-test-wazi-7 について記載しています。

関連記事

Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (1) 概要
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (2) 仮想サーバー作成
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (3) ネットワーク構成
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (4) Wazi aaS への接続
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (5) Stock Iamge確認
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (6) Stock Iamge基本操作/カスタマイズ
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (7) Wazi Image Builder
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (7)' Wazi Image Builder - Trouble Shootingメモ
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (8) Wazi aaS仮想サーバーの複製
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (9) TerraformによるWazi aaS仮想サーバーの管理

基本操作

シリアル・コンソール

参考: Connecting to z/OS virtual server instances - Using serial console from IBM Cloud UI

ブラウザからIBM Cloudにログインし、Wazi aaS仮想サーバーのシリアル・コンソールに接続することで、IPL操作やMVSコマンドの実行などが行えます。いわゆるマスター・コンソールの簡易版のようなイメージです。

仮想サーバー・インスタンスの一覧画面を開きます。Wazi aaS仮想サーバーの"アクション"アクションをクリックし、プルダウン・メニューから"シリアル・コンソールを開く"を選択します。
image.png

以下の画面が開くので、Ctrl+Lを押します(画面の指示とは違うので注意!)。
image.png

Command欄にhelpと入力します。
image.png

使用できるコマンドのヘルプが表示されます。
image.png

oprmsgコマンドを使用すると、MVSコマンドを投入できます。「D T」(タイムスタンプの表示)を試してみます。
Command欄にoprmsg 'D T'と入力してみます。
image.png

結果
image.png

MVSコマンドを投入できることが確認できました。

※タブキーでConsole出力欄とCommand入力欄の切り替えができます。Console出力欄にフォーカスが当たっている状態で↑↓キーで表示をスクロールできます。

シャットダウン

参考: Shutting down z/OS virtual server instances

※IBM Cloudの管理画面から仮想サーバーの停止をいきなり実施してしまうと、z/OS上の各サブシステムが稼働中に強制終了してしまう状況になります(いきなり電源が落ちるイメージ)。次回起動時に影響が出る可能性がありますので、各サブシステムを正常終了させてから仮想サーバーの停止を行うようにしてください。

Stock ImageではNetviewのスクリプトでサブシステムをまとめて停止させることができますので、シリアル・コンソールから以下のコマンドを投入します。

oprmsg '%netv shutsys'

image.png

一通りサブシステムの終了が終わると、最終的にNetveiew自体のアドレス・スペースも終了します。
image.png

アドレス・スペース確認 ⇒ RACFのアドレススペースだけ残っている
image.png

念のためRACFを停止させておきます。以下のコマンドを投入。

oprmsg '<STOP'

image.png

再度アドレス・スペースの確認 ⇒ 全てのアドレス・スペースが停止されました。
image.png

IBM Cloudの管理画面にて仮想サーバー・インスタンスの一覧から、Wazi aaS仮想サーバーの右端のアクションメニューをクリックし、プルダウンメニューから"停止"を選択
image.png

停止をクリック
image.png

Wazi aaS仮想サーバーが停止されました。
image.png

IPL

Wazi aaSの仮想サーバーを開始すればz/OSまで自動で起動します。
image.png

参考: Changing active I/O software configuration for z/OS virtual server instances

Note: z/OS stock images always IPL with LOADxx member LOADK2 found in SYS0.IPLPARM.

image.png

シリアル・コンソールからアドレス・スペースの状況を確認し、TSOが上がってくればTSOへのログインが可能になります。

カスタマイズ例

タイム・ゾーン

デフォルトではCLOCKxxのTIMEZONE指定がTIMEZONE W.04.00.00となっています。これを日本の標準時TIMEZONE E.09.00.00に変更します

SYS1.PARMLIB(CLOCK00)
OPERATOR NOPROMPT    
TIMEZONE E.09.00.00  
STPMODE NO           
STPZONE NO           
ETRMODE NO           
ETRZONE NO           

USS側の設定も変更します。

/etc/profileを編集し、TZ=EST5EDT となっているところを TZ=JST-9に変更します。

/etc/profile抜粋
/etc/profile抜粋
...
# ======================================================================
#                      TZ environment variable
#                      -----------------------
# Specifies the local time zone.
# ======================================================================
TZ=JST-9
export TZ
...

自動起動コンポーネントの制御

Stock Imageに含まれるいくつかのアドレス・スペースはNetview管理のスクリプトで自動起動されるよう制御されています。自動起動の有無は、IEASYMxxの変数で制御できるようになってます。以下のIEASYMxxの各変数でIPLと指定されているコンポーネントはIPL時に自動起動の対象となります。NOSと指定されているコンポーネントはIPL時に自動起動されません。(IPL時に自動起動させたくないコンポーネントについてはIPLNOSに変更すればOKです。)

IEASYMxx抜粋
K2.PARMLIB(IEASYMK2)抜粋
...
SYMDEF(&DBGMGR='IPL')
SYMDEF(&EQAPROF='IPL')
SYMDEF(&EQARMTD='IPL')
SYMDEF(&CICSTS61='IPL')
SYMDEF(&CSQ9MSTR='IPL')
SYMDEF(&CSQ9CHIN='IPL')
SYMDEF(&IMS15RL1='IPL')
SYMDEF(&IMS15CR1='IPL')
SYMDEF(&DBD1MSTR='IPL')
SYMDEF(&IZUANG1='IPL')
SYMDEF(&IZUSVR1='IPL')
SYMDEF(&JMON='IPL')
SYMDEF(&RSED='IPL')
SYMDEF(&RSEAPI='IPL')
SYMDEF(&DBB='IPL')
SYMDEF(&DBBS='IPL')
SYMDEF(&ZOSCSRV='IPL')
...

TSOユーザー作成

TSOユーザー作成用のJCLサンプル
//ADDUSER  JOB   (),
//         CLASS=A,
//         MSGCLASS=D,
//         MSGLEVEL=(1,1),
//         TIME=1440
//*
//S0       EXEC PGM=IKJEFT01,DYNAMNBR=75,TIME=100,REGION=6M
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTERM  DD DUMMY
//SYSUADS  DD DSN=SYS1.UADS,DISP=SHR
//*SYSLBC   DD DSN=SYS1.BRODCAST,DISP=SHR
//SYSTSIN  DD *
  ADDUSER (TEST01) PASSWORD(PSWD) OPERATIONS   -
   OWNER(SYS1) DFLTGRP(SYS1)                                 -
   TSO(ACCTNUM(ACCT001) PROC(DB2PROC) JOBCLASS(A) MSGCLASS(X) -
      HOLDCLASS(X) SYSOUTCLASS(X) SIZE(4048) MAXSIZE(0)) -
   OMVS(UID(100100) HOME(/u/TEST01) PROGRAM(/bin/sh))
  PERMIT ACCT001   ACCESS(READ) CLASS(ACCTNUM) ID(TEST01)
  PERMIT DB2PROC   ACCESS(READ) CLASS(TSOPROC) ID(TEST01)
  PERMIT JCL       ACCESS(READ) CLASS(TSOAUTH) ID(TEST01)
  PERMIT OPER      ACCESS(READ) CLASS(TSOAUTH) ID(TEST01)
  PERMIT ACCT      ACCESS(READ) CLASS(TSOAUTH) ID(TEST01)
  PERMIT CONSOLE   ACCESS(READ) CLASS(TSOAUTH) ID(TEST01)
  SETROPTS RACLIST(ACCTNUM) REFRESH
  SETROPTS RACLIST(TSOPROC) REFRESH
  SETROPTS RACLIST(TSOAUTH) REFRESH
  CONNECT TEST01 GROUP(IZUADMIN)
/*
//*----------------------------------------------------------------
//ALIAS   EXEC PGM=IDCAMS
//SYSPRINT DD  SYSOUT=*
//SYSIN    DD  *
 DEF   ALIAS(NAME(TEST01) REL(CATALOG.VS01.TSO))
/*
//

管理用のユーザーを追加するイメージのサンプルです。以下のような設定でユーザーを作成しています。

  • ユーザー: TEST01
  • 初期パスワード: PSWD
  • OMVS-UID: 100100
  • OMVS-Home Directory: /u/TEST01
  • z/OSMF: IZUADMINグループ

DASD追加

Stock Imageで提供されているDASDは大抵SMS管理になっていて、ACS Routineに定義されていないユーザー作成のデータセットを作成する場合、通常はUSRVS1というVOLUMEが使われます。このVOLUMEはデフォルトだと空きが約10GB程度です。
これ以上のサイズのDASDが必要な場合は追加が必要になります。
DASDはIBM Cloud上のリソースでいうと、実体としてはVPC上のBlock Storageが使われます。Block Storageを作成してWazi aaSの仮想サーバーに割り当てると、それが1つのDASDとして利用できるようになります。

参考: (2) 仮想サーバー作成 - データ・ボリュームの作成

上の記事でも記載したように、65,520シリンダー(≒55GB)を超えるサイズのDASDを扱う場合は、z/OS側ではEAV(Extended Address Volume)という機能が使われますので、65,520シリンダーを超えるエリアを使用する際にはEAV用の設定が必要になります(PARMLIB IGDSMSxxでのUSEEAV=YES指定やBREAKPOINTVALUE指定、JCL DDステートメントでのEATTRオプション指定など)。
EAVを使用したくなければ、データ・ボリューム(Block Storage)の作成単位を55GB以下にしておくことをおすすめします。

ただし、以下の通り1インスタンスで使用できるデータ・ボリュームの数には制限がありますのでそちらもご注意ください(12個は少ない...)。
参考: Block Storage for VPC の概要

Block Storage for VPC は、インスタンスの作成時にブート・ボリュームとしてインスタンスに接続するか、または 2 次データ・ボリュームとして接続する、ブロック・レベルのボリュームを提供します。 リージョン内のアカウントごとに最大 300 個の Block Storage for VPC ボリュームを構成できます。 このクォータの引き上げを要求するには、サポート Case を開き、さらに多くのボリュームを必要とするゾーンを指定してください。
一度に 1 つの仮想サーバー・インスタンスに接続できるブート・ボリュームは 1 つのみですが、最大 12 個の Block Storage for VPC データ・ボリュームを単一インスタンスに接続できます。 その他の制限については、『ボリューム接続の制限』を参照してください。

1VOL:50GBにするとして、12個までとなると 50GB x 12 = 600GB くらいです。これ以上必要ということであればEAVの利用を検討する必要があります。

参考: Configuring additional disk volumes for z/OS virtual server instances

If your z/OS instance is created by using one of the IBM-provided z/OS stock images, the size of the new block storage volume must not exceed 55 GB. The storage volumes larger than 55 GB are considered to be Extended Address Volumes (EAV). To work around this restriction and use larger volumes, you must run the command SETSMS USEEAV(YES) on the z/OS instance before you attach a larger block storage device. If you are using EAV volumes, you must also ensure the intended use case for the additional volume supports EAV.
In addition to running the command SETSMS USEEAV(YES), you also need to harden this new system setting in system parmlib in case the z/OS system is shut down and re-IPLed. Otherwise, the setting might be reverted to the default USEEAV(NO).

DASD追加手順例

基本的には以下のガイドに従ってDASD追加を行います。

参考: Configuring additional disk volumes for z/OS virtual server instances

(1)Block Storageの作成

一般的な手順に従って、DASDとして認識させたサイズのBlock Storageを確保し、Wazi aaS仮想サーバーに割り当てます。
(ここでは詳細手順は省略)

(2)アタッチされるアドレスの確認

Wazi aaS仮想サーバーにBlock Storageが割り当てられると、TSOログオン時に以下のメッセージが表示されます。

 IKJ56455I IBMUSER LOGON IN PROGRESS AT 14:17:43 ON APRIL 24, 2023    
  Preparing attached block storage vdd of size 500G                   
  Attached block storage vdd1 on address DE02                         
 READY                                                                

上の例では、500GBのDASDがDE02というアドレスにアタッチされたことが分かります。
あとは通常のz/OSでの手順と同様、このアドレスをDASDとしてイニシャライズ、オンラインにして利用すればよいです。

(3)DASDイニシャライズ

以下のようなJCLを流してイニシャライズを行います。(non-SMSの例)

INITDASD例
//INITDASD JOB CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//*
//* MOD-3: VTOC(0,1,974) INDEX(65,0,50)
//* MOD-9: VTOC(0,1,2939) INDEX(196,0,150)
//*
//FORMAT   EXEC PGM=ICKDSF,REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
 INIT UNIT(DE02) NOVALIDATE NVFY VOLID(TEMP01) PURGE -
   VTOC(0,1,2939) INDEX(196,0,150)
/*

Reply聞かれるのでUを返す

*0006 ICK003D REPLY U TO ALTER VOLUME DE02 CONTENTS, ELSE T                
 R 6,U                                                                     
 IEE600I REPLY TO 0006 IS;U                                                
 ICK061I   DE02 VTOC INDEX CREATION SUCCESSFUL: VOLUME IS IN INDEX FORMAT  
 IEF404I INITDASD - ENDED - TIME=09.16.43                                  
 $HASP395 INITDASD ENDED - RC=0000                                         
 $HASP309 INIT 6    INACTIVE ******** C=A                                  
 SE '09.16.43 JOB00680 $HASP165 INITDASD ENDED AT N1 MAXCC=0000',LOGON,    
 USER=(IBMUSER)                                                            

(4)オンライン

以下のコマンドでDE02をオンラインにします。

V DE02,ONLINE                                                     
IEE476I UNIT DE02 INFORMATION     518                             
IEE763I NAME= IECDINIT CODE= 0000000001070401                     
IEC816I DE02 VARY ONLINE - CU AUTHORIZATION FAILED SER=IBM-00002  
IEE764I END OF IEE476I    RELATED MESSAGES                        
IEE302I DE02     ONLINE    

確認

D U,,,DE00                                           
IEE457I 09.19.40 UNIT STATUS 521                     
UNIT TYPE STATUS        VOLSER     VOLSTATE      SS  
DE00 3390 A             USRVS1     PRIV/RSDNT     0  
DE01 3390 A             DEVVS1     PRIV/RSDNT     0  
DE02 3390 O             TEMP01     PRIV/RSDNT     0  
DE03 3390 F-NRD                        /RSDNT     0  
DE04 3390 F-NRD                        /RSDNT     0  
DE05 3390 F-NRD                        /RSDNT     0  
DE06 3390 F-NRD                        /RSDNT     0  
DE07 3390 F-NRD                        /RSDNT     0  
DE08 3390 F-NRD                        /RSDNT     0  
DE09 3390 F-NRD                        /RSDNT     0  
DE0A 3390 F-NRD                        /RSDNT     0  
DE0B 3390 F-NRD                        /RSDNT     0  
DE0C 3390 F-NRD                        /RSDNT     0  
DE0D 3390 F-NRD                        /RSDNT     0  
DE0E 3390 F-NRD                        /RSDNT     0  
DE0F 3390 F-NRD                        /RSDNT     0  

VTOC情報

Essssssssssssssssssssss VTOC Summary Information sssssssssssssssssssssssN 
e Volume . : TEMP01                                                     e 
e                                                                       e 
e Unit . . : 3390               Free Space                              e 
e                                                                       e 
e  VTOC Data                    Total              Tracks         Cyls  e 
e  Tracks  . :     2,939        Size  . . :     8,778,355      585,223  e 
e  %Used . . :         1        Largest . :     7,798,770      519,918  e 
e  Free DSCBS:   146,938        Free                                    e 
e                               Extents . :       3                     e 
e                                                                       e 
e  Volume Data                  Track Managed      Tracks         Cyls  e 
e  Tracks . :     8,781,570     Size  . . :       979,585       65,305  e 
e  %Used  . :             0     Largest . :       979,480       65,298  e 
e  Trks/Cyls:            15     Free                                    e 
e Command ===>                                                          e 
e  F1=Help    F2=Split   F3=Exit    F9=Swap   F12=Cancel                e 
DsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssM 

EAV有効化

参考: Controlling allocations to extended address volumes (EAVs)

65,520シリンダー(≒55GB)を超えるサイズのDASDを扱う場合、EAV(Extended Address Volume)機能を有効化する必要があります。

動的変更: MVSコマンドSETSMSを使用してオプションUSEEAV(YES)を動的に設定します。

SETSMS USEEAV(YES)                    
IEE712I SETSMS   PROCESSING COMPLETE  
SMSオプション設定確認
D SMS,OPTIONS                                      
IGD002I 13:03:26 DISPLAY SMS 696                   
ACDS     = VSPROV.ACDS                             
COMMDS   = VSPROV.COMMDS                           
ACDS LEVEL = z/OS V2.4                             
SMS PARMLIB MEMBER NAME = IGDSMS00                 
INTERVAL = 5           DINTERVAL = 150             
SMF_TIME = YES          CACHETIME = 3600           
CF_TIME = 3600          PDSE_RESTARTABLE_AS = NO   
PDSE_BMFTIME = 3600     PDSE1_BMFTIME = 3600       
PDSE_LRUTIME = 60       PDSE1_LRUTIME = 60         
PDSE_LRUCYCLES = 15    PDSE1_LRUCYCLES = 15        
LOCAL_DEADLOCK = 15     GLOBAL_DEADLOCK = 4        
REVERIFY = NO           DSNTYPE = PDS              
ACSDEFAULTS = NO        PDSESHARING = NORMAL       
OVRD_EXPDT = NO         SYSTEMS = 32               
PDSE_HSP_SIZE = 0MB   PDSE1_HSP_SIZE = 0MB         
USE_RESOWNER = YES      RLS_MAX_POOL_SIZE = 100MB  
RLSINIT = NO            RLSTMOUT = 0               
COMPRESS = GENERIC                                 
LOG_OF_LOGS =                                      
RLS_RECOV_LOGGING = NO                                           
CICSVR_INIT = NO        CICSVR_DSNAME_PREFIX = DWW.              
CICSVR_RCDS_PREFIX = DWW                                         
CICSVR_GRPNAME_SUFFIX = PROD                                     
CICSVR_ZZVALUE_PARM =                                            
CICSVR_UNDOLOG_CONTROL =                                         
CICSVR_UNDOLOG_PREFIX = DWW                                      
CICSVR_BACKOUT_CONTROL =                                         
CICSVR_GENERAL_CONTROL =                                         
IGD002I 13:03:26 DISPLAY SMS                                     
Rls_MaxCfFeatureLevel = Z                                        
RlsAboveThebarMaxPoolSize = 0  RlsFixedPoolSize = 0              
PDSE_MONITOR = (YES,0,0)  PDSE1_MONITOR = (YES,0,0)              
PDSE_DIRECTORY_STORAGE = 2000M PDSE1_DIRECTORY_STORAGE = 2000M   
PDSE_BUFFER_BEYOND_CLOSE = NO   PDSE1_BUFFER_BEYOND_CLOSE = NO   
GDS_RECLAIM = YES       DSSTIMEOUT = 0                           
BLOCKTOKENSIZE = NOREQUIRE       FAST_VOLSEL = OFF               
USEEAV = YES            BREAKPOINTVALUE = 10                     
OAMPROC =               SUPPRESS_DRMSGS = NO                     
OAMTASK =           PDSE_SYSEVENT_DONTSWAP = NO                  
DB2SSID =                SAM_USE_HPF = YES                     
CA_RECLAIM = DATACLAS                                          
PS_EXT_VERSION = 1      VSAM_ZHYPERLINK = NO                   
SUPPRESS_SMSMSG = IGD17054I(NO ) IGD17227I(NO ) IGD17395I(NO ) 
                  IGD17002I(NO )                               
HONOR_DSNTYPE_PDSE = NO   PDSE_VERSION = 1                     
USER_ACSVAR = ( , , )     BYPASS_CLUSTER_PREFERENCING = NO     
MAXGENS_LIMIT = 0                                              
PDSE_PENDING_DELETE_INTERVAL = 0                               
ACS_LOGWRITES = DISABLE                                        
ACS_ROUTINE_DEBUG = (DISABLE)                                  
IGD002I 13:03:26 DISPLAY SMS                                   
TRACE    = ON     SIZE = 128K     TYPE = ERROR                 
  JOBNAME = *    ASID = *                                      
  TRACING EVENTS:                                              
    MODULE = ON   SMSSJF = ON   SMSSSI = ON   ACSINT = ON      
    OPCMD  = ON   CONFC  = ON   CDSC   = ON   CONFS  = ON      
    MSG    = ON   ERR    = ON   CONFR  = ON   CONFA  = ON      
    ACSPRO = ON   IDAX   = ON   DISP   = ON   CATG   = ON      
    VOLREF = ON   SCHEDP = ON   SCHEDS = ON   VTOCL  = ON      
    VTOCD  = ON   VTOCR  = ON   VTOCC  = ON   VTOCA  = ON    
    RCD    = ON   DCF    = ON   DPN    = ON   TVR    = ON    
    DSTACK = ON   UAFF   = ON   DEBUG  = ON                  
VOLSELMSG = (OFF,0)    TYPE = ERROR    JOBNAME = *           
    ASID = *  STEPNAME = *                                   
    DSNAME = *                                               

静的設定: IPL時にも有効化する場合は、IGDSMSxxにUSEEAV(YES)を追記します。

SYS1.PARMLIB(IGDSMS00)
SMS                        
ACDS(VSPROV.ACDS)          
COMMDS(VSPROV.COMMDS)      
INTERVAL(5)                
SYSTEMS(32)                
TRACE(ON)                  
TYPE(ERROR)                
USEEAV(YES)                

TOD変更

参考: Setting the time-of-day clock

以下の手順でIPLすることでTODの変更をすることができました。
恒常的なカスタマイズというよりは、システム・タイムの設定を変更して特定の日時でテストしたい場合の一時的な設定変更のイメージです。

CLOCKxxで OPERATOR PROMPTを指定します。

例:

SYS1.PARMLIB(CLOCK00)
OPERATOR PROMPT    
TIMEZONE E.09.00.00  
STPMODE NO           
STPZONE NO           
ETRMODE NO           
ETRZONE NO 

※PARMLIBの変更はIPL時の挙動に大きく影響します。場合によってはIPLできなくなる可能性がありますのでご注意ください。

その後、Wazi aaSをシャットダウンし、IPLします。

シリアル・コンソールを開くと、IPLの際以下のようなメッセージが出力されます。

IEA888A UTC   DATE=2023.150,CLOCK=12.05.19                              
IEA888A LOCAL DATE=2023.150,CLOCK=21.05.19  REPLY U, OR UTC/LOCAL TIME  

これに対してoprmsgコマンド経由でReplyを以下のように返します。
oprmsg 'R 0,DATE=2024.001,CLOCK=10.00.00,UTC'
image.png

次にReplyでUを返すと、指定した時刻が反映されます。
oprmsg 'R 0,U'
image.png

反映された時刻が確認できるので、再度ReplyでUを返します。
oprmsg 'R 0,U'
image.png

その後IPLが進んでいき、指定した日時で起動されました。

FTPカスタマイズ

クラウド環境だとポート番号でネットワーク通信を制御したいことがよくあります。デフォルトだとFTPのデータ通信用のポートは1024~65535のいわゆるエフェメラル・ポートと呼ばれる範囲から動的に割り当てられることになり、これだと範囲が広すぎます。
Passiveモードでの通信時にデータ通信用のポート範囲を制御しておくと、ポートの制御がしやすいので制限しておくとよいでしょう。

Passiveモード時のデータ通信用ポートのレンジは"PASSIVEDATAPORTS" というFTPプロパティで制御できます。
参考: PASSIVEDATAPORTS (FTP server) statement

以下は、Passiveモードでのデータ通信用ポートのレンジを50000~50004に制限している例です。

TCPIP.TCPPARMS(FTPSDATA)抜粋
...
PASSIVEDATAPORTS (50000,50004)
...

合せて、TCPIPプロファイルも設定変更し、上のポートを予約しておきます。

K2.TCPPARMS(PROFILE)抜粋
...

PORTRANGE 50000 5 TCP AUTHPORT 
...
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?