例 4: IMS データベースを順次読み取る

次の例では、File Manager Service Provider REST API 呼び出しを実行して IMS データベースからセグメントを読み取る永続 IMS セッションを開始し、File Manager/IMS ビューを使用して各セグメントのフィールドをマップします。

初回要求

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

Authorization : Basic dXNlcmlkOnBhc3N3b3Jk

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

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

初回の要求では、データをマップするために、IMS サブシステムの名前、IMS データベース名、IMS 領域タイプ、および File Manager/IMS ビューも必要です。

{
    "resource" :
    {
        "ssid" : "IFB2",
        "database" : "HDOU#1",
        "regionType" : "DLI"
    },
    "view" :
    {
        "viewName" : "IMS.VIEW(HDOU#1)"
    },
    "operation" : 
    {
        "numSegments" : 1,
        "session" : true
    }
}

この要求では、IMS.VIEW(HDOU#1) に保管されている IMS ビューによるフィルターに従い、IMS サブシステム IFB2 内の File Manager/IMS データベース HDOU#1 の先頭から 1 セグメントを読み取ります。この要求では、psbMember が指定されていないため、動的 PSB が使用されます。また DLI の領域タイプが規定されます。この要求では、IMS.VIEW(HDOU#1) を使用して、応答でセグメント・フィールドをマップアウトします。

File Manager/IMS が true に設定されているため、サービス・プロバイダーは session セッションを維持します。セッションは、以降、session が false に設定された要求が実行されるまで、またはセッションでアクティビティーがない状態でデフォルトのタイムアウト期間 (5 分) が経過するまでアクティブのままです。

session が true に設定されている場合、呼び出し元は初回要求でトークンが戻ることを期待し、resource パラメーターか view パラメーター、または Basic 認証ヘッダーを渡す必要なく後続の呼び出しでトークンを使用できます。

成功時の応答

成功時の応答 (HTTP ステータス・コード 200) は次のようになります。

{
    "segments": 
    [
        {
            "segment": 
            {
                "layout": "PARTROOT",
                "segname": "PARTROOT",
                "fields":
                [
                    {
                        "field": "ROOT-TYPE",
                        "type": "AN",
                        "value": "02"
                    },
                    {
                        "field": "ROOT-KEY",
                        "type": "AN",
                        "value": "922399-001"
                    },
                    {
                        "field": "ROOT-SPACES",
                        "type": "AN",
                        "value": " "
                    },
                    {
                        "field": "ROOT-WOSNAME",
                        "type": "AN",
                        "value": "CONNECTOR"
                    }
                ]
            }
        }
    ],
    "token": "5Umys+Ng8fX18Pjx9fjy82D28/Lw9PA=" 
}

後続の読み取り要求

API 呼び出し元は、応答トークンを使用して後続の要求を実行し、サービス・プロバイダーによって保守される FM/IMS セッションを再使用できるようになります。例:

{
    "operation" :
    {
        "numSegments" : 1,
        "session" : true,
        "token": "5Umys+Ng8fX18Pjx9fjy82D28/Lw9PA="
    }
}

トークンを渡すとき、resource パラメーターまたは view パラメーターはトークンと関連付けられたセッションによって既に知られているため、呼び出し元はこれらのパラメーターを渡す必要がありません。

API 呼び出し元は、最後のセグメントが読み取られたことを示す、last が true に設定された応答セグメント・オブジェクトがあるまで、1 つ以上のセグメントを読み取り続けることができます。例:

{
    "segments" :
    [
        {
            "last" : true,
    … other response fields
        }
    ]
}

セッションの終了

現時点では、API 呼び出し元はアクティブな FM/IMS セッションを終了する要求を送信します。

{
    "operation" :
    {
        "numSegments" : 0,
        "session" : false,
        "token": "5Umys+Ng8fX18Pjx9fjy82D28/Lw9PA="
    }
}

トークンが有効な場合、session が false に設定された要求を送信すると FM/IMS セッションは常に終了します。呼び出し元は既に最後のセグメントを読み取っているため、"numSegments" : 0 を設定することでもうセグメントを読み取らないようサービス・プロバイダーに指示します。