例 10: MVS データ・セット・メンバーの内容全体を読み取る

次の例では、File Manager Service Provider REST API 呼び出しを実行して MVS メンバー内のすべてのレコードを読み取る非永続セッションを開始し、テンプレートを使用して各レコードのフィールドをマップします。

この例では、一致するテンプレートまたはコピーブックを使用して MVS データ・セットをマップするサービス・アーカイブが作成され、デプロイされていることを前提とします。例えば、サービス・アーカイブは次のプロパティー・ファイルを使用して作成できます。

name=fmExample6
description=ADMIN.JCL(TERSE) MAPPED BY MY.TEMPLATE(JCL)
version=1.0
provider=filemanager
host=10.1.1.2
port=9043
userid=admin
passwd=s3cr3t
file=ADMIN.JCL(TERSE)
template=MY.TEMPLATE(JCL)
timeout=300
connid=default

この例は、MY.TEMPLATE(JCL) で見つかったテンプレートを使用して ADMIN.JCL(TERSE) という MVS データ・セット・メンバーをマップします。この例では、生成された SAR ファイルと関連する組み込みの API が z/OS® Connect WLP サーバーにデプロイされていることを前提としています。

初回要求

データ・リソースからデータを読み取る初回 API 呼び出しには、z/OS® データ・リソースへの以降のアクセスで呼び出し元を認証できるように、HTTP Basic 認証ヘッダーが必要です。例:

Authorization : Basic dXNlcmlkOnBhc3N3b3Jk

ここで、Basic キーワードに続くストリングは、userid:password の Base64 エンコードを示します。

また、JSON ペイロードがあるすべての要求でも、値が application/json の Content-Type ヘッダーが必要です。

API 呼び出し元が渡す必要があるのは "numRecords" : 10000 だけです。session パラメーターのデフォルトは false です。
{
    "operation" :
    {
        "numRecords" : 10000
    }
}

この要求は、MY.TEMPLATE(JCL) によってマップされた ADMIN.JCL(TERSE) メンバーの内容全体の読み取りを試行し、返します。

10,000 は、単一の要求で読み取ることができるレコードの最大数です。ファイルに 10,000 を超えるレコードが含まれる場合、ブロックでレコードを読み取るためにセッションが必要になります。

{
    "records" : 
    [
        {
            "layouts" : 
            [
                {
                    "FILE" :
                    {
                        "RECORD" : "//ADMIN1   JOB(HCL),CLASS=A,NOTIFY=ADMIN"
                    }
                }
            ]
        },
        {
            "layouts" : 
            [
                {
                    "FILE" :
                    {
                        "RECORD" : "//STEP1    EXEC PGM=AMATERSE,PARM=PACK"
                    }
                }
            ]
        },
        {
            "layouts" : 
            [
                {
                    "FILE" :
                    {
                        "RECORD" : "//SYSUT1   DD DISP=SHR,DSN=ADMIN.BIN"
                    }
                }
            ]
        },
        {
            "last" : true,
            "layouts" : 
            [
                {
                    "FILE" :
                    {
                        "RECORD" : "//SYSUT2   DD DISP=SHR,DSN=ADMIN.BIN.TERSED"
                    }
                }
            ]
        }
    ]
}

サービス・プロバイダーによって保守されているセッションがなかったため、呼び出し元は File Manager セッションを終了する 4 番目の要求を出す必要はありません。返される 2 番目のレコードがファイルの最後であるため、last が true に設定されています。