本書をご使用になる前に、IBM Rational Developer for System z 資料に関する特記事項に記載されている情報をお読みください。
本書は、IBM Rational Developer for System z バージョン 7.6.1 (プログラム番号 5724-T07)、および新しい版で明記されていない限り、これ以降のすべてのリリースおよびモディフィケーションに適用されます。
お客様の環境によっては、資料中の円記号がバックスラッシュと表示されたり、バックスラッシュが円記号と表示されたりする場合があります。
第5版第1刷 2010.5
本書では、IBM Rational Developer for System z の機能の構成について説明しています。 ここには、ご使用の z/OS® ホスト・システム上に IBM Rational Developer for System z バージョン 7.6.1 を構成する方法が記載されています。
これ以降、本書では以下の名前が使用されています。
IBM WebSphere Developer for System z、IBM WebSphere Developer for zSeries、および IBM® WebSphere Studio Enterprise Developer をはじめとする以前のリリースについては、当該リリースのホスト構成ガイドおよびプログラム・ディレクトリーに記載されている構成情報を使用してください。
本書は、IBM Rational Developer for System z バージョン 7.6.1、FMID HHOP760 を z/OS ホスト・システムにインストールおよび構成しようとするシステム・プログラマー向けに書かれています。
ここには、製品の完全セットアップを行うために必要となるさまざまなステップが、デフォルト以外のシナリオも含め、詳細にリストされています。本書を使用するには、z/OS UNIX システム・サービスおよび MVS™ ホスト・システムに精通している必要があります。
ここでは、「Rational® Developer for System z® バージョン 7.6.1 ホスト構成ガイド」(SC88-5663-02) (2010 年 5 月に更新) での変更点を要約します。
本文または図表に対して技術的な変更または追加が行われている場合には、その個所の左側に縦線を引いて示してあります。
本書には、「Rational Developer for System z Version 7.6 ホスト構成ガイド」(SC88-5663-01) に記載されていた情報が含まれています。
新しい情報:
ここでは、本書に記載されている情報を要約します。
この章の情報を使用して、Developer for System z のインストールとデプロイメントを計画してください。
以下のカスタマイズ・ステップは、基本的な Developer for System z セットアップ用です。
共通アクセス・リポジトリー・マネージャー (CARMA) は、Repository Access Manager (RAM) を作成する開発者向けの生産性援助機能です。RAM は、z/OS ベースの Software Configuration Manager (SCM) 用のアプリケーション・プログラミング・インターフェース (API) です。
次に、ユーザー作成アプリケーションは CARMA サーバーを始動でき、CARMA サーバーは RAM をロードし、SCM にアクセスする標準インターフェースを提供します。
IBM® Rational® Developer for System z Interface for CA Endevor® Software Configuration Manager は、Developer for System z クライアントが CA Endevor® SCM に直接アクセスできるようにします。
Developer for System z は、さまざまなコンポーネントについて共通するデプロイメントの方法として、Application Deployment Manager の特定の機能を使用します。オプションのカスタマイズにより、より多くの Application Deployment Manager のフィーチャーが使用可能になり、以下のサービスを Developer for System z に追加できます。
SCLM Developer Toolkit は、SCLM の機能を拡張するために必要なツールをクライアントに提供します。SCLM 自体はホスト・ベースのソース・コード・マネージャーであり、ISPF の一部として出荷されています。
SCLM Developer Toolkit は、Eclipse ベースのプラグインを備えており、SCLM へのインターフェースになります。また、レガシー・コード開発のすべての SCLM プロセスへのアクセスを提供するほか、メインフレーム上の SCLM と同期したワークステーション上での完全な Java および J2EE 開発 (メインフレームからの J2EE コードのビルド、アセンブル、およびデプロイメントを含む) もサポートします。
このセクションは、さまざまなオプションのカスタマイズ・タスクを結合したものです。 求めるサービスを構成するには、該当するセクションの説明に従ってください。
製品のカスタマイズの完了後、この章で説明するインストール検査プログラム (IVP) を使用して、主要な製品コンポーネントのセットアップが正常であることを検査できます。
この章では、Developer for System z で使用可能なオペレーター (またはコンソール) コマンドの概要を説明します。
この章は、Developer for System z の構成時に起きる可能性があるいくつかの一般的な問題について、ユーザーを支援するためのもので、以下のセクションで構成されています。
Developer for System z では、メインフレーム以外のワークステーション上にいるユーザーがメインフレームにアクセスできます。このため、接続要求の妥当性検査、ホストとワークステーション間のセキュアな通信の提供、およびアクティビティーの許可と監査が、製品構成の重要な側面となります。
Developer for System z ホストは、クライアントがホスト・サービスとデータにアクセスできるようにするために相互に作用する、複数のコンポーネントで構成されています。これらのコンポーネントの設計を理解しておくと、構成に関して適切な判断を行うことができます。
従来の z/OS アプリケーションとは異なり、Developer for System z は、ワークロード・マネージャー (WLM) で容易に識別できる一体構造のアプリケーションではありません。Developer for System z は、クライアントがホスト・サービスとデータにアクセスできるようにするために相互に作用する、複数のコンポーネントで構成されています。 これらのサービスの一部は異なるアドレス・スペースでアクティブとなるため、WLM 分類も異なることになります。
RSE (リモート・システム・エクスプローラー) は、Developer for System z の中核です。クライアントからの接続とワークロードを管理するために、RSE は、スレッド・プーリング・アドレス・スペースを制御するデーモン・アドレス・スペースから構成されています。デーモンは接続と管理のためのフォーカル・ポイントとして機能し、スレッド・プールはクライアント・ワークロードを処理します。
このため、RSE は Developer for System z セットアップをチューニングする場合の主要な対象となります。ただし、それぞれが 16 個以上のスレッドを使用する何百人ものユーザー、ある程度の大きさのストレージ、そして場合によっては 1 つ以上のアドレス・スペースを保守するには、Developer for System z と z/OS の両方を適切に構成する必要があります。
z/OS は高度にカスタマイズ可能なオペレーティング・システムであり、システムの (場合によっては小さな) 変更で全体のパフォーマンスに大きな影響を与えることができます。この章では、Developer for System z のパフォーマンスを向上させるために行うことができるいくつかの変更を中心に説明します。
この章には、CICS Transaction Server 管理者に有益な情報が記載されています。
この章は、Developer for System z で TSO 環境に DD ステートメントとデータ・セットを追加することにより、TSO ログオン・プロシージャーを模倣するのに役立ちます。
同じシステム上で Developer for System z の複数のインスタンスをアクティブにしたい場合があります。例えば、アップグレードをテストするときなどです。しかし、TCP/IP ポートなど、一部のリソースは共用できないため、デフォルトが常に適用可能であるとは限りません。この章の情報を使用して Developer for System z の異なるインスタンスの共存を計画してください。その後、この構成ガイドを使用して、それらのインスタンスをカスタマイズできます。
ここでは、本製品の以前のリリースと比較したインストールおよび構成上の変更点に重点を置いて説明します。また、このリリースへのマイグレーションに関する一般的なガイドラインも示します。詳細については、本書内の関連するセクションを参照してください。
この付録は、Secure Socket Layer (SSL) のセットアップ時、または既存のセットアップの検査時や変更時に起きる可能性があるいくつかの一般的な問題について、ユーザーを支援するためのものです。また、この付録には、X.509 証明書で自分自身を認証するユーザーをサポートするためのサンプルのセットアップも記載されています。
この付録は、TCP/IP のセットアップ時、または既存のセットアップの検査時や変更時に起きる可能性があるいくつかの一般的な問題について、ユーザーを支援するためのものです。
この付録は、INETD のセットアップ時、または既存のセットアップの検査時や変更時に起きる可能性があるいくつかの一般的な問題について、ユーザーを支援するためのものです。INETD は、Developer for System z によって REXEC/SSH 機能のために使用されます。
この付録は、APPC (拡張プログラム間通信機能) のセットアップ時、または既存のセットアップの検査時や変更時に起きる可能性があるいくつかの一般的な問題について、ユーザーを支援するためのものです。
この付録では、このバージョンの Developer for System z でのホストの前提条件および相互前提条件をリストします。
この章の情報を、付録E. 必要条件の情報とともに使用して、Developer for System z のインストールとデプロイメントを計画してください。
マイグレーション・ガイドでは、本製品の以前のリリースと比較したインストールおよび構成の変更点を説明します。この情報を使用して、Developer for System z の現行リリースへのマイグレーションを計画してください。
Developer for System z は、ユーザーのパーソナル・コンピューターにインストールされたクライアント、および 1 台以上のホストにインストールされたサーバーで構成されます。本書では、z/OS システムであるホストを中心に説明します。ただし、AIX® や Linux® on System z などの他のオペレーティング・システムもサポートされています。
クライアントでは Eclipse ベースの開発環境が提供されます。この開発環境は、ホストとの統一されたグラフィカル・インターフェースを容易に実現し、特に、ホストからクライアントへの作業のオフロードを可能にしてホスト上のリソースを節約します。
ホスト部分は、永続的にアクティブな各種のタスクと、臨時に開始されるタスクから構成されます。これらのタスクによって、クライアントは z/OS ホストのさまざまなコンポーネント (MVS データ・セット、TSO コマンド、z/OS UNIX のファイルとコマンド、ジョブ実行依頼、ジョブ出力など) を処理することができます。
Developer for System z は、ホスト上のサブシステムやその他のアプリケーション・ソフトウェア (CICS、Debug Tool、Software Configuration Manager (SCM) など) と対話することもできます。そのためには、Developer for System z が対話を行うように構成されていることと、これらの (相互に必要な) 製品が使用可能であることが前提となります。
Developer for System z の設計に関する基礎知識については、Developer for System z についてを参照してください。
Developer for System z が提供する機能の詳細については、Developer for System z の Web サイト (http://www-01.ibm.com/software/awdtools/rdz/) を参照するか、IBM 担当員にお問い合わせください。
Developer for System z ホストをインストールするには、SMP/E の最低限のスキルが必要です。
Developer for System z を構成するために必要なシステム・プログラミングの権限と専門知識は標準的なレベルを超えているため、他のユーザーからの支援が必要になる場合があります。表 3、および 表 4に、必須およびオプションのカスタマイズ・タスクに必要な管理者がリストされています。
Developer for System z ホスト・コンポーネントのインストールと構成にかかる時間は、以下のようなさまざまな要因に依存します。
経験則から判断すると、Developer for System z ホストをインストールして構成するプロセスには、完了までに 1 日から 4 日が必要です。これは、経験を積んだシステム・プログラマーが新規インストールを行う場合の時間要件です。問題が発生したり、必要とされるスキルが不足していたりする場合は、セットアップにさらに時間がかかります。
製品の SMP/E インストールの詳細な手順については、「IBM Rational Developer for System z Program Directory」(GI88-4172) を参照してください。
Developer for System z の複数のインスタンスを実行する計画の場合は、複数のインスタンスの実行を参照してください。
Developer for System z では、TSO コマンド・サービスへのアクセス方法を選択できます。ここで行った選択は、前提条件の必須の構成に影響します。以下のいずれかの方法を選択し、構成する必要があります。
付録E. 必要条件には、Developer for System z が機能する前にインストールされて操作可能になっていなければならない前提ソフトウェアのリストが示されています。また、Developer for System z の特定のフィーチャーをサポートするために相互に必要となるソフトウェアのリストもあります。該当するフィーチャーを設計どおりに機能させるには、これらの必要なソフトウェアをインストールし、実行時に操作可能になるようにしておく必要があります。
ご使用のバージョンの Developer for System z での、前提条件の製品と相互前提条件の製品の最新リストについては、Developer for System z オンライン・ライブラリー (http://www-01.ibm.com/software/awdtools/rdz/library/) の「Rational Developer for System z Prerequisites」(SC23-7659) を参照してください。(日本語版:「Rational Developer for System z 前提条件」(SC88-4704) も出版されています)。ご使用のサイトのポリシーによっては、そのために少し時間を要する場合もあります。これらの必要な製品が使用可能になるように、事前に計画を立ててください。次に、基本セットアップの主要な必要条件を示します。
Developer for System z を使用するには、表 1 にリストしたシステム・リソースの割り振りが必要です。オプションのサービスには、表 2 にリストしたリソースが必要です。ご使用のサイトのポリシーによっては、これらのリソースの取得にある程度の時間がかかる場合があるので、事前に計画を立ててリソースを使用できるようにしておいてください。
リソース | デフォルト値 | 情報 |
---|---|---|
APF 許可データ・セット | FEK.SFEKAUTH | PROGxx での APF 許可 |
開始タスク | JMON、RSED、および LOCKD | サーバーに関する考慮事項 |
ホスト限定使用のポート | 6715 | FEJJCNFG、JES ジョブ・モニター構成ファイル |
ホスト限定使用のポート | 4036 | rsed.envvars、RSE 構成ファイル |
クライアント/ホスト通信用のポート | 4035 | PROCLIB の変更 |
クライアント/ホスト通信用のポート範囲 | 使用可能な任意のポートを使用 | RSE サーバーに使用可能な PORTRANGE の定義 |
アプリケーション・セキュリティー定義 | FEKAPPL に対する汎用アクセス READ | RSE のアプリケーション保護の定義 |
PassTicket セキュリティー定義 | デフォルトなし | RSE サーバーの PassTicket サポートの定義 |
リソース | デフォルト値 | 情報 |
---|---|---|
LINKLIST データ・セット | FEK.SFEKAUTH および FEK.SFEKLOAD | (オプション) SCLM Developer Toolkit |
LPA データ・セット | FEK.SFEKLPA | (オプション) 共通アクセス・リポジトリー・マネージャー (CARMA) |
ホスト限定使用のポート範囲 | 5227 から 5326 (100 ポート) | (オプション) 共通アクセス・リポジトリー・マネージャー (CARMA) |
ホスト限定使用のポート | 使用可能な任意のポートを使用 | (オプション) TSO コマンド・サービス用の APPC トランザクション |
クライアント/ホスト通信用のポート | デフォルトなし | (オプション) Application Deployment Manager |
CICS CSD アップデート | 複数値 | (オプション) Application Deployment Manager |
CICS JCL アップデート | FEK.SFEKLOAD |
Developer for System z を構成するために必要なシステム・プログラミングの権限と専門知識は標準的なレベルを超えているため、他のユーザーからの最低限の支援が必要になる場合があります。表 3、および 表 4に、必須およびオプションのカスタマイズ・タスクに必要な管理者がリストされています。
管理者 | タスク | 情報 |
---|---|---|
システム | すべてのカスタマイズ・タスクには、一般的なシステム・プログラマーのアクションが必要である | 適用外 |
セキュリティー |
|
セキュリティーに関する考慮事項 |
TCP/IP | 新しい TCP/IP ポートを定義する | TCP/IP ポート |
WLM | 開始タスクの目標をサーバーとその子プロセスに割り当てる | WLM に関する考慮事項 |
管理者 | タスク | 情報 |
---|---|---|
システム | すべてのカスタマイズ・タスクには、一般的なシステム・プログラマーのアクションが必要である | 適用外 |
セキュリティー |
|
|
TCP/IP | 新しい TCP/IP ポートを定義する | TCP/IP ポート |
SCLM |
|
(オプション) SCLM Developer Toolkit |
CICS TS |
|
|
DB2® | DB2 ストアード・プロシージャーを定義する | (オプション) DB2 ストアード・プロシージャー |
WLM |
|
|
APPC | APPC トランザクションを定義する | (オプション) TSO コマンド・サービス用の APPC トランザクション |
従来の z/OS アプリケーションとは異なり、Developer for System z は、ワークロード・マネージャー (WLM) で容易に識別できる一体構造のアプリケーションではありません。Developer for System z は、クライアントがホスト・サービスとデータにアクセスできるようにするために相互に作用する、複数のコンポーネントで構成されています。WLM に関する考慮事項を参照し、それに従って WLM 構成を計画してください。
使用中の Developer for System z では、アドレス・スペースや z/OS UNIX のプロセスとスレッドなど、不定数のシステム・リソースが使用されます。これらのリソースの可用性は、さまざまなシステム定義によって制限されます。チューニングに関する考慮事項を参照して主要なリソースの使用量を見積もり、それに合わせてシステム構成を計画してください。
MVS システム・プログラマー、セキュリティー管理者、および TCP/IP 管理者に、必要な製品とソフトウェアがインストールされ、テストされ、機能しているかどうかを確認してください。必要であるのに見過ごしてしまいがちなカスタマイズ・タスクのいくつかを、以下に示します。
Developer for System z ユーザーのユーザー ID には、以下の属性が (最低でも) 必要です。
例 (コマンド LISTUSER userid NORACF OMVS):
USER=userid OMVS INFORMATION ---------------- UID= 0000003200 HOME= /u/userid PROGRAM= /bin/sh CPUTIMEMAX= NONE ASSIZEMAX= NONE FILEPROCMAX= NONE PROCUSERMAX= NONE THREADSMAX= NONE MMAPAREAMAX= NONE
例 (コマンド LISTGRP group NORACF OMVS):
GROUP group OMVS INFORMATION ---------------- GID= 0000003243
Developer for System z は 3 つの永続的にアクティブなサーバーから構成され、これらのサーバーは、開始タスクまたはユーザー・ジョブとすることができます。これらのサーバーは、要求されたサービスをそれら自体が提供するか、他のサーバー (z/OS UNIX スレッドまたはユーザー・ジョブなど) を始動してサービスを提供します。
JES ジョブ・モニター (JMON) は、JES に関連したすべてのサービスを提供します。
リモート・システム・エクスプローラー (RSE) は、クライアントをホストに接続するなどのコア・サービスを提供する Developer for System z コンポーネントです。
TCP/IP ポートで説明されているように、特定のホスト・サービスと、したがって、それらのポートは、クライアントが接続するために使用可能でなければならず、また、ホストを保護しているファイアウォールに対して定義されていなければなりません。これ以外に Developer for System z が使用するポートは、すべて、ホスト専用トラフィックを持ちます。以下に、基本的な Developer for System z セットアップに必要なポートを示します。
バージョン 7.6.1 より、Developer for System z では、ISPF パネル・アプリケーションを使用する代替の方法で、製品のホスト側を構成できるようになりました。これにより、ユーザーは以下の方法から選択することができます。
Developer for System z では、インストールのクローンを異なるシステムに作成でき、各システム上で SMP/E のインストールを行わなくても済みます。
以下のデータ・セット、ディレクトリー、およびファイルは、他のシステムへのデプロイメントに必須です。ファイルを別のロケーションへコピーしてある場合は、下記のリスト内の相当するファイルをそのファイルに置き換える必要があります。
Developer for System z インストール・ディレクトリーをアーカイブおよび復元するための以下のサンプル・コマンドについて詳しくは、「UNIX System Services コマンド解説書」(SA88-8641) を参照してください。
Developer for System z クライアントのユーザーは、クライアントを正しく機能させるために、特定のホスト・カスタマイズの結果 (TCP/IP ポート番号など) を把握しておく必要があります。 これらのチェックリストを使用して、必要な情報を収集してください。
表 5 のチェックリストは、必須のカスタマイズ・ステップに必要な結果を示しています。表 6 は、オプションのカスタマイズ・ステップに必要な結果を示しています。
カスタマイズ | 値 |
---|---|
JES ジョブ・モニター・サーバーのポート番号 (デフォルトは 6715)
FEJJCNFG、JES ジョブ・モニター構成ファイルの SERV_PORT を参照してください。 |
|
RSE デーモンの TCP/IP ポート番号 (デフォルトは 4035)
RSE デーモンを参照してください。 |
カスタマイズ | 値 |
---|---|
ELAXF* プロシージャーのロケーション (システム・プロシージャー・ライブラリーに入っていない場合)
ELAXF* リモート・ビルド・プロシージャーで JCLLIB に関する注を参照してください。 |
|
ELAXF* プロシージャーのプロシージャー名またはステップ名 (変更された場合)
ELAXF* リモート・ビルド・プロシージャーで、それらの変更に関する注を参照してください。 |
|
DB2 ストアード・プロシージャー名 (デフォルトは ELAXMSAM)
複数のインスタンスの実行で、 DB2 ストアード・プロシージャーに関する情報を参照してください。 |
|
DB2 ストアード・プロシージャーのロケーション (システム・プロシージャー・ライブラリーに入っていない場合)
(オプション) DB2 ストアード・プロシージャーを参照してください。 |
|
(相互前提条件) Host Connect Emulator の TN3270 ポート番号 (デフォルトは 23)
セキュリティーに関する考慮事項を参照してください。 |
|
(相互前提条件) REXEC または SSH ポート番号 (デフォルトはそれぞれ 512 と 22)
(オプション) REXEC (または SSH) の使用を参照してください。 |
|
REXEC/SSH 接続方式を使用した場合の server.zseries ファイルのロケーション (デフォルトは /etc/rdz)。
(オプション) REXEC (または SSH) の使用を参照してください。 |
|
CARMA SCLM RAM データ・セット割り振りの CRA#ASLM JCL のロケーション (デフォルトは FEK.#CUST.JCL)。
SCLM RAM のアクティブ化で CRA#ASLM に関する注を参照してください。 |
以下のカスタマイズ・ステップは、基本的な Developer for System z セットアップ用です。 オプション・コンポーネントのカスタマイズ要件については、それらのコンポーネントに関する章を参照してください。
このカスタマイズ・タスクを完了するには、セキュリティー管理者および TCP/IP 管理者の支援が必要になります。このタスクには、以下のリソースと特殊なカスタマイズ・タスクが必要です。
インストールを検証し、ご使用のサイトで Developer for System z の使用を開始するためには、以下のタスクを実行する必要があります。特に断りがない限り、すべてのタスクは必須です。
Developer for System z には、いくつかのサンプル構成ファイルとサンプル JCL が添付されています。カスタマイズした内容を保守の適用時に上書きしてしまわないように、これらのメンバーと z/OS UNIX ファイルを別のロケーションへすべてコピーし、そのコピーをカスタマイズする必要があります。
Developer for System z の一部の機能は、z/OS UNIX 内に特定のディレクトリーが存在することを必要とします。それらのディレクトリーを製品のカスタマイズ時に作成する必要があります。インストールの労力を軽減するために、コピーと必要なディレクトリーを作成するサンプル・ジョブ、FEKSETUP が提供されています。
データ・セット FEK.SFEKSAMP 内のサンプル・メンバー FEKSETUP をカスタマイズおよび実行依頼して、構成ファイルおよび構成 JCL のカスタマイズ可能コピーを作成し、必要な z/OS UNIX ディレクトリーを作成します。必要なカスタマイズ・ステップは、このメンバー内に記述されています。
このジョブは、以下のタスクを実行します。
mkdir /usr/lpp/rdz/cust ln -s /usr/lpp/rdz/cust /etc/rdz
以下にリストした PARMLIB 定義の詳細については、「MVS 初期設定およびチューニング解説書」(SA88-8564) を参照してください。サンプルのコンソール・コマンドの詳細については、「MVS システム・コマンド」(SA88-8593) を参照してください。
リモート・システム・エクスプローラー (RSE) は、クライアントをホストに接続するなどのコア・サービスを提供する、z/OS UNIX ベースのプロセスです。 したがって、同時にアクティブになる Developer for System z ユーザーの数およびそれらのユーザーの平均的なワークロードに基づいて、BPXPRMxx で z/OS UNIX システム限度に正しい値を設定することが重要です。
BPXPRMxx で定義されるさまざまな限度と、それらが Developer for System z に与える影響の詳細については、チューニングに関する考慮事項を参照してください。
MAXASSIZE は、最大アドレス・スペース (プロセス) 領域サイズを指定します。SYS1.PARMLIB(BPXPRMxx) で MAXASSIZE を 2G に設定してください。これは、許容される最大値です。これはシステム全体の限度であるため、すべての z/OS UNIX アドレス・スペースに対してアクティブとなります。この値が必要な限度と異なる場合は、ご使用のセキュリティー・ソフトウェアで Developer for System z 独自の限度を設定できます。詳細については、Developer for System z 開始タスクの定義を参照してください。
MAXTHREADS は、単一プロセスでのアクティブなスレッドの最大数を指定します。SYS1.PARMLIB(BPXPRMxx) で MAXTHREADS を 1500 以上に設定してください。これはシステム全体の限度であるため、すべての z/OS UNIX アドレス・スペースに対してアクティブとなります。この値が必要な限度と異なる場合は、ご使用のセキュリティー・ソフトウェアで Developer for System z 独自の限度を設定できます。詳細については、Developer for System z 開始タスクの定義を参照してください。
MAXTHREADTASKS は、単一プロセスでのアクティブな MVS タスクの最大数を指定します。SYS1.PARMLIB(BPXPRMxx) で MAXTHREADTASKS を 1500 以上に設定してください。これはシステム全体の限度であるため、すべての z/OS UNIX アドレス・スペースに対してアクティブとなります。この値が必要な限度と異なる場合は、ご使用のセキュリティー・ソフトウェアで Developer for System z 独自の限度を設定できます。詳細については、Developer for System z 開始タスクの定義を参照してください。
MAXPROCUSER は、単一の z/OS UNIX ユーザー ID が同時にアクティブにしておくことができるプロセスの最大数を指定します。SYS1.PARMLIB(BPXPRMxx) で MAXPROCUSER を 50 以上に設定してください。この設定は、Developer for System z を使用する各クライアントに対してアクティブにする必要があるため、システム全体の限度となります。
これらの値は、以下のコンソール・コマンドで検査し、動的に (次回の IPL まで) 設定できます。
Developer for System z RSED、LOCKD、および JMON サーバーの始動コマンドを SYS1.PARMLIB(COMMANDxx) に追加し、これらのサーバーが次回のシステム IPL で自動的に始動するようにします。
サーバーを定義および構成した後、これらのサーバーを以下のコンソール・コマンドで動的に (次回の IPL まで) 始動できます。
(オプションの) 共通アクセス・リポジトリー・マネージャー (CARMA) は、JES イニシエーターを使用せずに済む代替のサーバー始動方式をサポートしています。これらの代替方式で最も柔軟なものは、FEK.SFEKLPA ロード・ライブラリー内のモジュール CRASTART がリンク・パック域 (LPA) 内にあることを必要とします。
LPA データ・セットは、SYS1.PARMLIB(LPALSTxx) で定義されます。
以下のコンソール・コマンドで、LPA 定義を動的に (次回の IPL まで) 設定できます。
JES ジョブ・モニターで JES スプール・ファイルにアクセスするためには、FEK.SFEKAUTH ロード・ライブラリー内のモジュール FEJJMON と、Language Environment® (LE) ランタイム・ライブラリー (CEE.SCEERUN*) に、APF 許可があることが必要です。
(オプションの) SCLM Developer Toolkit サービスを機能させるためには、FEK.SFEKAUTH ロード・ライブラリー内のモジュール BWBTSOW と REXX ランタイム・ライブラリー (REXX.*.SEAGLPA) に、APF 許可があることが必要です。
ISPF で TSO/ISPF クライアント・ゲートウェイを作成するには、SYS1.LINKLIB 内のモジュール ISPZTSO に APF 許可があることが必要です。TSO/ISPF クライアント・ゲートウェイは、Developer for System z の TSO コマンド・サービス、SCLM Developer Toolkit、およびオプションとして CARMA によって使用されます。
使用しているサイトが IBM の推奨に従っている場合、APF 許可は、SYS1.PARMLIB(PROGxx) の中で定義されています。
APF 許可は、以下のコンソール・コマンドで動的に (次回の IPL まで) 設定できます。ここで、volser はデータ・セットが存在するボリューム (SMS の管理対象でない場合) です。
Developer for System z の LINKLIST 定義は、3 つのカテゴリーに分けることができます。
(オプションの) SCLM Developer Toolkit サービスを機能させるためには、FEK.SFEKAUTH および FEK.SFEKLOAD ロード・ライブラリー内のすべての BWB* モジュールを、STEPLIB または LINKLIST によって使用可能にする必要があります。
STEPLIB を使用する場合は、LINKLIST によって使用できないライブラリーを、rsed.envvars (RSE 構成ファイル) の STEPLIB ディレクティブで定義する必要があります。ただし、次の点に注意してください。
使用しているサイトが IBM の推奨に従っている場合、LINKLIST データ・セットは、SYS1.PARMLIB(PROGxx) の中で定義されています。
必要な定義は以下のようになります。ここで、listname はアクティブにされる LINKLIST セットの名前で、volser はマスター・カタログにカタログされていないデータ・セットが存在しているボリュームです。
LINKLIST 定義は、以下のコンソール・コマンド・グループを使用して動的に (次回の IPL まで) 作成できます。ここで、listname は現行 LINKLIST セットの名前で、volser はマスター・カタログにカタログされていないデータ・セットが存在しているボリュームです。
リモート・システム・エクスプローラー (RSE) は、MVS ロード・ライブラリーへのアクセスを必要とする z/OS UNIX プロセスです。以下の (前提条件の) ライブラリーは、STEPLIB または LINKLIST/LPALIB によって使用可能であることが必要です。
オプションのサービスを使用できるようにするには、以下の追加ライブラリーを STEPLIB または LINKLIST/LPALIB を通じて使用可能にする必要があります。このリストには、Developer for System z が対話する製品 (IBM Debug Tool など) に固有のデータ・セットは含まれていません。
使用しているサイトが IBM の推奨に従っている場合、LINKLIST データ・セットは、SYS1.PARMLIB(PROGxx) の中で定義されています。LPA データ・セットは、SYS1.PARMLIB(LPALSTxx) で定義されます。
STEPLIB を使用する場合は、LINKLIST/LPALIB によって使用できないライブラリーを、rsed.envvars (RSE 構成ファイル) の STEPLIB ディレクティブで定義する必要があります。ただし、次の点に注意してください。
Developer for System z クライアントには、エンタープライズ・サービス・ツール (EST) と呼ばれるコード生成コンポーネントがあります。生成コードが診断用エラー・メッセージを発行するためには、FEK.SFEKLOAD ロード・ライブラリー内のすべての IRZ* モジュールと IIRZ* モジュールを、STEPLIB または LINKLIST を通じて使用可能にする必要があります。
使用しているサイトが IBM の推奨に従っている場合、LINKLIST データ・セットは、SYS1.PARMLIB(PROGxx) の中で定義されています。
STEPLIB を使用する場合は、LINKLIST によって使用できないライブラリーを、コード (IMS™ またはバッチ・ジョブ) を実行するタスクの STEPLIB ディレクティブで定義する必要があります。ただし、以下の点に留意してください。
以下に示す開始タスク・プロシージャーおよびリモート・ビルド・プロシージャーは、使用する JES サブシステムに対して定義されたシステム・プロシージャー・ライブラリー内に存在する必要があります。以下の説明では、IBM のデフォルトのプロシージャー・ライブラリー SYS1.PROCLIB が使用されています。
サンプルの開始タスク・メンバー FEK.#CUST.PROCLIB(JMON) を、このメンバー内で説明されているようにカスタマイズし、SYS1.PROCLIB にコピーしてください。下記のコード・サンプルに示すように、以下のものを提供する必要があります。
//*
//* JES JOB MONITOR
//*
//JMON PROC PRM=, * PRM='-TV' TO START TRACING
// LEPRM='RPTOPTS(ON)',
// HLQ=FEK,
// CFG=FEK.#CUST.PARMLIB(FEJJCNFG)
//*
//JMON EXEC PGM=FEJJMON,REGION=0M,TIME=NOLIMIT,
// PARM=('&LEPRM,ENVAR("_CEE_ENVFILE_S=DD:ENVIRON")/&PRM')
//STEPLIB DD DISP=SHR,DSN=&HLQ..SFEKAUTH
//ENVIRON DD DISP=SHR,DSN=&CFG
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
// PEND
//*
サンプルの開始タスク・メンバー FEK.#CUST.PROCLIB(RSED) を、このメンバー内で説明されているようにカスタマイズし、SYS1.PROCLIB にコピーしてください。 下記のコード・サンプルに示すように、以下のものを提供する必要があります。
//* //* RSE DAEMON //* //RSED PROC IVP='', * 'IVP' to do an IVP test // PORT=4035, // HOME='/usr/lpp/rdz', // CNFG='/etc/rdz' //* //RSE EXEC PGM=BPXBATSL,REGION=0M,TIME=NOLIMIT, // PARM='PGM &HOME/bin/rsed.sh &IVP &PORT &CNFG' //STDERR DD SYSOUT=* //STDOUT DD SYSOUT=* // PEND //*
サンプルの開始タスク・メンバー FEK.#CUST.PROCLIB(LOCKD) を、このメンバー内で説明されているようにカスタマイズし、SYS1.PROCLIB にコピーしてください。下記のコード・サンプルに示すように、以下のものを提供する必要があります。
//* //* RSE LOCK DAEMON //* //LOCKD PROC HOME='/usr/lpp/rdz', // CNFG='/etc/rdz', // LOG=1 //* //LOCKD EXEC PGM=BPXBATSL,REGION=0M,TIME=NOLIMIT, PARM=PGM &HOME./bin/lockd.sh &CNFG &LOG' //STDOUT DD SYSOUT=* //STDERR DD SYSOUT=* // PEND //*
PARM 変数の最大長は 100 文字であり、これが原因でカスタム・ディレクトリー名を使用する場合に問題が起きることもあります。この問題を回避するには、以下のいずれかを行います。
長いディレクトリー名の省略方法として、シンボリック・リンクを使用できます。次のサンプルの z/OS UNIX コマンドは、別のディレクトリー (/long/directory/name/usr/lpp/rdz) へのシンボリック・リンク (/usr/lpp/rdz) を定義します。
ln -s /long/directory/name/usr/lpp/rdz /usr/lpp/rdz
PARM フィールドが空の場合、BPXBATSL は z/OS UNIX シェルを始動し、STDIN から提供されたシェル・スクリプトを実行します。STDIN は z/OS UNIX ファイル (ORDONLY として割り振られたもの) でなければならず、STDIN を使用すると、ポートなどに PROC 変数を使用できなくなります。また、シェルがシェル・ログオン・スクリプト /etc/profile および $HOME/.profile を実行することにも注意してください。
この方法を使用するには、最初に始動 JCL を更新して、以下のサンプルのようなものに一致させる必要があります。
//* //* RSE DAEMON - USING STDIN //* //RSED PROC CNFG='/etc/rdz' //* //RSE EXEC PGM=BPXBATSL,REGION=0M,TIME=NOLIMIT //STDOUT DD SYSOUT=* //STDERR DD SYSOUT=* //STDIN DD PATHOPTS=(ORDONLY),PATH='&CNFG./rsed.stdin.sh' //STDENV DD PATHOPTS=(ORDONLY),PATH='&CNFG./rsed.envvars' // PEND //*
次に、RSE デーモンを始動するシェル・スクリプト (この例では /etc/rdz/rsed.stdin.sh) を作成する必要があります。このスクリプトの内容は、次のサンプルのようになります。
/long/directory/name/usr/lpp/rdz/bin/rsed.sh 4035 /etc/rdz
Developer for System z は、CICS BMS マップ、IMS MFS 画面、および COBOL、PL/I、アセンブラー、C/C++ の各プログラムの、JCL 生成、リモート・プロジェクト・ビルド、およびリモート構文検査の各フィーチャーに使用できるサンプル JCL プロシージャーを提供します。これらのプロシージャーを使用すると、インストールごとに独自の標準を適用でき、開発者は、同じプロシージャーを同じコンパイラー・オプションおよびコンパイラー・レベルで使用できます。
サンプル・プロシージャーとその機能を、表 7 に示します。
メンバー | 目的 |
---|---|
ELAXFADT | 高水準アセンブラー・プログラムのアセンブルとデバッグのためのサンプル・プロシージャー。 |
ELAXFASM | 高水準アセンブラー・プログラムのアセンブルのためのサンプル・プロシージャー。 |
ELAXFBMS | CICS BMS オブジェクトおよびそれに対応する copy、dsect、または include メンバーを作成するためのサンプル・プロシージャー。 |
ELAXFCOC | COBOL コンパイル、統合 CICS 変換、および統合 DB2 変換を行うためのサンプル・プロシージャー。 |
ELAXFCOP | COBOL プログラムに埋め込まれた EXEC SQL ステートメントの DB2 プリプロセスを行うためのサンプル・プロシージャー。 |
ELAXFCOT | COBOL プログラムに埋め込まれた EXEC CICS ステートメントの CICS 変換を行うためのサンプル・プロシージャー。 |
ELAXFCPC | C コンパイルを行うためのサンプル・プロシージャー。 |
ELAXFCPP | C++ コンパイルを行うためのサンプル・プロシージャー。 |
ELAXFCP1 | SCM プリプロセッサー・ステートメント (-INC および ++INCLUDE) を使用した COBOL コンパイルのためのサンプル・プロシージャー。 |
ELAXFDCL | プログラムを TSO モードで実行するためのサンプル・プロシージャー。 |
ELAXFGO | GO ステップのためのサンプル・プロシージャー。 |
ELAXFLNK | C/C++、COBOL、PLI、および高水準アセンブラーの各プログラムをリンクするためのサンプル・プロシージャー。 |
ELAXFMFS | IMS MFS 画面を作成するためのサンプル・プロシージャー。 |
ELAXFPLP | PLI プログラムに埋め込まれた EXEC SQL ステートメントの DB2 プリプロセスを行うためのサンプル・プロシージャー。 |
ELAXFPLT | PLI プログラムに埋め込まれた EXEC CICS ステートメントの CICS 変換を行うためのサンプル・プロシージャー。 |
ELAXFPL1 | PL/I コンパイル、統合 CICS 変換、および統合 DB2 変換を行うためのサンプル・プロシージャー。 |
ELAXFPP1 | SCM プリプロセッサー・ステートメント (-INC および ++INCLUDE) を使用した PL/I コンパイルのためのサンプル・プロシージャー。 |
ELAXFTSO | 生成された DB2 コードを TSO モードで実行/デバッグするためのサンプル・プロシージャー。 |
ELAXFUOP | CICS または IMS サブシステムで実行するプログラムをビルドするときに、UOPT ステップを生成するためのサンプル・プロシージャー。 |
プロシージャーの名前とプロシージャー内のステップの名前は、Developer for System z クライアントの出荷時に添付されるデフォルトのプロパティーに一致しています。 プロシージャーの名前またはプロシージャー内のステップの名前を変更する場合は、すべてのクライアント上の対応するプロパティー・ファイルも更新する必要があります。プロシージャー名とステップ名は、変更しないことをお勧めします。
サンプルのビルド・プロシージャー・メンバー FEK.#CUST.PROCLIB(ELAXF*) を、各メンバー内で説明されているようにカスタマイズし、SYS1.PROCLIB にコピーします。さまざまな製品ライブラリーに、表 8 に示した正しい高位修飾子を指定する必要があります。
製品 | デフォルト HLQ | 値 |
---|---|---|
Developer for System z | FEK | |
CICS | CICSTS32.CICS | |
DB2 | DSN910 | |
IMS | IMS | |
COBOL | IGY.V4R1M0 | |
PL/I | IBMZ.V3R8M0 | |
C/C++ | CBC | |
LE | CEE | |
システム LINKLIB | SYS1 | |
システム MACLIB | SYS1 |
ELAXF* プロシージャーをシステム・プロシージャー・ライブラリーにコピーできない場合は、クライアント上のジョブ・プロパティーに JCLLIB カードを (JOB カードの直後に) 追加するように、Developer for System z ユーザーに依頼します。
//MYJOB JOB <job parameters> //PROCS JCLLIB ORDER=(FEK.#CUST.PROCLIB)
データ・セット FEK.#CUST.JCL 内のサンプル・メンバー FEKRACF をカスタマイズおよび実行依頼して、Developer for System z のセキュリティー定義を作成してください。 このジョブを実行依頼するユーザーは、RACF SPECIAL などのセキュリティー管理者特権を持っている必要があります。
以下にリストする Developer for System z の必須のセキュリティー関連定義については、セキュリティーに関する考慮事項で詳しく説明します。 この章では、Developer for System z のセキュリティーに関する一般的な側面についても説明しています (サンプルの FEKRACF ジョブでは対応していない必要製品のセキュリティーの側面など)。
重要: アプリケーション・セキュリティーおよび PassTicket が正しくセットアップされていないと、クライアントの接続要求は失敗します。 |
JES ジョブ・モニター (JMON) は、JES に関連したすべてのサービスを提供します。JES ジョブ・モニターの動作は、FEJJCNFG 内の定義によって制御できます。
FEJJCNFG は FEK.#CUST.PARMLIB に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
サンプルの JES ジョブ・モニター構成メンバー、FEJJCNFG を、次の例に示すようにカスタマイズしてください。US コード・ページを使用する場合、コメント行はポンド記号 (#) で始まります。データ行には、ディレクティブとそれに割り当てられる値のみを入れることができ、その同じ行にコメントを入れることはできません。
SERV_PORT=6715
TZ=EST5EDT
#_BPXK_SETIBMOPT_TRANSPORT=TCPIP
#APPLID=FEKAPPL
#AUTHMETHOD=SAF
#CODEPAGE=UTF-8
#CONCHAR=$
#CONSOLE_NAME=JMON
#GEN_CONSOLE_NAME=OFF
#HOST_CODEPAGE=IBM-1047
#LIMIT_COMMANDS=NOLIMIT
#LIMIT_VIEW=USERID
#LISTEN_QUEUE_LENGTH=5
#MAX_DATASETS=32
#MAX_THREADS=200
#TIMEOUT=3600
#TIMEOUT_INTERVAL=1200
#SUBMITMETHOD=TSO
#TSO_TEMPLATE=FEK.#CUST.CNTL(FEJTSO)
JES ジョブ・モニター・ホスト・サーバーのポート番号。デフォルト・ポートは 6715 です。任意の値に変更してもかまいませんが、サーバーと Developer for System z クライアントの両方を同じポート番号で構成する必要があります。サーバー・ポート番号を変更した場合は、すべてのクライアントも、このシステムの JES ジョブ・モニター・ポートを「リモート・システム」ビューで変更する必要があります。
以下の定義はオプションです。省略した場合は、以下に示すデフォルト値が使用されます。
どのようなコンソール名を使用しても、コマンドを要求しているクライアントのユーザー ID がコンソールの LU として使用され、トレースでは syslog メッセージ IEA630I および IEA631 が残されます。
IEA630I OPERATOR console NOW ACTIVE, SYSTEM=sysid, LU=id IEA631I OPERATOR console NOW INACTIVE, SYSTEM=sysid, LU=id
このディレクティブを使用するのは、CONSOLE_NAME が &SYSUID と等しく、かつユーザー ID をコンソール名として使用できない場合に限られます。
GEN_CONSOLE_NAME=ON の場合は、ユーザー ID に数字を 1 つだけ付加することによって、代替コンソール名が生成されます。数字 0 から 9 までが試みられます。使用可能なコンソールがない場合、クライアントが発行したコマンドは失敗します。
GEN_CONSOLE_NAME=OFF の場合、クライアントが発行したコマンドは失敗します。
バージョン 7.6.1 より、 Developer for System z クライアントは、ここで指定された HOST_CODEPAGE 値を無視し、「MVS Files」サブシステムのプロパティーでローカルに指定されたコード・ページを使用するようになりました。
ジョブ所有者 | ||
---|---|---|
LIMIT_COMMANDS | ユーザー | その他 |
USERID (デフォルト) | 許可される | 許可されない |
LIMITED | 許可される | セキュリティー・プロファイルによって明示的に許可された場合にのみ許可される |
NOLIMIT | 許可される | セキュリティー・プロファイルによって許可された場合、または JESSPOOL クラスがアクティブでない場合は許可される |
RSE ロック・デーモンおよび RSE サーバー・プロセス (RSE デーモン、RSE スレッド・プール、および RSE サーバー) は、rsed.envvars 内の定義を使用します。オプションの Developer for System z サービスおよびサード・パーティー・サービスも、この構成ファイルを使用して、使用する環境変数を定義することができます。
リモート・システム・エクスプローラー (RSE) は、クライアントをホストに接続したり、特定のサービス用に他のサーバーを始動するなどの、コア・サービスを提供します。ロック・デーモンは、データ・セット・ロックのトラッキング・サービスを提供します。
rsed.envvars は /etc/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。
以下のサンプルの rsed.envvars ファイルを参照してください。このファイルは、使用するシステム環境に合わせてカスタマイズする必要があります。 US コード・ページを使用する場合、コメント行はポンド記号 (#) で始まります。データ行には、ディレクティブとそれに割り当てられる値のみを入れることができ、その同じ行にコメントを入れることはできません。行の継続および等号 (=) の前後のスペースはサポートされていません。
#============================================================= # (1) required definitions JAVA_HOME=/usr/lpp/java/J5.0 RSE_HOME=/usr/lpp/rdz _RSE_LOCKD_PORT=4036 _RSE_HOST_CODEPAGE=IBM-1047 TZ=EST5EDT LANG=C PATH=/bin:/usr/sbin _CEE_DMPTARG=/tmp STEPLIB=NONE #STEPLIB=$STEPLIB:CEE.SCEERUN:CEE.SCEERUN2:CBC.SCLBDLL _RSE_SAF_CLASS=/usr/include/java_classes/IRRRacf.jar _RSE_JAVAOPTS="" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Xms1m -Xmx256m" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Ddaemon.log=/var/rdz/logs" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Duser.log=/var/rdz/logs" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_LOG_DIRECTORY=" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dmaximum.clients=60" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dmaximum.threads=1000" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dminimum.threadpool.process=1" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dmaximum.threadpool.process=100" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dipv6=true" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dkeep.last.log=true" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Denable.standard.log=true" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Denable.port.of.entry=true" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Denable.certificate.mapping=false" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Denable.automount=true" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Denable.audit.log=true" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Daudit.cycle=30" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Daudit.retention.period=0" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Ddeny.nonzero.port=true" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dsingle.logon=false" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dprocess.cleanup.interval=0" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DAPPLID=FEKAPPL" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDENY_PASSWORD_SAVE=true" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DHIDE_ZOS_UNIX=true" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_IDLE_SHUTDOWN_TIMEOUT=3600000" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_TRACING_ON=true" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_MEMLOGGING_ON=true" #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DTSO_SERVER=APPC" #============================================================= # (2) required definitions for TSO/ISPF Client Gateway _CMDSERV_BASE_HOME=/usr/lpp/ispf _CMDSERV_CONF_HOME=/etc/rdz _CMDSERV_WORK_HOME=/var/rdz #STEPLIB=$STEPLIB:ISP.SISPLOAD:ISP.SISPLPA:SYS1.LINKLIB _RSE_CMDSERV_OPTS="" #_RSE_CMDSERV_OPTS="$_RSE_CMDSERV_OPTS&ISPPROF=&SYSUID..ISPPROF" #============================================================= # (3) required definitions for SCLM Developer Toolkit _SCLMDT_CONF_HOME=/var/rdz/sclmdt #STEPLIB=$STEPLIB:FEK.SFEKAUTH:FEK.SFEKLOAD #_SCLMDT_TRANTABLE=FEK.#CUST.LSTRANS.FILE #ANT_HOME=/usr/lpp/Apache/Ant/apache-ant-1.7.1 #============================================================= # (4) optional definitions #_RSE_PORTRANGE=8108-8118 #_BPXK_SETIBMOPT_TRANSPORT=TCPIP #_FEKFSCMD_TP_NAME_=FEKFRSRV #_FEKFSCMD_PARTNER_LU_=lu_name #GSK_CRL_SECURITY_LEVEL=HIGH #GSK_LDAP_SERVER=ldap_server_url #GSK_LDAP_PORT=ldap_server_port #GSK_LDAP_USER=ldap_userid #GSK_LDAP_PASSWORD=ldap_server_password #=============================================================
# (5) do not change unless directed by IBM support center _CEE_RUNOPTS="ALL31(ON) HEAP(32M,32K,ANYWHERE,KEEP,,) TRAP(ON)" _BPX_SHAREAS=YES _BPX_SPAWN_SCRIPT=YES JAVA_PROPAGATE=NO RSE_LIB=$RSE_HOME/lib PATH=.:$JAVA_HOME/bin:$RSE_HOME/bin:$_CMDSERV_BASE_HOME/bin:$PATH LIBPATH=$JAVA_HOME/bin:$JAVA_HOME/bin/classic:$RSE_LIB:$RSE_LIB/icuc LIBPATH=.:/usr/lib:$LIBPATH CLASSPATH=$RSE_LIB:$RSE_LIB/dstore_core.jar:$RSE_LIB/clientserver.jar CLASSPATH=$CLASSPATH:$RSE_LIB/dstore_extra_server.jar CLASSPATH=$CLASSPATH:$RSE_LIB/zosserver.jar CLASSPATH=$CLASSPATH:$RSE_LIB/dstore_miners.jar CLASSPATH=$CLASSPATH:$RSE_LIB/universalminers.jar:$RSE_LIB/mvsminers.jar CLASSPATH=$CLASSPATH:$RSE_LIB/carma.jar:$RSE_LIB/luceneminer.jar CLASSPATH=$CLASSPATH:$RSE_LIB/mvsluceneminer.jar:$RSE_LIB/cdzminer.jar CLASSPATH=$CLASSPATH:$RSE_LIB/mvscdzminer.jar:$RSE_LIB/jesminers.jar CLASSPATH=$CLASSPATH:$RSE_LIB/FAMiner.jar CLASSPATH=$CLASSPATH:$RSE_LIB/mvsutil.jar:$RSE_LIB/jesutils.jar CLASSPATH=$CLASSPATH:$RSE_LIB/lucene-core-2.3.2.jar CLASSPATH=$CLASSPATH:$RSE_LIB/cdtparser.jar CLASSPATH=$CLASSPATH:$RSE_LIB/wdzBidi.jar:$RSE_LIB/fmiExtensions.jar CLASSPATH=$CLASSPATH:$_RSE_SAF_CLASS CLASSPATH=.:$CLASSPATH _RSE_CMDSERV_OPTS="&SESSION=SPAWN$_RSE_CMDSERV_OPTS" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -DISPF_OPTS='$_RSE_CMDSERV_OPTS'" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -DA_PLUGIN_PATH=$RSE_LIB" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Xbootclasspath/p:$RSE_LIB/bidiTools.jar" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dfile.encoding=$_RSE_HOST_CODEPAGE" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dconsole.encoding=$_RSE_HOST_CODEPAGE" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_SPIRIT_ON=true" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -DSPIRIT_EXPIRY_TIME=6" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -DSPIRIT_INTERVAL_TIME=6" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dcom.ibm.cacheLocalHost=true" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Duser.home=$HOME" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dclient.username=$RSE_USER_ID" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dlow.heap.usage.ratio=15" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dmaximum.heap.usage.ratio=40" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_KEEPALIVE_ENABLED=true" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_KEEPALIVE_RESPONSE_TIMEOUT=30000" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_IO_SOCKET_READ_TIMEOUT=90000" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -DRSECOMM_LOGFILE_MAX=0" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dlock.daemon.port=$_RSE_LOCKD_PORT" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dlock.daemon.cleanup.interval=1440" _RSE_JAVAOPTS="$_RSE_JAVAOPTS -showversion" _RSE_SERVER_CLASS=org.eclipse.dstore.core.server.Server _RSE_DAEMON_CLASS=com.ibm.etools.zos.server.RseDaemon _RSE_POOL_SERVER_CLASS=com.ibm.etools.zos.server.ThreadPoolProcess _RSE_LOCKD_CLASS=com.ibm.ftt.rse.mvs.server.miners.MVSLockDaemon _RSE_SERVER_TIMEOUT=120000 _SCLMDT_BASE_HOME=$RSE_HOME _SCLMDT_WORK_HOME=$_CMDSERV_WORK_HOME CGI_DTWORK=$_SCLMDT_WORK_HOME #============================================================= # (6) additional environment variables
詳細は、「UNIX System Services コマンド解説書」(SA88-8641) に記載されています。
以下の 1 つ以上の STEPLIB ディレクティブをコメント解除してカスタマイズすることにより、(前提条件の) ライブラリーを LINKLIST/LPALIB 内に保持せずに済ますことができます。 以下にリストしたライブラリーの詳しい使用方法については、PARMLIB の変更を参照してください。
STEPLIB=$STEPLIB:CEE.SCEERUN:CEE.SCEERUN2:CBC.SCLBDLL STEPLIB=$STEPLIB:ISP.SISPLOAD:ISP.SISPLPA:SYS1.LINKLIB STEPLIB=$STEPLIB:FEK.SFEKAUTH:FEK.SFEKLOAD
デフォルトでは、Developer for System z は ISPF の TSO/ISPF クライアント・ゲートウェイを TSO コマンド・サービスに使用します。 次の _RSE_JAVAOPTS オプションをコメント解除した場合は、APPC トランザクションが代わりに使用されます。
RSE_JAVAOPTS="$_RSE_JAVAOPTS -DTSO_SERVER=APPC"
TSO コマンド・サービス、SCLM Developer Toolkit、または CARMA に ISPF の TSO/ISPF クライアント・ゲートウェイが使用される場合は、以下の定義が必要です。
注:
SCLM Developer Toolkit を使用する場合は、以下の定義が必要です。
以下の定義はオプションです。省略した場合は、デフォルト値が使用されます。
ホスト名は TCP/IP アドレスと URL のどちらでもかまいません。それぞれのホスト名は、コロン (:) でホスト名と区切った、オプションのポート番号を含むことができます。
以下の定義は必須であり、IBM サポートから指示された場合以外、変更しないでください。
これは、RSE サーバーがクライアントと通信できるポートを指定する、rsed.envvars カスタマイズの一環です。このポート範囲は、RSE デーモン・ポートとは関係ありません。
ポートの使用法を理解しやすいように、以下で RSE の接続プロセスを簡単に説明します。
クライアントが z/OS と通信できるように、ポート範囲を指定するには、rsed.envvars 内で次の行をコメント解除し、カスタマイズします。
#_RSE_PORTRANGE=8108-8118
PORTRANGE のフォーマットは、次のとおりです。_RSE_PORTRANGE=min-max (max は、その値を含みません。例えば、_RSE_PORTRANGE=8108-8118 は 8108 から 8117 までのポート番号が使用できることを意味します)。RSE サーバーによって使用されるポート番号は、次の順序で決定されます。
さまざまな _RSE_*OPTS ディレクティブにより、rsed.envvars は RSE プロセスの始動時に、Java に追加パラメーターを指定できます。rsed.envvars に含まれているサンプル・オプションは、それらをコメント解除することによってアクティブにできます。
_RSE_JAVAOPTS は、標準および RSE 固有の Java オプションを定義します。
以下のディレクティブは、デフォルトではコメント化されています。
さまざまな _RSE_*OPTS ディレクティブにより、rsed.envvars は RSE プロセスの始動時に、Java に追加パラメーターを指定できます。rsed.envvars に含まれているサンプル・オプションは、それらをコメント解除することによってアクティブにできます。
_RSE_CMDSERV_OPTS ディレクティブは RSE 固有の Java オプションであり、ISPF の TSO/ISPF クライアント・ゲートウェイが Developer for System z によって使用されている場合にのみ有効です (これはデフォルトです)。
データ・セット名の中で、以下の変数を使用できます。
ISPF の TSO/ISPF クライアント・ゲートウェイは、ISPF.conf 内の定義を使用して、バッチ TSO および ISPF コマンドを実行するための有効な環境を作成します。Developer for System z は、その環境を使用して、一部の MVS ベースのサービスを実行します。 それらのサービスには、TSO コマンド・サービス、SCLM Developer Toolkit サービス、および代替 CARMA 始動方式が含まれます。
ISPF.conf は /etc/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。
US コード・ページを使用する場合、コメント行はアスタリスク (*) で始まります。データ行には、ディレクティブとそれに割り当てられる値のみを入れることができます。同じ行にコメントを入れることはできません。行の継続はサポートされていません。データ・セット名を連結するときは、それらを同じ行に追加し、名前同士をコンマ (,) で分離します。
ISPF データ・セットの正しい名前を指定するだけでなく、次の例に示すように、TSO コマンド・サービス・データ・セット名 FEK.SFEKPROC を SYSPROC ステートメントまたは SYSEXEC ステートメントに追加する必要もあります。
* REQUIRED:
sysproc=ISP.SISPCLIB,FEK.SFEKPROC
ispmlib=ISP.SISPMENU
isptlib=ISP.SISPTENU
ispplib=ISP.SISPPENU
ispslib=ISP.SISPSLIB
ispllib=ISP.SISPLOAD
* OPTIONAL:
*allocjob = FEK.#CUST.CNTL(CRAISPRX)
*ISPF_timeout = 900
次に例を示します。
ISPTRACE=nullfile
上記のカスタマイズ・ステップは、基本的な Developer for System z セットアップ用です。 オプション・コンポーネントのカスタマイズ要件については、それらのコンポーネントに関する章を参照してください。
各種インストール検査プログラム (IVP) については、インストール検査で説明しています。これは、一部の IVP がオプション・コンポーネント用であるためです。
共通アクセス・リポジトリー・マネージャー (CARMA) は、Repository Access Manager (RAM) を作成する開発者向けの生産性援助機能です。RAM は、z/OS ベースの Software Configuration Manager (SCM) 用のアプリケーション・プログラミング・インターフェース (API) です。
ユーザー作成アプリケーションは CARMA サーバーを始動でき、CARMAサーバーは RAM をロードし、SCM にアクセスする標準インターフェースを提供します。
Developer for System z は CARMA サーバーを始動する複数の方式をサポートしており、それぞれの方式には独自の利点と欠点があります。
このカスタマイズ・タスクを完了するには、セキュリティー管理者および TCP/IP 管理者の支援が必要になります。このタスクには、以下のリソースまたは特殊なカスタマイズ・タスクが必要です。
ご使用のサイトで CARMA の使用を開始するには、以下のタスクを行う必要があります。特に断りがない限り、すべてのタスクは必須です。
以下の CARMA コンポーネントは、選択する始動方式に関係なく、必ずカスタマイズしなければなりません。参照するサンプルのメンバーは、FEK.#CUST.JCL に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
Developer for System z バージョン 7.6.1 は、メッセージ長の制限を解消するために、CARMA カスタム情報 VSAM データ・セット CRASTRS の新しいデータ構造レイアウトをサポートしています。
Developer for System z バージョン 7.6.1 までは、CARMA カスタム情報 VSAM データ・セットで定義されるストリングが、事前に定義された長さに制限されます。この制限のために、RAM 開発者は記述ストリングを短くするか、フルサイズのストリングを表示するためにクライアント・サイド・プラグインを使用する必要があります。
Developer for System z バージョン 7.6.1 は、CARMA カスタム情報 VSAM データ・セット CRASTRS の新しい可変長データ構造レイアウトをサポートしています。このレイアウトでは、ストリングが固定長とならずに区切り文字で分離されます。
既存の固定長の CARMA カスタム情報 VSAM データ・セット CRASTRS を新しい可変長フォーマットに変換するには、FEK.SFEKSAMP(CRA#VS2) JCL をカスタマイズして実行依頼します。
CARMA サーバーは、他のホスト・ベースの製品で 1 つ以上の Software Configuration Manager (SCM) にアクセスするための標準 API を提供します。しかし、クライアント PC と直接通信するための方式は提供しません。このため、RSE サーバーなどの他の製品に依存します。RSE サーバーは、CRASRV.properties 内の設定を使用して CARMAサーバーの始動および接続を行います。
CRASRV.properties は /etc/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。
# CRASRV.properties - CARMA configuration options # port.start=5227 port.range=100 startup.script.name=/usr/lpp/rdz/bin/carma.startup.rex clist.dsname='FEK.#CUST.CNTL(CRASUBMT)' crastart.stub=/usr/lpp/rdz/bin/CRASTART crastart.configuration.file=/etc/rdz/crastart.conf crastart.syslog=Partial crastart.timeout=420 #crastart.steplib=FEK.SFEKLPA #crastart.tasklib=TASKLIB
デフォルトは 'FEK.#CUST.CNTL(CRASUBMT)' です。この CLIST は、バッチ実行依頼方式で接続を開いたときに CARMA サーバーを始動します。
A (All) | すべてのトレース情報を SYSLOG に出力します。 |
P (Partial) | 接続、切断、およびエラー情報のみを SYSLOG に出力します。 |
それ以外のすべて | エラー条件のみを SYSLOG に出力します。 |
このディレクティブは、clist.dsname ディレクティブの値が *CRASTART である場合にのみ使用されます。
このセクションでは、Developer for System z で CARMA サーバーを始動するデフォルトの方式の構成方法について説明します。別の始動方式を使用する場合は、このカスタマイズ・ステップを迂回できます。
Developer for System z は、バッチ実行依頼 CARMA サーバー始動方式をデフォルトで使用します。この方式では、CRASTART モジュールが LPA 内に存在する必要がなく、TSO/ISPF クライアント・ゲートウェイにも依存しません。この方式は、CARMA サーバーをユーザーの JES 内の長時間実行バッチ・ジョブとして実行依頼します。
RSE サーバーは、CARMA への RSE インターフェースで説明されているように、/etc/rdz/CRASRV.properties 内の設定を使用して CARMAサーバーの始動および接続を行います。 このファイルは、TSO OEDIT コマンドで編集できます。変更を有効にするには、RSE の再始動が必要であることに注意してください。
以下の例に示すように、clist.dsname ディレクティブの値を CRASUBMT CARMA サーバー始動 CLIST のデータ・セットおよびメンバー名に変更します。各種ディレクティブの詳細については、CARMA への RSE インターフェースを参照してください。
port.start=5227 port.range=100 startup.script.name=/usr/lpp/rdz/bin/carma.startup.rex clist.dsname='FEK.#CUST.CNTL(CRASUBMT)'
以下のコード・サンプルに示すように、CRASUBMT CLIST をカスタマイズします。カスタマイズの手順については、CRASUBMT 内のドキュメンテーションを参照してください。CRASUBMT CLIST は CARMA サーバーを実行依頼します。
CRASUBMT は FEK.#CUST.CNTL に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
PROC 1 PORT TIMEOUT(420) SUBMIT * END($$) //CRA&PORT JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) //RUN EXEC PGM=IKJEFT01,DYNAMNBR=25,REGION=1024K,TIME=NOLIMIT //STEPLIB DD DISP=SHR,DSN=FEK.SFEKLOAD //* DD DISP=SHR,DSN=FEK.#CUST.LOAD //CRADEF DD DISP=SHR,DSN=FEK.#CUST.CRADEF //CRAMSG DD DISP=SHR,DSN=FEK.#CUST.CRAMSG //CRASTRS DD DISP=SHR,DSN=FEK.#CUST.CRASTRS //*CRARAM1 DD DISP=SHR,DSN=FEK.#CUST.CRARAM1 //* //ISPPROF DD DISP=(NEW,DELETE,DELETE), // SPACE=(TRK,(1,1,5)),LRECL=80,RECFM=FB,UNIT=SYSALLDA //ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU //ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU //ISPSLIB DD DISP=SHR,DSN=ISP.SISPSENU //ISPTLIB DD DISP=SHR,DSN=ISP.SISPTENU //ISPEXEC DD DISP=SHR,DSN=ISP.SISPEXEC //SYSPROC DD DISP=SHR,DSN=ISP.SISPCLIB //* //CARMALOG DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * ISPSTART PGM(CRASERV) PARM(&PORT &TIMEOUT) //* $$ EXIT CODE(0)
このセクションでは、Developer for System z で CARMA サーバーを始動する代替の方式の構成方法について説明します。別の始動方式を使用する場合は、このカスタマイズ・ステップを迂回できます。
Developer for System z がサポートする代替 CARMA サーバー始動方式は、TSO/ISPF クライアント・ゲートウェイに依存せず、また、JES イニシエーターを使用してサーバー・ジョブを実行依頼しません。この方式は、CRASTART を使用して CARMA サーバーを RSE 内のサブタスクとして始動するもので、TSO/ISPF クライアント・ゲートウェイ・サービスによく似ています。
RSE サーバーは、CARMA への RSE インターフェースで説明されているように、/etc/rdz/CRASRV.properties 内の設定を使用して CARMAサーバーの始動および接続を行います。 このファイルは、TSO OEDIT コマンドで編集できます。変更を有効にするには、RSE の再始動が必要であることに注意してください。
以下の例に示すように、clist.dsname ディレクティブの値を *CRASTART に変更し、crastart.* ディレクティブに正しい値を指定してください。各種ディレクティブの詳細については、CARMA への RSE インターフェースを参照してください。
port.start=5227 port.range=100 startup.script.name=/usr/lpp/rdz/bin/carma.startup.rex clist.dsname=*CRASTART crastart.stub=/usr/lpp/rdz/bin/CRASTART crastart.configuration.file=/etc/rdz/crastart.conf crastart.syslog=Partial crastart.timeout=420 #crastart.steplib=FEK.SFEKLPA #crastart.tasklib=TASKLIB
このカスタマイズ・ステップでは、カスタマイズした CRASUBMT (バッチ実行依頼を使用した CARMA サーバーの始動を参照) の印刷出力を手元に用意し、簡単に参照できるようにしてください。印刷出力は、メンバーをカスタマイズしていない場合でも役に立ちます。
CRASTART は crastart.conf 内の定義を使用して、バッチ TSO および ISPF コマンドを実行するための有効な環境を作成します。Developer for System z は、その環境を使用して、CARMA サーバーが呼び出した CRASERV を実行します。
crastart.conf は /etc/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。
以下のカスタマイズ・ステップは、下記のコード・サンプルに示した構成ファイルを調整するために必要です。
* crastart.conf - CARMA allocation options TASKLIB = FEK.SFEKLOAD CRADEF = FEK.#CUST.CRADEF CRAMSG = FEK.#CUST.CRAMSG CRASTRS = FEK.#CUST.CRASTRS *CRARAM1 = FEK.#CUST.CRARAM1 * CARMALOG = SYSOUT(H) SYSTSPRT = SYSOUT(H) SYSTSIN = DUMMY -COMMAND=ALLOC FI(SCRATCH) NEW DELETE DSORG(PS) RECFM(F,B) LRECL(80) UNIT(VIO) * PROGRAM=IKJEFT01 CRASERV &CRAPRM1. &CRAPRM2.
構成ファイルの中で、以下の変数を使用できます。
&CRAUSER. | クライアントのログオン・ユーザー ID。 |
&CRADATE. | Dyyyyddd 形式 (7 文字のユリウス日付) の現在日付。 |
&CRATIME. | Thhmmss 形式 (時分秒) の現在時刻。 |
&CRAPRM3. から &CRAPRM9. |
ユーザーが割り当てた値を持つ追加変数。これらの変数を使用するには、CRASRV.properties 内の startup.script.name によって参照される CARMA 始動 REXX をカスタマイズする必要があります。 これらの変数を使用する場合は、デフォルトの始動 REXX /usr/lpp/rdz/bin/carma.startup.rex のコピーをカスタマイズし、startup.script.name がこのコピーを指すようにする必要があります。これにより、保守の際にデフォルトの REXX が更新されても作業内容が失われなくなります。 |
システム・シンボル | SYS1.PARMLIB(IEASYMxx) で定義した任意のシステム・シンボル |
-<DD> | 前に定義した DD 名の前にダッシュ (-) を付加すると、JCL の *.ddname 逆方向参照のように機能します。オリジナルの DD は、-COMMAND ステートメントを使用して割り振る必要があります。 |
このセクションでは、Developer for System z で CARMA サーバーを始動する代替の方式の構成方法について説明します。別の始動方式を使用する場合は、このカスタマイズ・ステップを迂回できます。
Developer for System z がサポートする代替 CARMA サーバー始動方式を使用すると、CRASTART モジュールが LPA 内に存在する必要はなく、また、JES イニシエーターを使用してサーバー・ジョブを実行依頼しません。この方式は ISPF の TSO/ISPF クライアント・ゲートウェイを使用するもので、TSO コマンド・サービスにアクセスするデフォルトの方法によく似ています。
RSE サーバーは、CARMA への RSE インターフェースで説明されているように、/etc/rdz/CRASRV.properties 内の設定を使用して CARMAサーバーの始動および接続を行います。 このファイルは、TSO OEDIT コマンドで編集できます。変更を有効にするには、RSE の再始動が必要であることに注意してください。
以下の例に示すように、clist.dsname ディレクティブの値を *ISPF に変更します。各種ディレクティブの詳細については、CARMA への RSE インターフェースを参照してください。
port.start=5227 port.range=100 startup.script.name=/usr/lpp/rdz/bin/carma.startup.rex clist.dsname=*ISPF
このカスタマイズ・ステップでは、カスタマイズした CRASUBMT (バッチ実行依頼を使用した CARMA サーバーの始動を参照) の印刷出力を手元に用意し、簡単に参照できるようにしてください。印刷出力は、メンバーをカスタマイズしていない場合でも役に立ちます。
ISPF の TSO/ISPF クライアント・ゲートウェイは、ISPF.conf 内の定義を使用して、バッチ TSO および ISPF コマンドを実行するための有効な環境を作成します。Developer for System z は、その環境を使用して CARMA サーバーを実行します。
ISPF.conf は /etc/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。
以下のカスタマイズ・ステップは、下記のコード・サンプルに示した構成ファイルを調整するために必要です。
sysproc=ISP.SISPCLIB,FEK.SFEKPROC ispllib=FEK.SFEKLOAD ispmlib=ISP.SISPMENU isptlib=ISP.SISPTENU ispplib=ISP.SISPPENU ispslib=ISP.SISPSLIB CRADEF =FEK.#CUST.CRADEF CRAMSG =FEK.#CUST.CRAMSG CRASTRS=FEK.#CUST.CRASTRS *CRARAM1=FEK.#CUST.CRARAM1 allocjob=FEK.#CUST.CNTL(CRAISPRX)
DD CARMALOG は、ISPF.conf 内でマップできない SYSOUT=* をデフォルトで参照します。また、この DD をデータ・セットに直接マップすることもできません。すべての Developer for System z ユーザーが、同じ ISPF.conf ファイルと、したがって同じデータ・セットを使用するからです。
しかし、TSO 環境のカスタマイズの 詳細設定 - 割り振り exec の使用のセクションで説明されているように、割り振り exec を使用して、アクティブなユーザー ID に基づいたデータ・セットを作成し、割り振ることができます。 DD CARMALOG をデータ・セット名 TSOPREFIX'.'USERID'.CRA.'TIMESTAMP'.CARMALOG' に割り振る例として、データ・セット FEK.#CUST.CNTL 内のサンプル・メンバー CRAISPRX を参照してください。
Repository Access Manager (RAM) は、z/OS Software Configuration Manager (SCM) とのインターフェースとなるユーザー作成 API です。アクティブにしたいサンプルの RAM については、以下のセクションの説明に従ってください。
提供されているサンプルの RAM およびサンプルのソース・コードの詳細については、「Rational Developer for System z Common Access Repository Manager Developer's Guide」(SC23-7660) を参照してください。
参照するサンプルのメンバーは、FEK.#CUST.JCL に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
PDS RAM は、「リモート・システム」ビューの「MVS ファイル」>「ユーザー・データ・セット」と同様のデータ・セット・リストを提供します。PDS RAM はデフォルトで RAM ID 0 を使用します。
SCLM RAM は、ISPF の Software Configuration Manager である SCLM への基本的な入り口となります。SCLM RAM はデフォルトで RAM ID 1 を使用します。
スケルトン RAM は、ユーザーが独自の RAM を開発する際に使用できるスケルトン・フレームワークを提供します。スケルトン RAM はデフォルトで RAM ID 3 を使用します。
IBM® Rational® Developer for System z Interface for CA Endevor® Software Configuration Manager は、Developer for System z クライアントが CA Endevor® SCM に直接アクセスできるようにします。これ以降は、IBM® Rational® Developer for System z Interface for CA Endevor® SCM を CA Endevor® SCM RAM (Repository Access Manager) と略記します。
この資料に掲載しているサンプルの RAM とは異なり、CA Endevor® SCM RAM は実動タイプの RAM です。両タイプの RAM を同じセットアップでアクティブ化しないでください。
重要: CA Endevor® SCM RAM 用に提供されているセットアップ・ジョブを実行すると、アクティブな CARMA セットアップが CA Endevor® SCM RAM のみを保持するセットアップに置き換えられます。 |
このカスタマイズ・タスクを完了するには、セキュリティー管理者および TCP/IP 管理者の支援が必要になります。このタスクには、以下のリソースまたは特殊なカスタマイズ・タスクが必要です。
ご使用のサイトで CA Endevor® SCM RAM の使用を開始するには、以下のタスクを行う必要があります。特に断りがない限り、すべてのタスクは必須です。
以下の CARMA コンポーネントは、選択する始動方式に関係なく、必ずカスタマイズしなければなりません。参照するサンプルのメンバーは、FEK.#CUST.JCL に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
CA Endevor® SCM RAM を使用する CARMA サーバーを CRASTART 方式で始動する場合は、このステップを実行しないでください。
Developer for System z は、バッチ実行依頼 CARMA サーバー始動方式を使用して、CA Endevor® SCM RAM を始動することができます。この方式は、CARMA サーバーをユーザーの JES 内の長時間実行バッチ・ジョブとして実行依頼します。
バッチ実行依頼始動方式の詳細については、バッチ実行依頼を使用した CARMA サーバーの始動を参照してください。
RSE サーバーは、CARMA への RSE インターフェースで説明されているように、/etc/rdz/CRASRV.properties 内の設定を使用して CARMAサーバーの始動および接続を行います。 このファイルは、TSO OEDIT コマンドで編集できます。変更を有効にするには、RSE の再始動が必要であることに注意してください。
以下の例に示すように、clist.dsname ディレクティブの値を CRASUBCA CARMA サーバー始動 CLIST のデータ・セットおよびメンバー名に変更します。各種ディレクティブの詳細については、CARMA への RSE インターフェースを参照してください。
port.start=5227 port.range=100 startup.script.name=/usr/lpp/rdz/bin/carma.startup.rex clist.dsname='FEK.#CUST.CNTL(CRASUBCA)'
以下のコード・サンプルに示すように、CRASUBCA CLIST をカスタマイズします。カスタマイズの手順については、CRASUBCA 内のドキュメンテーションを参照してください。CRASUBCA CLIST は、CA Endevor® SCM 用に CARMA サーバーを実行依頼します。
CRASUBCA は FEK.#CUST.CNTL に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
PROC 1 PORT TIMEOUT(420) SUBMIT * END($$) //CRA&PORT JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) //RUN EXEC PGM=IKJEFT01,DYNAMNBR=125,REGION=0M,TIME=NOLIMIT, // PARM='%CRANDVRA NDVRC1 PGM(CRASERV) PARM(&PORT &TIMEOUT)' //STEPLIB DD DISP=SHR,DSN=FEK.SFEKLOAD // DD DISP=SHR,DSN=CA.NDVR.AUTHLIB // DD DISP=SHR,DSN=CA.NDVRU.AUTHLIB //CRADEF DD DISP=SHR,DSN=FEK.#CUST.CRADEF //CRAMSG DD DISP=SHR,DSN=FEK.#CUST.CRAMSG //CRASTRS DD DISP=SHR,DSN=FEK.#CUST.CRASTRS //* //SYSPROC DD DISP=SHR,DSN=ISP.SISPCLIB // DD DISP=SHR,DSN=FEK.SFEKPROC //ISPEXEC DD DISP=SHR,DSN=ISP.SISPEXEC //ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU //ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU //ISPSLIB DD DISP=SHR,DSN=ISP.SISPSENU //ISPTLIB DD DISP=SHR,DSN=ISP.SISPTENU //ISPCTL0 DD DISP=(NEW,DELETE,DELETE),UNIT=SYSALLDA, // SPACE=(TRK,(1,1)),LRECL=80,RECFM=FB //ISPCTL1 DD DISP=(NEW,DELETE,DELETE),UNIT=SYSALLDA, // SPACE=(TRK,(1,1)),LRECL=80,RECFM=FB //ISPPROF DD DISP=(NEW,DELETE,DELETE),UNIT=SYSALLDA, // SPACE=(TRK,(1,1,5)),LRECL=80,RECFM=FB //* //CARMALOG DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD DUMMY //* //CONLIB DD DISP=SHR,DSN=CA.NDVR.CONLIB //JCLOUT DD SYSOUT=(A,INTRDR),DCB=(LRECL=80,RECFM=F,BLKSIZE=80) //EXT1ELM DD DISP=(NEW,DELETE),UNIT=SYSALLDA, // RECFM=VB,LRECL=4096,BLKSIZE=27998,SPACE=(TRK,(5,5)) //EXT1DEP DD DISP=(NEW,DELETE),UNIT=SYSALLDA, // RECFM=VB,LRECL=4096,BLKSIZE=27998,SPACE=(TRK,(5,5)) //MSG3FILE DD DISP=(NEW,DELETE),UNIT=SYSALLDA, // RECFM=FB,LRECL=133,BLKSIZE=27930,SPACE=(TRK,(5,5)) //C1MSGS1 DD DISP=(NEW,DELETE),UNIT=SYSALLDA, // RECFM=FB,LRECL=133,BLKSIZE=27930,SPACE=(TRK,(5,5)) //C1EXMSGS DD DISP=(NEW,DELETE),UNIT=SYSALLDA, // RECFM=FB,LRECL=133,BLKSIZE=27930,SPACE=(TRK,(5,5)) //TYPEMAP DD DISP=SHR,DSN=FEK.#CUST.PARMLIB(CRATMAP) //SHOWVIEW DD DISP=SHR,DSN=FEK.#CUST.PARMLIB(CRASHOW) $$ EXIT CODE(0)
CA Endevor® SCM RAM を使用する CARMA サーバーをバッチ実行依頼方式で始動する場合は、このステップを実行しないでください。
Developer for System z は、CRASTART CARMA サーバー始動方式を使用して、CA Endevor® SCM RAM を始動することができます。この方式は、CRASTART を使用して CARMA サーバーを RSE 内のサブタスクとして始動します。
CRASTART 始動方式の詳細については、(オプション) CRASTART を使用した代替の CARMA サーバーの始動を参照してください。
RSE サーバーは、CARMA への RSE インターフェースで説明されているように、/etc/rdz/CRASRV.properties 内の設定を使用して CARMAサーバーの始動および接続を行います。 このファイルは、TSO OEDIT コマンドで編集できます。変更を有効にするには、RSE の再始動が必要であることに注意してください。
以下の例に示すように、clist.dsname ディレクティブの値を *CRASTART に変更し、crastart.* ディレクティブに正しい値を指定してください。各種ディレクティブの詳細については、CARMA への RSE インターフェースを参照してください。
port.start=5227 port.range=100 startup.script.name=/usr/lpp/rdz/bin/carma.startup.rex clist.dsname=*CRASTART crastart.stub=/usr/lpp/rdz/bin/CRASTART crastart.configuration.file=/etc/rdz/crastart.endevor.conf crastart.syslog=Partial crastart.timeout=420 #crastart.steplib=FEK.SFEKLPA #crastart.tasklib=TASKLIB
CRASTART は crastart.endevor.conf 内の定義を使用して、CA Endevor® SCM を呼び出すための有効な (TSO/ISPF) 環境を作成します。Developer for System z は、この環境を使用して CA Endevor ® SCM RAM を実行します。
crastart.endevor.conf は /etc/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。
TASKLIB = FEK.SFEKLOAD,CA.NDVR.AUTHLIB,CA.NDVRU.AUTHLIB CRADEF = FEK.#CUST.CRADEF CRAMSG = FEK.#CUST.CRAMSG CRASTRS = FEK.#CUST.CRASTRS SYSPROC = ISP.SISPCLIB,FEK.SFEKPROC SYSEXEC = ISP.SISPEXEC ISPMLIB = ISP.SISPMENU ISPPLIB = ISP.SISPPENU ISPSLIB = ISP.SISPSENU -COMMAND=ALLOC FI(ISPCTL0) NEW DELETE DSORG(PS) RECFM(F,B) LRECL(80) BLKSIZE(6160) SPACE(2,2) TRACKS UNIT(SYSALLDA) -COMMAND=ALLOC FI(ISPCTL1) NEW DELETE DSORG(PS) RECFM(F,B) LRECL(80) BLKSIZE(6160) SPACE(2,2) TRACKS UNIT(SYSALLDA) -COMMAND=ALLOC FI(ISPPROF) NEW DELETE DSORG(PO) DIR(5) RECFM(F,B) LRECL(80) BLKSIZE(6160) SPACE(2,2) TRACKS UNIT(SYSALLDA) ISPTLIB = -ISPPROF,ISP.SISPTENU ISPTABL = -ISPPROF CARMALOG= SYSOUT(H) SYSPRINT= SYSOUT(H) SYSTSPRT= SYSOUT(H) SYSTSIN = DUMMY TYPEMAP = FEK.#CUST.PARMLIB(CRATMAP) SHOWVIEW= FEK.#CUST.PARMLIB(CRASHOW) CONLIB = CA.NDVR.CONLIB -COMMAND=ALLOC FI(JCLOUT) SYSOUT(A) WRITER(INTRDR) RECFM(F) LRECL(80) BLKSIZE(80) -COMMAND=ALLOC FI(EXT1ELM) NEW DELETE DSORG(PS) RECFM(V,B) LRECL(4096) BLKSIZE(27998) SPACE(5,5) TRACKS UNIT(SYSALLDA) -COMMAND=ALLOC FI(EXT1DEP) NEW DELETE DSORG(PS) RECFM(V,B) LRECL(4096) BLKSIZE(27998) SPACE(5,5) TRACKS UNIT(SYSALLDA) -COMMAND=ALLOC FI(MSG3FILE) NEW DELETE DSORG(PS) RECFM(F,B) LRECL(133) BLKSIZE(27930) SPACE(5,5) TRACKS UNIT(SYSALLDA) -COMMAND=ALLOC FI(C1EXMSGS) NEW DELETE DSORG(PS) RECFM(F,B) LRECL(133) BLKSIZE(27930) SPACE(5,5) TRACKS UNIT(SYSALLDA) -COMMAND=ALLOC FI(C1MSGS1) NEW DELETE DSORG(PS) RECFM(F,B) LRECL(133) BLKSIZE(27930) SPACE(5,5) TRACKS UNIT(SYSALLDA) PROGRAM=IKJEFT01 %CRANDVRA NDVRC1 PGM(CRASERV) PARM(&CRAPRM1. &CRAPRM2.)
バッチ実行依頼始動方式と CRASTART 始動方式はどちらも、REXX exec CRANDVRA を呼び出して、CA Endevor® SCM RAM が使用するユーザー固有のデータ・セットを割り振ります。
DD | データ・セット名 | タイプ |
---|---|---|
DEPEND | &SYSPREF..&SYSUID..&SYSNAME..CRA$NDVR.DEPEND | 永続的 |
BROWSE | &SYSPREF..&SYSUID..&SYSNAME..CRA$NDVR.BROWSE | 一時的 |
C1PRINT | &SYSPREF..&SYSUID..&SYSNAME..CRA$NDVR.LISTING | 一時的 |
特定のデフォルト (データ・セット名など) がご使用のサイトの標準に適合しない場合は、この割り振り REXX exec のコピーをカスタマイズできます。CRANDVRA は FEK.SFEKPROC に置かれます。ただし、Developer for System z の SMP/E インストール時に別の高位修飾子を使用した場合は除きます。
カスタマイズの手順については、CRANDVRA 内のドキュメンテーションを参照してください。
以下の CARMA コンポーネントは、選択した始動方式に関係なく、カスタマイズすることができます。参照するサンプルのメンバーは、FEK.#CUST.PARMLIB に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
CARMA では、複数の RAM を定義し、それらを同時に実行することができます。ただし、1 ユーザーにつきアクティブな CARMA サーバーは 1 つのみであるため、複数の RAM がある場合でも、そのセットアップを機能させるために構成の変更が必要となることがあります。
RAM は、RAM 開発者によって CARMA 構成 VSAM データ・セット CRADEF 内で定義されます。CARMA サーバー CRASERV は、始動時に、定義されているすべての RAM を識別し、その情報を CARMA クライアントに渡します。これでユーザーは 1 つ以上の RAM を選択できるようになり、それらが CARMA サーバーにロードされます。
RAM は CARMA サーバーのプラグインとしてアクティブになるため、各 RAM のすべての前提条件 (データ・セット割り振りなど) が CARMA サーバーのアドレス・スペースで使用可能であることを確認する必要があります。この場合、Developer for System z とともに出荷される CARMA 構成サンプル (CRASUBMT や crastart.conf など) の変更が必要になることがあります。
以下の例では、CA Endevor® SCM RAM を使用する既存のセットアップから CRASTART 始動方式を使用して始動し、サンプルの PDS RAM を追加します。
CA Endevor® SCM RAM 用の定義:
PDS RAM 用の定義:
このプロセスは、システム・プログラマーがセットアップを完了するために必要とするデータと情報を、RAM 開発者が収集することから始まります。
次に、システム・プログラマーがこのデータを使用して更新された CARMA VSAM データ・セットを作成し、前提条件情報を使用して、両方の RAM をサポートできる CRASTART 構成ファイルを作成します。
CA Endevor® SCM RAM は ISPF 環境でアクティブになります。これは、PDS RAM に必要な TSO 環境も使用可能であることを意味します。
TSO (IKJEFTxx) を使用して CARMA サーバーを始動した場合、使用した RAM がサービスを呼び出し、さらにそのサービスが IRXJCL REXX バッチ・インターフェースを呼び出すと、問題が発生することがあります。 問題が発生する可能性があるのは、RAM によって呼び出されたプロセッサーが、以前は TSO なしで稼働していたかオンライン TSO 内でのみ稼働しており、それが DD SYSTSIN または SYSTSPRT を動的に割り振ったときです。この問題を回避するために、サンプル・プログラム CRAXJCL が提供されています。
プロセッサーは、SYSTSIN または SYSTSPRT (IRXJCL に必須) を割り振ろうとした場合に失敗することがあり、これは、バッチ TSO (CARMA に必須) がすでにそれらの DD 名を割り振って開いているためです。CRAXJCL 置換モジュールは SYSTSIN および SYSTSPRT を DUMMY に割り振ろうとしますが、割り振りが失敗した場合に発生するエラーを無視します。
このことは、TSO によって始動された CARMA 環境内でプロセッサーを稼働した場合、SYSTSIN および SYSTSPRT への割り振りは CARMA によって使用される割り振りと同じものであることを意味します。TSO/CARMA の外部でプロセッサーを稼働した場合、SYSTSIN および SYSTSPRINT の割り振りは CRAXJCL によって作成されます。したがって、使用するプロセッサーは、SYSTSIN へ割り振られたデータ・セットの内容に依存してはなりません。
IRXJCL の呼び出しは、「TSO/E REXX 解説書」(SA88-8635) で説明されているように、PARM フィールドを使用して REXX 名および始動パラメーターを渡すものと想定されています。 これは、SYSTSIN が CARMA で安全に使用できることを意味します。IRXJCL によって SYSTSPRT へ送られたすべての出力は、最終的に CARMA のログに収められます。
CRAXJCL 置換モジュールを呼び出すプロセッサーは、CRAXJCL を呼び出す前に DD SYSTSIN または SYSTSPRT の割り振りを試みてはなりません。
CRAXJCL 置換モジュールはソース形式で出荷されます。これは、お客様がこのモジュールをカスタマイズして、SYSTSPRT に使用する固有の割り振りを指定する必要があるためです。SYSTSIN は、通常の場合、ダミー・データ・セットに割り振ってください。
サンプルのアセンブラー・ソース・コードおよびサンプルのコンパイル/バインド・ジョブは、それぞれ FEK.#CUST.ASM(CRAXJCL) および FEK.#CUST.JCL(CRA#CIRX) として出荷されます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
メンバー内のドキュメンテーションを使用し、必要に応じて CRAXJCL アセンブラー・ソース・コードをカスタマイズしてください。後で、CRA#CIRX JCL をカスタマイズおよび実行依頼して、CRAXJCL ロード・モジュールを作成します。カスタマイズの手順については、CRA#CIRX 内のドキュメンテーションを参照してください。
Developer for System z は、さまざまなコンポーネントについて共通するデプロイメントの方法として、Application Deployment Manager の特定の機能を使用します。この章に示すカスタマイズ・ステップは、開発者が以下のいずれかの機能を使用する場合に必要です。
Application Deployment Manager のカスタマイズでは、CICS リソース定義 (CRD) サーバーが追加されます。このサーバーは、z/OS 上で CICS アプリケーションとして実行されて、以下の機能をサポートします。
CICS 管理者は、CICSTS に関する考慮事項で CRD サーバーの詳細を知ることができます。
このカスタマイズ・タスクを完了するには、CICS 管理者、TCP/IP 管理者、およびセキュリティー管理者の支援が必要になります。このタスクには、以下のリソースまたは特殊なカスタマイズ・タスクが必要です。
ご使用のサイトで Application Deployment Manager の使用を開始するには、以下のタスクを行う必要があります。特に断りがない限り、すべてのタスクは必須です。
ジョブ ADNVCRD をカスタマイズおよび実行依頼して、CRD リポジトリー VSAM データ・セットの割り振りと初期化を行います。カスタマイズの手順については、メンバー内のドキュメンテーションを参照してください。
ADNVCRD は FEK.#CUST.JCL にあります。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
CICS 主接続領域ごとに別々のリポジトリーを作成する必要があります。リポジトリーの共用は、関連するすべての CICS 領域がリポジトリー内に保管された同じ値を使用することを意味します。
ユーザーには CRD リポジトリーへの READ アクセス権が必要で、CICS 管理者には UPDATE アクセス権が必要です。
Developer for System z が提供する管理ユーティリティーを使用して、CICS 管理者は CICS リソース定義のデフォルト値を指定できます。これらのデフォルトは、読み取り専用とするか、アプリケーション開発者による編集を可能にすることができます。
管理ユーティリティーは、サンプル・ジョブ ADNJSPAU によって呼び出されます。このユーティリティーを使用するには、CRD リポジトリーに対する UPDATE アクセス権が必要です。
ADNJSPAU は FEK.#CUST.JCL に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
詳細は、CICSTS に関する考慮事項に説明があります。
CICS Transaction Server バージョン 4.1 以上では、Representational State Transfer (RESTful) の原則に従って設計された HTTP インターフェースをサポートしています。現在この RESTful インターフェースは、戦略的な CICSTS インターフェースとしてクライアント・アプリケーションで使用されています。従来の Web サービス・インターフェースはすでに安定化しており、今後は RESTful インターフェースのみが機能拡張の対象となります。
Application Deployment Manager は、この指示書に従い、Developer for System z バージョン 7.6 以上で新たに導入されたすべてのサービスに RESTful CRD サーバーを必要とします。
必要であれば、1 つの CICS 領域で RESTful インターフェースと Web サービス・インターフェースを同時にアクティブにすることができます。この場合、その領域で 2 つの CRD サーバーがアクティブになります。両サーバーは、同じ CRD リポジトリーを共用します。2 番目のインターフェースを領域に対して定義すると、CICS から定義の重複に関する警告が発行されるので注意してください。
このセクションでは、RESTful インターフェースを使用して Developer for System z クライアントと通信する CRD サーバーの定義方法について説明します。
必要であれば、1 つの CICS 領域で RESTful インターフェースと Web サービス・インターフェースを同時にアクティブにすることができます。この場合、その領域で 2 つの CRD サーバーがアクティブになります。両サーバーは、同じ CRD リポジトリーを共用します。2 番目のインターフェースを領域に対して定義すると、CICS から定義の重複に関する警告が発行されるので注意してください。
CRD サーバーを主接続領域に対して定義する必要があります。主接続領域は、Developer for System z からの Web サービス要求を処理する Web Owning Region (WOR) です。
ADNCSDRS は FEK.#CUST.JCL に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
CEDA INSTALL GROUP(ADNPCRGP)
CRD サーバーを 1 つ以上の追加の非主接続領域にも使用できます。それらの領域は通常、Application Owning Regions (AOR) です。
ADNCSDAR は FEK.#CUST.JCL にあります。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
CEDA INSTALL GROUP(ADNARRGP)
Developer for System z は、CICS リソースの定義時および照会時に、CRD サーバーが使用する複数のトランザクションを提供します。
トランザクション | 説明 |
---|---|
ADMS | マニフェスト処理ツールからの CICS リソース変更要求用。一般に、これは CICS 管理者が使用するためのものです。 |
ADMI | CICS リソースを定義、インストール、またはアンインストールする要求用。 |
ADMR | CICS の環境情報またはリソース情報を取り出す、上記以外のすべての要求用。 |
トランザクション ID をサイトの標準に合わせて変更することができます。そのためには、以下のステップを実行します。
このセクションでは、Web サービス・インターフェースを使用して Developer for System z クライアントと通信する CRD サーバーの定義方法について説明します。
必要であれば、1 つの CICS 領域で RESTful インターフェースと Web サービス・インターフェースを同時にアクティブにすることができます。この場合、その領域で 2 つの CRD サーバーがアクティブになります。両サーバーは、同じ CRD リポジトリーを共用します。2 番目のインターフェースを領域に対して定義すると、CICS から定義の重複に関する警告が発行されるので注意してください。
パイプライン・メッセージ・ハンドラー (ADNTMSGH) は、SOAP ヘッダー内のユーザー ID とパスワードを処理することにより、セキュリティーのために使用されます。ADNTMSGH は、サンプルのパイプライン構成ファイルによって参照されるため、CICS RPL 連結の中に入れる必要があります。パイプライン・メッセージ・ハンドラーと必要なセキュリティー・セットアップの詳細については、CICSTS に関する考慮事項を参照してください。
Developer for System z は、CICS リソースの定義および照会時に、CRD サーバーが使用する複数のトランザクションを提供します。これらのトランザクション ID は、要求された操作に応じて ADNTMSGH が設定します。サイト固有の ADNTMSGH のカスタマイズができるように、サンプルの COBOL ソース・コードが提供されています。
トランザクション | 説明 |
---|---|
ADMS | マニフェスト処理ツールからの CICS リソース変更要求用。一般に、これは CICS 管理者が使用するためのものです。 |
ADMI | CICS リソースを定義、インストール、またはアンインストールする要求用。 |
ADMR | CICS の環境情報またはリソース情報を取り出す、上記以外のすべての要求用。 |
デフォルトの使用:
ADNTMSGH のカスタマイズ:
サンプルのメンバー ADNMSGH* は、FEK.#CUST.JCL および FEK.#CUST.COBOL に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
CRD サーバーを主接続領域に対して定義する必要があります。主接続領域は、Developer for System z からのサービス要求を処理する領域です。
ADNCSDWS は FEK.#CUST.JCL に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
CEDA INSTALL GROUP(ADNPCRGP)
CRD サーバーを 1 つ以上の追加の非主接続領域にも使用できます。それらの領域は通常、Application Owning Regions (AOR) です。
ADNCSDAR は FEK.#CUST.JCL にあります。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
CEDA INSTALL GROUP(ADNARRGP)
Developer for System z では、クライアントは選択した CICS リソースを記述しているマニフェストを参照でき、オプションとして、変更することもできます。CICS 管理者によって設定された許可に応じて、変更を直接行うか、あとで CICS 管理者が処理できるよう、マニフェスト・リポジトリーにエクスポートすることができます。
ジョブ ADNVMFST をカスタマイズおよび実行依頼して、マニフェスト・リポジトリー VSAM データ・セットの割り振りと初期化を行い、それを CICS 主接続領域に対して定義します。カスタマイズの手順については、メンバー内のドキュメンテーションを参照してください。 CICS 主接続領域ごとに別々のマニフェスト・リポジトリーを作成する必要があります。すべてのユーザーにマニフェスト・リポジトリーへの UPDATE アクセス権が必要です。
ADNVMFST は FEK.#CUST.JCL にあります。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
SCLM Developer Toolkit は、SCLM の機能を拡張するために必要なツールをクライアントに提供します。SCLM 自体はホスト・ベースのソース・コード・マネージャーであり、ISPF の一部として出荷されています。
SCLM Developer Toolkit は、Eclipse ベースのプラグインを備えており、SCLM へのインターフェースになります。また、レガシー・コード開発のすべての SCLM プロセスへのアクセスを提供するほか、メインフレーム上の SCLM と同期したワークステーション上での完全な Java および J2EE 開発 (メインフレームからの J2EE コードのビルド、アセンブル、およびデプロイメントを含む) もサポートします。
このカスタマイズ・タスクを完了するには、SCLM 管理者、およびオプションとしてセキュリティー管理者の支援が必要になります。このタスクには、以下のリソースか特殊なカスタマイズ・タスク、またはその両方が必要です。
ご使用のサイトで SCLM Developer Toolkit の使用を開始するには、以下のタスクを行う必要があります。特に断りがない限り、すべてのタスクは必須です。
必要な SCLM 保守のリストについては、付録E. 必要条件を参照してください。
この付録には、SCLM Developer Toolkit 内の JAVA/J2EE ビルドに必要な Ant 仕様も記載されています。
重要: SCLM Developer Toolkit には ISPF の TSO/ISPF クライアント・ゲートウェイを使用する必要があります。これは、z/OS 1.8 以上が必要であることを意味します。 |
PARMLIB の変更の説明にあるように、SCLM Developer Toolkit を使用するには、システム設定の追加のカスタマイズが必要です。それらの変更内容は、以下のとおりです。
また、SCLM Developer Toolkit は SDSF または TSO OUTPUT コマンドを使用して、ジョブの完了状況とジョブの出力を取り出します。どちらの方法でも、以下の点にさらに注意が必要です。
ユーザーには、z/OS UNIX ディレクトリー /tmp/ および /var/rdz/WORKAREA/ に対する READ、WRITE、および EXECUTE 権限が必要です。ディレクトリー WORKAREA/ は /var/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
SCLM Developer Toolkit は標準の ISPF/SCLM スケルトンを使用するため、スケルトン・ライブラリー ISP.SISPSLIB が ISPF.conf 内の ISPSLIB 連結に割り振られるようにしてください。ISP.SISPSENU データ・セットの使用はオプションです。
ISPF.conf は /etc/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。
次のサンプル・コードは ISPF.conf ファイルを示しています。このファイルは、使用するシステム環境に合わせてカスタマイズする必要があります。コメント行は、アスタリスク (*) で始まります。同じ行にある連結にデータ・セットを追加し、名前同士をコンマ (,) で分離します。ISPF.conf のカスタマイズの詳細については、ISPF.conf、ISPF の TSO/ISPF クライアント・ゲートウェイ構成ファイルを参照してください。
* REQUIRED: sysproc=ISP.SISPCLIB,FEK.SFEKPROC ispmlib=ISP.SISPMENU isptlib=ISP.SISPTENU ispplib=ISP.SISPPENU ispslib=ISP.SISPSLIB * OPTIONAL: *allocjob = FEK.#CUST.CNTL(CRAISPRX) *ISPF_timeout = 900
ispslib=hlq.USERSKEL,ISP.SISPSLIB
SCLM Developer Toolkit は、rsed.envvars の中で設定されたいくつかのディレクティブを使用して、データ・セットおよびディレクトリーを見つけます。
rsed.envvars は /etc/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。
次のコード・サンプルは、rsed.envvars ファイル内の SCLMDT ディレクティブを示しています。このファイルは、使用するシステム環境に合わせてカスタマイズする必要があります。rsed.envvars のカスタマイズの詳細については、rsed.envvars、RSE 構成ファイルを参照してください。
_SCLMDT_CONF_HOME=/var/rdz/sclmdt #STEPLIB=$STEPLIB:FEK.SFEKAUTH:FEK.SFEKLOAD #_SCLMDT_TRANTABLE=FEK.#CUST.LSTRANS.FILE #ANT_HOME=/usr/lpp/Apache/Ant/apache-ant-1.7.1 _SCLMDT_BASE_HOME=$RSE_HOME _SCLMDT_WORK_HOME=$_CMDSERV_WORK_HOME CGI_DTWORK=$_SCLMDT_WORK_HOME
SCLM Developer Toolkit では、ロング・ネーム・ファイル (8 文字を超える名前または大/小文字混合の名前を持つファイル) を SCLM に保管することができます。 これは、長いファイル名から SCLM で使用される 8 文字のメンバー名へのマッピングを含む VSAM ファイルを使用して達成されます。
ISPF サンプル・ライブラリー ISP.SISPSAMP 内のサンプル・メンバー FLM02LST をカスタマイズして実行依頼し、ロング/ショート・ネーム変換 VSAM を作成します。本資料の構成ステップでは、以下のサンプルのセットアップ JCL に示すように、この VSAM に FEK.#CUST.LSTRANS.FILE という名前を付けるものとします。
//FLM02LST JOB <job parameters> //* //* CAUTION: This is neither a JCL procedure nor a complete job. //* Before using this sample, you will have to make the following //* modifications: //* 1. Change the job parameters to meet your system requirements. //* 2. Change ****** to the volume that will hold the VSAM. //* 3. Change all references of FEK.#CUST.LSTRANS.FILE to //* match your naming convention for the SCLM translate VSAM. //* //CREATE EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE FEK.#CUST.LSTRANS.FILE SET MAXCC=0 DEFINE CLUSTER(NAME(FEK.#CUST.LSTRANS.FILE) - VOLUMES(******) - RECORDSIZE(58 2048) - SHAREOPTIONS(3 3) - CYLINDERS(1 1) - KEYS(8 0) - INDEXED) - DATA (NAME(FEK.#CUST.LSTRANS.FILE.DATA)) - INDEX (NAME(FEK.#CUST.LSTRANS.FILE.INDEX)) /* DEFINE ALTERNATE INDEX WITH NONUNIQUE KEYS -> ESDS */ DEFINE ALTERNATEINDEX(- NAME(FEK.#CUST.LSTRANS.FILE.AIX) - RELATE(FEK.#CUST.LSTRANS.FILE) - RECORDSIZE(58 2048) - VOLUMES(******) - CYLINDERS(1 1) - KEYS(50 8) - UPGRADE - NONUNIQUEKEY) - DATA (NAME(FEK.#CUST.LSTRANS.FILE.AIX.DATA)) - INDEX (NAME(FEK.#CUST.LSTRANS.FILE.AIX.INDEX)) /* //* //PRIME EXEC PGM=IDCAMS,COND=(0,LT) //SYSPRINT DD SYSOUT=* //INITREC DD * INITREC1 /* //SYSIN DD * REPRO INFILE(INITREC) - OUTDATASET(FEK.#CUST.LSTRANS.FILE) IF LASTCC = 4 THEN SET MAXCC=0 BLDINDEX IDS(FEK.#CUST.LSTRANS.FILE) - ODS(FEK.#CUST.LSTRANS.FILE.AIX) IF LASTCC = 0 THEN - DEFINE PATH (NAME(FEK.#CUST.LSTRANS.FILE.PATH) - PATHENTRY (FEK.#CUST.LSTRANS.FILE.AIX)) /*
ロング/ショート・ネーム変換を使用する前に、rsed.envvars 環境変数 _SCLMDT_TRANTABLE をコメント解除し、ロング/ショート・ネーム変換 VSAM の名前に一致するように設定します。
rsed.envvars は /etc/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。
このステップは、SCLM で JAVA/J2EE ビルド・サポートを使用する場合にのみ、必要となります。
Apache Ant はオープン・ソースの Java ビルド・ツールであり、http://ant.apache.org/ からダウンロードできます。 Ant はテキスト・ファイルとスクリプトからなり、それらは ASCII フォーマットで配布されています。このため、z/OS UNIX で実行するためには、ASCII/EBCDIC 変換が必要です。
以下のステップを実行して、Ant を z/OS に実装し、Developer for System z に対して定義します。
JAVA_HOME=/usr/lpp/java/IBM/J5.0
ANT_HOME=/usr/lpp/Apache/Ant/apache-ant-1.7.1
次に例を示します。
Ant の初期化が正常に行われたことをテストするには、次のようにします。
例:
export PATH=/usr/lpp/Apache/Ant/apache-ant-1.7.1/bin:$PATH export PATH=/usr/lpp/java/IBM/J5.0/bin:$PATH
例:
ant -version
SCLM 自体も、SCLM Developer Toolkit を処理するためにはカスタマイズが必要です。 以下の必要なカスタマイズ・タスクの詳細については、「IBM Rational Developer for System z SCLM Developer Toolkit 管理者ガイド」(SC88-5664) を参照してください。
カスタマイズ・タスクおよびプロジェクト定義タスクを完了するためには、SCLM 管理者は、表 13 に示す Developer for System z のカスタマイズ可能値を知っている必要があります。
説明 |
|
値 |
---|---|---|
Developer for System z サンプル・ライブラリー |
|
|
Developer for System z サンプル・ディレクトリー |
|
|
Java bin ディレクトリー |
|
|
Ant bin ディレクトリー |
|
|
WORKAREA ホーム・ディレクトリー |
|
|
SCLMDT プロジェクト構成ホーム・ディレクトリー |
|
|
ロング/ショート・ネーム変換 VSAM |
|
SCLM Developer Toolkit と ISPF の TSO/ISPF クライアント・ゲートウェイは同じ WORKAREA を共用し、この WORKAREA は定期的なクリーンアップを必要とする場合があります。それについての詳細は、(オプション) WORKAREA クリーンアップを参照してください。
このセクションは、さまざまなオプションのカスタマイズ・タスクを結合したものです。 求めるサービスを構成するには、該当するセクションの説明に従ってください。
このカスタマイズ・タスクを完了するには、WLM 管理者および DB2 管理者の支援が必要になります。このタスクには、以下のリソースまたは特殊なカスタマイズ・タスクが必要です。
|
Developer for System z には、Developer for System z クライアントから COBOL および PL/I ストアード・プロシージャーをビルドするための、サンプルの DB2 ストアード・プロシージャー (PL/I および COBOL ストアード・プロシージャー・ビルダー) が用意されています。
ワークロード管理 (WLM) パネルを使用して、アプリケーション環境を、PL/I および COBOL ストアード・プロシージャー・ビルダー用の WLM アドレス・スペースの JCL プロシージャーに関連付けます。その方法については、「MVS 計画: ワークロード管理」(SA88-8574) を参照してください。
サンプルのストアード・プロシージャー・タスク FEK.#CUST.PROCLIB(ELAXMSAM) を、このメンバー内で説明されているようにカスタマイズし、SYS1.PROCLIB にコピーしてください。 下記のコード・サンプルに示すように、以下のものを提供する必要があります。
//ELAXMSAM PROC RGN=0M, // NUMTCB=1, // APPLENV=#wlmwd4z, // DB2SSN=#ssn, // DB2PRFX='DSN810', // COBPRFX='IGY.V3R4M0', // PLIPRFX='IBMZ.V3R6M0', // LIBPRFX='CEE', // LODPRFX='FEK' //* //DSNX9WLM EXEC PGM=DSNX9WLM,REGION=&RGN,TIME=NOLIMIT,DYNAMNBR=10, // PARM='&DB2SSN,&NUMTCB,&APPLENV' //STEPLIB DD DISP=SHR,DSN=&DB2PRFX..SDSNEXIT // DD DISP=SHR,DSN=&DB2PRFX..SDSNLOAD // DD DISP=SHR,DSN=&LIBPRFX..SCEERUN // DD DISP=SHR,DSN=&COBPRFX..SIGYCOMP // DD DISP=SHR,DSN=&PLIPRFX..SIBMZCMP //SYSEXEC DD DISP=SHR,DSN=&LODPRFX..SFEKPROC //SYSTSPRT DD SYSOUT=* //CEEDUMP DD SYSOUT=* //SYSABEND DD DUMMY //SYSUT1 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT2 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT5 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT6 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //SYSUT7 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)) //*
データ・セット FEK.#CUST.JCL 内のサンプル・メンバー ELAXMJCL をカスタマイズおよび実行依頼し、DB2 に対してストアード・プロシージャーを定義します。カスタマイズの手順については、メンバー内のドキュメンテーションを参照してください。
//ELAXMJCL JOB <job parameters> //JOBPROC JCLLIB ORDER=(#hlq.SDSNPROC) //JOBLIB DD DISP=SHR,DSN=#hlq.SDSNEXIT // DD DISP=SHR,DSN=#hlq.SDSNLOAD //* //RUNTIAD EXEC PGM=IKJEFT01,DYNAMNBR=20 //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * DSN S(#ssn) R(1) T(1) RUN PROGRAM(DSNTIAD) PLAN(DSNTIAD) - LIB('#hlq.RUNLIB.LOAD') //SYSPRINT DD SYSOUT=* //SYSIN DD * CREATE PROCEDURE SYSPROC.ELAXMREX ( IN FUNCTION_REQUEST VARCHAR(20) CCSID EBCDIC , IN SQL_ROUTINE_NAME VARCHAR(27) CCSID EBCDIC , IN SQL_ROUTINE_SOURCE VARCHAR(32672) CCSID EBCDIC , IN BIND_OPTIONS VARCHAR(1024) CCSID EBCDIC , IN COMPILE_OPTIONS VARCHAR(255) CCSID EBCDIC , IN PRECOMPILE_OPTIONS VARCHAR(255) CCSID EBCDIC , IN PRELINK_OPTIONS VARCHAR(32672) CCSID EBCDIC , IN LINK_OPTIONS VARCHAR(255) CCSID EBCDIC , IN ALTER_STATEMENT VARCHAR(32672) CCSID EBCDIC , IN SOURCE_DATASETNAME VARCHAR(80) CCSID EBCDIC , IN BUILDOWNER VARCHAR(8) CCSID EBCDIC , IN BUILDUTILITY VARCHAR(18) CCSID EBCDIC , OUT RETURN_VALUE VARCHAR(255) CCSID EBCDIC ) PARAMETER STYLE GENERAL RESULT SETS 1 LANGUAGE REXX EXTERNAL NAME ELAXMREX COLLID DSNREXCS WLM ENVIRONMENT ELAXMSAM PROGRAM TYPE MAIN MODIFIES SQL DATA STAY RESIDENT NO COMMIT ON RETURN NO ASUTIME NO LIMIT SECURITY USER; COMMENT ON PROCEDURE SYSPROC.ELAXMREX IS 'PLI & COBOL PROCEDURE PROCESSOR (ELAXMREX), INTERFACE LEVEL 0.01'; GRANT EXECUTE ON PROCEDURE SYSPROC.ELAXMREX TO PUBLIC; //*
このカスタマイズ・タスクには、支援や特殊リソース、または特殊なカスタマイズ・タスクは必要ありません。 |
Developer for System z クライアントには、エンタープライズ・サービス・ツール (EST) と呼ばれるコード生成コンポーネントがあります。生成されるコードは、そのタイプに応じて、Developer for System z ホスト・インストールが提供する機能に依存します。これらのホスト機能を使用可能にする方法を、以下のセクションで説明しています。
このカスタマイズ・タスクを完了するには、CICS 管理者の支援が必要になります。このタスクには、以下のリソースまたは特殊なカスタマイズ・タスクが必要です。
|
Developer for System z エンタープライズ・サービス・ツール (EST) コンポーネントは、さまざまな形式のアラビア語およびヘブライ語のインターフェース・メッセージをサポートしているほか、すべてのエディターおよびビューで双方向言語データの表示と編集をサポートしています。端末アプリケーションでは、左から右と、右から左の両方の画面がサポートされ、数値フィールド、および画面とは反対の向きのフィールドもサポートされます。
そのほかの双方向言語フィーチャーおよび機能には、以下のものがあります。
さらに、EST 生成コードは、CICS SFR (サービス・フロー・ランタイム) 以外の環境での bidi 変換をサポートできます。その一例がバッチ・アプリケーションです。EST 生成ウィザードで適切な bidi 変換オプションを指定し、生成されたプログラムを適切な双方向変換ライブラリー FEK.SFEKLOAD とリンクすることにより、EST 生成プログラムに、双方向変換ルーチンの呼び出しを組み込ませることができます。
CICS 双方向言語サポートをアクティブにするには、以下のタスクを実行します。
CEDA DEF PROG(FEJBDCMP) LANG(LE) G(xxx) CEDA DEF PROG(FEJBDTRX) LANG(LE) G(xxx)
このカスタマイズ・タスクには、支援は必要ありませんが、以下のリソースまたは特殊なカスタマイズ・タスクが必要となります。
|
Developer for System z クライアントには、エンタープライズ・サービス・ツール (EST) と呼ばれるコード生成コンポーネントがあります。EST によって生成されたコードが診断用エラー・メッセージを発行するためには、FEK.SFEKLOAD ロード・ライブラリー内のすべての IRZ* および IIRZ* モジュールを、その生成コードが使用できるようにする必要があります。EST では、以下の環境向けにコードを生成できます。
生成コードが CICS トランザクションで実行される場合は、FEK.SFEKLOAD 内のすべての IRZ* および IIRZ* モジュールを、CICS 領域の DFHRPL DD に追加します。この作業は、適用された保守が自動的に CICS で使用可能になるように、インストール・データ・セットを連結に追加する方法で行ってください。
それ以外の状態では、STEPLIB または LINKLIST を通じて、FEK.SFEKLOAD 内のすべての IRZ* および IIRZ* モジュールを使用可能にします。この作業は、適用された保守が自動的に CICS で使用可能になるように、インストール・データ・セットを連結に追加する方法で行ってください。
STEPLIB を使用する場合は、LINKLIST によって使用できないモジュールを、コードを実行するタスクの STEPLIB ディレクティブで定義する必要があります。
ロード・モジュールを使用できず、生成コードでエラーが発生した場合は、次のエラー・メッセージが発行されます。
IRZ9999S Failed to retrieve the text of a Language Environment runtime message. Check that the Language Environment runtime message module for facility IRZ is installed in DFHRPL or STEPLIB.
このカスタマイズ・タスクを完了するには、セキュリティー管理者の支援が必要になります。このタスクには、以下のリソースまたは特殊なカスタマイズ・タスクが必要です。
|
外部 (クライアント/ホスト) 通信を SSL (Secure Sockets Layer) で暗号化できます。このフィーチャーは、デフォルトでは使用不可に設定され、ssl.properties 内の設定によって制御されます。
ssl.properties は /etc/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。 変更を有効にするには、RSE の再始動が必要であることに注意してください。
クライアントは接続のセットアップ時には RSE デーモンと通信し、実際のセッションのときは RSE サーバーと通信します。どちらのデータ・ストリームも、SSL を使用可能にした場合は暗号化されます。
RSE デーモンおよび RSE サーバーは、両者間のアーキテクチャーの違いから、証明書の保管に関して異なるメカニズムをサポートしています。これは、RSE デーモンと RSE サーバーの両方に SSL 定義が必要であることを意味しています。RSE デーモンと RSE サーバーが同じ証明書管理方式を使用する場合は、共用証明書を使用できます。
証明書ストレージ | 作成者および管理者 | RSE デーモン | RSE サーバー |
---|---|---|---|
鍵リング | SAF 準拠のセキュリティー製品 | サポート | サポート |
鍵データベース | z/OS UNIX の gskkyman | サポート | / |
鍵ストア | Java の keytool | / | サポート |
RSE デーモンは、System SSL の機能を使用して SSL を管理します。 これは SYS1.SIEALNKE が、ご使用のセキュリティー・ソフトウェアによってプログラム制御されることが必要で、LINKLIST または rsed.envvars 内の STEPLIB ディレクティブを介して RSE から使用可能でなければならないことを意味しています。
次のコード・サンプルは ssl.properties ファイルを示しています。このファイルは、使用するシステム環境に合わせてカスタマイズする必要があります。US コード・ページを使用する場合、コメント行はポンド記号 (#) で始まります。データ行には、ディレクティブとそれに割り当てられる値のみを入れることができ、その同じ行にコメントを入れることはできません。行の継続はサポートされていません。
# ssl.properties - SSL configuration file enable_ssl=false # Daemon Properties #daemon_keydb_file= #daemon_keydb_password= #daemon_key_label= # Server Properties #server_keystore_file= #server_keystore_password= #server_keystore_label= #server_keystore_type=JCERACFKS
デーモンおよびサーバーのプロパティーは、SSL を使用可能にする場合にのみ、設定する必要があります。 SSL セットアップの詳細については、付録A. SSL および X.509 認証のセットアップを参照してください。
キーワード | 鍵ストアのタイプ |
---|---|
JKS | Java 鍵ストア |
JCERACFKS | SAF 準拠の鍵リング。この場合は、証明書の秘密鍵がセキュリティー・データベースに保管されます。 |
JCECCARACFKS | SAF 準拠の鍵リング。この場合は、証明書の秘密鍵が System z 暗号化ハードウェアとのインターフェースである ICSF を使用して保管されます。 |
security.provider.1=com.ibm.crypto.hdwrCCA.provider.IBMJCECCA
更新後のファイルは以下のようになります。
security.provider.1=com.ibm.crypto.hdwrCCA.provider.IBMJCECCA security.provider.2=com.ibm.jsse2.IBMJSSEProvider2 security.provider.3=com.ibm.crypto.provider.IBMJCE security.provider.4=com.ibm.security.jgss.IBMJGSSProvider security.provider.5=com.ibm.security.cert.IBMCertPath security.provider.6=com.ibm.security.sasl.IBMSASL
Developer for System z は、問題解決の目的から、さまざまなレベルでの内部プログラム・フローのトレースをサポートしています。RSE、および RSE が呼び出すサービスの一部では、出力ログでの必要な詳細レベルを認識するために、rsecomm.properties 内の設定を使用します。
重要: これらの設定の変更は、パフォーマンス低下の原因になるため、IBM サポートの指示の下でのみ実行してください。 |
rsecomm.properties は /etc/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。
次のコード・サンプルは、rsecomm.properties ファイルを示しています。このファイルは、トレースの必要性に合わせてカスタマイズできます。US コード・ページを使用する場合、コメント行はポンド記号 (#) で始まります。データ行には、ディレクティブとそれに割り当てられる値のみを入れることができ、その同じ行にコメントを入れることはできません。行の継続はサポートされていません。
# server.version - DO NOT MODIFY! server.version=5.0.0 # Logging level # 0 - Log error messages # 1 - Log error and warning messages # 2 - Log error, warning and info messages debug_level=1 # Log location # Log_To_StdOut # Log_To_File log_location=Log_To_File
有効な値は以下のとおりです。
0 | エラー・メッセージのみをログに記録します。 |
1 | エラー・メッセージと警告メッセージをログに記録します。 |
2 | エラー・メッセージ、警告メッセージ、および情報メッセージをログに記録します。 |
有効な値は以下のとおりです。
Log_To_File | ログ・メッセージをログ出力ディレクトリー内の別のファイルに送信します。
|
Log_To_StdOut | ログ・メッセージを stdout に送信します。
|
daemonlog は rsed.envvars 内の daemon.log ディレクティブの値です。daemon.log ディレクティブがコメント化されているか存在しない場合は、RSED 開始タスクに割り当てられているユーザー ID のホーム・パスが使用されます。ホーム・パスはユーザー ID の OMVS セキュリティー・セグメントで定義されます。
ユーザー固有のログは、userlog/.eclipse/RSE/$LOGNAME に書き込まれます。ここで、userlog は rsed.envvars 内の user.log ディレクティブの値、$LOGNAME はログオン・ユーザー ID (大文字) です。user.log ディレクティブがコメント化されているか存在しない場合は、ユーザーのホーム・パスが使用されます。ホーム・パスはユーザー ID の OMVS セキュリティー・セグメントで定義されます。
Developer for System z クライアントは、各種プロパティー (例えば、COBOL ソース・コードをコンパイルするときに使用する COBOL コンパイラー・オプション) のデフォルト値を保持するプロパティー・グループを定義できます。Developer for System z には、いくつかのデフォルト値が組み込まれていますが、システム固有のカスタムのデフォルト値を定義することもできます。
カスタムのプロパティー・グループ構成ファイルおよびデフォルト値構成ファイルのロケーションは /etc/rdz/ にある propertiescfg.properties の中で定義されています。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。 詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。変更を有効にするには、RSE の再始動が必要であることに注意してください。
次のコード・サンプルは propertiescfg.properties ファイルを示しています。このファイルは、使用するシステム環境に合わせてカスタマイズする必要があります。US コード・ページを使用する場合、コメント行はポンド記号 (#) で始まります。データ行には、ディレクティブとそれに割り当てられる値のみを入れることができます。同じ行にコメントを入れることはできません。行の継続はサポートされていません。
# # host based property groups - root configuration file # ENABLED=FALSE RDZ-VERSION=7.5.0.0 PROPERTY-GROUP=/var/rdz/properties DEFAULT-VALUES=/var/rdz/properties
プロパティー・グループ構成ファイル (propertygroups.xml) およびデフォルト値構成ファイル (defaultvalues.xml) の詳しい作成方法については、Developer for System z インフォメーション・センター (http://publib.boulder.ibm.com/infocenter/ratdevz/v7r6/index.jsp) を参照してください。
z/OS プロジェクトは、クライアント上の「z/OS プロジェクト」パースペクティブを通じて個別に定義するか、ホスト上で集中的に定義してクライアントへユーザー単位で伝搬することができます。それらの「ホスト・ベースのプロジェクト」は、クライアント上で定義されたプロジェクトと外観も機能もまったく同じですが、クライアントは、それらの構造、メンバー、およびプロパティーを変更できず、ホストに接続している場合にのみ、それらのプロジェクトにアクセスできます。
プロジェクト定義のロケーションは /etc/rdz/ にある projectcfg.properties の中で定義されています。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。変更を有効にするには、RSE の再始動が必要であることに注意してください。
次のコード・サンプルは projectcfg.properties ファイルを示しています。このファイルは、使用するシステム環境に合わせてカスタマイズする必要があります。 US コード・ページを使用する場合、コメント行はポンド記号 (#) で始まります。データ行には、ディレクティブとそれに割り当てられる値のみを入れることができます。同じ行にコメントを入れることはできません。行の継続はサポートされていません。
# # host based projects - root configuration file # # WSED-VERSION - do not modify ! WSED-VERSION=7.0.0.0 # specify the location of the host based project definition files PROJECT-HOME=/var/rdz/projects
ホスト・ベースのプロジェクトの詳細については、Developer for System z インフォメーション・センター (http://publib.boulder.ibm.com/infocenter/ratdevz/v7r6/index.jsp) を参照してください。
このカスタマイズ・タスクを完了するには、セキュリティー管理者の支援が必要になります。このタスクには、以下のリソースまたは特殊なカスタマイズ・タスクが必要です。
|
Developer for System z は、クライアントから IBM File Manager for z/OS 機能の限定セットへの直接アクセスをサポートしています。IBM File Manager for z/OS は、MVS データ・セット、z/OS UNIX ファイル、DB2、IMS および CICS データを処理するための包括的なツールを提供します。これらのツールは、ISPF でなじみ深いブラウズ、編集、コピー、および印刷ユーティリティーを、アプリケーション開発者の必要性を満たすように機能拡張したものです。現行バージョンの Developer for System z では、MVS データ・セット (全タイプの VSAM を含みます) のブラウズと編集、MVS データ・セット・テンプレート (動的なテンプレートを含みます) の作成と編集、および拡張コピー・ユーティリティーのみがサポートされています。
IBM File Manager for z/OS 製品は、別個にオーダーし、インストールし、構成する必要があることに注意してください。使用しているバージョンの Developer for System z に必要な File Manager のレベルについては、「Rational Developer for System z 前提条件」(SC88-4704) を参照してください。 この製品のインストールとカスタマイズについては、本書には記載されていません。
Developer for System z および File Manger では、File Manager のサービスにアクセスするためのバッチ・インターフェースがサポートされなくなりました。現在は、File Manager リスナーを使用する必要があります。
Developer for System z に必要な File Manager Integration 定義は、/etc/rdz/ にある FMIEXT.properties に保管されています。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。変更を有効にするには、RSE の再始動が必要であることに注意してください。
次のコード・サンプルは FMIEXT.properties ファイルを示しています。このファイルは、使用するシステム環境に合わせてカスタマイズする必要があります。US コード・ページを使用する場合、コメント行はポンド記号 (#) で始まります。データ行には、ディレクティブとそれに割り当てられる値のみを入れることができます。同じ行にコメントを入れることはできません。行の継続はサポートされていません。
# File Manager Integration (FMI) Extension properties # enabled=false fmlistenport=1960
一部の文字は、ホスト・コード・ページ (EBCDIC ベース) とクライアント・コード・ページ (ASCII ベース) の間で、正しく変換できません。Developer for System z クライアント・エディターは、uchars.settings ファイル内の定義を使用して、それらの編集不可能文字を識別します。エディターは、uchars.settings で識別された文字を含むデータ・セットが保存されるときに壊れることを防ぐために、そのデータ・セットをオープンする際に強制的に読み取り専用モードになります。
uchars.settings は /etc/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。このファイルは、TSO OEDIT コマンドで編集できます。変更を有効にするには、RSE の再始動が必要であることに注意してください。また、IBM サポートから指示された場合以外、このファイルを変更しないことが推奨される点にも注意してください。
# uchars.settings - uneditable code points # * * 0D 15 25; # DBCS (Japanese, Korean & Chinese) IBM-930 * 0D 15 1E 1F 25; IBM-933 * 0D 15 1E 1F 25; IBM-935 * 0D 15 1E 1F 25; IBM-937 * 0D 15 1E 1F 25; IBM-939 * 0D 15 1E 1F 25; IBM-1390 * 0D 15 1E 1F 25; IBM-1399 * 0D 15 1E 1F 25; IBM-1364 * 0D 15 1E 1F 25; IBM-1371 * 0D 15 1E 1F 25; IBM-1388 * 0D 15 1E 1F 25; # UNICODE UTF-8 * 0D 0A; UTF-16BE * 0D 0A; UTF-16LE * 0D 0A; UTF-16 * 0D 0A;
このファイルは、以下のフォーマットの複数の項目から構成されています。
HOST-CODEPAGE LOCAL-CODEPAGE HEX-CODEPOINTS ;
ここで、HEX-CODEPOINTS は、編集不可能文字を識別する 2 桁の 16 進コード・ポイントをブランクで区切ったリストです。このリストは、セミコロン (;) で終了する必要があります。
以下の構文規則が適用されます。
REXEC (リモート実行) は、クライアントがホスト上でコマンドを実行できるようにする TCP/IP サービスです。SSH (セキュア・シェル) も同様なサービスですが、このサービスでは、すべての通信が SSL (Secure Sockets Layer) によって暗号化されます。Developer for System z は、いずれかのサービスを使用して、z/OS UNIX サブプロジェクトでリモート (ホスト・ベース) アクションを実行します。
また、REXEC (または SSH) を使用してホスト上で RSE サーバーを始動するように Developer for System z を構成することもできます。ただし、この方法で開始した接続では、接続ごとに別々の RSE サーバーが始動され、それぞれがかなりの量のシステム・リソースを使用することに注意してください。したがって、この代替の接続方式は、接続の数が少ない場合にしか実行できません。
また、REXEC (または SSH) 代替接続方式は RSE デーモンを迂回するため、本書で述べるすべてのホスト・サービスに必ずしもアクセスできるわけではありません。例えば、単一サーバー処理や監査にはアクセスできません。特定のホスト・サービスが REXEC 代替接続方式でサポートされているかどうかについては、IBM サポートにお問い合わせください
z/OS UNIX サブプロジェクトのリモート (ホスト・ベースの) アクションを実行するには、ホスト上で REXEC または SSH がアクティブであることが必要です。REXEC/SSH がデフォルト・ポートを使用するように構成されていない場合、Developer for System z クライアントは z/OS UNIX サブプロジェクトに使用する正しいポートを定義する必要があります。これを行うには、「ウィンドウ」>「設定...」>「z/OS ソリューション」>「USS サブプロジェクト」>「リモート・アクション・オプション」設定ページを選択します。どのポートが使用されるかについては、REXEC (または SSH) のセットアップを参照してください。
Developer for System z クライアントは、REXEC (または SSH) を通じて RSE 接続を開始するために次の 2 つの値を認識している必要があります。
server.zseries は /etc/rdz/ に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに、別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
cp /usr/lpp/rdz/bin/server.zseries /etc/rdz
どのポートが使用されるかについては、REXEC (または SSH) のセットアップを参照してください。
REXEC (または SSH) をセットアップするために必要なステップについては、「Communications Server IP 構成ガイド」(SC88-8926) に説明があります。Developer for System z に固有なセットアップに関する考慮事項については、付録C. INETD のセットアップを参照してください (Developer for System z に固有なセットアップ・ステップはありません)。
REXEC で使用される共通のポートは 512 です。これを確認するために、/etc/inetd.conf および /etc/services を調べて、使用されているポート番号を知ることができます。
exec stream tcp nowait OMVSKERN /usr/sbin/orexecd rexecd -LV
exec 512/tcp #REXEC Command Server
同じ原則が SSH にも適用されます。その共通のポートは 22 で、サーバー名は sshd です。
このカスタマイズ・タスクを完了するには、APPC 管理者および WLM 管理者の支援が必要になります。このタスクには、以下のリソースまたは特殊なカスタマイズ・タスクが必要です。
|
TSO コマンド・サービスは、APPC トランザクション・プログラム、FEKFRSRV として実装できます。このトランザクションはホスト・サーバーとして機能し、ワークステーションから発行された TSO コマンドおよび ISPF コマンドを実行します。クライアントは RSE を通じて FEKFRSRV と通信するので、ワークステーション上に APPC は必要ありません。各クライアントは、同時に複数のホストへのアクティブな接続を持つことができます。
/* REXX -- APPC administration using ISPF panels */ address ISPEXEC "LIBDEF ISPMLIB DATASET ID('ICQ.ICQMLIB') STACK" "LIBDEF ISPPLIB DATASET ID('ICQ.ICQPLIB') STACK" "LIBDEF ISPSLIB DATASET ID('ICQ.ICQSLIB') STACK" "LIBDEF ISPTLIB DATASET ID('ICQ.ICQTLIB') STACK" address TSO "ALTLIB ACT APPLICATION(CLIST)", "DSN('ICQ.ICQCCLIB') UNCOND QUIET" "SELECT CMD(%ICQASRM0) NEWAPPL(ICQ) PASSLIB" address TSO "ALTLIB DEACT APPLICATION(CLIST) QUIET" "LIBDEF ISPMLIB" "LIBDEF ISPPLIB" "LIBDEF ISPSLIB" "LIBDEF ISPTLIB" exit
専門知識 | 必須情報:
|
値 |
---|---|---|
APPC | TPDATA のデータ・セット名
|
|
APPC | 使用されるトランザクション名 (存在していない可能性がある)
|
|
APPC | 使用される APPC トランザクション・クラス
|
|
WLM/SRM | TSO パフォーマンス・グループおよびドメイン
|
|
RACF | すべての Developer for System z ユーザーは OMVS セグメントにアクセスできます (これは必須です)。
|
|
RACF | すべての Developer for System z ユーザーは、hlq.SFEKPROC(FEKFRSRV) に対する READ アクセス権を持っている必要があります。
|
WLM/SRM 管理の詳細については、「MVS 計画: ワークロード管理」(SA88-8574) を参照してください。 OMVS セグメントおよびデータ・セット保護プロファイルの詳細については、「Security Server RACF セキュリティー管理者のガイド」(SA88-8613) を参照してください。
CLASSADD CLASSNAME(A) MAX(20) MIN(1) MSGLIMIT(200)
IVP=IVP パラメーターを指定するか、fekfivpt インストール検査プログラム (IVP) と一緒に RSE デーモンを始動することにより、TCP/IP 構成をテストすることができます (インストール検査を参照)。
ISPF の TSO/ISPF クライアント・ゲートウェイおよび SCLM Developer Toolkit 機能は WORKAREA ディレクトリーに一時作業ファイルを保管しますが、それらのファイルは、セッションが閉じる前に除去されます。ところが、処理中に通信エラーが発生した場合など、一時出力が残される場合があります。このため、時々 WORKAREA ディレクトリーを整理することをお勧めします。
z/OS UNIX には、ファイルが入っているディレクトリーとファイルの経過日数に基づいてファイルを削除する、skulker というシェル・スクリプトがあります。指定された日時にコマンドを実行する z/OS UNIX cron デーモンと結合すれば、定期的に WORKAREA ディレクトリーを空にする自動化ツールをセットアップできます。skulker スクリプトおよび cron デーモンの詳細については、「UNIX System Services コマンド解説書」(SA88-8641) を参照してください。
製品のカスタマイズの完了後、この章で説明するインストール検査プログラム (IVP) を使用して、主要な製品コンポーネントのセットアップが正常であることを検査できます。
JMON 開始タスク (またはユーザー・ジョブ) を開始します。DD STDOUT での開始情報は、次のメッセージで終わります。
JM200I Server initialization complete.
ジョブが戻りコード 66 で終了する場合は、FEK.SFEKAUTH に APF 許可がありません。
LOCKD 開始タスク (またはユーザー・ジョブ) を開始します。開始が成功すると、ロック・デーモンは次のコンソール・メッセージを発行します。
FEK501I Lock daemon started, port=4036, cleanup interval=1440, log level=1
RSED 開始タスク (またはユーザー・ジョブ) を、IVP=IVP パラメーターを指定して開始します。このパラメーターを指定すると、サーバーはいくつかのインストール検査テストを行った後に終了します。それらのテストの出力は、DD STDOUT で入手できます。エラーが発生した場合は、DD STDERR でもデータを入手できます。 STDOUT データは、次のサンプルのようになります。
FEK002I RseDaemon started. (port=4035)
RSE daemon IVP test Wed Jul 2 17:11:52 2008 UTC uid=8(STCRSE) gid=1(STCGROUP) RSE daemon port is 4035 RSE configuration files located in /etc/rdz ------------------------------------------------------------- current environment variables ------------------------------------------------------------- @="/usr/lpp/rdz/bin/rsed.sh" @[1]="4035" @[2]="/etc/rdz" CGI_DTCONF="/var/rdz/sclmdt" CGI_DTWORK="/var/rdz" CGI_TRANTABLE="FEK.#CUST.LSTRANS.FILE" CLASSPATH=".:/usr/lpp/rdz/lib:/usr/lpp/rdz/lib/dstore_core.jar:/usr/lpp/ ERRNO="0" HOME="/tmp" IFS=" " JAVA_HOME="/usr/lpp/java/J5.0" JAVA_PROPAGATE="NO" LANG="C" LIBPATH=".:/usr/lib:/usr/lpp/java/J5.0/bin:/usr/lpp/java/J5.0/bin/classi LINENO="66" LOGNAME="STCRSE" MAILCHECK="600" OLDPWD="/tmp" OPTIND="1" PATH=".:/usr/lpp/java/J5.0/bin:/usr/lpp/rdz/bin:/usr/lpp/ispf/bin:/bin:/ PPID="33554711" PS1="\$ " PS2="> " PS3="#? " PS4="+ " PWD="/etc/rdz" RANDOM="27298" RSE_CFG="/etc/rdz" RSE_HOME="/usr/lpp/rdz" RSE_LIB="/usr/lpp/rdz/lib" SECONDS="0" SHELL="/bin/sh" STEPLIB="NONE" TZ="EST5EDT" _BPX_SHAREAS="YES" _BPX_SPAWN_SCRIPT="YES" _CEE_DMPTARG="/tmp" _CEE_RUNOPTS="ALL31(ON) HEAP(32M,32K,ANYWHERE,KEEP,,) TRAP(ON)" _CMDSERV_BASE_HOME="/usr/lpp/ispf" _CMDSERV_CONF_HOME="/etc/rdz" _CMDSERV_WORK_HOME="/var/rdz" _RSE_CMDSERV_OPTS="&SESSION=SPAWN" _RSE_DAEMON_CLASS="com.ibm.etools.zos.server.RseDaemon" _RSE_DAEMON_IVP_TEST="1" _RSE_DAEMON_PORT="4035" _RSE_JAVAOPTS=" -DISPF_OPTS='&SESSION=SPAWN' -DA_PLUGIN_PATH=/usr/lpp/rd _RSE_POOL_SERVER_CLASS="com.ibm.etools.zos.server.ThreadPoolProcess" _RSE_PWD="/tmp" _RSE_SERVER_CLASS="org.eclipse.dstore.core.server.Server" _RSE_SERVER_TIMEOUT="120000" _SCLMDT_BASE_HOME="/usr/lpp/rdz" _SCLMDT_CONF_HOME="/var/rdz/sclmdt" _SCLMDT_TRANTABLE="FEK.#CUST.LSTRANS.FILE" _SCLMDT_WORK_HOME="/var/rdz" _SCLM_BASE="/var/rdz/WORKAREA" _SCLM_BWBCALL="/usr/lpp/rdz/bin/BWBCALL" _SCLM_DWGET="/var/rdz/WORKAREA" _SCLM_DWTRANSFER="/var/rdz/WORKAREA" _SCLM_J2EEPUT="/var/rdz/WORKAREA" ------------------------------------------------------------- java startup test... ------------------------------------------------------------- java version "1.5.0" Java(TM) 2 Runtime Environment, Standard Edition (build pmz31dev-2008031 IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 z/OS s390-31 j9vmmz3123-2008 J9VM - 20080314_17962_bHdSMr JIT - 20080130_0718ifx2_r8 GC - 200802_08) JCL - 20080314 ------------------------------------------------------------- TCP/IP IVP test... ------------------------------------------------------------- Wed Jul 2 13:11:54 EDT 2008 uid=8(STCRSE) gid=1(STCGROUP) using /etc/rdz/rsed.envvars ------------------------------------------------------------- TCP/IP resolver configuration (z/OS UNIX search order): ------------------------------------------------------------- Resolver Trace Initialization Complete -> 2008/07/02 13:11:54.745964 res_init Resolver values: Global Tcp/Ip Dataset = None Default Tcp/Ip Dataset = None Local Tcp/Ip Dataset = /etc/resolv.conf Translation Table = Default UserId/JobName = STCRSE Caller API = LE C Sockets Caller Mode = EBCDIC (L) DataSetPrefix = TCPIP (L) HostName = CDFMVS08 (L) TcpIpJobName = TCPIP (L) DomainOrigin = RALEIGH.IBM.COM (L) NameServer = 9.42.206.2 9.42.206.3 (L) NsPortAddr = 53 (L) ResolverTimeout = 10 (L) ResolveVia = UDP (L) ResolverUdpRetries = 1 (*) Options NDots = 1 (*) SockNoTestStor (*) AlwaysWto = NO (L) MessageCase = MIXED (*) LookUp = DNS LOCAL res_init Succeeded res_init Started: 2008/07/02 13:11:54.755363 res_init Ended: 2008/07/02 13:11:54.755371 ************************************************************************ MVS TCP/IP NETSTAT CS V1R9 TCPIP Name: TCPIP 13:11:54 Tcpip started at 01:28:36 on 06/23/2008 with IPv6 enabled ------------------------------------------------------------- host IP address: ------------------------------------------------------------- hostName=CDFMVS08 hostAddr=9.42.112.75 bindAddr=9.42.112.75 localAddr=9.42.112.75 Success, addresses match ------------------------------------------------------------- PassTicket IVP test... ------------------------------------------------------------- Success, PassTicket IVP finished normally ------------------------------------------------------------- RSE daemon IVP ended
Developer for System z インストールは、基本およびオプションのサービス用に、いくつかのインストール検査プログラム (IVP) を提供します。IVP スクリプトは、インストール・ディレクトリー (デフォルトでは /usr/lpp/rdz/bin/) に置かれます。
fekfivpa | (オプション) APPC を使用した TSO コマンド・サービス接続 |
fekfivpd | RSE デーモン接続 |
fekfivpi | ISPF の TSO/ISPF クライアント・ゲートウェイ接続 |
fekfivpj | JES ジョブ・モニター接続 |
fekfivpl | ロック・デーモン接続 |
fekfivpr | (オプション) REXEC 接続 |
fekfivps | (オプション) SCLMDT 接続 |
fekfivpt | TCP/IP のセットアップ |
fekfivpz | (オプション) REXEC/SSH シェル・スクリプト |
以下に述べるタスクでは、ユーザーが z/OS UNIX 内でアクティブであることを想定しています。そのためには、TSO コマンド OMVS を発行します。TSO に戻るには、exit コマンドを使用します。
IVP を実行するユーザー ID には大きな領域サイズが必要です。これは、大量のメモリーを必要とする機能 (Java など) が実行されるからです。領域サイズは、131072 キロバイト (128 メガバイト) 以上に設定してください。
次に示すサンプルのエラーは、領域サイズが不十分であることを明らかに示しています (ただし、ほかのエラーが発生する可能性もあります。例えば Java を始動できない場合があります)。
CEE5213S The signal SIGPIPE was received. %z/OS UNIX command%: command was killed by signal number 13 %line-number% *-* %REXX command% +++ RC(137) +++
このセクションのサンプル・コマンドはすべて、特定の環境変数が設定されていることを想定しています。これにより、IVP スクリプトは PATH ステートメントを通じて入手でき、カスタマイズされた構成ファイルのロケーションが判明します。pwd コマンドおよび cd コマンドを使用して、現行ディレクトリーを検査し、カスタマイズした構成ファイルがあるディレクトリーに変更してください。その後、次のサンプルのように ivpinit シェル・スクリプトを使用して RSE 環境変数を設定できます ($ は z/OS UNIX プロンプトです)。
$ pwd /u/userid $ cd /etc/rdz $ . ./ivpinit RSE configuration files located in /etc/rdz --default added /usr/lpp/rdz/bin to PATH
. ./ivpinit の最初の「.」(ドット) は、シェルを現行環境で実行するための z/OS UNIX コマンドです。これにより、シェル内で設定された環境変数が、シェルを出た後も有効になります。2 番目のドットは現行ディレクトリーを参照しています。
/usr/lpp/rdz/bin/fekfivpr 512 USERIDまた、. ./ivpinit が最初に実行されなかった場合、ほとんどの fekfivp* スクリプトは、カスタマイズされた rsed.envvars のロケーションの指定を要求します。
$ EXPORT STEPLIB=$STEPLIB:TCPIP.SEZALOAD
既存の STEPLIB に APF 許可のないライブラリーを追加すると、既存の STEPLIB データ・セットの APF 許可が除去されることに注意してください。
また、CEE.SCEELKED が LINKLIST または STEPLIB 内にある場合は、TCPIP.SEZALOAD を CEE.SCEELKED の前に配置する必要があることにも注意してください。そうしないと、TCP/IP REXX ソケット呼び出しで 0C1 システム異常終了が発生します。
RSE 接続問題の診断方法については、構成問題のトラブルシューティング、または Developer for System z サポート・ページ (http://www-306.ibm.com/software/awdtools/rdz/support/) の技術情報を参照してください。
netstat コマンドを発行することにより、JES ジョブ・モニター、RSE デーモン、およびオプションとして REXEC または SSH ポートの可用性を検査できます。 結果として、それらのサービスによって使用されているポートが次のサンプルのように表示されます ($ は z/OS UNIX プロンプトです)。
IPv4
$ netstat MVS TCP/IP NETSTAT CS VxRy TCPIP Name: TCPIP 13:57:36 User Id Conn Local Socket Foreign Socket State ------- ---- ------------ -------------- ----- RSED 0000004B 0.0.0.0..4035 0.0.0.0..0 Listen LOCKD 0000004C 0.0.0.0..4036 0.0.0.0..0 Listen JMON 00000037 0.0.0.0..6715 0.0.0.0..0 Listen
IPv6
$ netstat MVS TCP/IP NETSTAT CS VxRy TCPIP Name: TCPIP 14:03:35 User Id Conn State ------- ---- ----- RSED 0000004B Listen Local Socket: 0.0.0.0..4035 Foreign Socket: 0.0.0.0..0 LOCKD 0000004C Listen Local Socket: 0.0.0.0..4036 Foreign Socket: 0.0.0.0..0 JMON 00000037 Listen Local Socket: 0.0.0.0..6715 Foreign Socket: 0.0.0.0..0
TSO コマンド・サービスに APPC を使用する場合、Developer for System z は TCP/IP が初期化時に正しいホスト名を持っているかどうかに依存します。つまり、各種の TCP/IP 構成ファイルやリゾルバー構成ファイルが正しくセットアップされていなければなりません。TCP/IP およびリゾルバーのセットアップの詳細については、付録B. TCP/IP のセットアップを参照してください。次のコマンドを実行することにより、現行の設定値を検査します。
fekfivpt
このコマンドは次のサンプルのような出力を返します ($ は z/OS UNIX プロンプトです)。
$ fekfivpt Wed Jul 2 13:11:54 EDT 2008 uid=1(USERID) gid=0(GROUP) using /etc/rdz/rsed.envvars current address space size limit is 1914675200 (1826.0 MB) maximum address space size limit is 2147483647 (2048.0 MB) ------------------------------------------------------------- TCP/IP resolver configuration (z/OS UNIX search order): ------------------------------------------------------------- Resolver Trace Initialization Complete -> 2008/07/02 13:11:54.745964 res_init Resolver values: Global Tcp/Ip Dataset = None Default Tcp/Ip Dataset = None Local Tcp/Ip Dataset = /etc/resolv.conf Translation Table = Default UserId/JobName = USERID Caller API = LE C Sockets Caller Mode = EBCDIC (L) DataSetPrefix = TCPIP (L) HostName = CDFMVS08 (L) TcpIpJobName = TCPIP (L) DomainOrigin = RALEIGH.IBM.COM (L) NameServer = 9.42.206.2 9.42.206.3 (L) NsPortAddr = 53 (L) ResolverTimeout = 10 (L) ResolveVia = UDP (L) ResolverUdpRetries = 1 (*) Options NDots = 1 (*) SockNoTestStor (*) AlwaysWto = NO (L) MessageCase = MIXED (*) LookUp = DNS LOCAL res_init Succeeded res_init Started: 2008/07/02 13:11:54.755363 res_init Ended: 2008/07/02 13:11:54.755371 ************************************************************************ MVS TCP/IP NETSTAT CS V1R9 TCPIP Name: TCPIP 13:11:54 Tcpip started at 01:28:36 on 06/23/2008 with IPv6 enabled ------------------------------------------------------------- host IP address: ------------------------------------------------------------- hostName=CDFMVS08 hostAddr=9.42.112.75 bindAddr=9.42.112.75 localAddr=9.42.112.75 Success, addresses match
次のコマンドを実行することにより、RSE デーモン接続を検査します。4035 は RSE デーモンが使用するポートに、また、USERID は有効なユーザー ID に置き換えてください。
fekfivpd 4035 USERID
パスワードを求めるプロンプトの後、このコマンドは次のサンプルのような出力を返します ($ は z/OS UNIX プロンプトです)。
$ fekfivpd 4035 USERID Wed Jul 2 15:00:27 EDT 2008 uid=1(USERID) gid=0(GROUP) using /etc/rdz/rsed.envvars current address space size limit is 1914675200 (1826.0 MB) maximum address space size limit is 2147483647 (2048.0 MB) Password: SSL is disabled connected 8108 570655399 Success
次のコマンドを実行することにより、JES ジョブ・モニター接続を検査します。 6715 は JES ジョブ・モニターのポート番号に置き換えてください。
fekfivpj 6715
このコマンドは、次のサンプルに示すような JES ジョブ・モニター確認応答メッセージを返します ($ は z/OS UNIX プロンプトです)。
$ fekfivpj 6715 Wed Jul 2 15:00:27 EDT 2008 uid=1(USERID) gid=0(GROUP) using /etc/rdz/rsed.envvars current address space size limit is 1914675200 (1826.0 MB) maximum address space size limit is 2147483647 (2048.0 MB) hostName=CDFMVS08 hostAddr=9.42.112.75 Waiting for JES Job Monitor response... ACKNOWLEDGE01v03 Success
次のコマンドを実行することにより、ロック・デーモン接続を検査します。
fekfivpl
このコマンドは次のサンプルのような出力を返します ($ は z/OS UNIX プロンプトです)。
$ fekfivpl Mon Jun 29 08:00:38 EDT 2009 uid=1(USERID) gid=0(GROUP) using /etc/rdz/rsed.envvars current address space size limit is 1914675200 (1826.0 MB) maximum address space size limit is 2147483647 (2048.0 MB) hostName=CDFMVS08 hostAddr=9.42.112.75 Registering user to Lock Daemon... Waiting for Lock Daemon response... Querying to Lock Daemon... Waiting for Lock Daemon response... USERID Unregistering user from Lock Daemon... Waiting for Lock Daemon response... Querying to Lock Daemon... Waiting for Lock Daemon response... Success
次のコマンドを実行することにより、ISPF の TSO/ISPF クライアント・ゲートウェイへの接続を検査します。
fekfivpi
このコマンドは、次のサンプルに示すような、ISPF の TSO/ISPF クライアント・ゲートウェイに関連した検査 (変数、HFS モジュール、TSO/ISPF セッションの開始および停止) の結果を返します ($ は z/OS UNIX プロンプトです)。
$ fekfivpi Wed Jul 2 15:00:27 EDT 2008 uid=1(USERID) gid=0(GROUP) using /etc/rdz/rsed.envvars current address space size limit is 1914675200 (1826.0 MB) maximum address space size limit is 2147483647 (2048.0 MB) ------------------------------------------------------------- /etc/rdz/ISPF.conf content: ------------------------------------------------------------- ispmlib=ISP.SISPMENU isptlib=ISP.SISPTENU ispplib=ISP.SISPPENU ispslib=ISP.SISPSLIB sysproc=ISP.SISPCLIB,FEK.SFEKPROC ------------------------------------------------------------- Host install verification for RSE Review IVP log messages from HOST below : ------------------------------------------------------------- RSE connection and base TSO/ISPF session initialization check only *** CHECK : ENVIRONMENT VARIABLES - key variables displayed below : Server PATH = /usr/lpp/java/J5.0/bin:/usr/lpp/rdz/lib:/usr/lpp/ispf/bin: /bin:/usr/sbin:. STEPLIB = FEK.SFEKAUTH:FEK.SFEKLOAD _CMDSERV_BASE_HOME = /usr/lpp/ispf _CMDSERV_CONF_HOME = /etc/rdz _CMDSERV_WORK_HOME = /var/rdz ------------------------------------------------------------- *** CHECK : USS MODULES Checking ISPF Directory : /usr/lpp/ispf Checking modules in /usr/lpp/ispf/bin directory Checking for ISPF configuration file ISPF.conf RC=0 MSG: SUCCESSFUL ------------------------------------------------------------- *** CHECK : TSO/ISPF INITIALIZATION ( TSO/ISPF session will be initialized ) RC=0 MSG: SUCCESSFUL ------------------------------------------------------------- *** CHECK: Shutting down TSO/ISPF IVP session RC=0 MSG: SUCCESSFUL ------------------------------------------------------------- Host installation verification completed successfully -------------------------------------------------------------
fekfivpi には、以下に示すオプションの非定位置パラメーターがあります。
次のコマンドを実行することにより、APPC を使用する TSO コマンド・サーバーへの接続を検査します。USERID は、有効なユーザー ID に置き換えてください。
fekfivpa USERID
パスワードを求めるプロンプトの後、このコマンドは次のサンプルのような APPC 会話を返します ($ は z/OS UNIX プロンプトです)。
$ fekfivpa USERID Enter password: Wed Jul 2 15:00:27 EDT 2008 uid=1(USERID) gid=0(GROUP) using /etc/rdz/rsed.envvars current address space size limit is 1914675200 (1826.0 MB) maximum address space size limit is 2147483647 (2048.0 MB) 20070607 13:57:18.584060 /usr/lpp/rdz/bin/fekfscmd: version=Oct 2003 20070607 13:57:18.584326 Input parms: 1.2.3.4 * NOTRACE USERID ******** 20070607 13:57:18.586800 APPC: Allocate succeeded 20070607 13:57:18.587022 Conversation id is 0DDBD3F80000000D 20070607 13:57:18.587380 APPC: Set Send Type succeeded 20070607 13:57:26.736674 APPC: Confirm succeeded 20070607 13:57:26.737027 Req to send recd value is 0 20070607 13:57:26.737546 APPC: SEND_DATA return_code = 0 20070607 13:57:26.737726 request_to_send_received = 0 20070607 13:57:26.737893 Send Data succeeded 20070607 13:57:26.738169 APPC: Set Prepare to Receive type succeeded 20070607 13:57:26.738580 APPC: Prepare to Receive succeeded 20070607 13:57:26.808899 APPC: Receive data 20070607 13:57:26.809122 RCV return_code = 0 20070607 13:57:26.809270 RCV data_received= 2 20070607 13:57:26.809415 RCV received_length= 29 20070607 13:57:26.809556 RCV status_received= 4 20070607 13:57:26.809712 RCV req_to_send= 0 20070607 13:57:26.809868 Receive succeeded :IP: 0 9.42.112.75 1674 50246 20070607 13:57:26.810533 APPC: CONFIRMED succeeded
次のコマンドを実行することにより、SCLM Developer Toolkit への接続を検査します。
fekfivps
このコマンドは、次のサンプルに示すような SCLM Developer Toolkit 関連の検査 (変数、HFS モジュール、REXX ランタイム、TSO/ISPF セッションの開始および停止) の結果を返します ($ は z/OS UNIX プロンプトです)。
$ fekfivps Wed Jul 2 15:00:27 EDT 2008 uid=1(USERID) gid=0(GROUP) using /etc/rdz/rsed.envvars current address space size limit is 1914675200 (1826.0 MB) maximum address space size limit is 2147483647 (2048.0 MB) ------------------------------------------------------------- /etc/rdz/ISPF.conf content: ------------------------------------------------------------- ispmlib=ISP.SISPMENU isptlib=ISP.SISPTENU ispplib=ISP.SISPPENU ispslib=ISP.SISPSLIB sysproc=ISP.SISPCLIB,FEK.SFEKPROC ------------------------------------------------------------- Host install verification for RSE Review IVP log messages from HOST below : ------------------------------------------------------------- *** CHECK : ENVIRONMENT VARIABLES - key variables displayed below : Server PATH = /usr/lpp/java/J5.0/bin:/usr/lpp/rdz/lib:/usr/lpp/ispf/bin: /bin:/usr/sbin:. STEPLIB = FEK.SFEKAUTH:FEK.SFEKLOAD _CMDSERV_BASE_HOME = /usr/lpp/ispf _CMDSERV_CONF_HOME = /etc/rdz _CMDSERV_WORK_HOME = /var/rdz _SCLMDT_CONF_HOME = /var/rdz/sclmdt _SCLMDT_WORK_HOME = /var/rdz _SCLMDT_TRANTABLE = FEK.#CUST.LSTRANS.FILE ------------------------------------------------------------- *** CHECK : JAVA PATH SETUP VERIFICATION RC=0 MSG: SUCCESSFUL ------------------------------------------------------------- *** CHECK : USS MODULES Checking ISPF Directory : /usr/lpp/ispf Checking modules in /usr/lpp/ispf/bin directory Checking for ISPF configuration file ISPF.conf Checking install bin Directory : /usr/lpp/rdz/bin RC=0 MSG: SUCCESSFUL ------------------------------------------------------------- *** CHECK : REXX RUNTIME ENVIRONMENT RC=0 MSG: SUCCESSFUL ------------------------------------------------------------- *** CHECK : TSO/ISPF INITIALIZATION ( TSO/ISPF session will be initialized ) RC=0 MSG: SUCCESSFUL ------------------------------------------------------------- *** CHECK: Shutting down TSO/ISPF IVP session RC=0 MSG: SUCCESSFUL ------------------------------------------------------------- Host installation verification completed successfully -------------------------------------------------------------
fekfivps には、以下に示すオプションの非定位置パラメーターがあります。
次のコマンドを実行することにより、REXEC 接続を検査します。512 は REXEC が使用するポートに、また、USERID は有効なユーザー ID に置き換えてください。
fekfivpr 512 USERID
パスワードを求めるプロンプトの後、このコマンドは REXEC トレース、タイムアウトの警告、Java バージョン、および RSE サーバー・メッセージを次のサンプルのように返します ($ は z/OS UNIX プロンプトです)。
$ fekfivpr 512 USERID Enter password: Wed Jul 2 15:00:27 EDT 2008 uid=1(USERID) gid=0(GROUP) using /etc/rdz/rsed.envvars current address space size limit is 1914675200 (1826.0 MB) maximum address space size limit is 2147483647 (2048.0 MB) $ EZYRC01I Calling function rexec_af with the following: EZYRC02I Host: CDFMVS08, user USERID, cmd cd /etc/rdz;export RSE_USER_ID=USERI D;./server.zseries -ivp, port 512 EZYRC19I Data socket = 4, Control socket = 6. RSE server IVP test CDFMVS08 -- Wed Jul 2 15:00:27 EDT 2008 uid=1(USERID) gid=0(GROUP) RSE configuration files located in /etc/rdz --default RSE userid is USERID --default ------------------------------------------------------------- Address Space size limits ------------------------------------------------------------- current address space size limit is 2147483647 (2048.0 MB) maximum address space size limit is 2147483647 (2048.0 MB) ------------------------------------------------------------- service history ------------------------------------------------------------- Fri Jun 19 00:01:00 2009 -- COPY -- HHOP760 v7600 created 18 Jun 2009 ------------------------------------------------------------- expect to see time out messages after a successful IVP test ------------------------------------------------------------- starting RSE server in background -- Fri Jun 19 15:59:05 EDT 2009 ------------------------------------------------------------- java version "1.5.0" Java(TM) 2 Runtime Environment, Standard Edition (build pmz31dev-20070201 (SR4)) IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 z/OS s390-31 j9vmmz3123-20070201 (JI T enabled) J9VM - 20070131_11312_bHdSMr JIT - 20070109_1805ifx1_r8 GC - 200701_09) JCL - 20070126 DStore Server Starting... Server Started Successfully 8108 Server running on: CDFMVS08
Connection error Server: error initializing socket: java.net.SocketTimeoutException: Accept timed out
この IVP テストは、(オプション) REXEC 接続で概説した前のテストが正常に完了した場合はスキップすることができます。
次のコマンドを実行することにより、REXEC および SSH 接続で使用されるシェル・スクリプトを検査します。
fekfivpz
このコマンドは、タイムアウトの警告、Java バージョン、および RSE サーバー・メッセージを次のサンプルのように返します ($ は z/OS UNIX プロンプトです)。
$ fekfivpz Wed Jul 2 15:00:27 EDT 2008 uid=1(USERID) gid=0(GROUP) using /etc/rdz/rsed.envvars current address space size limit is 1914675200 (1826.0 MB) maximum address space size limit is 2147483647 (2048.0 MB) ------------------------------------------------------------- RSE server IVP test CDFMVS08 -- Wed Jul 2 15:00:27 EDT 2008 uid=1(USERID) gid=0(GROUP) RSE configuration files located in /etc/rdz --default RSE userid is USERID --default ------------------------------------------------------------- Address Space size limits ------------------------------------------------------------- current address space size limit is 2147483647 (2048.0 MB) maximum address space size limit is 2147483647 (2048.0 MB) ------------------------------------------------------------- service history ------------------------------------------------------------- Fri Jun 19 00:01:00 2009 -- COPY -- HHOP760 v7600 created 18 Jun 2009 ------------------------------------------------------------- expect to see time out messages after a successful IVP test ------------------------------------------------------------- starting RSE server in background -- Fri Jun 19 15:59:05 EDT 2009 ------------------------------------------------------------- java version "1.5.0" Java(TM) 2 Runtime Environment, Standard Edition (build pmz31dev-20070201 (SR4)) IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 z/OS s390-31 j9vmmz3123-20070201 (JI T enabled) J9VM - 20070131_11312_bHdSMr JIT - 20070109_1805ifx1_r8 GC - 200701_09) JCL - 20070126 DStore Server Starting... Server Started Successfully 8108 Server running on: CDFMVS08
Connection error Server: error initializing socket: java.net.SocketTimeoutException: Accept timed out
この章では、Developer for System z で使用可能なオペレーター (またはコンソール) コマンドの概要を説明します。コマンド・フォーマットの説明に使用される構文図がよく分からない場合は、構文図の読み方を参照してください。
START コマンドは、開始タスク (STC) を動的に開始するために使用します。このコマンドの省略形バージョンは英字の S です。
MODIFY コマンドを使用すると、アクティブ・タスクの特性を動的に照会および変更することができます。このコマンドの省略形バージョンは英字の F です。
<clientid> : <userid> : <connected since>
ProcessId(<processid>) Memory Usage(<java heap usage>%) Clients(<number of clients>) Order(<startup order>) <error status>
通常の状態では、<error status> はブランクです。表 18 に、<error status> のブランク以外の値を示します。
状況 | 説明 |
---|---|
*severe error* | スレッド・プール・プロセスでリカバリー不能エラーが発生し、操作が停止されました。その他の状況フィールドには、最後に認識された値が示されます。この項目をテーブルから除去するには、DISPLAY PROCESS 変更コマンドの CLEANUP オプションを使用します。 |
*killed process* | スレッド・プール・プロセスが、Java、z/OS UNIX、またはオペレーター・コマンドによって強制終了されました。その他の状況フィールドには、最後に認識された値が示されます。この項目をテーブルから除去するには、DISPLAY PROCESS 変更コマンドの CLEANUP オプションを使用します。 |
*timeout* | クライアント接続要求で、スレッド・プール・プロセスが時間内に RSE デーモンに応答しませんでした。その他の状況フィールドには、現行値が示されます。このスレッド・プールは、今後のクライアント接続要求で除外されます。*timeout* 状況は、このスレッド・プールで処理されているクライアントがログオフするとリセットされます。 |
DISPLAY PROCESS 変更コマンドの DETAIL オプションを使用すると、詳細情報が表示されます。
ProcessId(33555087) ASId(002E) JobName(RSED8) Order(1) PROCESS LIMITS: CURRENT HIGHWATER LIMIT JAVA HEAP USAGE(%) 10 56 100 CLIENTS 0 25 60 MAXFILEPROC 83 103 64000 MAXPROCUSER 97 99 200 MAXTHREADS 9 14 1500 MAXTHREADTASKS 9 14 1500
ASId フィールドは、16 進表記のアドレス・スペース ID です。「PROCESS LIMITS」の表には、現在のリソース使用量、リソース使用量の最高水準点、およびリソースの限度が示されます。他の制限要因のために、定義された限度に到達しない場合があることに注意してください。
E または 0 または OFF | エラー・メッセージのみ。 |
W または 1 | エラー・メッセージと警告メッセージ。これは、rsecomm.properties でのデフォルトの設定です。 |
I または 2 または ON | エラー・メッセージ、警告メッセージ、および情報メッセージ。 |
詳細なトレースはパフォーマンス低下の原因になるため、IBM サポートの指示の下でのみ実行してください。
E または 0 または OFF | エラー・メッセージのみ。 |
I または 2 または ON | エラー・メッセージ、警告メッセージ、および情報メッセージ。 |
詳細なトレースはパフォーマンス低下の原因になるため、IBM サポートの指示の下でのみ実行してください。
E または 0 または OFF | エラー・メッセージのみ。 |
I または 2 または ON | エラー・メッセージ、警告メッセージ、および情報メッセージ。 |
詳細なトレースはパフォーマンス低下の原因になるため、IBM サポートの指示の下でのみ実行してください。
詳細なトレースはパフォーマンス低下の原因になるため、IBM サポートの指示の下でのみ実行してください。
BPXM023I (stclock) dataset[(member)] NOT LOCKED BPXM023I (stclock) dataset[(member)] LOCKED BY userid
RSE サーバーがロック・デーモンにクライアントを登録できない場合は、コンソール・メッセージ FEK513W が生成されます。このメッセージに記述されている ASID 値および TCB 値を D GRS,RES=(*,dataset[(member)]) オペレーター・コマンドの出力と比較して、ロックを保持している実際のユーザーを知ることができます。
アクティブ・タスクを停止するには、STOP コマンドを使用します。このコマンドの省略形バージョンは英字の P です。
JES ジョブ・モニターには、製品固有のコンソール・メッセージはありません。サーバーは Developer for System z クライアントが実行したアクションのコンソール・メッセージを生成する際、z/OS および JES に依存します。
表 19 は、RSE デーモン、RSE スレッド・プール・サーバー、およびロック・デーモンが生成する製品固有のコンソール・メッセージのリストです。
メッセージ ID | メッセージ・テキスト |
---|---|
FEK001I | RseDaemon を {0} ビット・モードで初期化します。 (RseDaemon being initialized in {0} bit mode) |
FEK002I | RseDaemon が始動しました。(RseDaemon started.) (ポート={0}) ((port={0})) |
FEK003I | 停止コマンドを処理中です。(Stop command being processed) |
FEK004I | RseDaemon: 最大ヒープ・サイズ ={0}MB および専用 AS サイズ ={1}MB (Max Heap Size={0}MB and private AS Size={1}MB) |
FEK005I | サーバー・プロセスが開始されました。(Server process started.) (processId={0}) |
FEK009I | RseDaemon がサーバー・プロセスの開始を待っています。(RseDaemon is waiting for the server process to start.) |
FEK010I | (rsed.envvars ロケーション = {0}) ((rsed.envvars location = {0})) |
FEK011I | (ログ・ディレクトリー = {0}) ((log directory = {0})) |
FEK100E | デーモン・ポート/タイムアウト値は数字でなければなりません。(Daemon port/timeout value must be digits) |
FEK101E | JRE {0} 以上が必要です。(JRE {0} or higher required) |
FEK102E | 無効な引数を受け取りました: {0} (Invalid arguments received: {0}) |
FEK103E | {0} のディスクがほとんど満杯です。(Almost Disk-Full in {0}) |
FEK104E | 最大処理数に到達しました。(Maximum number of processes has been reached) |
FEK105E | 監査データ送信中のエラー (rc={0}) (Error in sending audit data (rc={0})) |
FEK110E | socket() が失敗しました。(socket() failed.) 理由=({0}) (reason=({0})) |
FEK111E | setsockopt() が失敗しました。(setsockopt() failed.)理由=({0}) (reason=({0})) |
FEK112E | bind() が失敗しました。(bind() failed.)理由=({0}) (reason=({0})) |
FEK113E | listen() が失敗しました。(listen() failed.) 理由=({0}) (reason=({0})) |
FEK114E | accept() が失敗しました。(accept() failed.) 理由=({0}) (reason=({0})) |
FEK115E | write() が失敗しました。 (write() failed.) 理由=({0}) (reason=({0})) |
FEK116E | pipe() が失敗しました。 (pipe() failed.)理由=({0}) (reason=({0})) |
FEK117E | socketpair() が失敗しました。 (socketpair() failed.) 理由=({0}) (reason=({0})) |
FEK118E | select() が失敗しました。(select() failed.) 理由=({0}) (reason=({0})) |
FEK119E | _console() が失敗しました。 (_console() failed.)理由=({0}) (reason=({0})) |
FEK130E | gsk_environment_open() が失敗しました。(gsk_environment_open() failed.) 理由=({0}) (reason=({0})) |
FEK131E | gsk_attribute_set_enum(GSK_PROTOCOL_SSLV2) が失敗しました。(gsk_attribute_set_enum(GSK_PROTOCOL_SSLV2) failed.) 理由=({0}) (reason=({0})) |
FEK132E | gsk_attribute_set_enum(GSK_PROTOCOL_SSLV3) が失敗しました。(gsk_attribute_set_enum(GSK_PROTOCOL_SSLV3) failed.) 理由=({0}) (reason=({0})) |
FEK133E | gsk_attribute_set_enum(GSK_PROTOCOL_TLSV1) が失敗しました。(gsk_attribute_set_enum(GSK_PROTOCOL_TLSV1) failed.) 理由=({0}) (reason=({0})) |
FEK134E | gsk_attribute_set_buffer(GSK_KEYRING_FILE) が失敗しました。(gsk_attribute_set_buffer(GSK_KEYRING_FILE) failed.) 理由=({0}) (reason=({0})) |
FEK135E | gsk_attribute_set_buffer(GSK_KEYRING_PW) が失敗しました。(gsk_attribute_set_buffer(GSK_KEYRING_PW) failed.) 理由=({0}) (reason=({0})) |
FEK136E | gsk_environment_init() が失敗しました。(gsk_environment_init() failed.) 理由=({0}) (reason=({0})) |
FEK137E | gsk_secure_socket_open() が失敗しました。(gsk_secure_socket_open() failed.) 理由=({0}) (reason=({0})) |
FEK138E | gsk_attribute_set_numeric_value(GSK_FD) が失敗しました。(gsk_attribute_set_numeric_value(GSK_FD) failed.) 理由=({0}) (reason=({0})) |
FEK139E | gsk_attribute_set_buffer(GSK_KEYRING_LABEL) が失敗しました。(gsk_attribute_set_buffer(GSK_KEYRING_LABEL) failed.) 理由=({0}) (reason=({0})) |
FEK140E | gsk_attribute_set_enum(GSK_SESSION_TYPE) が失敗しました。(gsk_attribute_set_enum(GSK_SESSION_TYPE) failed.) 理由=({0}) (reason=({0})) |
FEK141E | gsk_attribute_set_callback(GSK_IO_CALLBACK) が失敗しました。(gsk_attribute_set_callback(GSK_IO_CALLBACK) failed.) 理由=({0}) (reason=({0})) |
FEK142E | gsk_secure_socket_init() が失敗しました。(gsk_secure_socket_init() failed.) 理由=({0}) (reason=({0})) |
FEK143E | gsk_attribute_set_enum(GSK_CLIENT_AUTH_TYPE) が失敗しました。(gsk_attribute_set_enum(GSK_CLIENT_AUTH_TYPE) failed.) 理由=({0}) (reason=({0})) |
FEK144E | gsk_get_cert_info が失敗しました。(gsk_get_cert_info failed.) 理由=({0}) (reason=({0})) |
FEK145E | gsk_secure_socket_read() が失敗しました。(gsk_secure_socket_read() failed.) 理由=({0}) (reason=({0})) |
FEK146E | gsk_secure_socket_write() が失敗しました。(gsk_secure_socket_write() failed.) 理由=({0}) (reason=({0})) |
FEK150E | RseDaemon が異常終了しました。{0} (RseDaemon abnormally terminated; {0}) |
FEK201I | {0} コマンドが処理されました。({0} Command has been processed) |
FEK202E | 無効なコマンドが入力されました。(Invalid Command Entered) |
FEK203E | 無効な Display コマンド: Display Process|Client (Invalid Display Command: Display Process|Client) |
FEK204E | 無効な Cancel コマンド: Cancel ID=|User= (Invalid Cancel Command: Cancel ID=|User=) |
FEK205E | コマンドは、連続した SWITCH のために処理されませんでした。(Command was not processed owing to consecutive SWITCHs) |
FEK206E | 監査ログ機能がアクティブではありません。(Audit Log facility is not active) |
FEK207I | 表示するクライアントがありません。(No Client to be displayed) |
FEK208I | {0} がキャンセルされました。({0} canceled) |
FEK209I | 表示するプロセスがありません。(No Process to be displayed) |
FEK210I | {0} が重複ログオンのためにキャンセルされました。({0} canceled owing to duplicate logon) |
FEK501I | ロック・デーモンが始動しました。ポート ={0}、クリーンアップ間隔 ={1}、ログ・レベル ={2} (Lock daemon started, port={0}, cleanup interval={1}, log level={2} ) |
FEK502I | ロック・デーモンの終了処理中です。(Lock daemon terminating) |
FEK510E | ロック・デーモン、ポートの欠落 (Lock daemon, missing port) |
FEK511E | ロック・デーモン、誤ったポート、ポート ={0} (Lock daemon, wrong port, port={0}) |
FEK512E | ロック・デーモン、ソケット・エラー、ポート ={0} (Lock daemon, socket error, port={0}) |
FEK513W | ロック・デーモン、登録が失敗しました。ASID={0}、TCB={1}、USER={2} (Lock daemon, registration failed, ASID={0}, TCB={1}, USER={2}) |
FEK514W | ロック・デーモン、誤ったログ・レベル、ログ・レベル ={0} (Lock daemon, wrong log level, log level={0}) |
BPXM023I | (stclock) dataset[(member)] NOT LOCKED |
BPXM023I | (stclock) dataset[(member)] LOCKED BY userid |
BPXM023I | (stclock) コマンド、誤ったコマンド ((stclock) command, WRONG COMMAND) |
BPXM023I | (stclock) コマンド、引数の欠落 ((stclock) command, MISSING ARGUMENT) |
BPXM023I | (stclock) 引数、誤った引数 ((stclock) argument, WRONG ARGUMENT) |
構文図は、入力したコマンドをオペレーティング・システムが正しく解釈できるようにコマンドの指定方法を示したものです。構文図は、左から右、上から下へと水平方向の線 (メインパス) をたどって読んでください。
構文図では、以下の記号が使用されます。
記号 | 説明 |
---|---|
>> | 構文図の始まりを示します。 |
> | 構文図が続くことを示します。 |
| | 構文図のフラグメントか一部分の始まりと終わりを示します。 |
>< | 構文図の終わりを示します。 |
構文図では、以下のタイプのオペランドが使用されます。
>>REQUIRED_OPERAND><
>>>< OPTIONAL_OPERAND
DEFAULT_OPERAND >>><
オペランドはキーワードまたは変数として分類されます。
次の例では、USER コマンドはキーワードです。必須の変数パラメーターは user_id で、オプションの変数パラメーターは password です。これらの変数パラメーターは、ユーザー独自の値に置き換えてください。
>>USERuser_id>< password
構文図に英数字以外の文字 (小括弧、ピリオド、コンマ、等号、ブランク・スペースなど) が示されている場合は、その文字を構文の一部としてコーディングする必要があります。この例では、OPERAND=(001 0.001) とコーディングする必要があります。
>>OPERAND=(001 0.001)><
オペランド・グループ内で左に戻る矢印は、複数のオペランドを選択できるか、単一のオペランドを反復できることを意味しています。
>>>< REPEATABLE_OPERAND_1 REPEATABLE_OPERAND_2 <
図が 1 行より長い場合、最初の行は単一の矢印で終わり、2 行目は単一の矢印で始まります。
>>| The first line of a syntax diagram that is longer than one line |> >| The continuation of the subcommands, parameters, or both |><
一部の図には、構文フラグメントが含まれている場合があります。これは、長すぎたり、複雑すぎたり、繰り返しが多すぎる構文を分割するためのものです。構文フラグメント名は大/小文字混合で表記され、構文図の中とフラグメントの見出しに表示されます。 フラグメントは、メインの図の下に配置されます。
>>| Syntax fragment |>< Syntax fragment: |1ST_OPERAND,2ND_OPERAND,3RD_OPERAND|
この章は、Developer for System z の構成時に起きる可能性があるいくつかの一般的な問題について、ユーザーを支援するためのもので、以下のセクションで構成されています。
詳細は、Developer for System z Web サイト (http://www-306.ibm.com/software/awdtools/rdz/support/) の Support セクションで入手できます。このサイトには、弊社のサポート・チームからの最新情報をもたらす技術情報が掲載されています。
この Web サイト (http://www-306.ibm.com/software/awdtools/rdz/library/) のライブラリー・セクションには、Developer for System z 資料の最新バージョンが、ホワイト・ペーパーも含めて掲載されています。
Developer for System z インフォメーション・センター (http://publib.boulder.ibm.com/infocenter/ratdevz/v7r6/index.jsp) では、Developer for System z クライアント、およびそのクライアントとホストとの対話の方法が (クライアントの視点から) 説明されています。
また、z/OS インターネット・ライブラリー (http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/) にも有益な情報があります。
Developer for System z に不足している機能があると思われる場合はお知らせください。機能拡張要求 (RFE) は、次の場所で開示することができます。
https://www.ibm.com/developerworks/support/rational/rfe/
Developer for System z には、z/OS UNIX の全ログ・ファイル、および Developer for System z のインストールと構成に関する情報を収集するサンプル・ジョブ FEKLOGS が用意されています。
サンプル・ジョブ FEKLOGS は、FEK.#CUST.JCL に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
FEKLOGS のカスタマイズは、JCL 内で記述されています。このカスタマイズでは、いくつかの主要な変数を準備します。
Developer for System z は、お客様と IBM サポートによる問題の識別と解決に役立つログ・ファイルを作成します。次のリストは、z/OS ホスト・システム上に作成できるログ・ファイルの概要です。これらの製品固有のログとは別に、SYSLOG に関連するメッセージがないかどうか、必ず確認してください。
MVS ベースのログは、該当する DD ステートメントによって見つけることができます。z/OS UNIX ベースのログ・ファイルは、以下のディレクトリーに置かれます。
ユーザー固有のログ・ファイルは、userlog/$LOGNAME に置かれます。ここで、userlog は rsed.envvars 内の user.log ディレクティブと DSTORE_LOG_DIRECTORY ディレクティブを組み合わせた値で、$LOGNAME はログオン・ユーザー ID (大文字) です。user.log ディレクティブがコメント化されているか存在しない場合は、ユーザーのホーム・パスが使用されます。ホーム・パスはユーザー ID の OMVS セキュリティー・セグメントで定義されます。DSTORE_LOG_DIRECTORY ディレクティブがコメント化されているか存在しない場合は、user.log の値に .eclipse/RSE/ が付加されます。
RSE デーモンおよび RSE スレッド・プールに固有のログ・ファイルは、daemon-home に置かれます。ここで、daemon-home は rsed.envvars 内の daemon.log ディレクティブの値です。 daemon.log ディレクティブがコメント化されているか存在しない場合は、RSED 開始タスクに割り当てられているユーザー ID のホーム・ディレクトリーが使用されます。ホーム・ディレクトリーはユーザー ID の OMVS セキュリティー・セグメントで定義されます。
通常操作のロギング。サンプル JCL FEK.#CUST.PROCLIB(JMON) 内のデフォルト値は SYSOUT=* です。
トレース・ロギング。サンプル JCL FEK.#CUST.PROCLIB(JMON) 内のデフォルト値は SYSOUT=* です。 トレースは -TV パラメーターでアクティブにされます。詳細については、JES ジョブ・モニターのトレースを参照してください。
Java 標準出力 stdout のリダイレクトされたデータ。サンプル JCL FEK.#CUST.PROCLIB(LOCKD) 内のデフォルト値は SYSOUT=* です。
Java 標準エラー出力 stderr のリダイレクトされたデータ。サンプル JCL FEK.#CUST.PROCLIB(LOCKD) 内のデフォルト値は SYSOUT=* です。
RSE デーモンの Java 標準出力 stdout のリダイレクトされたデータ。サンプル JCL FEK.#CUST.PROCLIB(RSED) 内のデフォルト値は SYSOUT=* です。
RSE デーモンの Java 標準エラー出力 stderr のリダイレクトされたデータ。サンプル JCL FEK.#CUST.PROCLIB(RSED) 内のデフォルト値は SYSOUT=* です。
RSE デーモンおよび RSE スレッド・プールに固有のログ・ファイルは、daemon-home に置かれます。ここで、daemon-home は rsed.envvars 内の daemon.log ディレクティブの値です。daemon.log ディレクティブがコメント化されているか存在しない場合は、RSED 開始タスクに割り当てられているユーザー ID のホーム・ディレクトリーが使用されます。ホーム・ディレクトリーはユーザー ID の OMVS セキュリティー・セグメントで定義されます。
RSE に関連するコンポーネントによって作成される複数のログ・ファイルがあります。これらはいずれも userlog/$LOGNAME に置かれます。ここで、userlog は rsed.envvars 内の user.log ディレクティブと DSTORE_LOG_DIRECTORY ディレクティブを組み合わせた値で、$LOGNAME はログオン・ユーザー ID (大文字) です。user.log ディレクティブがコメント化されているか存在しない場合は、ユーザーのホーム・パスが使用されます。ホーム・パスはユーザー ID の OMVS セキュリティー・セグメントで定義されます。DSTORE_LOG_DIRECTORY ディレクティブがコメント化されているか存在しない場合は、user.log の値に .eclipse/RSE/ が付加されます。
Fault Analyzer Integration ロギング。ここで、userlog は rsed.envvars 内の user.log ディレクティブと DSTORE_LOG_DIRECTORY ディレクティブを組み合わせた値で、$LOGNAME はログオン・ユーザー ID (大文字) です。user.log ディレクティブがコメント化されているか存在しない場合は、ユーザーのホーム・パスが使用されます。ホーム・パスはユーザー ID の OMVS セキュリティー・セグメントで定義されます。DSTORE_LOG_DIRECTORY ディレクティブがコメント化されているか存在しない場合は、user.log の値に .eclipse/RSE/ が付加されます。
File Manager Integration の通信ロギング。ここで、userlog は rsed.envvars 内の user.log ディレクティブと DSTORE_LOG_DIRECTORY ディレクティブを組み合わせた値で、$LOGNAME はログオン・ユーザー ID (大文字) です。user.log ディレクティブがコメント化されているか存在しない場合は、ユーザーのホーム・パスが使用されます。ホーム・パスはユーザー ID の OMVS セキュリティー・セグメントで定義されます。DSTORE_LOG_DIRECTORY ディレクティブがコメント化されているか存在しない場合は、user.log の値に .eclipse/RSE/ が付加されます。
SCLM Developer Toolkit の通信ロギング。ここで、userlog は rsed.envvars 内の user.log ディレクティブと DSTORE_LOG_DIRECTORY ディレクティブを組み合わせた値で、$LOGNAME はログオン・ユーザー ID (大文字) です。user.log ディレクティブがコメント化されているか存在しない場合は、ユーザーのホーム・パスが使用されます。ホーム・パスはユーザー ID の OMVS セキュリティー・セグメントで定義されます。DSTORE_LOG_DIRECTORY ディレクティブがコメント化されているか存在しない場合は、user.log の値に .eclipse/RSE/ が付加されます。
バッチ・インターフェースを使用して CARMA との接続を開くと、FEK.#CUST.SYSPROC(CRASUBMT) は CRAport というサーバー・ジョブを (ユーザーの、所有者としてのユーザー ID を使用して) 開始します。ここで、port は使用される TCP/IP ポートです。
選択された CARMA 始動方式で DD ステートメント CARMALOG が指定されている場合、CARMA ロギングはサーバー・ジョブでその DD ステートメントへリダイレクトされ、指定されていない場合は SYSPRINT へ送られます。
サーバー・ジョブの SYSPRINT は、DD ステートメント CARMALOG が定義されていない場合、CARMA ロギングを保持します。
CARMA の通信ロギング。ここで、userlog は rsed.envvars 内の user.log ディレクティブと DSTORE_LOG_DIRECTORY ディレクティブを組み合わせた値で、$LOGNAME はログオン・ユーザー ID (大文字) です。user.log ディレクティブがコメント化されているか存在しない場合は、ユーザーのホーム・パスが使用されます。ホーム・パスはユーザー ID の OMVS セキュリティー・セグメントで定義されます。DSTORE_LOG_DIRECTORY ディレクティブがコメント化されているか存在しない場合は、user.log の値に .eclipse/RSE/ が付加されます。
APPC 管理ユーティリティーは、トランザクション・プログラム (TP) プロファイルを追加および変更するとき、TP プロファイルとその JCL に構文エラーがないかどうか検査します。このフェーズからの出力は、TP プロファイル構文エラー・メッセージ、ユーティリティー処理メッセージ、および JCL 変換ステートメントからなっています。 このフェーズからのメッセージのロギングは、ATBSDFMU ユーティリティーの SYSPRINT DD ステートメントによって制御されます。サンプル JCL FEK.SFEKSAMP(FEKAPPCC) 内のデフォルト値は SYSOUT=* です。詳細については、「MVS 計画: APPC/MVS 管理」(SA88-8571) を参照してください。
TP が実行された場合、TP ランタイム・メッセージ (割り振りメッセージや終了メッセージなど) は TP プロファイル内の MESSAGE_DATA_SET キーワードで指定されたログへ送られます。サンプル JCL FEK.SFEKSAMP(FEKAPPCC) 内のデフォルト値は &SYSUID.FEKFRSRV.&TPDATE.&TPTIME.LOG です。詳細については、「MVS 計画: APPC/MVS 管理」(SA88-8571) を参照してください。
fekfivpi -file コマンド (TSO/ISPF クライアント・ゲートウェイに関連した IVP テスト) の出力。ここで、userlog は rsed.envvars 内の user.log ディレクティブと DSTORE_LOG_DIRECTORY ディレクティブを組み合わせた値で、$LOGNAME はログオン・ユーザー ID (大文字) です。user.log ディレクティブがコメント化されているか存在しない場合は、ユーザーのホーム・パスが使用されます。ホーム・パスはユーザー ID の OMVS セキュリティー・セグメントで定義されます。DSTORE_LOG_DIRECTORY ディレクティブがコメント化されているか存在しない場合は、user.log の値に .eclipse/RSE/ が付加されます。
fekfivps -file コマンド (SCLMDT に関連した IVP テスト) の出力。ここで、userlog は rsed.envvars 内の user.log ディレクティブと DSTORE_LOG_DIRECTORY ディレクティブを組み合わせた値で、$LOGNAME はログオン・ユーザー ID (大文字) です。user.log ディレクティブがコメント化されているか存在しない場合は、ユーザーのホーム・パスが使用されます。ホーム・パスはユーザー ID の OMVS セキュリティー・セグメントで定義されます。DSTORE_LOG_DIRECTORY ディレクティブがコメント化されているか存在しない場合は、user.log の値に .eclipse/RSE/ が付加されます。
製品が異常終了した場合、問題判別を支援するためにストレージ・ダンプが作成されます。これらのダンプの可用性とロケーションは、サイト固有の設定に大きく依存します。したがって、ダンプが作成されなかったり、以下の説明と異なるロケーションに作成されたりする場合もあります。
プログラムを MVS 内で実行している場合は、システム・ダンプ・ファイルを検査し、JCL に以下の DD ステートメント (製品によって異なります) があるかどうかを確認してください。
これらの DD ステートメントの詳細については、「MVS JCL 解説書」(SA88-8569) および「Language Environment デバッグ・ガイド」(GA88-8548) を参照してください。
z/OS UNIX では、大部分の Developer for System z ダンプが Java 仮想マシン (JVM) によって制御されます。
JVM は、デフォルトでは初期化時にダンプ・エージェント・セット (SYSTDUMP と JAVADUMP) を作成します。このダンプ・エージェント・セットは、JAVA_DUMP_OPTS 環境変数を使用してオーバーライドでき、さらに、コマンド行で -Xdump を使用することによってオーバーライドできます。JVM コマンド行オプションは、rsed.envvars の _RSE_JAVAOPTS ディレクティブで定義されます。IBM サポートから指示された場合以外は、ダンプの設定を一切変更しないでください。
生成できるダンプのタイプは、以下のとおりです。
ダンプは、%uid.JVM.TDUMP.%job.D%y%m%d.T%H%M%S という書式のデフォルト名、または JAVA_DUMP_TDUMP_PATTERN 環境変数の設定によって決まるデフォルト名を使用して、順次 MVS データ・セットに書き込まれます。トランザクション・ダンプを作成したくない場合は、環境変数 IBM_JAVA_ZOS_TDUMP=NO を rsed.envvars に追加します。
変数 | 使用法 |
---|---|
%uid | ユーザー ID |
%job | ジョブ名 |
%y | 年 (2 桁) |
%m | 月 (2 桁) |
%d | 日 (2 桁) |
%H | 時間 (2 桁) |
%M | 分 (2 桁) |
%S | 秒 (2 桁) |
ダンプは CEEDUMP.yyyymmdd.hhmmss.pid という名前の z/OS UNIX ファイルに書き込まれます。ここで、yyyymmdd は現在の日付で、hhmmss は現在の時刻、pid は現行プロセス ID です。このファイルの可能なロケーションについては、z/OS UNIX ダンプ・ロケーションに説明があります。
ダンプは HEAPDUMP.yyyymmdd.hhmmss.pid.TXT という名前の z/OS UNIX ファイルに書き込まれます。ここで、yyyymmdd は現在の日付で、hhmmss は現在の時刻、pid は現行プロセス ID です。このファイルの可能なロケーションについては、z/OS UNIX ダンプ・ロケーションに説明があります。
ダンプは JAVADUMP.yyyymmdd.hhmmss.pid.TXT という名前の z/OS UNIX ファイルに書き込まれます。ここで、yyyymmdd は現在の日付で、hhmmss は現在の時刻、pid は現行プロセス ID です。このファイルの可能なロケーションについては、z/OS UNIX ダンプ・ロケーションに説明があります。
JVM ダンプの詳細については「Java Diagnostic Guide」(SC34-6358) を、また、LE 固有の情報については「Language Environment デバッグ・ガイド」(GA88-8548) を参照してください。
JVM は、以下の各ロケーションの有無と書き込み権限を検査し、最初に使用可能なロケーションに CEEDUMP、HEAPDUMP、および JAVADUMP ファイルを保管します。 ダンプ・ファイルを正しく書き込むための十分なディスク・スペースが必要であることに注意してください。
JES ジョブ・モニターのトレースは、オペレーター・コマンドの説明にあるように、システム・オペレーターによって制御されます。
RSE に関連するコンポーネントによって作成される複数のログ・ファイルがあります。そのほとんどは userlog/$LOGNAME に置かれます。ここで、userlog は rsed.envvars 内の user.log ディレクティブと DSTORE_LOG_DIRECTORY ディレクティブを組み合わせた値で、$LOGNAME はログオン・ユーザー ID (大文字) です。user.log ディレクティブがコメント化されているか存在しない場合は、ユーザーのホーム・パスが使用されます。ホーム・パスはユーザー ID の OMVS セキュリティー・セグメントで定義されます。DSTORE_LOG_DIRECTORY ディレクティブがコメント化されているか存在しない場合は、user.log の値に .eclipse/RSE/ が付加されます。
ffs*.log、lock.log、および rsecomm.log に書き込まれるデータの量は、modify rsecommlog オペレーター・コマンドによって制御するか、rsecomm.properties 内で debug_level を設定することによって制御します。 詳細については、オペレーター・コマンド、および (オプション) RSE トレースを参照してください。
.dstore* ログ・ファイルの作成は、_RSE_JAVAOPTS での追加 Java 始動パラメーターの定義の説明にあるように、-DDSTORE_* Java 始動オプションによって制御されます。
RSE デーモンおよび RSE スレッド・プールに固有のログ・ファイルは、daemon-home に置かれます。ここで、daemon-home は rsed.envvars 内の daemon.log ディレクティブの値です。daemon.log ディレクティブがコメント化されているか存在しない場合は、RSED 開始タスクに割り当てられているユーザー ID のホーム・ディレクトリーが使用されます。ホーム・ディレクトリーはユーザー ID の OMVS セキュリティー・セグメントで定義されます。
rsedaemon.log および rseserver.log に書き込まれるデータの量は、modify rsedaemonlog および modify rseserverlog オペレーター・コマンドによって制御するか、rsecomm.properties で debug_level を設定することによって制御します。 詳細については、オペレーター・コマンド、および (オプション) RSE トレースを参照してください。
serverlogs.count、stderr.*.log、および stdout.*.log は、rsed.envvars 内の enable.standard.log ディレクティブがアクティブである場合、またはこの機能が modify rsestandardlog on オペレーター・コマンドで動的にアクティブ化される場合にのみ作成されます。
ロック・デーモン固有のログは、LOCKD 開始タスクの STDOUT DD に置かれます。ログに書き込まれるデータの量は、LOG 始動パラメーターによって制御されます。詳細については、オペレーター・コマンド、および (オプション) RSE トレースを参照してください。
ユーザーは、クライアント上の CARMA 接続のプロパティー・タブで「トレース・レベル」を設定することにより、CARMA が生成するトレース情報の量を制御できます。「トレース・レベル」の選択項目は、以下のとおりです。
デフォルト値は以下のとおりです。
エラー・ロギング
ログ・ファイルのロケーションの詳細については、ログ・ファイルを参照してください。
以下のプロシージャーを使用すると、リモート・ビルド・プロシージャーでのエラー・フィードバック問題を診断するために必要な情報を収集できます。このトレースはパフォーマンス低下の原因になるため、IBM サポートの指示の下でのみ実行してください。このセクションで、hlq と表記したものはすべて、Developer for System z のインストール時に使用した高位修飾子を指しています。インストールのデフォルトは FEK ですが、ご使用のサイトには当てはまらない場合があります。
//COBOL EXEC PGM=IGYCRCTL,REGION=2048K, //* PARM=('EXIT(ADEXIT(ELAXMGUX))', // PARM=('EXIT(ADEXIT(''MAXTRACE'',ELAXMGUX))', // 'ADATA', // 'LIB', // 'TEST(NONE,SYM,SEP)', // 'LIST', // 'FLAG(I,I)'&CICS &DB2 &COMP)
ABOUT TOO OPEN SIDEFILE1 - NAME = 'uid.DT021207.TT110823.M0000045.C0000000' SUCCESSFUL OPEN SIDEFILE1 - NAME = 'uid.DT021207.TT110823.M0000045.C0000000' ABOUT TOO OPEN SIDEFILE2 - NAME = 'uid.DT021207.TT110823.M0000111.C0000001' SUCCESSFUL OPEN SIDEFILE2 - NAME = 'uid.DT021207.TT110823.M0000111.C0000001' ABOUT TOO OPEN SIDEFILE3 - NAME = 'uid.DT021207.TT110823.M0000174.C0000002' SUCCESSFUL OPEN SIDEFILE3 - NAME = 'uid.DT021207.TT110823.M0000174.C0000002' ABOUT TOO OPEN SIDEFILE4 - NAME = 'uid.DT021207.TT110823.M0000236.C0000003' SUCCESSFUL OPEN SIDEFILE4 - NAME = 'uid.DT021207.TT110823.M0000236.C0000003'
22 //COBOL.WSEDSF1 DD DISP=MOD, // DSN=uid.ERRCOB.member.SF.Z682746.XML 23 //COBOL.WSEDSF2 DD DISP=MOD, // DSN=uid.ERRCOB.member.SF.Z682747.XML
Developer for System z では、z/OS UNIX ファイル・システムおよび一部の z/OS UNIX ファイルに特定の許可ビットがセットされている必要があります。
リモート・システム・エクスプローラー (RSE) は、クライアントをホストに接続するなどのコア・サービスを提供する Developer for System z コンポーネントです。これは、ユーザーのセキュリティー環境を作成するなどのタスクの実行を許可されている必要があります。
Developer for System z がインストールされているファイル・システム (HFS または zFS) は、SETUID 許可ビットをオン (これはデフォルトです) にしてマウントする必要があります。NOSETUID パラメーターを指定してファイル・システムをマウントすると、ユーザーのセキュリティー環境が Developer for System z によって作成されず、接続要求が失敗します。
TSO の ISHELL コマンドを使用して、SETUID ビットの現行ステータスをリストします。ISHELL パネルで、「File_systems」>「1. マウント・テーブル... (1. Mount table...)」を選択して、マウントされたファイル・システムをリストします。a 行コマンドは、選択されたファイル・システムの属性を表示します。ここで、「Ignore SETUID」フィールドは 0 であることが必要です。
リモート・システム・エクスプローラー (RSE) は、クライアントをホストに接続するなどのコア・サービスを提供する Developer for System z コンポーネントです。これは、クライアントのユーザー ID への切り替えなどのタスクを実行するために、プログラム制御で実行する必要があります。
z/OS UNIX プログラム制御ビットは、SMP/E インストールのときに、必要ならば設定されます。ただし、セキュリティーに関する考慮事項の説明にあるように、セキュリティー製品への Java インターフェースは除きます。この許可ビットは、Developer for System z ディレクトリーの手動コピー中に保存しなかった場合、失われることがあります。
以下の Developer for System z ファイルはプログラムで制御される必要があります。
z/OS UNIX コマンド ls -E を使用して、拡張属性をリストします。このリストで、プログラム制御ビットには、次のサンプルに示すように英字の p のマークが付きます ($ は z/OS UNIX プロンプトです)。
$ cd /usr/lpp/rdz $ ls -E lib/fekf* -rwxr-xr-x -ps- 2 user group 94208 Jul 8 12:31 lib/fekfdir.dll
プログラム制御ビットを手動でセットするには、次のサンプルに示すように、 z/OS UNIX コマンド extattr +p を使用します ($ および # は z/OS UNIX プロンプトです)。
$ cd /usr/lpp/rdz $ su # extattr +p lib/fekf* # exit $ ls -E lib/fekf* -rwxr-xr-x -ps- 2 user group 94208 Jul 8 12:31 lib/fekfdir.dll
リモート・システム・エクスプローラー (RSE) は、クライアントをホストに接続するなどのコア・サービスを提供する Developer for System z のコンポーネントです。詳細なプロセス・リソース使用量を表示するなどのタスクを実行するためには、このコンポーネントを APF 許可がある状態で実行する必要があります。
z/OS UNIX APF ビットは、SMP/E インストールのときに、必要ならば設定されます。この許可ビットは、Developer for System z ディレクトリーの手動コピー中に保存しなかった場合、失われることがあります。
以下の Developer for System z ファイルには、APF 許可があることが必要です。
拡張属性をリストするには、z/OS UNIX コマンド ls -E を使用します。このリストでは、次のサンプルに示すように、APF ビットに英字の a のマークが付きます ($ は z/OS UNIX プロンプトです)。
$ cd /usr/lpp/rdz $ ls -E bin/fekfrivp -rwxr-xr-x aps- 2 user group 114688 Sep 17 06:41 bin/fekfrivp
APF ビットを手動でセットするには、次のサンプルに示すように、z/OS UNIX コマンド extattr +a を使用します ($ および # は z/OS UNIX プロンプトです)。
$ cd /usr/lpp/rdz $ su # extattr +a bin/fekfrivp # exit $ ls -E bin/fekfrivp -rwxr-xr-x aps- 2 user group 114688 Sep 17 06:41 bin/fekfrivp
オプションの Developer for System z サービスの中には、MVS ロード・モジュールを z/OS UNIX で使用可能にしなければならないものもあります。これを行うには、z/OS UNIX で、スティッキー・ビットをオンにしたスタブ (ダミー・ファイル) を作成します。スタブが実行されると、z/OS UNIX は同じ名前の MVS ロード・モジュールを探し、代わりにそのロード・モジュールを実行します。
z/OS UNIX スティッキー・ビットは、SMP/E インストールのときに、必要ならば設定されます。これらの許可ビットは、Developer for System z の手動コピーのときに保存されなかった場合は、失われることがあります。
以下の Developer for System z ファイルは、スティッキー・ビットがオンであることが必要です。
z/OS UNIX コマンド ls -l を使用して、許可をリストします。このリストで、スティッキー・ビットには、次のサンプルに示すように英字の t のマークが付きます ($ は z/OS UNIX プロンプトです)。
$ cd /usr/lpp/rdz $ ls -l bin/CRA* -rwxr-xr-t 2 user group 71 Jul 8 12:31 bin/CRASTART
スティッキー・ビットを手動でセットするには、次のサンプルに示すように、 z/OS UNIX コマンド chmod +t を使用します ($ および # は z/OS UNIX プロンプトです)。
$ cd /usr/lpp/rdz $ su # chmod +t bin/CRA* # exit $ ls -l bin/CRA* -rwxr-xr-t 2 user group 71 Jul 8 12:31 bin/CRASTART
netstat コマンド (TSO または z/OS UNIX) を使用すると、現在使用中のポートの概要を取得できます。このコマンドの出力は、下記の例のようになります。使用されているポートは、「Local Socket」列の最後の番号 (「..」の後) です。これらのポートは既に使用されているので、Developer for System z 構成に使用することはできません。
IPv4
MVS TCP/IP NETSTAT CS VxRy TCPIP Name: TCPIP 16:36:42 User Id Conn Local Socket Foreign Socket State ------- ---- ------------ -------------- ----- BPXOINIT 00000014 0.0.0.0..10007 0.0.0.0..0 Listen INETD4 0000004D 0.0.0.0..512 0.0.0.0..0 Listen RSED 0000004B 0.0.0.0..4035 0.0.0.0..0 Listen JMON 00000038 0.0.0.0..6715 0.0.0.0..0 Listen
IPv6
MVS TCP/IP NETSTAT CS VxRy TCPIP Name: TCPIP 12:46:25 User Id Conn State ------- ---- ----- BPXOINIT 00000018 Listen Local Socket: 0.0.0.0..10007 Foreign Socket: 0.0.0.0..0 INETD4 00000046 Listen Local Socket: 0.0.0.0..512 Foreign Socket: 0.0.0.0..0 RSED 0000004B Listen Local Socket: 0.0.0.0..4035 Foreign Socket: 0.0.0.0..0 JMON 00000037 Listen Local Socket: 0.0.0.0..6715 Foreign Socket: 0.0.0.0..0
もう 1 つ存在する可能性がある制限は、予約済み TCP/IP ポートです。TCP/IP ポートを予約する一般的な場所は、以下の 2 つです。
これは TCP/IP 開始タスクの PROFILE DD ステートメントによって参照されるデータ・セットで、多くの場合、SYS1.TCPPARMS(TCPPROF) という名前が付いています。
これらのステートメントの詳細については、「Communications Server IP 構成ガイド」(SC88-8926) を参照してください。
これらの予約済みポートは、netstat portl コマンド (TSO または z/OS UNIX) でリストできます。このコマンドは、以下の例のような出力を作成します。
MVS TCP/IP NETSTAT CS VxRy TCPIP Name: TCPIP 17:08:32 Port# Prot User Flags Range IP Address ----- ---- ---- ----- ----- ---------- 00007 TCP MISCSERV DA 00009 TCP MISCSERV DA 00019 TCP MISCSERV DA 00020 TCP OMVS D 00021 TCP FTPD1 DA 00025 TCP SMTP DA 00053 TCP NAMESRV DA 00080 TCP OMVS DA 03500 TCP OMVS DAR 03500-03519 03501 TCP OMVS DAR 03500-03519
NETSTAT コマンドの詳細については、「Communications Server IP システム管理者のコマンド」(SC88-9073) を参照してください。
RSE デーモンは z/OS UNIX Java プロセスであり、機能を実行するために大きな領域サイズを必要とします。したがって、OMVS アドレス・スペースに大きなストレージ限度を設定することが重要です。
RSE デーモンは、BPXBATSL (この領域サイズは 0 であることが必要です) を使用して JCL によって始動されます。
SYS1.PARMLIB(BPXPRMxx) で MAXASSIZE を設定してください。これは、デフォルトの OMVS アドレス・スペース (プロセス) 領域サイズを 2G に定義します。これは、許容される最大サイズです。これはシステム全体の限度であるため、すべての z/OS UNIX アドレス・スペースに対してアクティブとなります。これが望ましい値でない場合は、ご使用のセキュリティー・ソフトウェアで Developer for System z 独自の限度を設定できます。
この値は、「MVS システム・コマンド」(GC88-6592) で説明されているように、以下のコンソール・コマンドで検査し、動的に (次回の IPL まで) 設定できます。
デーモンのユーザー ID OMVS セグメント内で ASSIZEMAX を検査し、2147483647 に設定するか、できれば NONE に設定して SYS1.PARMLIB(BPXPRMxx) 値を使用してください。
RACF を使用している場合は、「Security Server RACF コマンド言語解説書」(SA88-8617) で説明されているように、以下の TSO コマンドでこの値を検査および設定できます。
必ず、システム出口 IEFUSI または IEALIMIT が OMVS アドレス・スペース領域サイズを制御できないようにしてください。これを実現する 1 つの方法は、SYS1.PARMLIB(SMFPRMxx) 内に SUBSYS(OMVS,NOEXITS) をコーディングすることです。
SYS1.PARMLIB(SMFPRMxx) 値は、「MVS システム・コマンド」(GC88-6592) で説明されているように、以下のコンソール・コマンドで検査およびアクティブ化することができます。
SYS1.PARMLIB(SMFPRMxx) 内の MEMLIMIT キーワードでは、64 ビット・タスクが 2 GB 境界より上に割り振ることのできる仮想ストレージの量を制限します。JCL の REGION パラメーターとは異なり、MEMLIMIT=0M は、プロセスが 2 GB 境界より上の仮想ストレージを使用できないことを意味します。
SMFPRMxx に MEMLIMIT を指定しない場合は、デフォルト値 0M が使用されるため、タスクは (31 ビット) 2 GB 境界より下の 2 GB にバインドされます。このデフォルトは z/OS 1.10 で 2G に変更されて、64 ビット・タスクが 4 GB まで使用できるようになりました (2 GB 境界より下の 2 GB および MEMLIMIT で許可される 2 GB 境界より上の 2 GB)。
SYS1.PARMLIB(SMFPRMxx) 値は、「MVS システム・コマンド」(GC88-6592) で説明されているように、以下のコンソール・コマンドで検査およびアクティブ化することができます。
MEMLIMIT は、JCL で EXEC カードのパラメーターとして指定することもできます。MEMLIMIT パラメーターを指定しない場合は、SMF に定義された値がデフォルトとなります。ただし、REGION=0M を指定した場合は、デフォルトが NOLIMIT となります。
TSO コマンド・サービスの APPC バージョンを使用できない場合、2 つの領域で問題が起きることがあります。APPC サーバー・トランザクションの開始と、RSE への接続です。
(オプション) TSO コマンド・サービス用の APPC トランザクションで提供されている REXX は、ISPF パネルを通じて APPC を対話式に管理できる機能を備えているため、APPC の問題の解決に役立つ場合があります。ただし、このツールを使用してトランザクションを非アクティブにできることに注意してください。その場合、トランザクションは、まだ存在していますが、接続を受け入れなくなります。
以下のリストは、現在のサポート Web サイト (http://www-306.ibm.com/software/awdtools/rdz/support/) で入手できる技術情報の抜粋です。詳細については、サポート Web サイトを参照してください。
SYS1.PARMLIB(BPXPRMxx) には、複数の Developer for System z クライアントがアクティブなときに到達する可能性がある、z/OS UNIX に関連する多数の限度が定義されています。大部分の BPXPRMxx 値は、SETOMVS および SET OMVS コンソール・コマンドで動的に変更できます。
BPXPRMxx のいずれかの限度に到達しそうなときに z/OS UNIX でコンソール・メッセージ (BPXI040I) を表示させるには、SETOMVS LIMMSG=ALL コンソール・コマンドを使用します。
各 RSE 接続ごとに複数のプロセスが開始され、それらは永続的にアクティブになります。 新規接続は、特にユーザーが同じ UID を共用している場合 (デフォルトの OMVS セグメントを使用している場合など) には、プロセスの量について SYS1.PARMLIB(BPXPRMxx) で設定された限度のために、拒否されることがあります。
接続が拒否されるもう 1 つの原因は、アクティブな z/OS アドレス・スペースと z/OS UNIX ユーザー数に課された限度です。
TSO コマンド・サービスに APPC を使用する場合に、MVS データ・セットの読み取りと書き込みを行うには、ソケット物理ファイル・システム・ドメインを使用する必要があります。このファイル・システムが正しく定義されていないか、十分な数のソケットを持っていない場合、ロック・マネージャー (FFS) が読み取り/書き込み要求を処理できないときがあります。ffs*.log ファイルには、次のようなメッセージが表示されます。
SYS1.PARMLIB(BPXPRMxx) メンバーに以下のステートメントが含まれていることを確認してください。
FILESYSTYPE TYPE(UDS) ENTRYPOINT(BPXTUINT) NETWORK DOMAINNAME(AF_UNIX) DOMAINNUMBER(1) MAXSOCKETS(2000) TYPE(UDS)
TSO コマンド・サービスに APPC を使用している場合、リゾルバー構成ファイルが欠落しているか、不完全であるために、TCP/IP リゾルバーがホスト・アドレスを正しく解決できないということも、この問題の原因として考えられます。この問題を明確に示すものは、lock.log 内の以下のメッセージです。
clientip(0.0.0.0) <> callerip(<host IP address>)
インストール検査 で説明されている方法に従って、fekfivpt TCP/IP IVP を実行してください。 出力のリゾルバー構成セクションは、以下のサンプルのようになります。
Resolver Trace Initialization Complete -> 2008/07/02 13:11:54.745964 res_init Resolver values: Global Tcp/Ip Dataset = None Default Tcp/Ip Dataset = None Local Tcp/Ip Dataset = /etc/resolv.conf Translation Table = Default UserId/JobName = USERID Caller API = LE C Sockets Caller Mode = EBCDIC
「Local Tcp/Ip Dataset」が示すファイル (データ・セット) 内の定義が正しいことを確認してください。
このフィールドは、IP リゾルバー・ファイルに (z/OS UNIX 検索順序を使用して) デフォルト名を使用していない場合にはブランクになります。その場合は、次のステートメントを rsed.envvars に追加します。ここで、<resolver file> または <resolver data> は IP リゾルバー・ファイルの名前を表しています。
RESOLVER_CONFIG=<resolver file>
または
RESOLVER_CONFIG='<resolver data set>'
Developer for System z では、メインフレーム以外のワークステーション上にいるユーザーがメインフレームにアクセスできます。このため、接続要求の妥当性検査、ホストとワークステーション間のセキュアな通信の提供、およびアクティビティーの許可と監査が、製品構成の重要な側面となります。
Developer for System z サーバーが使用するセキュリティー・メカニズムは、そのサーバーが存在するファイル・システムがセキュアであることに依存しています。つまり、信頼されたシステム管理者のみがプログラム・ライブラリーと構成ファイルを更新できる状態でなければなりません。
この章では、以下のトピックについて説明します。
Developer for System z の基本的な設計概念については、Developer for System z についてを参照してください。
Developer for System z は、接続時にクライアントが提供するユーザー ID を認証するために、複数の方法をサポートしています。
クライアントが提供した認証データは、初期の接続セットアップ時に 1 回だけ使用されることに注意してください。ユーザー ID が認証された後、認証を必要とするすべてのアクションには、そのユーザー ID と自己生成された PassTicket が使用されます。
クライアントは接続時に、ユーザー ID とそれに一致するパスワードを提供します。そのユーザー ID とパスワードは、使用しているセキュリティー製品でのユーザーの認証に使用されます。
ワンタイム・パスワードは、固有のトークンを基に、サード・パーティー製品で生成できます。ワンタイム・パスワードでは、ユーザーが知らないうちに固有のトークンをコピーして使用することはできないため、セキュリティーのセットアップが向上し、またパスワードをインターセプトしても、それは一回限り有効であるため役に立ちません。
クライアントは接続時に、ユーザー ID とワンタイム・パスワードを提供します。このパスワードは、サード・パーティーが提供するセキュリティー出口で、ユーザー ID の認証に使用されます。このセキュリティー出口では、通常の処理時に認証要求を満たすために使用された PassTicket を無視することが見込まれます。 PassTicket は、ご使用のセキュリティー・ソフトウェアによって処理する必要があります。
サード・パーティーは、ユーザーの認証に使用できる 1 つ以上の X.509 証明書を提供できます。X.509 証明書を機密保護機能のあるデバイスに保管すると、セキュアなセットアップとユーザーにとっての操作性 (ユーザー ID やパスワードが不要であること) を同時に実現できます。
接続時に、クライアントは選択された証明書と選択された拡張 (オプション) を提供します。これを使用して、ご使用のセキュリティー製品でユーザー ID の認証が行われます。
この認証方式は RSE デーモン接続方式によってのみサポートされており、SSL を使用可能にする必要があることに注意してください。
クライアント認証は、クライアントの接続要求の一環として、RSE デーモン (または REXEC/SSH) によって行われます。ユーザーが認証されると、JES ジョブ・モニターへの自動ログオンも含め、その後のすべての認証要求には、自己生成された PassTicket が使用されます。
JES ジョブ・モニターは、RSE によって提供されたユーザー ID と PassTicket の妥当性検査を行うためには、PassTicket の評価を許可されている必要があります。 これは、以下のことを意味します。
さまざまなレベルの通信セキュリティーが RSE によってサポートされており、RSE は、クライアントと Developer for System z サービスの間のすべての通信を制御します。
システム・プログラマーは、RSE サーバーがクライアントと通信できるポートを指定できます。デフォルトでは、使用可能な任意のポートが使用されます。このポート範囲は、RSE デーモン・ポートとは関係ありません。
ポートの使用法を理解しやすいように、以下で RSE の接続プロセスを簡単に説明します。
RSE を通過するすべての外部 Developer for System z データ・ストリームを、Secure Sockets Layer (SSL) によって暗号化できます。SSL の使用は、SSL 暗号化通信での説明のように、ssl.properties 構成ファイル内の設定によって制御されます。
クライアント上の Host Connect Emulator は、ホスト上の TN3270 サーバーに接続します。SSL の使用は TN3270 によって制御されます。これについては、「Communications Server IP 構成ガイド」(SC88-8926) に説明があります。
Application Deployment Manager クライアントは、CICS TS Web サービスまたは RESTful インターフェースを使用して、Application Deployment Manger ホスト・サービスを起動します。SSL の使用は、CICS TS によって制御されます。これについては、「RACF Security Guide for CICS TS」に説明があります。
Developer for System z は Port Of Entry (POE) 検査をサポートしています。これにより、ホストは信頼できる TCP/IP アドレスにのみアクセスできます。POE の使用は、Port Of Entry (POE) 検査で説明されているように、セキュリティー・ソフトウェア内の特定のプロファイルの定義と、rsed.envvars 内の enable.port.of.entry ディレクティブによって制御されます。
POE をアクティブにすると、POE 検査をサポートしている他の TCPIP アプリケーション (INETD など) に影響が出ることに注意してください。
図 40 は、Developer for System z で使用できる TCP/IP ポートを示しています。矢印は、バインドの実行元 (矢印の先) と接続元を示しています。
z/OS ホストを保護しているファイアウォールに対して、以下のポートを定義してください。これらのポートは、クライアント/ホスト通信 (tcp プロトコルを使用) に使用されるためです。
いくつかの Developer for System z ホスト・サービスは別のスレッドまたはアドレス・スペースで実行され、TCP/IP ソケットを通信メカニズムとして使用します。 これらすべてのサービスは、クライアントとの通信に RSE を使用し、データ・ストリームをホストだけに限定します。一部のサービスでは、使用可能な任意のポートが使用され、それ以外のサービスでは、使用されるポートまたはポート範囲をシステム・プログラマーが選択できます。
ほとんどの場合、サーバーは RSE デーモンの場合と同様に、ポートにバインドし、接続要求を listen します。しかし CARMA は別の方法を使用します。これは、クライアントが接続要求を開始した時点で CARMA サーバーがまだアクティブでないためです。
クライアントから接続要求が送信されると、RSE スレッド・プール内でユーザー・スレッドとしてアクティブとなっている CARMA マイナーは、CRASRV.properties 構成ファイルに指定されている範囲から空いているポートを見つけ、そのポートにバインドします。次にこのマイナーは、CARMA サーバーを始動してポート番号を渡します。これによって、サーバーは接続先のポートを認識します。サーバーが接続されると、クライアントはサーバーに要求を送信して結果を受信できるようになります。
したがって TCP/IP の観点では、RSE (CARMA マイナー経由) がポートにバインドするサーバーであり、CARMA サーバーがそのポートに接続するクライアントです。
ログオン後、PassTicket を使用して RSE サーバー内のスレッドのセキュリティーが確立されます。このフィーチャーを使用不可にすることはできません。PassTicket は、有効期間が約 10 分のシステム生成パスワードです。生成される PassTicket は、DES 暗号化アルゴリズム、ユーザー ID、アプリケーション ID、時刻と日付のスタンプ、および秘密鍵に基づいています。この秘密鍵は 64 ビットの数値 (16 個の 16 進文字) で、これは、使用するセキュリティー・ソフトウェアに対して定義されている必要があります。
PassTicket の使用法を理解しやすいように、以下で RSE のセキュリティー・プロセスを簡単に説明します。
クライアントの実際のパスワードは、初期認証後は不要になります。SAF 準拠のセキュリティー製品は、PassTicket と正規のパスワードのどちらも評価できるからです。RSE サーバーはパスワードが必要になるたびに、PassTicket を生成して使用します。その結果、PassTicket はクライアントの (一時的に) 有効なパスワードになります。
PassTicket を使用すると、RSE はユーザー固有のセキュリティー環境を任意にセットアップでき、すべてのユーザーの ID とパスワードをテーブルに保管する (これはセキュリティーを脅威にさらす可能性があります) 必要がなくなります。また、X.509 証明書など、再使用可能なパスワードを使用しないクライアント認証方式も使用できるようになります。
PassTicket を使用できるようにするには、APPL クラスと PTKTDATA クラスのセキュリティー・プロファイルが必要です。これらのプロファイルはアプリケーション固有のものであるため、現在使用しているシステムのセットアップに影響を及ぼしません。
PassTicket がアプリケーション固有のものであることは、RSE と JES ジョブ・モニターの両方が、同じアプリケーション ID (APPLID) を使用する必要があることを意味します。 デフォルトでは、どちらのサーバーも FEKAPPL を APPLID として使用しますが、これは変更でき、そのためには、RSE の場合は rsed.envvars 内で、JES ジョブ・モニターの場合は FEJJCNFG 内で、それぞれ APPLID ディレクティブを使用します。
OMVSAPPL はアプリケーション ID として使用しないでください。これは、大部分の z/OS UNIX アプリケーションの秘密鍵を公開するからです。また、デフォルトの MVS アプリケーション ID (MVS の直後にシステムの SMF ID を続けたもの) も使用しないでください。これは、大部分の MVS アプリケーション (ユーザー・バッチ・ジョブを含む) の秘密鍵を公開するからです。
重要: PassTicket が正しくセットアップされていないと、クライアントの接続要求は失敗します。 |
Developer for System z は、RSE デーモンによって管理されるアクションの監査ロギングをサポートしています。監査ログは、CSV (コンマ区切り値) 形式のテキスト・ファイルとしてデーモン・ログ・ディレクトリーに保管されます。
_RSE_JAVAOPTS での追加 Java 始動パラメーターの定義で説明されているように、rsed.envvars 内の複数のオプションが監査機能に影響を及ぼします。
modify switch オペレーター・コマンドを使用して、オペレーター・コマンドの説明にあるように、新しい監査ログ・ファイルに手動で切り替えることができます。
監査ログ・ファイルを保持しているファイル・システムのフリー・スペースが少なくなった場合は、コンソールへ警告メッセージが送信されます。このコンソール・メッセージ (FEK103E) は、スペース不足の問題が解決されるまで定期的に繰り返されます。RSE が生成するコンソール・メッセージのリストについては、コンソール・メッセージを参照してください。
新しい監査ログ・ファイルは、あらかじめ定められた時間が経過した後、または modify switch オペレーター・コマンドが発行されたときに開始されます。古いログ・ファイルは、audit.log.yyyymmdd.hhmmss として保存されます。ここで、yyyymmdd.hhmmss は、そのログが閉じられたときの日付/タイム・スタンプです。ファイルへ割り当てられたシステム日付/タイム・スタンプは、ログ・ファイルの作成を示しています。これら 2 つの日付の組み合わせが、この監査ログ・ファイルの記録期間を示しています。
以下のアクションがログとして記録されます。
ログに記録された各アクションは、CSV (コンマ区切り値) 形式で (日付/タイム・スタンプ付きで) 保管されます。CSV 形式は、自動化ツールまたはデータ分析ツールで読み取ることができます。
監査ログ・ファイルには許可ビット・マスク 640 (-rw-r-----) があります。これは、所有者 (RSE デーモン z/OS UNIX uid) が読み取りおよび書き込みアクセス権を持ち、所有者の (デフォルトの) グループが読み取りアクセス権を持つことを意味しています。それ以外のアクセスの試みは、すべて拒否されます。ただし、スーパーユーザー (UID 0) または UNIXPRIV クラスの SUPERUSER.FILESYS プロファイルに対する十分な権限を持つユーザーが試みた場合は除きます。
Developer for System z では、クライアントは JES ジョブ・モニターを通じて JES スプールにアクセスできます。サーバーは基本的なアクセス制限を行い、この制限は、ご使用のセキュリティー製品の標準スプール・ファイル保護フィーチャーによって拡張できます。スプール・ファイルに対するオペレーター・アクション (「保留」、「保留解除」、「キャンセル」、および「パージ」) は EMCS コンソールを通じて行われ、このコンソールについて、条件付きの許可をセットアップする必要があります。
JES ジョブ・モニターは、Developer for System z ユーザーに JES スプールへのフル・オペレーター・アクセスを提供するわけではありません。保留、保留解除、キャンセル、パージの各コマンドのみが使用可能で、しかも、デフォルトでは、そのユーザーが所有しているスプール・ファイルの場合だけです。コマンドは、クライアント・メニュー構造で該当するオプションを選択することによって発行されます (コマンド・プロンプトはありません) 。コマンドのスコープは、セキュリティー・プロファイルを使用してコマンドの使用対象となるジョブを定義することにより、広げることができます。
SDSF の SJ アクション文字と同じように、JES ジョブ・モニターは「JCL の表示」コマンドもサポートしています。このコマンドは、選択されたジョブ出力を作成した JCL を取り出して、エディター・ウィンドウに表示します。JES ジョブ・モニターは JES から JCL を取り出せるので、元の JCL メンバーを容易に見つけることができない状況で役立ちます。
アクション | JES2 | JES3 |
---|---|---|
保留 | $Hx(jobid)
x = {J、S、または T} |
*F,J=jobid,H |
保留解除 | $Ax(jobid)
x = {J、S、または T} |
*F,J=jobid,R |
キャンセル | $Cx(jobid)
x = {J、S、または T} |
*F,J=jobid,C |
パージ | $Cx(jobid),P
x = {J、S、または T} |
*F,J=jobid,C |
JCL の表示 | 適用外 | 適用外 |
表 21 にリストした使用可能な JES コマンドは、デフォルトでは、そのユーザーが所有しているジョブだけに制限されます。これは、FEJJCNFG、JES ジョブ・モニター構成ファイルで説明されているように、LIMIT_COMMANDS ディレクティブを使用して変更できます。
ジョブ所有者 | ||
---|---|---|
LIMIT_COMMANDS | ユーザー | その他 |
USERID (デフォルト) | 許可される | 許可されない |
LIMITED | 許可される | セキュリティー・プロファイルによって明示的に許可された場合にのみ許可される |
NOLIMIT | 許可される | セキュリティー・プロファイルによって許可された場合、または JESSPOOL クラスがアクティブでない場合は許可される |
JES は、JESSPOOL クラスを使用して SYSIN/SYSOUT データ・セットを保護します。 SDSF と同じように、JES ジョブ・モニターは JESSPOOL クラスの用途を拡張し、ジョブ・リソースの保護も行います。
LIMIT_COMMANDS が USERID でない場合、JES ジョブ・モニターは、次の表に示すように、JESSPOOL クラス内の関連するプロファイルに対する権限を照会します。
コマンド | JESSPOOL プロファイル | 必要なアクセス権 |
---|---|---|
保留 | nodeid.userid.jobname.jobid | ALTER |
保留解除 | nodeid.userid.jobname.jobid | ALTER |
キャンセル | nodeid.userid.jobname.jobid | ALTER |
パージ | nodeid.userid.jobname.jobid | ALTER |
JCL の表示 | nodeid.userid.jobname.jobid.JCL | READ |
前記の表で、以下のように置き換えてください。
nodeid | ターゲット JES サブシステムの NJE ノード ID |
userid | ジョブ所有者のローカル・ユーザー ID |
jobname | ジョブの名前 |
jobid | JES ジョブ ID |
JESSPOOL クラスがアクティブでない場合、 LIMIT_COMMANDS の LIMITED および NOLIMIT 値の動作は、表 9 の説明のように異なります。 JESSPOOL がアクティブの場合、動作は同じです。クラスは、デフォルトでは、プロファイルが定義されていなければ許可を拒否するからです。
許可されたターゲットを指定した後の、JES スプール・コマンド・セキュリティーの第 2 フェーズには、オペレーター・コマンドを実際に実行するために必要な許可が含まれます。この実行許可は、z/OS および JES のセキュリティー検査によって行われます。
「JCL の表示」は、他の JES ジョブ・モニター・コマンド (「保留」、「保留解除」、「キャンセル」、および「パージ」) のようなオペレーター・コマンドでないため、以下の制限が (それ以上のセキュリティー検査が存在しないので) 適用されないことに注意してください。
JES ジョブ・モニターは、ユーザーが要求したすべての JES オペレーター・コマンドを、拡張 MCS (EMCS) コンソールを通じて発行します。このコンソールの名前は、FEJJCNFG、JES ジョブ・モニター構成ファイルの説明にあるように、CONSOLE_NAME ディレクティブによって制御されます。
このセットアップでは、セキュリティー管理者は OPERCMDS クラスおよび CONSOLE クラスを使用して、詳細なコマンド実行権限を定義できます。
TSO セッションから JMON コンソールを作成することによって JES ジョブ・モニター・サーバーの ID を装うことは、セキュリティー・ソフトウェアによって防止されます。コンソールを作成できる場合でも、(JES ジョブ・モニターと TSO とでは) 入り口点が異なります。この資料で説明されているとおりにセキュリティーがセットアップされており、ユーザーが他の手段によって JES コマンドに対する権限を持っていない場合は、そのコンソールから発行された JES コマンドはセキュリティー検査で不合格になります。
JES ジョブ・モニターは、コマンドを実行する必要があるとき、コンソール名が既に使用されていると、コンソールを作成できないことに注意してください。これを防止するために、システム・プログラマーは JES ジョブ・モニター構成ファイル内で GEN_CONSOLE_NAME=ON ディレクティブを設定でき、セキュリティー管理者は TSO ユーザーがコンソールを作成しないようにセキュリティー・プロファイルを定義できます。 以下のサンプル RACF コマンドは、(許可されたユーザーを除いて) 誰も TSO または SDSF コンソールを作成できないようにします。
オペレーター・コマンド保護の詳細については、「Security Server RACF セキュリティー管理者のガイド」(SA88-8613) を参照してください。
JES ジョブ・モニターは、デフォルトでは、すべてのスプール・ファイルへの参照アクセスを許可します。これは、FEJJCNFG、JES ジョブ・モニター構成ファイルで説明されているように、LIMIT_VIEW ディレクティブを使用して変更できます
ジョブ所有者 | ||
---|---|---|
LIMIT_VIEW | ユーザー | その他 |
USERID | 許可される | 許可されない |
NOLIMIT (デフォルト) | 許可される | セキュリティー・プロファイルによって許可された場合、または JESSPOOL クラスがアクティブでない場合は許可される |
ユーザーを JES スプール上のそのユーザー自身のジョブだけに制限するには、JES ジョブ・モニター構成ファイル FEJJCNFG で "LIMIT_VIEW=USERID" ステートメントを定義します。 すべてのジョブではありませんが、より広範囲のジョブへのアクセスをユーザーが必要とする場合は、使用しているセキュリティー製品の標準スプール・ファイル保護フィーチャー、例えば、JESSPOOL クラスなどを使用します。
さらに保護を定義するときは、JES ジョブ・モニターがスプールへのアクセスに SAPI (SYSOUT アプリケーション・プログラム・インターフェース) を使用することに留意してください。これは、ユーザーが単にブラウズ機能を使用するだけでも、最低限、スプール・ファイルに対する UPDATE アクセス権が必要になることを意味します。この必要条件は、z/OS 1.7 (JES3 の場合は z/OS 1.8) 以上を実行している場合には適用されません。この場合、ブラウズ機能を使用するには、READ 権限で十分です。
JES スプール・ファイルの保護の詳細については、「Security Server RACF セキュリティー管理者のガイド」(SA88-8613) を参照してください。
外部 (クライアント/ホスト) 通信を SSL (Secure Sockets Layer) で暗号化できます。このフィーチャーは、デフォルトでは使用不可に設定され、(オプション) RSE SSL 暗号化の説明にあるように、ssl.properties 内の設定によって制御されます。
RSE デーモンおよび RSE サーバーは、両者間のアーキテクチャーの違いから、証明書の保管に関して異なるメカニズムをサポートしています。これは、RSE デーモンと RSE サーバーの両方に SSL 定義と証明書が必要であることを意味しています。RSE デーモンと RSE サーバーが同じ証明書管理方式を使用する場合は、共用証明書を使用できます。
証明書ストレージ | 作成者および管理者 | RSE デーモン | RSE サーバー |
---|---|---|---|
鍵リング | SAF 準拠のセキュリティー製品 | サポート | サポート |
鍵データベース | z/OS UNIX の gskkyman | サポート | / |
鍵ストア | Java の keytool | / | サポート |
SAF 準拠の鍵リングでは、証明書の秘密鍵が、セキュリティー・データベースに保管されるか、または System z 暗号化ハードウェアとのインターフェースである ICSF (Integrated Cryptographic Service Facility) を使用して保管されます。
ICSF は、非 ICSF の秘密鍵管理よりもセキュアなソリューションであるため、デジタル証明書に関連する秘密鍵の保管には ICSF の使用をお勧めします。ICSF では、確実に、秘密鍵が ICSF マスター・キーで暗号化され、かつその秘密鍵へのアクセスが CSFKEYS および CSFSERV セキュリティー・クラスの一般リソースによって制御されます。さらに、ICSF はハードウェア Cryptographic Coprocessor (暗号化コプロセッサー) を使用するため、操作上のパフォーマンスが向上します。
RSE デーモンは、System SSL の機能を使用して SSL 暗号化通信を管理します。 これは SYS1.SIEALNKE が、ご使用のセキュリティー・ソフトウェアによってプログラム制御されることが必要で、LINKLIST または rsed.envvars 内の STEPLIB ディレクティブを介して RSE から使用可能でなければならないことを意味しています。
RSE デーモンまたは RSE サーバーに SAF 準拠の鍵リングが使用されている場合は、RSE ユーザー ID (以下のサンプル・コマンドでは STCRSE) に、鍵リングとそれに関連する証明書にアクセスするための権限が必要です。
Developer for System z 用に SSL をアクティブにする方法について詳しくは、付録A. SSL および X.509 認証のセットアップを参照してください。
RSE デーモンは、X.509 証明書で自分自身を認証するユーザーをサポートしています。この機能の場合、SSL 暗号化通信の使用は前提条件です。この機能は、SSL で使用される証明書でのホスト認証を拡張したものだからです。
RSE デーモンは、クライアント証明書の妥当性を検査することによって、クライアント認証プロセスを開始します。検査される重要な点は、証明書が有効である日付、および、証明書の署名に使用された認証局 (CA) の信頼性などです。オプションとして、(サード・パーティーの) 証明書失効リスト (CRL) を調べることもできます。
RSE デーモンが証明書の妥当性を検査した後、認証のために証明書が処理されます。証明書は、rsed.envvars ディレクティブの enable.certificate.mapping が false に設定されている場合を除き、使用しているセキュリティー製品へ渡され、その時点で RSE デーモンは認証を行います。
認証プロセスが成功した場合、そのユーザー ID をこのセッションに使用することが決定され、その後、RSE デーモンはユーザー ID をテストし、RSE デーモンが稼働しているホスト・システム上で使用可能であるかどうかを確認します。
最終検査 (X.509 証明書だけでなく、すべての認証メカニズムで行われます) では、ユーザー ID が Developer for System z の使用を許可されていることが検証されます。
TCP/IP が使用する SSL セキュリティー区分に詳しければ、上記の検証ステップの組み合わせが「レベル 3 クライアント認証」仕様 (使用可能な最高レベル) に相当することがわかるはずです。
証明書の妥当性検査の一環として、証明書にユーザーの信頼する証明局 (CA) の署名があるかどうかが検査されます。 それを行うために、RSE デーモンは CA を識別する証明書にアクセスできなければなりません。
SSL 接続に gskkyman 鍵データベースを使用している場合は、鍵データベースに CA 証明書を追加する必要があります。
SAF 鍵リングを使用している場合は (これが推奨される方式です)、次のサンプル RACF コマンドに示すように、CA 証明書をセキュリティー・データベースに CERTAUTH 証明書として、TRUST または HIGHTRUST 属性付きで追加する必要があります。
ほとんどのセキュリティー製品では、すでにそのデータベースの中に、既知の CA の証明書が NOTRUST 状況付きで入っていることに注意してください。既存の CA 証明書をリストし、割り当てられたラベルに基づいて、その 1 つに信頼できる証明書としてマークを付けるには、次のサンプルの RACF コマンドを使用します。
CA 証明書をセキュリティー・データベースに追加した後、このサンプルの RACF コマンドに示すように、CA 証明書を RSE 鍵リングに接続する必要があります。
RACDCERT コマンドの詳細については、「Security Server RACF コマンド言語解説書」(SA88-8617) を参照してください。
重要: セキュリティー・ソフトウェアではなく RSE デーモンでユーザーを認証する場合は、SAF 鍵リングまたは gskkyman 鍵データベース内で TRUST 状況と HIGHTRUST 状況の CA が混在しないように注意する必要があります。RSE デーモンは、この 2 つを区別できないので、TRUST 状況の CA によって署名された証明書がユーザー ID 認証用に有効になります。 |
必要であれば RSE デーモンに指示して、1 つ以上の証明書失効リスト (CRL) を検査させ、妥当性検査プロセスに追加のセキュリティーを付加できます。 これは、CRL に関連した環境変数を rsed.envvars に追加することによって行います。 以下のサンプルの変数については、rsed.envvars、RSE 構成ファイルを参照してください。
これらの環境変数、および z/OS System SSL によって使用されるその他の環境変数の詳細については、「Cryptographic Services System SSL (Secure Sockets Layer) プログラミング」(SD88-6252) を参照してください。
RACF は、いくつかの検査を行って証明書を認証し、関連するユーザー ID を返します。他のセキュリティー製品では、これが異なる方法で行われる場合があることに注意してください。認証 (照会モード) を行うために使用される initACEE 機能の詳細については、使用しているセキュリティー製品の資料を参照してください。
証明書を RACF に対して定義するには、次の例に示すような RACDCERT コマンドを使用します。
RACDCERT ID(userid) ADD(dsn) TRUST WITHLABEL('label')
ユーザー ID とホスト名のペアは、以下のすべての条件が真である場合に有効です。
ASN.1 構文での HostIdMappings 拡張の定義は、以下のとおりです。
id-ce-hostIdMappings OBJECT IDENTIFIER::= {1 3 18 0 2 18 1} HostIdMappings::= SET OF HostIdMapping HostIdMapping::= SEQUENCE{ hostName IMPLICIT[1] IA5String, subjectId IMPLICIT[2] IA5String, proofOfIdPossession IdProof OPTIONAL } IdProof::= SEQUENCE{ secret OCTET STRING, encryptionAlgorithm OBJECT IDENTIFIER }
X.509 証明書、RACF によるその管理方法、および証明書名フィルターの定義方法について詳しくは、「Security Server RACF セキュリティー管理者のガイド」(SA88-8613) を参照してください。 RACDCERT コマンドの詳細については、「Security Server RACF コマンド言語解説書」(SA88-8617) を参照してください。
Developer for System z では、ご使用のセキュリティー製品に依存せずに基本的な X.509 証明書認証を行うことができます。RSE デーモンによって行われる認証では、ユーザー ID とホスト名が証明書拡張内で定義されている必要があり、しかも、rsed.envvars 内の enable.certificate.mapping ディレクティブが FALSE に設定されている場合にのみ、認証がアクティブになります。
この機能は、使用しているセキュリティー製品が X.509 証明書に基づいたユーザーの認証をサポートしていない場合、または、使用しているセキュリティー製品によって行われるテストに証明書が合格できない場合 (例えば、証明書の HostIdMappings 拡張の ID に誤りがあり、DIGTCERT 内に名前フィルターや定義がない場合) に使用するためのものです。
クライアントはユーザーに対し、使用すべき拡張 ID (OID) を照会し、その ID は、デフォルトでは HostIdMappings OID の {1 3 18 0 2 18 1} です。
RSE デーモンは HostIdMappings 拡張のフォーマットを使用して、そこからユーザー ID とホスト名を抽出します。このフォーマットについては、使用しているセキュリティー・ソフトウェアによる認証に説明があります。
ユーザー ID とホスト名のペアは、以下のすべての条件が真である場合に有効です。
重要: RSE デーモンに既知のすべての CA を「高度に信頼できる」ものと保証するのは、セキュリティー管理者の責任です。RSE デーモンはクライアント証明書の署名者が「高度に信頼できる」か単なる「信頼できる」かを検査できないからです。アクセス可能な CA 証明書の詳細については、認証局 (CA) の妥当性検査を参照してください。 |
Developer for System z は Port Of Entry (POE) 検査をサポートしています。これにより、ホストは信頼できる TCP/IP アドレスにのみアクセスできます。このフィーチャーは、デフォルトでは使用不可に設定され、以下のサンプル RACF コマンドに示すように、BPX.POE セキュリティー・プロファイルの定義を必要とします。
POE 検査を使用したネットワーク・アクセス制御の詳細については、「Communications Server IP 構成ガイド」(SC88-8926) を参照してください。
Developer for System z では、Application Deployment Manager を通じて、開発者が編集可能な CICS リソース定義とそのデフォルト値、および CICS リソース定義の表示を、CICS 管理者が CICS リソース定義 (CRD) サーバーによって制御できます。必要な CICS TS セキュリティー定義の詳細については、CICSTS に関する考慮事項を参照してください。
CRD サーバー・リポジトリー VSAM データ・セットは、すべてのデフォルト・リソース定義を保持しています。したがって、更新されないように保護する必要がありますが、開発者は、そこに保管された値の読み取りを許可される必要があります。
Developer for System z は、CICS リソースの定義および照会時に、CRD サーバーが使用する複数のトランザクションを提供します。トランザクションが接続すると、CICS リソース・セキュリティー検査機能 (使用可能な場合) により、ユーザー ID にはそのトランザクション ID を実行する許可が与えられます。
Application Deployment Manager クライアントは、CICS TS Web サービスまたは RESTful インターフェースを使用して、CRD サーバーを起動します。この通信への SSL の使用は、CICS TS TCPIPSERVICE 定義によって制御されます。これについては、「RACF Security Guide for CICS TS」を参照してください。
SCLM Developer Toolkit サービスは、ビルド、プロモート、およびデプロイ機能に対するオプションのセキュリティー機能を提供します。
SCLM 管理者による機能に対してセキュリティーが有効の場合、保護された機能を呼び出し元ユーザー ID または代理ユーザー ID で実行する権限を確認するために、SAF 呼び出しが行われます。
必要な SCLM セキュリティー定義の詳細については、「SCLM Developer Toolkit 管理者ガイド」(SC88-5664) を参照してください。
セキュリティーのセットアップに影響するディレクティブは、Developer for System z の複数の構成ファイルに存在します。この章の情報に基づいて、セキュリティー管理者およびシステム・プログラマーは、以下のディレクティブの設定内容を決定することができます。
どのジョブに対してアクションを実行できるかを定義します (ブラウズと実行依頼は除く)。詳しくは、ジョブに対するアクション - ターゲットの制限を参照してください。
どのスプール・ファイルをブラウズできるかを定義します。詳しくは、スプール・ファイルへのアクセスを参照してください。
PassTicket の作成と妥当性検査に使用するアプリケーション ID。 詳しくは、PassTicket の使用を参照してください。
ユーザーがホスト・パスワードをクライアント上に保存することを禁止します。詳しくは、_RSE_JAVAOPTS での追加 Java 始動パラメーターの定義を参照してください。
活動停止中のクライアントを切断するタイマー。詳しくは、_RSE_JAVAOPTS での追加 Java 始動パラメーターの定義を参照してください。
PassTicket の作成と妥当性検査に使用するアプリケーション ID。 詳しくは、PassTicket の使用を参照してください。
Port Of Entry 検査を使用可能にします。詳しくは、Port Of Entry (POE) 検査を参照してください。
セキュリティー製品を使用して、X.509 証明書でユーザーを認証します。詳しくは、X.509 証明書を使用したクライアント認証を参照してください。
監査ログ・ファイルのロケーション。詳しくは、監査ロギングを参照してください。
RSE デーモン証明書のロケーション。詳しくは、SSL 暗号化通信を参照してください。
RSE デーモン証明書の名前。詳しくは、SSL 暗号化通信を参照してください。
RSE サーバー証明書のロケーション。詳しくは、SSL 暗号化通信を参照してください。
RSE サーバー証明書の名前。詳しくは、SSL 暗号化通信を参照してください。
使用される鍵ストアのタイプ (Java 鍵ストアまたは SAF 鍵リング)。詳しくは、SSL 暗号化通信を参照してください。
サンプル・メンバー FEKRACF をカスタマイズし、実行依頼してください。このメンバーには、Developer for System z 用の基本セキュリティー定義を作成する、サンプルの RACF および z/OS UNIX コマンドが含まれています。
FEKRACF は FEK.#CUST.JCL に置かれます。ただし、ジョブ FEK.SFEKSAMP(FEKSETUP) をカスタマイズして実行依頼したときに別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
RACF コマンドの詳細については、「RACF コマンド言語解説書」(SA88-8617) を参照してください。
以下のセクションでは、必要なステップ、オプションの構成、および可能な代替策について説明します。
セキュリティー・セットアップを完了するために、セキュリティー管理者は表 26 にリストされた値を認識しておく必要があります。 これらの値は、前のステップである Developer for System z のインストールとカスタマイズで定義されています。
説明 |
|
値 |
---|---|---|
Developer for System z 製品高位修飾子 |
|
|
Developer for System z カスタマイズ高位修飾子 |
|
|
JES ジョブ・モニター開始タスク名 |
|
|
RSE デーモン開始タスク名 |
|
|
ロック・デーモン開始タスク名 |
|
|
アプリケーション ID |
|
次のリストは、Developer for System z の基本的なセキュリティー・セットアップを完了するために必要なアクションの概要を示したものです。以下の各セクションで説明されているように、これらの要件を満たすために、求めるセキュリティー・レベルに応じてさまざまな方式を使用できます。オプションの Developer for System z サービスのセキュリティー・セットアップについては、前記の各セクションを参照してください。
Developer for System z では、さまざまなセキュリティー・メカニズムを使用して、クライアントにとってセキュアで制御されたホスト環境を確保します。そのためには、以下のサンプルの RACF コマンドで示すように、いくつかのクラスとセキュリティー設定をアクティブにする必要があります。
SETROPTS LIST
SETROPTS GENERIC(FACILITY)
SETROPTS CLASSACT(FACILITY) RACLIST(FACILITY)
SETROPTS GENERIC(STARTED)
RDEFINE STARTED ** STDATA(USER(=MEMBER) GROUP(STCGROUP) TRACE(YES))
SETROPTS CLASSACT(STARTED) RACLIST(STARTED)
SETROPTS GENERIC(CONSOLE)
SETROPTS CLASSACT(CONSOLE) RACLIST(CONSOLE)
SETROPTS GENERIC(OPERCMDS)
SETROPTS CLASSACT(OPERCMDS) RACLIST(OPERCMDS)
SETROPTS GENERIC(APPL)
SETROPTS CLASSACT(APPL) RACLIST(APPL)
SETROPTS GENERIC(PTKTDATA)
SETROPTS CLASSACT(PTKTDATA) RACLIST(PTKTDATA)
RDEFINE PROGRAM ** ADDMEM('SYS1.CMDLIB'//NOPADCHK) UACC(READ)
SETROPTS WHEN(PROGRAM)
重要: 「WHEN PROGRAM」がアクティブの場合、一部の製品 (FTP など) はプログラムで制御することが必要です。これは、実動システム上でアクティブにする前にテストしてください。 |
SETROPTS GENERIC(SERVAUTH)
SETROPTS CLASSACT(SERVAUTH) RACLIST(SERVAUTH)
Developer for System z のユーザーごとに、有効なゼロ以外の z/OS UNIX ユーザー ID (UID)、ホーム・ディレクトリー、およびシェル・コマンドを指定する RACF OMVS セグメント (または同等のもの) を定義する必要があります。また、ユーザーのデフォルト・グループも、グループ ID を持つ OMVS セグメントを必要とします。
以下のサンプル RACF コマンドでは、#userid、#user-identifier、#group-name、#group-identifier の各プレースホルダーを実際の値に置き換えてください。
ALTUSER #userid OMVS(UID(#user-identifier) HOME(/u/#userid) PROGRAM(/bin/sh) NOASSIZEMAX)
ALTGROUP #group-name OMVS(GID(#group-identifier))
お勧めはできませんが、FACILITY クラスの BPX.DEFAULT.USER プロファイルで定義されている共用 OMVS セグメントを使用して、Developer for System z の OMVS セグメント要件を満たすこともできます。
ほとんどの Developer for System z データ・セットでは、ユーザーの場合は READ アクセス権、システム・プログラマーの場合は ALTER で十分です。#sysprog プレースホルダーは、有効なユーザー ID または RACF グループ名に置き換えてください。また、正しいデータ・セット名については、製品をインストールおよび構成したシステム・プログラマーに問い合わせてください。FEK は、インストール時に使用されたデフォルトの高位修飾子で、FEK.#CUST はカスタマイズ・プロセスで作成されたデータ・セットのデフォルトの高位修飾子です。
ADDGROUP (FEK) OWNER(IBMUSER) SUPGROUP(SYS1) DATA('RATIONAL DEVELOPER FOR SYSTEM Z - HLQ STUB')
ADDSD 'FEK.*.**' UACC(READ) DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
PERMIT 'FEK.*.**' CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
SETROPTS GENERIC(DATASET) REFRESH
一部のオプションの Developer for System z コンポーネントには、追加のセキュリティー・データ・セット・プロファイルが必要です。#sysprog、#ram-developer、および #cicsadmin の各プレースホルダーは、有効なユーザー ID または RACF グループ名に置き換えてください。
ADDSD 'FEK.#CUST.LSTRANS.*.**' UACC(UPDATE) DATA('RATIONAL DEVELOPER FOR SYSTEM Z - SCLMDT')
PERMIT 'FEK.#CUST.LSTRANS.*.**' CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
SETROPTS GENERIC(DATASET) REFRESH
ADDSD 'FEK.#CUST.CRA*.**' UACC(READ) DATA('RATIONAL DEVELOPER FOR SYSTEM Z - CARMA')
PERMIT 'FEK.#CUST.CRA*.**' CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.#CUST.CRA*.**' CLASS(DATASET) ACCESS(UPDATE) ID(#ram-developer)
SETROPTS GENERIC(DATASET) REFRESH
ADDSD 'FEK.#CUST.ADNREP*.**' UACC(READ) DATA('RATIONAL DEVELOPER FOR SYSTEM Z - ADN')
PERMIT 'FEK.#CUST.ADNREP*.**' CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.#CUST.ADNREP*.**' CLASS(DATASET) ACCESS(UPDATE) ID(#cicsadmin)
SETROPTS GENERIC(DATASET) REFRESH
ADDSD 'FEK.#CUST.ADNMAN*.**' UACC(UPDATE) DATA('RATIONAL DEVELOPER FOR SYSTEM Z - ADN')
PERMIT 'FEK.#CUST.ADNMAN*.**' CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
SETROPTS GENERIC(DATASET) REFRESH
READ アクセス権も制御対象とする、さらにセキュアなセットアップのためには、以下のサンプル RACF コマンドを使用します。
ADDGROUP (FEK) DATA('RATIONAL DEVELOPER FOR SYSTEM Z - HLQ STUB') OWNER(IBMUSER) SUPGROUP(SYS1)"
ADDSD 'FEK.*.**' UACC(NONE) DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
ADDSD 'FEK.SFEKAUTH' UACC(NONE) DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
ADDSD 'FEK.SFEKLOAD' UACC(NONE) DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
ADDSD 'FEK.SFEKPROC' UACC(NONE) DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
ADDSD 'FEK.#CUST.PARMLIB' UACC(NONE) DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
ADDSD 'FEK.#CUST.CNTL' UACC(NONE) DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
ADDSD 'FEK.#CUST.LSTRANS.*.**' UACC(NONE) DATA('RATIONAL DEVELOPER FOR SYSTEM Z - SCLMDT')
ADDSD 'FEK.#CUST.CRA*.**' UACC(NONE) DATA('RATIONAL DEVELOPER FOR SYSTEM Z - CARMA')
ADDSD 'FEK.#CUST.ADNREP*.**' UACC(NONE) DATA('RATIONAL DEVELOPER FOR SYSTEM Z - ADN')
ADDSD 'FEK.#CUST.ADNMAN*.**' UACC(NONE) DATA('RATIONAL DEVELOPER FOR SYSTEM Z - ADN')
PERMIT 'FEK.*.** CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.SFEKAUTH CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.SFEKLOAD CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.SFEKLOAD CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.SFEKLOAD CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.SFEKPROC CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.#CUST.PARMLIB CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.#CUST.CNTL CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.#CUST.LSTRANS.*.**' CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.#CUST.CRA*.**' CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.#CUST.ADNREP*.**' CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.#CUST.ADNMAN*.**' CLASS(DATASET) ACCESS(ALTER) ID(#sysprog)
PERMIT 'FEK.SFEKAUTH' CLASS(DATASET) ACCESS(READ) ID(*)
PERMIT 'FEK.SFEKLOAD' CLASS(DATASET) ACCESS(READ) ID(*)
PERMIT 'FEK.SFEKPROC' CLASS(DATASET) ACCESS(READ) ID(*)
PERMIT 'FEK.#CUST.CNTL' CLASS(DATASET) ACCESS(READ) ID(*)
PERMIT 'FEK.SFEKAUTH' CLASS(DATASET) ACCESS(READ) ID(STCJMON)
PERMIT 'FEK.#CUST.PARMLIB' CLASS(DATASET) ACCESS(READ) ID(STCJMON)
PERMIT 'FEK.#CUST.LSTRANS.*.**' CLASS(DATASET) ACCESS(UPDATE) ID(*)
PERMIT 'FEK.#CUST.CRA*.**' CLASS(DATASET) ACCESS(UPDATE) ID(#ram-developer)
PERMIT 'FEK.#CUST.ADNREP*.**' CLASS(DATASET) ACCESS(READ) ID(*)
PERMIT 'FEK.#CUST.ADNREP*.**' CLASS(DATASET) ACCESS(UPDATE) ID(#cicsadmin)
PERMIT 'FEK.#CUST.ADNMAN*.**' CLASS(DATASET) ACCESS(UPDATE) ID(*)
PERMIT 'FEK.SFEKLOAD' CLASS(DATASET) ACCESS(READ) ID(#cicsts)
PERMIT 'FEK.SFEKPROC' CLASS(DATASET) ACCESS(READ) ID(#db2)
SETROPTS GENERIC(DATASET) REFRESH
システム・データ・セットへの READ アクセスを制御するときは、Developer for System z サーバーおよびユーザーに以下のデータ・セットに対する READ 権限を与える必要があります。
以下のサンプル RACF コマンドは、保護されたユーザー ID (STCJMON、STCRSE、および STCLOCK) とそれらに割り当てられたグループ STCGROUP を使用して、JMON、RSED、および LOCKD の各開始タスクを作成します。#group-id および #user-id-* プレースホルダーは、有効な OMVS ID に置き換えてください。
ADDGROUP STCGROUP OMVS(GID(#group-id)) DATA('GROUP WITH OMVS SEGMENT FOR STARTED TASKS')
ADDUSER STCJMON DFLTGROUP(STCGROUP) NOPASSWORD NAME('RDZ - JES JOBMONITOR') OMVS(UID(#user-id-jmon) HOME(/tmp) PROGRAM(/bin/sh) NOASSIZEMAX NOTHREADSMAX) DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
ADDUSER STCRSE DFLTGROUP(STCGROUP) NOPASSWORD NAME('RDZ - RSE DAEMON') OMVS(UID(#user-id-rse) HOME(/tmp) PROGRAM(/bin/sh) ASSIZEMAX(2147483647) NOTHREADSMAX) DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
ADDUSER STCLOCK DFLTGROUP(STCGROUP) NOPASSWORD NAME('RDZ - LOCK DAEMON') OMVS(UID(#user-id-lock) HOME(/tmp) PROGRAM(/bin/sh) NOASSIZEMAX) NOTHREADSMAX) DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
RDEFINE STARTED JMON.* DATA('RDZ - JES JOBMONITOR') STDATA(USER(STCJMON) GROUP(STCGROUP) TRUSTED(NO))
RDEFINE STARTED RSED.* DATA('RDZ - RSE DAEMON') STDATA(USER(STCRSE) GROUP(STCGROUP) TRUSTED(NO))
RDEFINE STARTED LOCKD.* DATA('RDZ - LOCK DAEMON') STDATA(USER(STCLOCK) GROUP(STCGROUP) TRUSTED(NO))
SETROPTS RACLIST(STARTED) REFRESH
STCRSE ユーザー ID の制限を考慮することが必要になる場合があります。RESTRICTED 属性を持つユーザーは、保護された (MVS) リソースには、特にアクセスを許可されている場合以外、アクセスできません。
ALTUSER STCRSE RESTRICTED
制限されたユーザーが「その他の」許可ビットによって z/OS UNIX ファイル・システム・リソースにアクセスできないよう、UNIXPRIV クラス内に RESTRICTED.FILESYS.ACCESS プロファイルを UACC(NONE) で定義する必要があります。ユーザー ID を制限する方法の詳細については、「Security Server RACF セキュリティー管理者のガイド」(SA88-8613) を参照してください。
重要: 制限されたユーザー ID を使用している場合は、TSO の PERMIT コマンドか、z/OS UNIX setfacl コマンドを使用して、リソースにアクセスする許可を明示的に追加する必要があります。これには、Developer for System z 資料が UACC を使用するリソース (PROGRAM クラス内の ** プロファイルなど)、またはそれが共通の z/OS UNIX 規則 (全員が Java ライブラリーの読み取り権限と実行権限を持つなど) に依存するリソースが含まれます。これは、実動システム上でアクティブにする前にテストしてください。 |
JES ジョブ・モニターは、ユーザーが要求したすべての JES オペレーター・コマンドを、拡張 MCS (EMCS) コンソールを通じて発行します。このコンソールの名前は、FEJJCNFG、JES ジョブ・モニター構成ファイルの説明にあるように、CONSOLE_NAME ディレクティブによって制御されます。
以下のサンプル RACF コマンドは、Developer for System z ユーザーに、JES コマンドの限定セット (保留、保留解除、キャンセル、およびパージ) に対する条件付きアクセス権を与えます。ユーザーは、JES ジョブ・モニターによってコマンドを発行した場合にのみ、実行権限を持ちます。#console プレースホルダーは、実際のコンソール名に置き換えてください。
RDEFINE OPERCMDS MVS.MCSOPER.#console UACC(READ) DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
RDEFINE OPERCMDS JES%.** UACC(NONE)
PERMIT JES%.** CLASS(OPERCMDS) ACCESS(UPDATE) WHEN(CONSOLE(JMON)) ID(*)
SETROPTS RACLIST(OPERCMDS) REFRESH
重要: ご使用のセキュリティー・ソフトウェアで汎用アクセス NONE を使用して JES コマンドを定義すると、他のアプリケーションや操作に影響が出る場合があります。これは、実動システム上でアクティブにする前にテストしてください。 |
表 27 および表 28 は、JES2 および JES3 について発行されたオペレーター・コマンドと、それらを保護するために使用できる個別セキュリティー・プロファイルを示しています。
アクション | コマンド | OPERCMDS プロファイル | 必要なアクセス権 |
---|---|---|---|
保留 | $Hx(jobid)
x = {J、S、または T} |
jesname.MODIFYHOLD.BAT jesname.MODIFYHOLD.STC jesname.MODIFYHOLD.TSU |
UPDATE |
保留解除 | $Ax(jobid)
x = {J、S、または T} |
jesname.MODIFYRELEASE.BAT jesname.MODIFYRELEASE.STC jesname.MODIFYRELEASE.TSU |
UPDATE |
キャンセル | $Cx(jobid)
x = {J、S、または T} |
jesname.CANCEL.BAT jesname.CANCEL.STC jesname.CANCEL.TSU |
UPDATE |
パージ | $Cx(jobid),P
x = {J、S、または T} |
jesname.CANCEL.BAT jesname.CANCEL.STC jesname.CANCEL.TSU |
UPDATE |
アクション | コマンド | OPERCMDS プロファイル | 必要なアクセス権 |
---|---|---|---|
保留 | *F,J=jobid,H |
jesname.MODIFY.JOB |
UPDATE |
保留解除 | *F,J=jobid,R |
jesname.MODIFY.JOB |
UPDATE |
キャンセル | *F,J=jobid,C |
jesname.MODIFY.JOB |
UPDATE |
パージ | *F,J=jobid,C |
jesname.MODIFY.JOB |
UPDATE |
TSO セッションから JMON コンソールを作成することによって JES ジョブ・モニター・サーバーの ID を装うことは、セキュリティー・ソフトウェアによって防止されます。コンソールを作成できる場合でも、(JES ジョブ・モニターと TSO とでは) 入り口点が異なります。この資料で説明されているとおりにセキュリティーがセットアップされており、ユーザーが他の手段によって JES コマンドに対する権限を持っていない場合は、そのコンソールから発行された JES コマンドはセキュリティー検査で不合格になります。
RSE は、クライアントのスレッドのセキュリティー環境を作成または削除するためには、BPX.SERVER プロファイルに対する UPDATE アクセス権を必要とします。 このプロファイルが定義されていない場合は、UID(0) が RSE に必要です。
重要: BPX.SERVER プロファイルを定義すると、z/OS UNIX 全体が UNIX レベルのセキュリティーから、より安全な z/OS UNIX レベルのセキュリティーに切り替わります。これによって、他の z/OS UNIX アプリケーションと操作が影響を受ける場合もあります。これは、実動システム上でアクティブにする前にテストしてください。さまざまなセキュリティー・レベルの詳細については、「UNIX System Services 計画」(GA88-8639) を参照してください。 |
BPX.SERVER に対する権限を持つサーバーは、クリーンなプログラム制御環境で実行する必要があります。これは、RSE によって呼び出されるすべてのプログラムも、プログラムで制御する必要があることを意味します。MVS ロード・ライブラリーの場合、プログラム制御はセキュリティー・ソフトウェアによって管理されます。
RSE は、システム (SYS1.LINKLIB)、言語環境プログラムのランタイム (CEE.SCEERUN*)、および ISPF の TSO/ISPF クライアント・ゲートウェイ (ISP.SISPLOAD) ロード・ライブラリーを使用します。
オプションのサービスを使用できるようにするには、以下の (前提条件の) 追加ライブラリーがプログラムで制御されるようにする必要があります。このリストには、Developer for System z が対話する製品 (IBM Debug Tool など) に固有のデータ・セットは含まれていません。
クライアントがログオンするときに、RSE デーモンはユーザーがアプリケーションの使用を許可されていることを検証します。
RDEFINE APPL FEKAPPL UACC(READ) DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
SETROPTS RACLIST(APPL) REFRESH
RSE サーバーの PassTicket サポートの定義で詳しく説明するように、RSE は FEKAPPL 以外のアプリケーション ID の使用をサポートしています。APPL クラス定義は、RSE が使用する実際のアプリケーション ID と一致している必要があります。
重要: アプリケーション・プロファイルが定義されていない場合、またはユーザーにプロファイルへの READ アクセス権がない場合は、クライアントの接続要求が失敗します。 |
クライアントのパスワード (または、X.509 証明書などのその他の識別手段) は、接続時にクライアントの ID を検査するためにのみ使用されます。その後は、スレッド・セキュリティーを維持するために PassTicket が使用されます。
PassTicket は、有効期間が約 10 分のシステム生成パスワードです。生成される PassTicket は、秘密鍵に基づいています。この鍵は、64 ビットの数値 (16 個の 16 進文字) です。以下のサンプル RACF コマンドでは、key16 プレースホルダーをユーザー指定の 16 文字の 16 進ストリング (0 から 9 までと A から F までの文字) に置き換えてください。
RDEFINE PTKTDATA FEKAPPL UACC(NONE) SSIGNON(KEYMASKED(key16)) APPLDATA('NO REPLAY PROTECTION - DO NOT CHANGE') DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
RDEFINE PTKTDATA IRRPTAUTH.FEKAPPL.* UACC(NONE) DATA('RATIONAL DEVELOPER FOR SYSTEM Z')
PERMIT IRRPTAUTH.FEKAPPL.* CLASS(PTKTDATA) ACCESS(UPDATE) ID(STCRSE)
SETROPTS RACLIST(PTKTDATA) REFRESH
RSE は、FEKAPPL 以外のアプリケーション ID の使用をサポートしています。これをアクティブにするには、_RSE_JAVAOPTS での追加 Java 始動パラメーターの定義で説明しているように、rsed.envvars 内で「APPLID=FEKAPPL」オプションをコメント解除およびカスタマイズします。PTKTDATA クラス定義は、RSE が使用する実際のアプリケーション ID と一致している必要があります。
OMVSAPPL はアプリケーション ID として使用しないでください。これは、大部分の z/OS UNIX アプリケーションの秘密鍵を公開するからです。また、デフォルトの MVS アプリケーション ID (MVS の直後にシステムの SMF ID を続けたもの) も使用しないでください。これは、大部分の MVS アプリケーション (ユーザー・バッチ・ジョブを含む) の秘密鍵を公開するからです。
重要: PassTicket が正しくセットアップされていないと、クライアントの接続要求は失敗します。 |
BPX.SERVER に対する権限を持つサーバーは、クリーンなプログラム制御環境で実行する必要があります。これは、RSE によって呼び出されるすべてのプログラムも、プログラムで制御する必要があることを意味します。z/OS UNIX ファイルの場合、プログラム制御は extattr コマンドによって管理されます。このコマンドを実行するには、 FACILITY クラス内の BPX.FILEATTR.PROGCTL に対する READ アクセス権を持つか、または UID(0) であることが必要です。
RSE サーバーは、RACF の Java 共用ライブラリー (/usr/lib/libIRRRacf.so) を使用します。
$ ls -Eog /usr/lib/libIRRRacf.so -rwxr-xr-x aps- 2 69632 Oct 5 2007 /usr/lib/libIRRRacf.so
セキュリティーに関連するカスタマイズの結果を表示するには、以下のサンプル・コマンドを使用します。
Developer for System z ホストは、クライアントがホスト・サービスとデータにアクセスできるようにするために相互に作用する、複数のコンポーネントで構成されています。これらのコンポーネントの設計を理解しておくと、構成に関して適切な判断を行うことができます。
この章では、以下のトピックについて説明します。
図 41 は、ホスト・システムにおける Developer for System z のレイアウトの一般的な概要です。
前の段落とリストで説明したのは、RSE に割り当てられている中心的な役割です。わずかな例外を除き、クライアント通信はすべて RSE を経由します。これにより、クライアント/ホスト通信に使用されるポートの数が限定されるため、セキュリティーに関連したネットワーク・セットアップが容易になります。
クライアントからの接続とワークロードを管理するために、RSE は、スレッド・プーリング・アドレス・スペースを制御するデーモン・アドレス・スペースから構成されています。デーモンは接続と管理のためのフォーカル・ポイントとして機能し、スレッド・プールはクライアント・ワークロードを処理します。rsed.envvars 構成ファイルに定義されている値と実際のクライアント接続数に基づいて、デーモンは複数のスレッド・プール・アドレス・スペースを開始することができます。
図 42 は、RSE によるリソースの使用 (プロセスとストレージ) を基本的な図で示しています。
RSE は Java アプリケーションであるため、z/OS UNIX 環境でアクティブになります。このため、異なるホスト・プラットフォームへの移植が容易であり、同じく Java アプリケーションである (Eclipse フレームワーク・ベース) Developer for System z クライアントと簡単に通信することができます。したがって、z/OS UNIX および Java の仕組みに関する基本的な知識があると、Developer for System z を理解するうえで非常に役立ちます。
z/OS UNIX では、プログラムが PID (プロセス ID) で識別されるプロセス内で実行されます。各プログラムはそのプログラム専用のプロセス内でアクティブになるため、別のプログラムを呼び出すと新しいプロセスが作成されます。プロセスを開始したプロセスは、PPID (親 PID) で参照され、新しいプロセスは子プロセスと呼ばれます。子プロセスは同じアドレス・スペース内で実行することも、新しいアドレス・スペースで spawn (作成) することもできます。同じアドレス・スペースで新しいプロセスを実行することは、TSO でコマンドを実行することに相当し、新しいアドレス・スペースでプロセスを spawn することは、バッチ・ジョブを実行依頼することと似ています。
プロセスは、単一スレッドの場合とマルチスレッドの場合があるので注意してください。マルチスレッド・アプリケーション (RSEなど) では、個別のアドレス・スペースのとき (より少ないオーバーヘッドによる) と同様に、個々のスレッドがシステム・リソースを得ようと競合します。
上記のプロセスの説明を 図 42 の RSE サンプルに対応付けると、次のような流れになります。
RSE などの Java アプリケーションは、ストレージを直接割り振るのではなく、Java メモリー管理サービスを使用します。これらのサービスは、ストレージの割り振り、ストレージの解放、およびガーベッジ・コレクションと同様に、Java ヒープの限度内で機能します。ヒープの最小サイズと最大サイズは、Java 始動時に (暗黙的または明示的に) 定義されます。
つまり、使用可能なアドレス・スペース・サイズを最大限に活用することは、z/OS 用に不定量 (アクティブなスレッド数に依存します) のシステム制御ブロックを保管できる余裕を確保しながら、大きなヒープ・サイズを定義するというバランスを考慮した両立案になります。
図 43 は、Developer for System z のさまざまなタスクで使用されるセキュリティー資格情報の所有者の基本的概要を示しています。
タスクの所有権は、2 つの部分に分けることができます。開始タスクは、ご使用のセキュリティー・ソフトウェアで開始タスクに割り当てられているユーザー ID が所有します。それ以外のすべてのタスク (RSE スレッド・プール (RSEDx) は例外) は、クライアント・ユーザー ID が所有します。
図 43 は、Developer for system z の開始タスク (LOCKD、JMON、および RSED)、およびサンプルの開始タスクと Developer for System z が通信するシステム・サービスを示しています。Application Deployment Manager (ADM) が CICS 領域内でアクティブになっています。FMNCAS は、File Manager 開始タスクです。USS REXEC タグは、z/OS UNIX REXEC (または SSH) サービスを表します。
RSE デーモン (RSED) は、クライアント要求を処理するために RSE スレッド・プール・アドレス・スペース (RSEDx) を 1 つ以上作成します。各 RSE スレッド・プールは、複数のクライアントをサポートし、RSE デーモンと同じユーザーによって所有されます。各クライアントには、スレッド・プール内に専用のスレッドがあり、これらのスレッドはクライアント・ユーザー ID が所有します。
クライアントが実行するアクションによっては、1 つ以上の追加のアドレス・スペース (いずれもクライアント・ユーザー ID が所有) を開始して要求されたアクションを実行できます。これらのアドレス・スペースにできるのは、MVS バッチ・ジョブ、APPC トランザクション、または z/OS UNIX 子プロセスです。z/OS UNIX 子プロセスは、z/OS UNIX イニシエーター (BPXAS) 内でアクティブとなり、JES では開始タスクとして表示されることに注意してください。
これらのアドレス・スペースの作成は、ほとんどの場合、スレッド・プール内のユーザー・スレッドによって、直接的に、あるいは ISPF などのシステム・サービスを使用してトリガーされます。ただし、アドレス・スペースはサード・パーティーが作成する可能性もあります。例えば、File Manager は、Developer for System z に代わって処理する必要があるデータ・セット (またはメンバー) ごとに、新しいアドレス・スペースを開始します。z/OS UNIX でビルドを開始する際には、z/OS UNIX REXEC または SSH が関与します。
ユーザー固有のアドレス・スペースは、タスクが完了するか、または非アクティブ・タイマーの期限が切れると終了します。開始タスクはアクティブなままとなります。 図 43 に示されているアドレス・スペースは、表示の対象となるほど長くシステムに残ります。ただし、z/OS UNIX の設計仕様のために、存続期間の短い一時的なアドレス・スペースもいくつか存在することに注意してください。
図 44 は、クライアントが Developer for System z を使用してホストに接続する仕組みの概要図です。ここでは、PassTicket の使われ方についても簡単に説明します。
上記の説明は、RSE のスレッド指向の設計を示しています。ユーザー単位でアドレス・スペースを開始するのではなく、複数のユーザーが単一のスレッド・プール・アドレス・スペースでサービスされます。スレッド・プール内では、各マイナー (ユーザー固有のサービス) が、ユーザーのセキュリティー・コンテキストが割り当てられたそのマイナー専用のスレッドでアクティブとなるため、セキュアなセットアップが確保されます。この設計は、リソース使用量を制限しながら多数のユーザーに対応しますが、各クライアントが複数のスレッド (実行されるタスクによっては 16 以上) を使用することを実際には意味しています。
ネットワークの観点では、Developer for System z はパッシブ・モードの FTP と同じように動作します。クライアントはフォーカル・ポイント (RSE デーモン) に接続し、その接続をドロップして、フォーカル・ポイントから提供されたポート番号に再接続します。この 2 番目の接続に使用されるポートの選択を制御するロジックを以下に示します。
認証を必要とするすべての z/OS サービスに PassTicket が使用されるので、Developer for System z は、パスワードを保管したりユーザーに毎回パスワードを要求したりすることなく、これらのサービスを任意に呼び出すことができます。また、すべての z/OS サービスに PassTicket を使用することで、ログオン時にワンタイム・パスワードや X.509 証明書などの代替認証方式を使用することもできます。
図 45 は、データ・セット・ロックを所有する Developer for System z クライアントをロック・デーモンが判別する仕組みの概要図です。
複数のユーザーが単一のスレッド・プール・アドレス・スペースに割り当てられる、Developer for System z のシングル・サーバー・セットアップでは、z/OS がデータ・セットまたはメンバーに設定されているロックの所有者を追跡できません。システム・コマンドはアドレス・スペース・レベル、つまりスレッド・プールで停止します。
この問題に対処するために、Developer for System z ではロック・デーモンを提供しています。ロック・デーモンは、RSE ユーザーがデータ・セット/メンバーに設定したすべてのロック、および ISPF などの他の製品が設定したロックを追跡することができます。
RSE サーバーは、新たに接続したユーザーをロック・デーモンに登録します。登録情報には、アドレス・スペース ID (スレッド・プールの ASID)、タスク制御ブロック (TCB) ID (ユーザー固有)、およびユーザー ID が含まれます。
登録は接続時にだけ行われるため、ロック・デーモンが始動 (または再始動) される前にアクティブとなった RSEユーザーはいずれも登録されないので注意してください。
ロック・デーモンは、データ・セットの照会を受け取ると (modify query オペレーター・コマンドによって、またはクライアントから RSE サーバー経由で)、システムのグローバル・リソースの逐次化 (GRS) キューをスキャンします。ASID と TCB が、登録されているユーザーのものと一致した場合は、そのユーザー ID がロック所有者として返されます。一致しなかった場合は、ASID に関連したジョブ名/ユーザー ID がロック所有者として返されます。
登録が失敗した場合は、コンソール・メッセージ (FEK513W) が登録情報とともに表示されます。これにより、オペレーターが、この値を DISPLAY GRS,RES=(*,dataset*) オペレーター・コマンドの出力と照合して、ロック所有者を探すことができます。
通常の環境では、データ・セットまたはメンバーは、クライアントが編集モードでオープンしたときにロックされ、クライアントが編集セッションを終了したときに解放されます。
一定のエラー条件によって、このメカニズムが設計どおりに機能しなくなることがあります。この場合は、ロックを保持しているユーザーを RSE の modify cancel オペレーター・コマンドで取り消すことができます。これについては オペレーター・コマンドで説明しています。このユーザーに属しているアクティブなデータ・セット・ロックが、プロセスの中で解放されます。
図 46 は、Developer for System z が使用する z/OS UNIX ディレクトリーの概要を示しています。また、以下のリストでは、Developer for System z が関与する各ディレクトリー、ロケーションの変更方法、および内部のデータを保守する当事者について説明します。
/var/rdz/projects/ などの一部のディレクトリー内のデータは、z/OS UNIX で多数の更新特権を持たないプロジェクト・マネージャーなどの非システム管理者によって保守されます。1 つのユーザー ID だけがファイルを保守している場合は、そのユーザー ID をディレクトリーとその中の全データの所有者にすると問題はなくなります。
chown -R IBMUSER /var/rdz/projects/
複数のユーザー ID がディレクトリーへの更新アクセス権を必要とする場合は、グループ許可ビットで対応することができます。
ADDGROUP RDZPROJ OMVS(GID(1200)) CONNECT IBMUSER GROUP(RDZPROJ) ALTUSER IBMUSER DFLTGRP(RDZPROJ)
chgrp -R IBMUSER /var/rdz/projects/
chmod -R 775 /var/rdz/projects/
従来の z/OS アプリケーションとは異なり、Developer for System z は、ワークロード・マネージャー (WLM) で容易に識別できる一体構造のアプリケーションではありません。Developer for System z は、クライアントがホスト・サービスとデータにアクセスできるようにするために相互に作用する、複数のコンポーネントで構成されています。 Developer for System z についてで説明しているように、これらのサービスの一部は異なるアドレス・スペースでアクティブとなるため、WLM 分類も異なることになります。
この章では、以下のトピックについて説明します。
図 47 は、Developer for System z ワークロードが WLM に提示されるときに経由するサブシステムの基本的概要を示しています。
Application Deployment Manager (ADM) は CICS 領域でアクティブになるため、WLM での CICS 分類規則に従います。
RSE デーモン (RSED)、ロック・デーモン (LOCKD)、および JES ジョブ・モニター (JMON) は、Developer for System z の開始タスク (または長期実行バッチ・ジョブ) であり、それぞれが専用のアドレス・スペースを使用します。
Java アプリケーションとしての RSEで説明しているように、RSE デーモンは RSE スレッド・プール・サーバー (不定数のクライアントをサポート) ごとに子プロセスを spawn します。各スレッド・プールは個別のアドレス・スペースでアクティブになります (z/OS UNIX イニシエーター BPXAS を使用)。これらは spawn されたプロセスであるため、開始タスクの分類規則ではなく、WLM OMVS の分類規則を使用して分類されます。
ユーザーが実行するアクションによっては、スレッド・プール内でアクティブなクライアントが他のアドレス・スペースを多数作成する可能性があります。Developer for System z の構成によっては、TSO コマンド・サービス (TSO cmd) や CARMA などの一部のワークロードが、異なるサブシステムで実行される可能性があります。
図 47 に示されているアドレス・スペースは、表示の対象となるほど長くシステムに残りますが、z/OS UNIX の設計仕様のために、存続期間の短い一時的なアドレス・スペースもいくつか存在することに注意してください。これらの一時的なアドレス・スペースは、OMVS サブシステム内でアクティブになります。
RSE スレッド・プールは RSE デーモンと同じユーザー ID および同様のジョブ名を使用しますが、スレッド・プールによって開始されるアドレス・スペースはいずれも、アクションを要求しているクライアントのユーザー ID によって所有されることに注意してください。このクライアント・ユーザー ID は、スレッド・プールによって開始されるすべての OMVS ベース・アドレス・スペースのジョブ名 (の一部) としても使用されます。
Developer for System z が使用するその他のサービス (File Manager (FMNCAS) や z/OS UNIX REXEC (USS ビルド) など) によって、さらにアドレス・スペースが作成されます。
WLM は、分類規則を使用して、システムに入ってきた作業をサービス・クラスにマッピングします。この分類は、作業修飾子に基づいています。最初の (必須) 修飾子は、作業要求を受け取るサブシステム・タイプです。表 29 に、Developer for System z ワークロードを受け取る可能性があるサブシステム・タイプを示します。
サブシステム・タイプ | 作業の説明 |
---|---|
ASCH | 作業要求には、IBM 提供の APPC/MVS トランザクション・スケジューラー ASCH によってスケジュールされるすべての APPC トランザクション・プログラムが含まれます。 |
CICS | 作業要求には、CICS によって処理されるすべてのトランザクションが含まれます。 |
JES | 作業要求には、JES2 または JES3 が開始するすべてのジョブが含まれます。 |
OMVS | 作業要求には、z/OS UNIX システム・サービスで fork された子のアドレス・スペースで処理される作業が含まれます。 |
STC | 作業要求には、START および MOUNT コマンドによって開始されるすべての作業が含まれます。STC には、システム・コンポーネント・アドレス・スペースも含まれます。 |
表 30 に、ワークロードを特定のサービス・クラスに割り当てるために使用できる追加の修飾子を示します。リストされている作業修飾子の詳細については、「MVS 計画: ワークロード管理」(SA88-8574) を参照してください。
ASCH | CICS | JES | OMVS | STC | ||
---|---|---|---|---|---|---|
AI | アカウント情報 | x | x | x | x | |
LU | LU 名 (*) | x | ||||
PF | 実行 (*) | x | x | |||
PRI | 優先順位 | x | ||||
SE | スケジューリング環境名 | x | ||||
SSC | サブシステム・コレクション名 | x | ||||
SI | サブシステム・インスタンス (*) | x | x | |||
SPM | サブシステム・パラメーター | x | ||||
PX | シスプレックス名 | x | x | x | x | x |
SY | システム名 (*) | x | x | x | ||
TC | トランザクション/ジョブ・クラス (*) | x | x | |||
TN | トランザクション/ジョブ名 (*) | x | x | x | x | x |
UI | ユーザー ID (*) | x | x | x | x | x |
ワークロード分類で説明しているように、Developer for System z はシステム上でさまざまなタイプのワークロードを作成します。これらの各種タスクは互いに通信します。つまり、タスク間接続でのタイムアウトの問題を回避するためには、実際の経過時間が重要になります。このため、Developer for System z のタスクは、ハイパフォーマンスのサービス・クラスに配置するか、または優先順位の高い適度なパフォーマンスのサービス・クラスに配置する必要があります。
したがって、現行の WLM の目標を改訂または更新することをお勧めします。これは特に、従来の MVS 作業現場で時間依存型の OMVS ワークロードを初めて扱う場合に当てはまります。
表 31 は、Developer for System z が使用するアドレス・スペースを示しています。z/OS UNIX では、「タスク名」列の「x」がランダムな 1 桁の数値で置き換えられます。
説明 | タスク名 | ワークロード |
---|---|---|
JES ジョブ・モニター | JMON | STC |
ロック・デーモン | LOCKD | STC |
RSE デーモン | RSED | STC |
RSE スレッド・プール | RSEDx | OMVS |
ISPF クライアント・ゲートウェイ (TSO コマンド・サービスおよび SCLMDT) | <userid>x | OMVS |
TSO コマンド・サービス (APPC) | FEKFRSRV | ASCH |
CARMA (バッチ) | CRA<port> | JES |
CARMA (crastart) | <userid>x | OMVS |
CARMA (ISPF クライアント・ゲートウェイ) | <userid> および <userid>x | OMVS |
MVS ビルド (バッチ・ジョブ) | * | JES |
z/OS UNIX ビルド (シェル・コマンド) | <userid>x | OMVS |
z/OS UNIX シェル | <userid> | OMVS |
File Manager タスク | <userid>x | OMVS |
Application Deployment Manager | CICSTS | CICS |
以下に示す WLM の一般的な考慮事項は、Developer for System z に対して適切に目標を定義するために役立ちます。
応答時間目標を使用する場合:
速度目標を使用する場合:
Developer for System z の開始タスクである RSE デーモン、ロック・デーモン、および JES ジョブ・モニターはいずれも、リアルタイムのクライアント要求を処理します。
説明 | タスク名 | ワークロード |
---|---|---|
JES ジョブ・モニター | JMON | STC |
ロック・デーモン | LOCKD | STC |
RSE デーモン | RSED | STC |
JES ジョブ・モニターは、ジョブの実行依頼、スプール・ファイルの表示、JES オペレーター・コマンドの実行など、すべての JES 関連サービスを提供します。ハイパフォーマンスの 1 期間の速度目標を指定する必要があります。これは、タスクが WLM に個々のトランザクションを報告しないためです。リソース使用量は、ユーザー・アクションに大きく依存するため変動しますが、最少から中程度と予想されます。
ロック・デーモンは、クライアントおよびオペレーターから要求があると GRS エンキュー・テーブルを照会し、その結果を既知の Developer for System z ユーザーと突き合わせます。ハイパフォーマンスの 1 期間の速度目標を指定する必要があります。これは、タスクが WLM に個々のトランザクションを報告しないためです。リソース使用量は最少と予想されます。
RSE デーモンは、クライアントのログオンと認証を処理し、複数の RSE スレッド・プールを管理します。ハイパフォーマンスの 1 期間の速度目標を指定する必要があります。これは、タスクが WLM に個々のトランザクションを報告しないためです。リソース使用量は、作業日の開始点をピークとして、中程度と予想されます。
OMVS ワークロードは 2 つのグループ、つまり RSE スレッド・プールとそれ以外に分けることができます。これは、RSE スレッド・プールを除くすべてのワークロードが、クライアント・ユーザー ID をアドレス・スペース名のベースとして使用するためです (z/OS UNIX では、「タスク名」列の「x」がランダムな 1 桁の数値で置き換えられます)。
説明 | タスク名 | ワークロード |
---|---|---|
RSE スレッド・プール | RSEDx | OMVS |
ISPF クライアント・ゲートウェイ (TSO コマンド・サービスおよび SCLMDT) | <userid>x | OMVS |
CARMA (crastart) | <userid>x | OMVS |
CARMA (ISPF クライアント・ゲートウェイ) | <userid> および <userid>x | OMVS |
z/OS UNIX ビルド (シェル・コマンド) | <userid>x | OMVS |
z/OS UNIX シェル | <userid> | OMVS |
File Manager タスク | <userid>x | OMVS |
RSE スレッド・プールは、Developer for System z の中枢であると言えます。ほぼすべてのデータがスレッド・プールを通過し、スレッド・プール内のマイナー (ユーザー固有のスレッド) によって、他の Developer for System z 関連タスクのほとんどが制御されます。ハイパフォーマンスの 1 期間の速度目標を指定する必要があります。これは、タスクが WLM に個々のトランザクションを報告しないためです。リソース使用量は、ユーザー・アクションに大きく依存するため変動しますが、相当量と予想されます。
残りのワークロードは、アドレス・スペース命名規則が共通であるために、すべて同じサービス・クラスに割り当てられることになります。このサービス・クラスには、複数期間の目標を指定する必要があります。最初の期間にはハイパフォーマンスのパーセンタイル応答時間目標を指定し、最後の期間には適度なパフォーマンスの速度目標を指定する必要があります。ISPF クライアント・ゲートウェイなどの一部のワークロードは、個々のトランザクションを WLM に報告しますが、それ以外のワークロードはこれを行いません。
ISPF クライアント・ゲートウェイは、Developer for System z が非対話式の TSO コマンドと ISPF コマンドを実行するために呼び出す ISPF サービスです。これには、クライアントが発行する明示的なコマンドと、Developer for System z が発行する暗黙的なコマンド (PDS メンバー・リストの取得など) が含まれます。リソース使用量は、ユーザー・アクションに大きく依存するため変動しますが、最少と予想されます。
CARMA はオプションの Developer for System z サーバーで、CA Endevor® SCM などのホスト・ベースの Software Configuration Managers (SCM) と対話するために使用されます。Developer for System z では、CARMA サーバーをさまざまな方式で始動することができ、その一部は OMVS ワークロードになります。リソース使用量は、ユーザー・アクションに大きく依存するため変動しますが、最少と予想されます。
クライアントが z/OS UNIX プロジェクトのビルドを開始すると、z/OS UNIX REXEC (または SSH) によって、ビルドを実行するための多数の z/OS UNIX シェル・コマンドを実行するタスクが開始されます。リソース使用量は、ユーザー・アクションに大きく依存するため変動しますが、プロジェクトのサイズに応じて中程度から相当量と予想されます。
このワークロードは、クライアントによって発行される z/OS UNIX シェル・コマンドを処理します。リソース使用量は、ユーザー・アクションに大きく依存するため変動しますが、最少と予想されます。
spawn された File Manager 子プロセスは、Developer for System z アドレス・スペースではありませんが、Developer for System z クライアントの要求に応じて開始でき、これらのタスクが Developer for System z タスクと同じ命名規則を使用することから、ここにリストしています。これらの File Manager タスクは、重要な MVS データ・セット・アクション (VSAM ファイルのフォーマット編集など) を処理します。リソース使用量は、ユーザー・アクションに大きく依存するため変動しますが、最少から中程度と予想されます。
JES で管理されるバッチ処理は、Developer for System z によってさまざまに使用されます。最も一般的な用途は、MVS ビルドです。ここでは、ジョブが実行依頼され、終了のタイミングを判別するためにモニターされます。ただし、Developer for System z は、CARMA サーバーをバッチで始動し、TCP/IP を使用してそのサーバーと通信することもできます。
説明 | タスク名 | ワークロード |
---|---|---|
CARMA (バッチ) | CRA<port> | JES |
MVS ビルド (バッチ・ジョブ) | * | JES |
CARMA はオプションの Developer for System z サーバーで、CA Endevor® SCM などのホスト・ベースの Software Configuration Managers (SCM) と対話するために使用されます。Developer for System z では、CARMA サーバーをさまざまな方法で始動することができ、その一部は JES ワークロードになります。ハイパフォーマンスの 1 期間の速度目標を指定する必要があります。これは、タスクが WLM に個々のトランザクションを報告しないためです。リソース使用量は、ユーザー・アクションに大きく依存するため変動しますが、最少と予想されます。
クライアントが MVS プロジェクトのビルドを開始すると、Developer for System z によって、ビルドを実行するためのバッチ・ジョブ開始されます。リソース使用量は、ユーザー・アクションに大きく依存するため変動しますが、プロジェクトのサイズに応じて中程度から相当量と予想されます。ご使用のローカル環境に応じて、適度のパフォーマンスを目標とするさまざまな戦略をお勧めできます。
現行の Developer for System z バージョンでは、ISPF クライアント・ゲートウェイを使用して、非対話式 の TSO コマンドと ISPF コマンドが実行されます。歴史的理由から、Developer for System z は APPC トランザクションによるこれらのコマンドの実行もサポートしています。
説明 | タスク名 | ワークロード |
---|---|---|
TSO コマンド・サービス (APPC) | FEKFRSRV | ASCH |
TSO コマンド・サービスは、非対話式の TSO コマンドと ISPF コマンドを実行するために、Developer for System z によって APPC トランザクション・プログラムとして開始することができます。これには、クライアントが発行する明示的なコマンドと、Developer for System z が発行する暗黙的なコマンド (PDS メンバー・リストの取得など) が含まれます。このサービス・クラスには、複数期間の目標を指定する必要があります。最初の期間には、ハイパフォーマンスのパーセンタイル応答時間目標を指定してください。最後の期間には適度なパフォーマンスの速度目標を指定してください。リソース使用量は、ユーザー・アクションに大きく依存するため変動しますが、最少と予想されます。
Application Deployment Manager は、CICS Transaction Server 領域内でアクティブになるオプションの Developer for System z サーバーです。
説明 | タスク名 | ワークロード |
---|---|---|
Application Deployment Manager | CICSTS | CICS |
CICSTS 領域でアクティブになるオプションの Application Deployment Manager サーバーでは、選択した CICSTS 管理タスクを開発者に安全にオフロードすることができます。リソース使用量は、ユーザー・アクションに大きく依存するため変動しますが、最少と予想されます。使用すべきサービス・クラスのタイプは、当該 CICS 領域内でアクティブな他のトランザクションによって異なるため、ここでは詳しく説明しません。
WLM は、CICS に使用できる複数の管理タイプをサポートしています。
CICS アドレス・スペースを管理するサービス・クラスに目標が設定されます。ユーザーは、このサービス・クラスの実行速度目標のみを使用できます。WLM は、アドレス・スペースに対する JES または STC の分類規則を使用しますが、トランザクションに対する CICS サブシステムの分類規則は使用しません。
単一のトランザクションまたはトランザクションのグループに割り当てられたサービス・クラスにおいて、応答時間目標を設定することができます。WLM は、アドレス・スペースに対する JES または STC の分類規則、およびトランザクションに対する CICS サブシステムの分類規則を使用します。
Developer for System z についてで説明したように、RSE (リモート・システム・エクスプローラー) iは、Developer for System z の中核です。クライアントからの接続とワークロードを管理するために、RSE はスレッド・プール・アドレス・スペースを制御するデーモン・アドレス・スペースで成り立っています。デーモンは接続と管理のためのフォーカル・ポイントとして機能し、スレッド・プールはクライアント・ワークロードを処理します。
このため、RSE は Developer for System z セットアップをチューニングする場合の主要な対象となります。ただし、それぞれが 16 個以上のスレッドを使用する何百人ものユーザー、ある程度の大きさのストレージ、そして場合によっては 1 つ以上のアドレス・スペースを保守するには、Developer for System z と z/OS の両方を適切に構成する必要があります。
この章では、以下のトピックについて説明します。
このセクションの情報を使用して、Developer for System z の標準のリソース使用量と最大のリソース使用量を見積もり、それに合わせてシステム構成を計画することができます。
このセクションで示す数値と数式を使用してシステム限度を定義するときには、使用する見積もり値がきわめて正確であることに留意してください。システム限度を設定するときは、一時タスクやその他のタスク、あるいは同じホストに同時に複数回接続する (例えば RSE と TN3270 経由で) ユーザーがリソースを使用できるように、十分なゆとりを残すようにします。
以下の各表は、Developer for System z で使用されるアドレス・スペース、プロセス、およびスレッドの数の概要です。ここに示す数値については、次のセクションで詳しく説明します。
表 37 は、Developer for System z の開始タスクで使用される主要なリソースの概要です。これらのリソースは、1 回だけ割り振られ、すべての Developer for System z クライアント間で共用されます。
開始タスク | アドレス・スペース数 | プロセス数 | スレッド数 |
---|---|---|---|
JMON | 1 | 1 | 3 |
LOCKD | 1 | 3 | 10 |
RSED | 1 | 3 | 11 |
RSEDx | (a) | 2 | 10 |
表 38 は、必要なソフトウェアで使用される主要なリソースの概要です。これらのリソースは、関連機能を呼び出す Developer for System z クライアントごとに割り振られます。
必要なソフトウェア | アドレス・スペース数 | プロセス数 | スレッド数 |
---|---|---|---|
ISPF クライアント・ゲートウェイ | 1 | 2 | 4 |
APPC | 1 | 1 | 2 |
File Manager | 1 | 1 | 2 |
表 39 は、各 Developer for System z クライアントで指定の機能を実行するときに使用される主要なリソースの概要です。数値以外の値 (ISPF など) は、表 38 の対応する値を指しています。
ユーザーのアクション
|
アドレス・スペース数
ユーザー ID |
プロセス数
ユーザー ID |
スレッド数 ユーザー ID RSEDx JMON |
||
---|---|---|---|---|---|
ログオン | - | - | - | 16 | 1 |
アイドル・タイムアウト用のタイマー | - | - | - | 1 | - |
PDS(E) の拡張 | ISPF | ISPF | ISPF | - | - |
データ・セットのオープン | ISPF | ISPF | ISPF | - | - |
TSO コマンド | ISPF | ISPF | ISPF | - | - |
z/OS UNIX シェル | 1 | 1 | 1 | 6 | - |
MVS ビルド | 1 | - | - | - | - |
z/OS UNIX ビルド | 3 | 3 | 3 | - | - |
CARMA (バッチ) | 1 | 1 | 2 | 1 | - |
CARMA (crastart) | 1 | 1 | 2 | 4 | - |
CARMA (ispf) | 4 | 4 | 7 | 5 | - |
SCLMDT | ISPF | ISPF | ISPF | - | - |
File Manager Integration | ISPF + FM | ISPF + FM | ISPF + FM | - | - |
Fault Analyzer Integration | - | - | - | - | - |
表 40 は、Developer for System z で使用されるアドレス・スペース数を示しています。この表の「数」列の「u」は、その機能を使用する同時にアクティブなユーザーの数で値を乗算する必要があることを示します。「タスク名」列の「x」は、z/OS UNIX によってランダムな 1 桁の数値で置き換えられます。
数 | 説明 | タスク名 | 共用 | 終了のタイミング |
---|---|---|---|---|
1 | JES ジョブ・モニター | JMON | はい | なし |
1 | ロック・デーモン | LOCKD | はい | なし |
1 | RSE デーモン | RSED | はい | なし |
(a) | RSE スレッド・プール | RSEDx | はい | なし |
1u | ISPF クライアント・ゲートウェイ (TSO コマンド・サービスおよび SCLMDT) | <userid>x | いいえ | 15 分後またはユーザー・ログオフ後 |
1u | TSO コマンド・サービス (APPC) | FEKFRSRV | いいえ | 60 分後またはユーザー・ログオフ後 |
1u | CARMA (バッチ) | CRA<port> | いいえ | 7 分後またはユーザー・ログオフ後 |
1u | CARMA (crastart) | <userid>x | いいえ | 7 分後またはユーザー・ログオフ後 |
4u | CARMA (ispf) | (1)<userid> または (3)<userid>x | いいえ | 7 分後またはユーザー・ログオフ後 |
(b) | 1 人のユーザーによる ISPF クライアント・ゲートウェイの同時使用 | <userid>x | いいえ | タスク完了後 |
1u | MVS ビルド (バッチ・ジョブ) | * | いいえ | タスク完了後 |
3u | z/OS UNIX ビルド (シェル・コマンド) | <userid>x | いいえ | タスク完了後 |
1u | z/OS UNIX シェル | <userid> | いいえ | ユーザー・ログオフ後 |
(c) | File Manager | <userid>x | いいえ | タスク完了後 |
図 48 の数式は、Developer for System z で使用されるアドレス・スペースの最大数を見積もる場合に使用します。
各項の説明は次のとおりです。
X | SCLMDT | クライアント・ゲートウェイ経由の TSO | APPC 経由の TSO |
---|---|---|---|
1 | いいえ | いいえ | はい |
1 | いいえ | はい | いいえ |
1 | はい | はい | いいえ |
y | |
---|---|
0 | CARMA なし |
1 | CARMA (バッチ) |
1 | CARMA (crastart) |
4 | CARMA (ispf) |
図 49 の数式は、Developer for System z クライアントで使用されるアドレス・スペースの最大数を見積もる場合に使用します (ここに記載していない一時アドレス・スペースはカウントしていません)。
各項の説明は次のとおりです。
表 41 に示す定義によって、アドレス・スペースの実際の数を制限することができます。
ロケーション | 限度 | 影響を受けるリソース |
---|---|---|
rsed.envvars | maximum.threadpool.process | RSE スレッド・プールの数を制限します。 |
IEASYMxx | MAXUSER | アドレス・スペースの数を制限します。 |
ASCHPMxx | MAX | TSO コマンド・サービス (APPC) での APPC イニシエーターの数を制限します。 |
表 42 は、Developer for System z で使用されるアドレス・スペース当たりのプロセス数を示しています。この表の「アドレス・スペース数」列の「u」は、その機能を使用する同時にアクティブなユーザーの数で値を乗算する必要があることを示します。
プロセス数 | アドレス・スペース数 | 説明 | ユーザー ID |
---|---|---|---|
1 | 1 | JES ジョブ・モニター | STCJMON |
3 | 1 | ロック・デーモン | STCLOCK |
3 | 1 | RSE デーモン | STCRSE |
2 | (a) | RSE スレッド・プール | STCRSE |
2 | (b) | ISPF クライアント・ゲートウェイ (TSO コマンド・サービスおよび SCLMDT) | <userid> |
1 | 1u | TSO コマンド・サービス (APPC) | <userid> |
1 | 1u | CARMA (バッチ) | <userid> |
1 | 1u | CARMA (crastart) | <userid> |
1 | 1u | CARMA (ispf) | <userid> |
1 | 3u | z/OS UNIX ビルド (シェル・コマンド) | <userid> |
1 | 1u | z/OS UNIX シェル | <userid> |
1 | (c) | File Manager | <userid> |
(5) | (u) | SCLM Developer Toolkit | <userid> |
図 50 の数式は、Developer for System z で使用されるプロセスの最大数を見積もる場合に使用します。
各項の説明は次のとおりです。
X | SCLMDT | クライアント・ゲートウェイ経由の TSO | APPC 経由の TSO |
---|---|---|---|
1 | いいえ | いいえ | はい |
2 | いいえ | はい | いいえ |
7 | はい | はい | いいえ |
y | |
---|---|
0 | CARMA なし |
1 | CARMA (バッチ) |
1 | CARMA (crastart) |
4 | CARMA (ispf) |
図 51 の数式は、Developer for System z クライアントで使用されるプロセスの最大数を見積もる場合に使用します (ここに記載していない一時プロセスはカウントしていません)。
各項の説明は次のとおりです。
表 43 に示す定義によって、プロセスの実際の数を制限することができます。
ロケーション | 限度 | 影響を受けるリソース |
---|---|---|
BPXPRMxx | MAXPROCSYS | プロセスの総数を制限します。 |
BPXPRMxx | MAXPROCUSER | z/OS UNIX UID ごとのプロセスの数を制限します。 |
注:
表 44 は、選択された Developer for System z の機能で使用されるスレッドの数を示しています。「スレッド数」列の「u」は、その機能を使用する同時にアクティブなユーザーの数で値を乗算する必要があることを示します。スレッドの数はプロセス単位で示しています。これは、限度がこのレベルで設定されるためです。
スレッド数 |
ユーザー ID | 説明 | ||
---|---|---|---|---|
RSEDx | アクティブ | ブートストラップ | ||
- | 3 + 1u | - | STCJMON | JES ジョブ・モニター |
- | 10 | 2 | STCLOCK | ロック・デーモン |
- | 11 | 2 | STCRSE | RSE デーモン |
10 (a) + 16u | - | 1 (a) | STCRSE | RSE スレッド・プール |
- | 4u (b) | 1u (b) | <userid> | ISPF クライアント・ゲートウェイ (TSO コマンド・サービスおよび SCLMDT) |
- | 2u | - | <userid> | TSO コマンド・サービス (APPC) |
1u | 2u | - | STCRSE および <userid> | CARMA (バッチ) |
4u | 2u | - | STCRSE および <userid> | CARMA (crastart) |
5u | 4u | 3u | STCRSE および <userid> | CARMA (ispf) |
- | 1u (d) | 2u | <userid> | z/OS UNIX ビルド (シェル・コマンド) |
6u | 1u | - | STCRSE および <userid> | z/OS UNIX シェル |
- | 2u (c) | - | <userid> | File Manager |
- | (5) | - | <userid> | SCLM Developer Toolkit |
1u | - | - | STCRSE | アイドル・タイムアウト用のタイマー |
図 52 の数式は、RSE スレッド・プールで使用されるスレッドの最大数を見積もる場合に使用します。図 53 の数式は、JES ジョブ・モニターで使用されるスレッドの最大数を見積もる場合に使用します。
各項の説明は次のとおりです。
X | SCLMDT | クライアント・ゲートウェイ経由の TSO | APPC 経由の TSO | タイムアウト |
---|---|---|---|---|
0 | いいえ | いいえ | はい | いいえ |
0 | いいえ | はい | いいえ | いいえ |
0 | はい | はい | いいえ | いいえ |
1 | いいえ | いいえ | はい | はい |
1 | いいえ | はい | いいえ | はい |
1 | はい | はい | いいえ | はい |
y | |
---|---|
0 | CARMA なし |
1 | CARMA (バッチ) |
4 | CARMA (crastart) |
5 | CARMA (ispf) |
表 45 に示す定義によって、プロセス内の実際のスレッド数を制限することができます。これは、主に RSE スレッド・プールにとって重要です。
ロケーション | 限度 | 影響を受けるリソース |
---|---|---|
BPXPRMxx | MAXTHREADS | プロセス内のスレッドの数を制限します。 |
BPXPRMxx | MAXTHREADTASKS | プロセス内の MVS タスクの数を制限します。 |
BPXPRMxx | MAXASSIZE | アドレス・スペース・サイズを制限し、それによってスレッドに関連する制御ブロックで使用可能なストレージの大きさを制限します。 |
rsed.envvars | Xmx | Java ヒープ・サイズの最大値を設定します。このストレージは予約され、スレッドに関連する制御ブロックには使用できなくなります。 |
rsed.envvars | maximum.clients | RSE スレッド・プール内のクライアント (およびそのスレッド) の数を制限します。 |
rsed.envvars | maximum.threads | RSE スレッド・プール内のクライアント・スレッドの数を制限します。 |
FEJJCNFG | MAX_THREADS | JES ジョブ・モニターでのスレッドの数を制限します。 |
RSE は Java アプリケーションであるため、Developer for System z でのストレージ (メモリー) 使用量を計画する際には、ストレージの割り振りに関する 2 つの限度を考慮に入れる必要があります。それは、Java ヒープ・サイズとアドレス・スペース・サイズです。
Java は、Java アプリケーションのコーディング作業を軽減する多数のサービスを提供しています。そのサービスの 1 つがストレージ管理です。
Java のストレージ管理では、大きなストレージ・ブロックが割り振られ、アプリケーションからの保管要求に使用されます。Java で管理されるこのストレージは、Java ヒープと呼ばれます。定期的なガーベッジ・コレクション (デフラグ) が、ヒープ内の使用されていないスペースをレクラメーション処理して、そのサイズを小さくします。
Java ヒープ・サイズの最大値は、rsed.envvars 内の Xmx ディレクティブで定義されます。このディレクティブが指定されていない場合、Java はデフォルト・サイズの 64 MB を使用します。
各 RSE スレッド・プール (クライアントのアクションをサービスします) は独立した Java アプリケーションであり、そのために専用の Java ヒープを使用します。スレッド・プールはいずれも同じ rsed.envvars 構成ファイルを使用するため、Java ヒープ・サイズの限度が同じであることに注意してください。
スレッド・プールによる Java ヒープの使用量は、接続されているクライアントが実行するアクションによって大きく異なります。最適なヒープ・サイズの限度を設定するには、ヒープの使用量を定期的にモニターすることが必要です。RSE スレッド・プールによる Java ヒープの使用量をモニターするには、modify display process オペレーター・コマンドを使用します。
Java アプリケーションを含むすべての z/OS アプリケーションは、アドレス・スペース内でアクティブとなるため、アドレス・スペース・サイズの限度によって制約を受けます。
必要なアドレス・スペース・サイズは、始動時に JCL の REGION パラメーターなどで指定します。ただし、システム設定によって実際のアドレス・スペース・サイズが制限されることがあります。これらの限度については、アドレス・スペース・サイズを参照してください。
RSE スレッド・プールは、RSE デーモンからアドレス・スペース・サイズの限度を継承します。アドレス・スペース・サイズは、Java ヒープ、Java 自体、共通ストレージ域、およびシステムがスレッド・プール・アクティビティーをサポートするために作成する全制御ブロック (スレッドごとの TCB (タスク制御ブロック) など) を収容できるだけの大きさであることが必要です。このストレージの使用量の一部は 16 MB 境界より下にあるので注意してください。
アドレス・スペース・サイズに影響する設定 (Java ヒープのサイズや 1つのスレッド・プールでサポートされるユーザー数など) を変更する前に、実際のアドレス・スペース・サイズをモニターする必要があります。Developer for System z による実際のストレージ使用量を追跡するには、通常使用しているシステム・モニター・ソフトウェアを使用します。専用のモニター・ツールがない場合は、SDSF DA ビューや TASID などのツール (ISPF の「Support and downloads」Web ページで入手できる無保証のシステム情報ツール) で基本情報を収集できます。
すでに説明したように、Developer for System z の実際のストレージ使用量は、ユーザーのアクティビティーに大きく左右されます。一部のアクションは使用するストレージの量が一定ですが (ログオンなど)、それ以外は変動します (例えば、指定された高位修飾子を持つデータ・セットをリストする処理など)。
RSE の始動時に、コンソール・メッセージ FEK004I で、現行の Java ヒープおよびアドレス・スペース・サイズの限度が表示されるので注意してください。
モニター中に現行の Java ヒープ・サイズが実際のワークロードに対して不十分であることがわかった場合は、以下のいずれかのシナリオを使用します。
以下の各図には、1 個所を変更したデフォルトの Developer for System z セットアップに関するサンプルのリソース使用量の数値が示されています。Java ヒープ・サイズの最大値が 10 MB に設定されています。これは、最大値を小さくすることで使用率が高くなり、ヒープ・サイズの限度により早く到達するためです。
Max Heap Size=10MB and private AS Size=1,959MB startup BPXM023I (STCRSE) ProcessId(268 ) Memory Usage(7%) Clients(0) Jobname Cpu time Storage EXCP -------- ----------- ------- ---------- JMON 0.01 2740 72 LOCKD 1.60 28.7M 14183 RSED 4.47 32.8M 15910 RSED8 1.15 27.4M 12612 logon 1 BPXM023I (STCRSE) ProcessId(268 ) Memory Usage(13%) Clients(1) Jobname Cpu time Storage EXCP -------- ----------- ------- ---------- JMON 0.01 2864 81 LOCKD 1.64 28.8M 14259 RSED 4.55 32.8M 15980 RSED8 3.72 55.9M 24128 logon 2 BPXM023I (STCRSE) ProcessId(268 ) Memory Usage(23%) Clients(2) Jobname Cpu time Storage EXCP -------- ----------- ------- ---------- JMON 0.02 2944 86 LOCKD 1.66 28.9M 14268 RSED 4.58 32.9M 16027 RSED8 4.20 57.8M 25205 logon 3 BPXM023I (STCRSE) ProcessId(268 ) Memory Usage(37%) Clients(3) Jobname Cpu time Storage EXCP -------- ----------- ------- ---------- JMON 0.02 3020 91 LOCKD 1.67 29.0M 14277 RSED 4.60 32.9M 16076 RSED8 4.51 59.6M 26327 logon 4 BPXM023I (STCRSE) ProcessId(268 ) Memory Usage(41%) Clients(4) Jobname Cpu time Storage EXCP -------- ----------- ------- ---------- JMON 0.02 3108 96 LOCKD 1.68 29.0M 14286 RSED 4.61 32.9M 16125 RSED8 4.77 62.3M 27404
logon 5 BPXM023I (STCRSE) ProcessId(268 ) Memory Usage(41%) Clients(4) ProcessId(33554706) Memory Usage(13%) Clients(1) Jobname Cpu time Storage EXCP -------- ----------- ------- ---------- JMON 0.03 3184 101 LOCKD 1.69 29.1M 14295 RSED 4.64 32.9M 16229 RSED8 4.78 62.4M 27413 RSED9 4.60 56.6M 24065
図 54 と 図 55 は、Java ヒープが 10 MB に設定された RSE デーモンに 5 つのクライアントがログオンしているシナリオを示しています。
Max Heap Size=10MB and private AS Size=1,959MB startup BPXM023I (STCRSE) ProcessId(212 ) Memory Usage(7%) Clients(0) Jobname Cpu time Storage EXCP -------- ----------- ------- ---------- JMON 0.01 2736 71 LOCKD 1.73 30.5M 14179 RSED 4.35 32.9M 15117 RSED8 1.43 27.4M 12609 logon BPXM023I (STCRSE) ProcessId(212 ) Memory Usage(13%) Clients(1) Jobname Cpu time Storage EXCP -------- ----------- ------- ---------- JMON 0.01 2864 80 LOCKD 1.76 30.6M 14255 RSED 4.48 33.0M 15187 RSED8 3.53 53.9M 24125 expand large MVS tree (195 data sets) BPXM023I (STCRSE) ProcessId(212 ) Memory Usage(13%) Clients(1) Jobname Cpu time Storage EXCP -------- ----------- ------- ---------- JMON 0.01 2864 80 LOCKD 1.78 30.6M 14255 RSED 4.58 33.1M 16094 RSED8 4.28 56.1M 24740 expand small PDS (21 members) BPXM023I (STCRSE) ProcessId(212 ) Memory Usage(13%) Clients(1) Jobname Cpu time Storage EXCP -------- ----------- ------- ---------- IBMUSER2 0.22 2644 870 JMON 0.01 2864 80 LOCKD 1.78 30.6M 14255 RSED 4.61 33.1M 16108 RSED8 4.40 56.2M 24937 open medium sized member (86 lines) BPXM023I (STCRSE) ProcessId(212 ) Memory Usage(13%) Clients(1) Jobname Cpu time Storage EXCP -------- ----------- ------- ---------- IBMUSER2 0.22 2644 870 JMON 0.01 2864 80 RSED 4.61 33.1M 16108 RSED8 8.12 62.7M 27044
図 56 は、Java ヒープが 10 MB の RSE デーモンに 1 つのクライアントがログオンし、PDS メンバーを編集するシナリオを示しています。
DD ステートメントに書き込まれない Developer for System z 関連データのほとんどは、最終的に z/OS UNIX ファイルに格納されます。システム・プログラマーは、どのデータが書き込まれ、どこに格納されるかを制御できます。ただし、書き込まれるデータの量を制御することはできません。
データは、次のカテゴリーに分類することができます。
構成問題のトラブルシューティングで説明したように、Developer for System z は、RSE 関連のホスト・ログを以下の z/OS UNIX ディレクトリーに書き込みます。
デフォルトでは、エラー・メッセージと警告メッセージだけがログに書き込まれます。そのため、すべてが計画したとおりに進めば、上記のディレクトリーにはほとんど、またはまったくファイルが存在しないはずです (監査ログは対象外です)。
情報メッセージのロギングを有効にすることができますが (本来は IBM サポートの指示の下で行います)、ログ・ファイルのサイズが著しく増大します。
startup $ ls -l /var/rdz/logs total 144 -rw-rw-rw- 1 STCRSE STCGRP 33642 Jul 10 12:10 rsedaemon.log -rw-rw-rw- 1 STCRSE STCGRP 1442 Jul 10 12:10 rseserver.log logon $ ls -l /var/rdz/logs total 144 drwxrwxrwx 3 IBMUSER SYS1 8192 Jul 10 12:11 IBMUSER -rw-rw-rw- 1 STCRSE STCGRP 36655 Jul 10 12:11 rsedaemon.log -rw-rw-rw- 1 STCRSE STCGRP 1893 Jul 10 12:11 rseserver.log $ ls -l /var/rdz/logs/IBMUSER total 160 -rw-rw-rw- 1 IBMUSER SYS1 3459 Jul 10 12:11 ffs.log -rw-rw-rw- 1 IBMUSER SYS1 0 Jul 10 12:11 ffsget.log -rw-rw-rw- 1 IBMUSER SYS1 0 Jul 10 12:11 ffsput.log -rw-rw-rw- 1 IBMUSER SYS1 303 Jul 10 12:11 lock.log -rw-rw-rw- 1 IBMUSER SYS1 126 Jul 10 12:11 rmt_classloader_cache.jar -rw-rw-rw- 1 IBMUSER SYS1 7266 Jul 10 12:11 rsecomm.log -rw-rw-rw- 1 IBMUSER SYS1 0 Jul 10 12:11 stderr.log -rw-rw-rw- 1 IBMUSER SYS1 0 Jul 10 12:11 stdout.log logoff $ ls -l /var/rdz/logs total 80 drwxrwxrwx 3 IBMUSER SYS1 8192 Jul 10 12:11 IBMUSER -rw-rw-rw- 1 STCRSE STCGRP 36655 Jul 10 12:11 rsedaemon.log -rw-rw-rw- 1 STCRSE STCGRP 2208 Jul 10 12:11 rseserver.log $ ls -l /var/rdz/logs/IBMUSER total 296 -rw-rw-rw- 1 IBMUSER SYS1 6393 Jul 10 12:11 ffs.log -rw-rw-rw- 1 IBMUSER SYS1 0 Jul 10 12:11 ffsget.log -rw-rw-rw- 1 IBMUSER SYS1 0 Jul 10 12:11 ffsput.log -rw-rw-rw- 1 IBMUSER SYS1 609 Jul 10 12:11 lock.log -rw-rw-rw- 1 IBMUSER SYS1 126 Jul 10 12:11 rmt_classloader_cache.jar -rw-rw-rw- 1 IBMUSER SYS1 45157 Jul 10 12:11 rsecomm.log -rw-rw-rw- 1 IBMUSER SYS1 0 Jul 10 12:11 stderr.log -rw-rw-rw- 1 IBMUSER SYS1 176 Jul 10 12:11 stdout.log stop $ ls -l /var/rdz/logs total 80 drwxrwxrwx 3 IBMUSER SYS1 8192 Jul 10 12:11 IBMUSER -rw-rw-rw- 1 STCRSE STCGRP 36655 Jul 10 12:11 rsedaemon.log -rw-rw-rw- 1 STCRSE STCGRP 2490 Jul 10 12:12 rseserver.log
図 57 は、デバッグ・レベル 2 (情報メッセージ) を使用する場合の z/OS UNIX ファイル・システム・スペースの最小使用量を示しています。
監査ログ以外のログ・ファイルは、再始動 (RSE 開始タスクの場合) またはログオン (クライアントの場合) のたびに上書きされて、合計サイズを抑えます。この動作は、rsed.envvars 内の keep.last.log ディレクティブによって多少変わります。このディレクティブでは、前のログのコピーを残すように RSE に指示できるからです。それより古いコピーは必ず除去されます。
監査がアクティブであるときに、監査ログ・ファイルを保持しているファイル・システムのフリー・スペースが不足してくると、警告メッセージがコンソールに送信されます。このコンソール・メッセージ (FEK103E) は、スペース不足の問題が解決されるまで定期的に繰り返されます。RSE が生成するコンソール・メッセージのリストについては、コンソール・メッセージを参照してください。
表 46 に示す定義は、ログ・ディレクトリーに書き込まれるデータおよびディレクトリーのロケーションを制御します。
ロケーション | ディレクティブ | 機能 |
---|---|---|
resecomm.properties | debug_level | デフォルトのログ詳細レベルを設定します。 |
rsed.envvars | keep.last.log | 開始/ログオン前に、前のログのコピーを保存します。 |
rsed.envvars | enable.audit.log | クライアント・アクションの監査トレースを保存します。 |
rsed.envvars | enable.standard.log | スレッド・プール (1 つまたは複数) の stdout および stderr ストリームをログ・ファイルに書き込みます。 |
rsed.envvars | DSTORE_TRACING_ON | DataStore アクションのロギングを有効にします。 |
rsed.envvars | DSTORE_MEMLOGGING_ON | DataStore メモリー使用量のロギングを有効にします。 |
オペレーター・コマンド | modify rsecommlog <level> | rsecomm.log のログ詳細レベルを動的に変更します。 |
オペレーター・コマンド | modify rsedaemonlog <level> | rsedaemon.log のログ詳細レベルを動的に変更します。 |
オペレーター・コマンド | modify rseserverlog <level> | rseserver.log のログ詳細レベルを動的に変更します。 |
オペレーター・コマンド | modify rsestandardlog {on|off} | std*.*.log の更新を動的に変更します。 |
rsed.envvars | daemon.log | RSE 開始タスク・ログおよび監査ログのホーム・パス。 |
rsed.envvars | user.log | ユーザー・ログのホーム・パス |
これに加えて、Developer for System z は、ISPF クライアント・ゲートウェイなどの必要なソフトウェアとともに、一時データを /tmp および /var/rdz/WORKAREA に書き込みます。 ユーザー・アクションの結果としてここに書き込まれるデータの量は予測不能であるため、これらのディレクトリーを保持するファイル・システムに十分なフリー・スペースを確保しておく必要があります。
Developer for System z は、これらの一時ファイルのクリーンアップを常時試みますが、(オプション) WORKAREA クリーンアップで説明するように、手動でのクリーンアップも随時実行できます。
rsed.envvars で定義されている環境変数は、RSE、Java、および z/OS UNIX によって使用されます。Developer for System z 付属のサンプル・ファイルは、Developer for System z のオプション・コンポーネントを必要としない小規模から中規模のインストール済み環境を対象としています。サンプル・ファイルに定義されている各変数については rsed.envvars、RSE 構成ファイルで説明していますが、以下の変数には特に注意が必要です。
RSE は Java アプリケーションであるため、z/OS UNIX 環境でアクティブになります。このため、z/OS UNIX の環境とファイル・システムを制御するパラメーターを含んでいる BPXPRMxx は、非常に重要な parmlib メンバーとなります。BPXPRMxx については、「MVS 初期設定およびチューニング解説書」(SA88-8564) で説明されています。Developer for System z に影響することがわかっているディレクティブは以下のとおりです。
値の範囲: nnnnn は 10485760 (10 MB) から 2147483647 (2 GB) までの 10 進値です。 デフォルト: 209715200 (200 MB)
元の BPXPRMxx 変数の値を動的に (次回の IPL まで) 増減させるには、オペレーター・コマンド SETOMVS または SET OMVS を使用します。永続的な変更を加える場合は、IPL に使用される BPXPRMxx メンバーを編集します。これらのオペレーター・コマンドの詳細については、「MVS システム・コマンド」(SA88-8593) を参照してください。
以下の定義は、NETWORK ステートメントのサブパラメーターです。
以下の定義は、Developer for System z サーバーの JCL の EXEC カードに追加することをお勧めします。
FEJJCNFG で定義されている環境変数は、JES ジョブ・モニターで使用されます。Developer for System z 付属のこのサンプル・ファイルは、小規模から中規模のインストール済み環境を対象としています。サンプル・ファイルに定義されている各変数については、FEJJCNFG、JES ジョブ・モニター構成ファイルで説明していますが、以下の変数には特に注意が必要です。
IEASYSxx はシステム・パラメーターを保持するもので、「MVS 初期設定およびチューニング解説書」(SA88-8564) に説明があります。Developer for System z に影響することがわかっているディレクティブは以下のとおりです。
IVTPRMxx は通信ストレージ・マネージャー (CSM) のパラメーターを設定するもので、「MVS 初期設定およびチューニング解説書」(SA88-8564) に説明があります。Developer for System z に影響することがわかっているディレクティブは以下のとおりです。
ASCHPMxx parmlib メンバーは、ASCH トランザクション・スケジューラーのスケジューリング情報を格納するもので、「MVS 初期設定およびチューニング解説書」(SA88-8564) に説明があります。Developer for System z に影響することがわかっているディレクティブは以下のとおりです。
ユーザーのワークロードによってシステム・リソースの必要性が変わる可能性があるため、ユーザーの要件に応じて Rational Developer for System z とシステムの構成を調整できるように、定期的にシステムをモニターしてリソース使用量を測定する必要があります。このモニター処理に役立つコマンドを以下に示します。
RSE スレッド・プールは、Developer for System z におけるユーザー・アクティビティーのフォーカル・ポイントであるため、最適に利用されているかモニターする必要があります。通常のシステム・モニター・ツールでは収集できない情報は、RSE デーモンに照会することができます。
FEK004I RseDaemon: Max Heap Size=65MB and private AS Size=1,959MB
f rsed,appl=d p BPXM023I (STCRSE) ProcessId(16777456) Memory Usage(33%) Clients(4) Order(1)
DISPLAY PROCESS 変更コマンドの DETAIL オプションを使用すると、詳細情報が表示されます。
f rsed,appl=d p,detail BPXM023I (STCRSE) ProcessId(33555087) ASId(002E) JobName(RSED8) Order(1) PROCESS LIMITS: CURRENT HIGHWATER LIMIT JAVA HEAP USAGE(%) 10 56 100 CLIENTS 0 25 60 MAXFILEPROC 83 103 64000 MAXPROCUSER 97 99 200 MAXTHREADS 9 14 1500 MAXTHREADTASKS 9 14 1500
Developer for System z に関係する z/OS UNIX の限度のほとんどは、オペレーター・コマンドを使用して表示できます。一部のコマンドでは、特定の限度に関する現在の使用率と最高水準点も示されます。これらのコマンドの詳細については、「MVS システム・コマンド」(SA88-8593) を参照してください。
d omvs,o BPXO043I 13.10.16 DISPLAY OMVS 066 OMVS 000D ETC/INIT WAIT OMVS=(M7) CURRENT UNIX CONFIGURATION SETTINGS: MAXPROCSYS = 256 MAXPROCUSER = 16 MAXFILEPROC = 256 MAXFILESIZE = NOLIMIT MAXCPUTIME = 1000 MAXUIDS = 200 MAXPTYS = 256 MAXMMAPAREA = 256 MAXASSIZE = 209715200 MAXTHREADS = 200 MAXTHREADTASKS = 1000 MAXCORESIZE = 4194304 MAXSHAREPAGES = 4096 IPCMSGQBYTES = 2147483647 IPCMSGQMNUM = 10000 IPCMSGNIDS = 500 IPCSEMNIDS = 500 IPCSEMNOPS = 25 IPCSEMNSEMS = 1000 IPCSHMMPAGES = 25600 IPCSHMNIDS = 500 IPCSHMNSEGS = 500 IPCSHMSPAGES = 262144 SUPERUSER = BPXROOT FORKCOPY = COW STEPLIBLIST = USERIDALIASTABLE= SERV_LINKLIB = POSIX.DYNSERV.LOADLIB BPXLK1 SERV_LPALIB = POSIX.DYNSERV.LOADLIB BPXLK1 PRIORITYPG VALUES: NONE PRIORITYGOAL VALUES: NONE MAXQUEUEDSIGS = 1000 SHRLIBRGNSIZE = 67108864 SHRLIBMAXPAGES = 4096 VERSION = / SYSCALL COUNTS = NO TTYGROUP = TTY SYSPLEX = NO BRLM SERVER = N/A LIMMSG = NONE AUTOCVT = OFF RESOLVER PROC = DEFAULT AUTHPGMLIST = NONE SWA = BELOW
d omvs,l BPXO051I 14.05.52 DISPLAY OMVS 904 OMVS 0042 ACTIVE OMVS=(69) SYSTEM WIDE LIMITS: LIMMSG=SYSTEM CURRENT HIGHWATER SYSTEM USAGE USAGE LIMIT MAXPROCSYS 1 4 256 MAXUIDS 0 0 200 MAXPTYS 0 0 256 MAXMMAPAREA 0 0 256 MAXSHAREPAGES 0 10 4096 IPCMSGNIDS 0 0 500 IPCSEMNIDS 0 0 500 IPCSHMNIDS 0 0 500 IPCSHMSPAGES 0 0 262144 * IPCMSGQBYTES --- 0 262144 IPCMSGQMNUM --- 0 10000 IPCSHMMPAGES --- 0 256 SHRLIBRGNSIZE 0 0 67108864 SHRLIBMAXPAGES 0 0 4096
このコマンドで PID=processid キーワードを指定すると、個々のプロセスの最高水準点と現行の使用量が表示されます。
d,omvs,l,pid=16777456 BPXO051I 14.06.28 DISPLAY OMVS 645 OMVS 000E ACTIVE OMVS=(76) USER JOBNAME ASID PID PPID STATE START CT_SECS STCRSE RSED8 007E 16777456 67109106 HF---- 20.00.56 113.914 LATCHWAITPID= 0 CMD=java -Ddaemon.log=/var/rdz/logs - PROCESS LIMITS: LIMMSG=NONE CURRENT HIGHWATER PROCESS USAGE USAGE LIMIT MAXFILEPROC 83 103 256 MAXFILESIZE --- --- NOLIMIT MAXPROCUSER 97 99 200 MAXQUEUEDSIGS 0 1 1000 MAXTHREADS 9 14 200 MAXTHREADTASKS 9 14 1000 IPCSHMNSEGS 0 0 500 MAXCORESIZE --- --- 4194304 MAXMEMLIMIT 0 0 16383P
d omvs,p BPXO046I 14.35.38 DISPLAY OMVS 092 OMVS 000E ACTIVE OMVS=(33) PFS CONFIGURATION INFORMATION PFS TYPE DESCRIPTION ENTRY MAXSOCK OPNSOCK HIGHUSED TCP SOCKETS AF_INET EZBPFINI 50000 244 8146 UDS SOCKETS AF_UNIX BPXTUINT 64 6 10 ZFS LOCAL FILE SYSTEM IOEFSCM 14:32.00 RECYCLING HFS LOCAL FILE SYSTEM GFUAINIT BPXFTCLN CLEANUP DAEMON BPXFTCLN BPXFTSYN SYNC DAEMON BPXFTSYN BPXFPINT PIPE BPXFPINT BPXFCSIN CHAR SPECIAL BPXFCSIN NFS REMOTE FILE SYSTEM GFSCINIT PFS NAME DESCRIPTION ENTRY STATUS FLAGS TCP41 SOCKETS EZBPFINI ACT CD TCP42 SOCKETS EZBPFINI ACT TCP43 SOCKETS EZBPFINI INACT SD TCP44 SOCKETS EZBPFINI INACT PFS PARM INFORMATION HFS SYNCDEFAULT(60) FIXED(50) VIRTUAL(100) CURRENT VALUES: FIXED(55) VIRTUAL(100) NFS biod(6)
d omvs,pid=16777456 BPXO040I 15.30.01 DISPLAY OMVS 637 OMVS 000E ACTIVE OMVS=(76) USER JOBNAME ASID PID PPID STATE START CT_SECS STCRSE RSED8 007E 16777456 67109106 HF---- 20.00.56 113.914 LATCHWAITPID= 0 CMD=java -Ddaemon.log=/var/rdz/logs - THREAD_ID TCB@ PRI_JOB USERNAME ACC_TIME SC STATE 0E08A00000000000 005E6DF0 OMVS .927 RCV FU 0E08F00000000001 005E6C58 .001 PTX JYNV 0E09300000000002 005E6AC0 7.368 PTX JYNV 0E0CB00000000008 005C2CF0 OMVS 1.872 SEL JFNV 0E192000000003CE 005A0B70 OMVS IBMUSER 14.088 POL JFNV 0E18D000000003CF 005A1938 IBMUSER .581 SND JYNV
ホストに接続している多数のクライアントをサポートしている場合は、Developer for System z だけでなく、ネットワーク・インフラストラクチャーでもワークロードを処理できることが必要です。ネットワーク管理は、Developer for System z 資料が扱う範囲外の対象で、これに関しては幅広くかつ数多くこれまでに解説されています。したがって、以下の指針のみを示しておきます。
Developer for System z は、z/OS UNIX ファイル・システムを使用して、ログや一時ファイルなどのさまざまなタイプのデータを保管します。z/OS UNIX の df コマンドを使用すると、基礎となる HFS または zFS データ・セットの次のエクステントを作成する前に、まだ使用可能なファイル記述子の数とフリー・スペースの残量を確認することができます。
$ df Mounted on Filesystem Avail/Total Files Status /tmp (OMVS.TMP) 1393432/1396800 4294967248 Available /u/ibmuser (OMVS.U.IBMUSER) 1248/1728 4294967281 Available /usr/lpp/rdz (OMVS.FEK.HHOP760) 3062/43200 4294967147 Available /var (OMVS.VAR) 27264/31680 4294967054 Available
次のサンプル・セットアップでは、以下の要件をサポートするために必要な構成を示します。
デフォルトでは、Developer for System z は単一のスレッド・プールに 60 ユーザーを追加しようとします。ただし上記の要件では、非アクティブ・タイムアウトをアクティブにするように指定しています。このために、接続されているクライアントごとに 1 つずつスレッドが追加されることが 表 44 からわかります。このスレッドはタイマー・スレッドであるため、常にアクティブです。したがって 60*(16+1)=1020 となり、かつ maximum.threads がデフォルトで 1000 に設定されているので、RSE は単一のスレッド・プールに 60 ユーザーを配置できなくなります。
maximum.threads を増やすことはできますが、ユーザー当たりの Java ヒープを平均 5 MB にするという要件があるため、maximum.clients を 50 まで下げることにしました。これで Java ヒープ・サイズの最大値がデフォルトの 256 MB 以内に収まります (5*50 =250)。
スレッド・プール当たりのクライアント数が 50 であり、サポートの必要な接続数が 500 であることから、必要なスレッド・プール・アドレス・スペースの数は 10 であることがわかりました。
この章で説明した数式と、このセクションの冒頭で示した基準を使用して、対応が必要なリソース使用量を特定することができます。
3 + A + N*(x + y + z) + (2 + N*0.01)
3 + 10 + 500*1 + 200*1 + 300*1 + (2 + 500*0.01) = 1020
x + y + z
1 + 1 + 1 = 3
7 + 2*A + N*(x + y + z) + (10 + N*0.05)
7 + 2*10 + 500*2 + 200*1 + 300*0 + (10 + 500*0.05) = 1562
(x + y + z) + 5*s
(2 + 1 + 0) + 5*0 = 3
9 + N*(16 + x + y + z) + (20 + N*0.1)
9 + 60*(16 + 1 + 4 + 0) + (20 + 60*0.1) = 1295
3 + N
3 + 500 = 503
500 + 3 = 503
追加されている 3 つのユーザー ID は、Developer for System z 開始タスクのユーザー ID である STCJMON、STCLOCK、および STCRSE です。
リソース使用量の数値が判明したので、限度を指定するディレクティブを適切な値でカスタマイズできます。
この変更はオプションです。RSE は必要に応じて新しいスレッド・プールを開始します。
限度の定義の説明に従ってシステム限度を定義したら、Developer for System z によるリソース使用量のモニターを開始して、変数の調整が必要かどうかを確認できます。図 58 は、495 人のユーザーがログオンした後のリソース使用量を示しています (この図の例はログオンだけを示しています。ユーザー・アクションは示されていません)。
BPXM023I (STCRSE) ProcessId(16779764) Memory Usage(10%) Clients(50) Order(1) ProcessId(67108892) Memory Usage(16%) Clients(50) Order(2) ProcessId(67108908) Memory Usage(10%) Clients(50) Order(3) ProcessId(67108898) Memory Usage(16%) Clients(50) Order(4) ProcessId(67108916) Memory Usage(16%) Clients(50) Order(5) ProcessId(67108897) Memory Usage(16%) Clients(50) Order(6) ProcessId(67108921) Memory Usage(16%) Clients(50) Order(7) ProcessId(83886146) Memory Usage(16%) Clients(50) Order(8) ProcessId(67108920) Memory Usage(16%) Clients(50) Order(9) ProcessId(3622 ) Memory Usage(8%) Clients(45) Order(10) Jobname Cpu time Storage EXCP -------- ----------- ------- ---------- JMON 1.74 43.0M 2753 LOCKD 10.05 31.9M 24621 RSED 6.65 40.1M 41780 RSED1 8.17 187.0M 76566 RSED2 13.04 184.9M 78946 RSED3 17.77 181.1M 76347 RSED4 11.63 174.9M 74638 RSED5 15.27 172.9M 72883 RSED6 13.85 180.8M 75031 RSED7 9.79 174.3M 76636 RSED8 21.59 176.1M 70583 RSED8 18.88 184.7M 76953 RSED9 9.52 189.8M 80490
z/OS は高度にカスタマイズ可能なオペレーティング・システムであり、システムの (場合によっては小さな) 変更で全体のパフォーマンスに大きな影響を与えることができます。この章では、Developer for System z のパフォーマンスを向上させるために行うことができるいくつかの変更を中心に説明します。
システムのチューニングの詳細については、「MVS 初期設定およびチューニング ガイド」(SA88-8563)、および 「UNIX System Services 計画」(GA88-8639) を参照してください。
zFS (zSeries® ファイル・システム) および HFS (階層ファイル・システム) は、どちらも z/OS UNIX 環境で使用できる UNIX ファイル・システムです。ただし、zFS には、以下のようなフィーチャーと利点があります。
zFS の詳細については、「UNIX System Services 計画」(GA88-8639) を参照してください。
親から子へ、または exec を越えて伝搬される STEPLIB を持つ z/OS UNIX プロセスは、それぞれが約 200 バイトの拡張共通ストレージ域 (ECSA) を消費します。STEPLIB 環境変数が定義されなかった場合、または STEPLIB=CURRENT として定義された場合、z/OS UNIX は現在アクティブなすべての TASKLIB、STEPLIB、および JOBLIB 割り振りを、fork()、spawn()、または exec() 関数の実行中に伝搬します。
Developer for System z では、rsed.envvars 構成ファイルの中で説明されているように、STEPLIB=NONE がデフォルトとして rsed.envvars 内にコーディングされています。上記の理由から、このディレクティブを変更せず、代わりに、ターゲット・データ・セットを LINKLIST または LPA (リンク・パック域) の中に置くことをお勧めします。
特定のシステム・ライブラリーとロード・モジュールは、z/OS UNIX およびアプリケーション開発アクティビティーによって頻繁に使用されます。それらをリンク・パック域 (LPA) に追加するなどの方法でアクセスを改善すると、システムのパフォーマンスを向上させることができます。以下で説明する SYS1.PARMLIB メンバーの変更について詳しくは、「MVS 初期設定およびチューニング解説書」(SA88-8564) を参照してください。
C プログラム (z/OS UNIX シェルを含む) は、実行されると、言語環境プログラム (LE) ランタイム・ライブラリーからのルーチンを頻繁に使用します。 平均すると、LE 対応プログラムを実行する 1 つのアドレス・スペースごとに約 4 MB のランタイム・ライブラリーがメモリーにロードされ、すべてのフォークにコピーされます。
CEE.SCEELPA
CEE.SCEELPA データ・セットには、z/OS UNIX によって頻繁に使用される LE ランタイム・ルーチンのサブセットが入っています。 最大のパフォーマンス向上を実現するために、このデータ・セットを SYS1.PARMLIB(LPALSTxx) に追加する必要があります。そうすることにより、モジュールはディスクから 1 回だけ読み取られ、共用ロケーションに保管されます。
LPA ADD MASK(*) DSNAME(CEE.SCEELPA)
また、データ・セットを SYS1.PARMLIB(LNKLSTxx) または SYS1.PARMLIB(PROGxx) に追加することにより、LE ランタイム・ライブラリーを CEE.SCEERUN および CEE.SCEERUN2 に配置することもお勧めします。これにより、z/OS UNIX STEPLIB のオーバーヘッドがなくなり、LLA および VLF、またはそれらと同様な製品による管理のための入出力を削減できます。
これらのライブラリーを LINKLIST 内に置かない場合は、rsed.envvars 構成ファイルの中の説明に従い、適切な STEPLIB ステートメントを rsed.envvars 内にセットアップする必要があります。この方式では、常に追加の仮想ストレージが使用されますが、LE ランタイム・ライブラリーを LLA またはそれに類似した製品に対して定義することにより、パフォーマンスを改善できます。これにより、モジュールをロードするために必要な入出力が削減されます。
アプリケーション開発が主なアクティビティーであるシステムでは、以下の行を SYS1.PARMLIB(PROGxx) に追加して、リンケージ・エディターを動的 LPA の中に置くと、パフォーマンスが向上する場合もあります。
LPA ADD MODNAME(CEEBINIT,CEEBLIBM,CEEEV003,EDCZV) DSNAME(CEE.SCEERUN) LPA ADD MODNAME(IEFIB600,IEFXB603) DSNAME(SYS1.LINKLIB)
C/C++ 開発用に、CBC.SCCNCMP コンパイラー・データ・セットを SYS1.PARMLIB(LPALSTxx) に追加することもできます。
上記のステートメントは、考えられる LPA 候補の例ですが、必要性はご使用のサイトによって異なる場合があります。他の LE ロード・モジュールを動的 LPA 内に配置する方法については、「Language Environment カスタマイズ」(SA88-8552) を参照してください。C/C++ コンパイラー・ロード・モジュールを動的 LPA の中に配置する方法については、「UNIX System Services 計画」(GA88-8639) を参照してください。
z/OS UNIX について行われるセキュリティー検査のパフォーマンスを向上させるには、セキュリティー・ソフトウェアの FACILITY クラスで BPX.SAFFASTPATH プロファイルを定義します。これにより、さまざまな操作について z/OS UNIX セキュリティー検査を行うときのオーバーヘッドが削減されます。それらの検査には、ファイル・アクセス検査、IPC アクセス検査、およびプロセス所有権検査が含まれます。このプロファイルの詳細については、「UNIX System Services 計画」(GA88-8639) を参照してください。
それぞれのサイトには固有の必要性があり、それを満たすために、z/OS オペレーティング・システムをカスタマイズして、使用可能なリソースを最大限に活用することができます。ワークロード管理を使用すると、パフォーマンスの最終目標を定義し、各目標にビジネスの重要度を割り当てることができます。作業の最終目標をビジネス用語で定義し、システムでは、その目標を達成するために、CPU やストレージなどのリソースをどれくらい作業に割り当てればよいかを決定します。
Developer for System z のパフォーマンスは、プロセスに正しい目標を設定することによってバランスをとることができます。以下に、いくつかの一般ガイドラインを示します。
この件について詳しくは、「MVS 計画: ワークロード管理」(SA88-8574) を参照してください。
固定サイズのヒープを使用すると、ヒープの拡張や縮小が発生しないため、状態によっては、パフォーマンスの大幅な向上につながります。ただし、固定サイズのヒープを使用することは、通常ではお勧めできません。その理由は、ヒープが満杯になるまでガーベッジ・コレクションの開始が遅延し、開始された時点では、それがメジャー・タスクになるからです。また、フラグメント化の危険も増し、ヒープの圧縮が必要になります。したがって、固定サイズのヒープは、適正なテストの後か、IBM サポートからの指示の下でのみ使用してください。ヒープ・サイズとガーベッジ・コレクションの詳細については、「Java Diagnostics Guide」(SC34-6650) を参照してください。
デフォルトでは、z/OS Java 仮想マシン (JVM) の初期ヒープ・サイズは、1 メガバイトです。 最大サイズは 64 メガバイトです。限度は、-Xms (初期) および -Xmx (最大) Java コマンド行オプションで設定できます。
Developer for System z では、Java コマンド行オプションは、_RSE_JAVAOPTS での追加 Java 始動パラメーターの定義の説明のように、rsed.envvars の _RSE_JAVAOPTS ディレクティブで定義されます。
#_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Xms128m -Xmx128m"
-Xquickstart オプションは、一部の Java アプリケーションの起動時間を改善するために使用できます。-Xquickstart を指定すると、JIT (Just In Time) コンパイラーが最適化のサブセット、つまりクイック・コンパイルを使用して実行されます。このクイック・コンパイルでは、起動時間を改善できます。
-Xquickstart は、実行期間が短いアプリケーション、特に実行時間が少数のメソッドに集中していないアプリケーションに適しています。 -Xquickstart は、ホット・メソッドを含んでいる実行期間が長いアプリケーションに対して使用すると、パフォーマンスを低下させる場合があります。
RSE サーバー用に -Xquickstart オプションを有効にするには、次のディレクティブを rsed.envvars の末尾に追加します。
_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Xquickstart"
IBM Java 仮想マシン (JVM) バージョン 5 以上では、ブートストラップ・クラスおよびアプリケーション・クラスを共用メモリー内のキャッシュに保管することにより、それらを JVM 間で共用できます。クラス共用は、複数の JVM がキャッシュを共用している場合、全体的な仮想メモリーの消費を削減します。また、クラス共用はキャッシュが作成された後、JVM の起動時間を短縮します。
共用クラス・キャッシュはアクティブな JVM に依存せず、キャッシュを作成した JVM の存続期間を越えて持続します。共用クラス・キャッシュは JVM の存続期間を越えて持続するので、JAR またはファイル・システム上のクラスに加えられたすべての変更が反映されるよう、キャッシュは動的に更新されます。
新しいキャッシュの作成とデータの取り込みを行うためのオーバーヘッドは最小限で済みます。時間的な JVM 始動コストは、単一の JVM の場合、ロードされるクラスの数によって異なりますが、クラス共用を使用しないシステムに比べて 0 から 5 % の低下が一般的です。 キャッシュにデータが取り込まれた場合の JVM 起動時間の改善は、オペレーティング・システムおよびロードされるクラス数によって異なりますが、クラス共用を使用しないシステムに比べて 10 % から 40 % の高速化となって現れます。複数の JVM を並行して実行すると、全体的な起動時間がさらに改善されます。
クラス共用の詳細については、「Java SDK and Runtime Environment User Guide」を参照してください。
RSE サーバー用にクラス共用を有効にするには、次のディレクティブを rsed.envvars の末尾に追加します。最初のステートメントは、グループ・アクセス権を持つ RSE という名前のキャッシュを定義しており、これは、クラス共用が失敗した場合でも RSE サーバーを始動できるようにします。2 番目のステートメントはオプションであり、キャッシュ・サイズを 6 メガバイトに設定します (システム・デフォルトは 16 MB です)。3 番目のステートメントは、クラス共用パラメーターを Java 始動オプションに追加します。
_RSE_CLASS_OPTS=-Xshareclasses:name=RSE,groupAccess,nonFatal #_RSE_CLASS_OPTS="$_RSE_CLASS_OPTS -Xscmx6m _RSE_JAVAOPTS="$_RSE_JAVAOPTS $_RSE_CLASS_OPTS"
理論上の最大共用キャッシュ・サイズは 2 GB です。指定できるキャッシュのサイズは、システムで使用できる物理メモリーとスワップ・スペースの容量によって制限されます。プロセスの仮想アドレス・スペースは共用クラス・キャッシュと Java ヒープの間で共用されるので、Java ヒープの最大サイズを大きくすると、作成できる共用クラス・キャッシュのサイズが小さくなります。
共用クラス・キャッシュへのアクセスは、オペレーティング・システムの許可および Java セキュリティー許可によって制限されます。
デフォルトでは、クラス・キャッシュはユーザー・レベル・セキュリティーを使用して作成されるため、キャッシュを作成したユーザーだけがキャッシュにアクセスできます。z/OS UNIX では、groupAccess というオプションがあり、これはキャッシュを作成したユーザーの 1 次グループに属するすべてのユーザーにアクセス権を与えます。しかし、使用されたアクセス・レベルに関係なく、キャッシュを破棄できるのは、そのキャッシュを作成したユーザーかルート・ユーザー (UID 0) だけです。
Java SecurityManager を使用した追加セキュリティー・オプションの詳細については、「Java SDK and Runtime Environment User Guide」を参照してください。
いくつかの SYS1.PARMLIB(BPXPRMxx) の設定は、共用クラスのパフォーマンスに影響します。誤った設定を使用すると、共用クラスが機能しなくなる可能性があります。 また、それらの設定は、パフォーマンスへの影響を持つ場合もあります。これらのパラメーターのパフォーマンスへの影響と使用方法について詳しくは、「MVS 初期設定およびチューニング解説書」(SA88-8564) および「UNIX System Services 計画」(GA88-8639) を参照してください。 共用クラスの操作に最も大きな影響を与える BPXPRMxx パラメーターは、以下のとおりです。
これらの設定は、JVM で使用できる共用メモリー・ページの量に影響します。31 ビット z/OS UNIX システム・サービスの共用ページ・サイズは、4 KB に固定されています。共用クラスは、デフォルトでは 16 MB のキャッシュを作成しようとします。したがって、IPCSHMMPAGES は 4096 より大きく設定してください。
-Xscmx を使用してキャッシュ・サイズを設定する場合、JVM は最も近いメガバイト値まで切り上げを行います。 使用するシステム上で IPCSHMMPAGES を設定するときは、このことを考慮する必要があります。
これらの設定は、UNIX プロセスで使用できるセマフォーの量に影響します。共用クラスは、IPC セマフォーを使用して JVM 間の通信を行います。
共用クラス・キャッシュは、システム上に存在するキャッシュの識別情報を保管するために、ディスク・スペースを必要とします。この情報は /tmp/javasharedresources に保管されます。識別情報ディレクトリーが削除された場合、JVM はシステム上の共用クラスを識別できないため、キャッシュの再作成が必要になります。
Java -Xshareclasses 行コマンドは、いくつかのオプションをとることができ、それらのオプションの一部はキャッシュ管理ユーティリティーです。そのうちの 3 つを以下のサンプルに示します ($ は z/OS UNIX プロンプトです)。サポートされるコマンド行オプションの詳細については、「Java SDK and Runtime Environment User Guide」を参照してください。
$ java -Xshareclasses:listAllCaches Shared Cache OS shmid in use Last detach time RSE 401412 0 Mon Jun 18 17:23:16 2007 Could not create the Java virtual machine. $ java -Xshareclasses:name=RSE,printStats Current statistics for cache "RSE": base address = 0x0F300058 end address = 0x0F8FFFF8 allocation pointer = 0x0F4D2E28 cache size = 6291368 free bytes = 4355696 ROMClass bytes = 1912272 Metadata bytes = 23400 Metadata % used = 1% # ROMClasses = 475 # Classpaths = 4 # URLs = 0 # Tokens = 0 # Stale classes = 0 % Stale classes = 0% Cache is 30% full Could not create the Java virtual machine. $ java -Xshareclasses:name=RSE,destroy JVMSHRC010I Shared Cache "RSE" is destroyed Could not create the Java virtual machine.
従来、CICS に対してリソースを定義する役割は、CICS 管理者の専門的な役割でした。 アプリケーション開発者が CICS リソースを定義できるようにすることには、以下のようなさまざまな理由から抵抗がありました。
Developer for System z では、この問題に対処するため、CICS 管理者が Application Deployment Manager の一部である CICS リソース定義 (CRD) サーバーを使用して、 CICS リソース定義のデフォルトおよび CICS リソース定義パラメーターの表示プロパティーを制御できるようにしています。
例えば、CICS 管理者は、アプリケーション開発者が更新できない特定の CICS リソース定義パラメーターを提供できます。その他の CICS リソース定義パラメーターは更新可能で、デフォルトが提供される場合もされない場合もあります。あるいは、無用な複雑さを避けるために、CICSリソース定義パラメーターを非表示にすることもできます。
アプリケーション開発者は、CICS リソース定義に満足できたら、それらの定義を稼働中の CICS テスト環境に直ちにインストールするか、さらに CICS 管理者による編集と承認を受けるために、マニフェストにエクスポートすることができます。 CICS 管理者は、管理ユーティリティー (バッチ・ユーティリティー) またはマニフェスト処理ツールを使用して、リソース定義の変更を実装できます。
ホスト・システムに Application Deployment Manager をセットアップするために必要となるタスクの詳細については、(オプション) Application Deployment Managerを参照してください。
Application Deployment Manager のカスタマイズでは、以下のサービスが Developer for System z に追加されます。
Application Deployment Manager CICS リソース定義 (CRD) サーバーは、CRD サーバー自体と、CRD リポジトリー、関連する CICS リソース定義、および Web サービス・インターフェースを使用する場合は、Web サービス・バインド・ファイルとサンプルのパイプライン・メッセージ・ハンドラーから構成されます。CRD サーバーは、Developer for System z 資料で CICS 主接続領域として参照されている Web Owning Region (WOR) 内で稼働する必要があります。
現行リリースの Developer for System z で使用可能な Application Deployment Manager のサービスの詳細については、Developer for System z インフォメーション・センター (http://publib.boulder.ibm.com/infocenter/ratdevz/v7r6/index.jsp) を参照してください。
CICS Transaction Server バージョン 4.1 以上では、Representational State Transfer (RESTful) の原則に従って設計された HTTP インターフェースをサポートしています。現在この RESTful インターフェースは、戦略的な CICSTS インターフェースとしてクライアント・アプリケーションで使用されています。従来の Web サービス・インターフェースはすでに安定化しており、今後は RESTful インターフェースのみが機能拡張の対象となります。
Application Deployment Manager は、この指示書に従い、Developer for System z バージョン 7.6 以上で新たに導入されたすべてのサービスに RESTful CRD サーバーを必要とします。
必要であれば、1 つの CICS 領域で RESTful インターフェースと Web サービス・インターフェースを同時にアクティブにすることができます。この場合、その領域で 2 つの CRD サーバーがアクティブになります。両サーバーは、同じ CRD リポジトリーを共用します。2 番目のインターフェースを領域に対して定義すると、CICS から定義の重複に関する警告が発行されるので注意してください。
CICS テスト環境は、いくつかの Multi-Region Option (MRO) 接続領域から構成される場合があります。時の経過と共に、それらの領域を分類するために非公式の指定が使用されてきました。一般的な指定は、Terminal Owning Region (TOR)、Web Owning Region (WOR)、Application Owning Region (AOR)、および Data Owning Region (DOR) です。
Web Owning Region は、CICS Web サービス・サポートを実装するために使用され、Application Deployment Manager CICS リソース定義 (CRD) サーバーをこの領域内で実行する必要があります。この領域は、Application Deployment Manager に対しては CICS 主接続領域として認識されます。CRD クライアントは、CICS 主接続領域への Web サービス接続を実装します。
CICS 非主接続領域は、CRD サーバーのサービス対象となる、それ以外のすべての領域です。このサービスには、IBM CICS エクスプローラーを使用したリソースの表示と、CICS リソース定義エディターを使用したリソースの定義が含まれます。
CICSPlex SM ビジネス・アプリケーション・サービス (BAS) を使用して CICS 主接続領域の CICS リソース定義を管理する場合は、BAS によって管理される、その他のすべての CICS 領域を CRD サーバーのサービス対象とすることができます。
BAS で管理されていない CICS 領域を CRD サーバーによってサービス可能にするには、追加の変更が必要です。
CRD サーバーが CICS リソースに対して行ったアクションは、CICS CSDL TD キューの中にログとして記録されます。一般に、このキューは、使用している CICS 領域の DD MSGUSR を指します。
CICSPlex SM ビジネス・アプリケーション・サービス (BAS) を使用して CICSリソース定義を管理する場合、ログを作成するには、CICSPlex SM EYUPARM ディレクティブ BASLOGMSG を (YES) に設定する必要があります。
CRD サーバー・リポジトリー VSAM データ・セットは、すべてのデフォルト・リソース定義を保持しています。したがって、更新されないように保護する必要がありますが、開発者は、そこに保管された値の読み取りを許可される必要があります。CRD リポジトリーを保護するためのサンプルの RACF コマンドについては、データ・セット・プロファイルの定義を参照してください。
CICS が Web サービス・インターフェースを通じて SOAP メッセージを受信した場合、そのメッセージはパイプラインによって処理されます。パイプラインは順番に実行される一連のメッセージ・ハンドラーです。CICS は、パイプライン構成ファイルを読み取って、パイプライン内でどのメッセージ・ハンドラーを起動すればよいかを判別します。メッセージ・ハンドラーは、その中で、Web サービスの要求および応答の特別な処理を実行できるプログラムです。
Application Deployment Manager は、メッセージ・ハンドラーと SOAP ヘッダー処理プログラムの起動を指定する、サンプルのパイプライン構成ファイルを提供します。
パイプライン・メッセージ・ハンドラー (ADNTMSGH) は、SOAP ヘッダー内のユーザー ID とパスワードを処理することにより、セキュリティーのために使用されます。ADNTMSGH は、サンプルのパイプライン構成ファイルによって参照されるため、CICS RPL 連結の中に入れる必要があります。
CPIH はデフォルトのトランザクション ID で、パイプラインによって起動されたアプリケーションは、この ID の下で実行されます。多くの場合、CPIH は最小レベルの許可用に設定されます。
Developer for System z は、CICS リソースの定義および照会時に、CRD サーバーが使用する複数のトランザクションを提供します。これらのトランザクション ID は、要求された操作に応じて CRD サーバーが設定します。トランザクション ID のカスタマイズの詳細については、(オプション) Application Deployment Managerを参照してください。
トランザクション | 説明 |
---|---|
ADMS | マニフェスト処理ツールからの CICS リソース変更要求用。一般に、これは CICS 管理者が使用するためのものです。このトランザクションは高いレベルの許可を必要とします。 |
ADMI | CICS リソースを定義、インストール、またはアンインストールする要求用。 このトランザクションは、サイトのポリシーにもよりますが、中程度の許可を必要とすると考えられます。 |
ADMR | CICS の環境情報またはリソース情報を取り出す、上記以外のすべての要求用。このトランザクションは、サイトのポリシーにもよりますが、最小レベルの許可を必要とすると考えられます。 |
CRD サーバー・トランザクションによって行われるリソース定義要求の一部、または全部を、セキュリティーで保護してください。最低でも、更新コマンド (デフォルトの Web サービス・パラメーター、デフォルトの記述子パラメーター、およびファイル名からデータ・セット名へのバインディング) をセキュリティーで保護し、CICS 管理者のみが、グローバル・リソースのデフォルトの設定に使用されるこれらのコマンドを発行できるようにしてください。
トランザクションが接続すると、CICS リソース・セキュリティー検査機能 (使用可能な場合) により、ユーザー ID にはそのトランザクション ID を実行する許可が与えられます。
リソース検査は、稼働中のトランザクションの RESSEC オプション、RESSEC システム初期化パラメーターによって制御され、CRD サーバーの場合は XPCT システム初期化パラメーターによっても制御されます。
リソース検査は、XPCT システム初期化パラメーターの値が NO 以外で、かつ TRANSACTION 定義の RESSEC オプションが YES であるかまたは、RESSEC システム初期化パラメーターが ALWAYS である場合にのみ実行されます。
以下の RACF コマンドは、CRD サーバー・トランザクションを保護する方法の例を示しています。CICS セキュリティーの定義の詳細については、「RACF Security Guide for CICSTS」を参照してください。
RALTER GCICSTRN SYSADM UACC(NONE) ADDMEM(ADMS)
PERMIT SYSADM CLASS(GCICSTRN) ID(#cicsadmin)
RALTER GCICSTRN DEVELOPER UACC(NONE) ADDMEM(ADMI)
PERMIT DEVELOPER CLASS(GCICSTRN) ID(#cicsdeveloper)
RALTER GCICSTRN ALLUSER UACC(READ) ADDMEM(ADMR)
SETROPTS RACLIST(TCICSTRN) REFRESH
Application Deployment Manager クライアントが Web サービス・インターフェースを使用して CRD サーバーを起動するときは、データ・ストリームの SSL 暗号化がサポートされます。この通信への SSL の使用は、CICSTS TCPIPSERVICE 定義の SSL(YES) キーワードによって制御されます。詳しくは、「RACF Security Guide for CICSTS」を参照してください。
CICSTS は、リソースを保護する機能と、リソースを操作するコマンドを提供しています。セキュリティーを完全に構成していない状態でアクティブにすると、一部の Application Deployment Manager アクションが失敗する場合があります (例えば、新しいリソース・タイプを操作する権限を付与するアクションなど)。
Application Deployment Manager で機能が失敗した場合は、以下のようなメッセージがないか CICS ログを調べ、「RACF Security Guide for CICSTS」の説明に従って修正を行ってください。
DFHXS1111 %date %time %applid %tranid Security violation by user %userid at netname %portname for resource %resource in class %classname. SAF codes are (X'safresp',X'safreas'). ESM codes are (X'esmresp',X'esmreas').
Developer for System z が提供する管理ユーティリティーを使用して、CICS 管理者は CICS リソース定義のデフォルト値を指定できます。これらのデフォルトは、読み取り専用とするか、アプリケーション開発者による編集を可能にすることができます。
管理ユーティリティーは、以下の機能を提供します。
管理ユーティリティーは、データ・セット FEK.#CUST.JCL 内のサンプル・ジョブ ADNJSPAU によって呼び出されます。このユーティリティーを使用するには、CRD リポジトリーに対する UPDATE アクセス権が必要です。
ADNJSPAU は FEK.#CUST.JCL に置かれます。ただし、z/OS システム・プログラマーが、ジョブ FEK.SFEKSAMP(FEKSETUP)をカスタマイズして実行依頼したときに別のロケーションを指定した場合は除きます。詳細については、カスタマイズのセットアップを参照してください。
CICS テスト環境の CRD リポジトリーを更新するために、入力制御ステートメントが使用されます。この環境には、以下の一般的な構文規則が適用されます。
以下のサンプル定義は、「CICS Resource Definition Guide for CICSTS」で定義されている DFHCSDUP コマンドの構造に従っています。唯一の相違点は、以下の表示許可キーワードが挿入されていることで、これらのキーワードは、属性値を 3 つの許可セットにグループ化するために使用されます。
UPDATE | このキーワードの直後にある属性は、Developer for System z を使用するアプリケーション開発者によって更新可能になります。これは、省略された属性のデフォルトでもあります。 |
PROTECT | このキーワードの直後にある属性は、表示されますが、Developer for System z を使用するアプリケーション開発者による更新から保護されます。 |
HIDDEN | このキーワードの直後にある属性は表示されず、Developer for System z を使用するアプリケーション開発者による更新からも保護されます。 |
以下の ADNJSPAU コード・サンプルを参照してください。
//ADNJSPAU JOB <JOB PARAMETERS> //* //ADNSPAU EXEC PGM=ADNSPAU,REGION=1M //STEPLIB DD DISP=SHR,DSN=FEK.SFEKLOAD //ADMREP DD DISP=OLD,DSN=FEK.#CUST.ADNREPF0 //SYSPRINT DD SYSOUT=* //SYSIN DD * * * CICSPlex SM parameters * DEFINE CPSMNAME( ) *DEFINE STAGINGGROUPNAME(ADMSTAGE) * * Manifest export rule * DEFINE MANIFESTEXPORTRULE(installOnly) * * CICS resource definition defaults * Omitted attributes default to UPDATE. * * DB2TRAN default attributes * DEFINE DB2TRAN() UPDATE DESCRIPTION() ENTRY() TRANSID() * * DOCTEMPLATE default attributes * DEFINE DOCTEMPLATE() UPDATE DESCRIPTION() TEMPLATENAME() FILE() TSQUEUE() TDQUEUE() PROGRAM() EXITPGM() DDNAME(DFHHTML) MEMBERNAME() HFSFILE() APPENDCRLF(YES) TYPE(EBCDIC) * * File default attributes * DEFINE FILE() UPDATE DESCRIPTION() RECORDSIZE() KEYLENGTH() RECORDFORMAT(V) ADD(NO) BROWSE(NO) DELETE(NO) READ(YES) UPDATE(NO) REMOTESYSTEM() REMOTENAME() PROTECT DSNAME() RLSACCESS(NO) LSRPOOLID(1) STRINGS(1) STATUS(ENABLED) OPENTIME(FIRSTREF) DISPOSITION(SHARE) DATABUFFERS(2) INDEXBUFFERS(1) TABLE(NO) MAXNUMRECS(NOLIMIT) READINTEG(UNCOMMITTED) DSNSHARING(ALLREQS) UPDATEMODEL(LOCKING) LOAD(NO) JNLREAD(NONE) JOURNAL(NO) JNLSYNCREAD(NO) JNLUPDATE(NO) JNLADD(NONE) JNLSYNCWRITE(YES) RECOVERY(NONE) FWDRECOVLOG(NO) BACKUPTYPE(STATIC) PASSWORD() NSRGROUP() CFDTPOOL() TABLENAME()
* * Mapset default attributes * DEFINE MAPSET() UPDATE DESCRIPTION() PROTECT RESIDENT(NO) STATUS(ENABLED) USAGE(NORMAL) USELPACOPY(NO) ** Processtype default attributes * DEFINE PROCESSTYPE() UPDATE DESCRIPTION() FILE(BTS) PROTECT STATUS(ENABLED) AUDITLOG() AUDITLEVEL(OFF) * * Program default attributes * DEFINE PROGRAM() UPDATE DESCRIPTION() CEDF(YES) LANGUAGE(LE370) REMOTESYSTEM() REMOTENAME() TRANSID() PROTECT API(CICSAPI) CONCURRENCY(QUASIRENT) DATALOCATION(ANY) DYNAMIC(NO) EXECKEY(USER) EXECUTIONSET(FULLAPI) RELOAD(NO) RESIDENT(NO) STATUS(ENABLED) USAGE(NORMAL) USELPACOPY(NO) HIDDEN JVM(NO) JVMCLASS() JVMPROFILE(DFHJVMPR) * * TDQueue default attributes * DEFINE TDQUEUE() UPDATE DESCRIPTION() TYPE(INTRA) * Extra partition parameters DDNAME() DSNAME() REMOTENAME() REMOTESYSTEM() REMOTELENGTH(1) RECORDSIZE() BLOCKSIZE(0) RECORDFORMAT(UNDEFINED) BLOCKFORMAT() PRINTCONTROL() DISPOSITION(SHR) * Intra partition parameters FACILITYID() TRANSID() TRIGERRLEVEL(1) USERID() * Indirect parameters INDIRECTNAME() PROTECT WAIT(YES) WAITACTION(REJECT) * Extra partition parameters DATABUFFERS(1) SYSOUTCLASS() ERROROPTION(IGNORE) OPENTIME(INITIAL) REWIND(LEAVE) TYPEFILE(INPUT) * Intra partition parameters ATIFACILITY(TERMINAL) RECOVSTATUS(NO)
*
* Transaction default attributes
*
DEFINE TRANSACTION()
UPDATE DESCRIPTION()
PROGRAM()
TWASIZE(0)
REMOTESYSTEM() REMOTENAME() LOCALQ(NO)
PROTECT PARTITIONSET() PROFILE(DFHCICST)
DYNAMIC(NO) ROUTABLE(NO)
ISOLATE(YES) STATUS(ENABLED)
RUNAWAY(SYSTEM) STORAGECLEAR(NO)
SHUTDOWN(DISABLED)
TASKDATAKEY(USER) TASKDATALOC(ANY)
BREXIT() PRIORITY(1) TRANCLASS(DFHTCL00)
DTIMOUT(NO) RESTART(NO) SPURGE(NO) TPURGE(NO)
DUMP(YES) TRACE(YES) CONFDATA(NO)
OTSTIMEOUT(NO) WAIT(YES) WAITTIME(00,00,00)
ACTION(BACKOUT) INDOUBT(BACKOUT)
RESSEC(NO) CMDSEC(NO)
TRPROF()
ALIAS() TASKREQ()
XTRANID() TPNAME() XTPNAME()
*
* URDIMAP attributes
*
DEFINE URIMAP()
UPDATE USAGE(CLIENT)
DESCRIPTION()
PATH(/required/path)
TCPIPSERVICE()
TRANSACTION()
PROGRAM()
PROTECT ANALYZER(NOANALYZER)
ATOMSERVICE()
CERTIFICATE()
CHARACTERSET()
CIPHERS()
CONVERTER()
HFSFILE()
HOST(host.mycompany.com)
HOSTCODEPAGE()
LOCATION()
MEDIATYPE()
PIPELINE()
PORT(NO)
REDIRECTTYPE(NONE)
SCHEME(HTTP)
STATUS(ENABLED)
TEMPLATENAME()
USERID()
WEBSERVICE()
*
* Optional file name to VSAM data set name binding
*
*DEFINE DSBINDING() DSNAME()
/*
Developer for System z バージョン 7.6.1 では、管理ユーティリティーに URIMAP サポートが追加されています。URIMAP サポートを使用できるようにするには、CRD リポジトリー VSAM データ・セットを最大レコード・サイズ 3000 で割り振る必要があります。Developer for System z バージョン 7.6.1 までは、サンプルの CRD リポジトリー割り振りジョブは、最大レコード・サイズ 2000 を使用します。
以前の CRD リポジトリーを使用している場合に URIMAP サポートを使用可能にするには、以下のステップを実行します。
以下のメッセージは、管理ユーティリティーが SYSPRINT DD に対して発行します。メッセージ CRAZ1803E、CRAZ1891E、CRAZ1892E、 および CRAZ1893E は、ファイル状況コード、VSAM 戻りコード、VSAM 機能コード、および VSAM フィードバック・コードを含んでいます。VSAM 戻りコード、機能コード、およびフィードバック・コードについては、「DFSMS Macro Instructions for Data Sets」(SC26-7408) に説明があります。ファイル状況コードについては、「Enterprise COBOL for z/OS 言語解説書」(SC88-9117) に説明があります。
説明: システム・プログラマー管理ユーティリティーは、正常に完了しました。
ユーザー応答: なし。
説明: システム・プログラマー管理ユーティリティーは、制御ステートメントの処理時に 1 つ以上の警告を検出して完了しました。
ユーザー応答: 他の警告メッセージを調べてください。
説明: システム・プログラマー管理ユーティリティーは、重大エラーを検出しました。
ユーザー応答: 他の警告メッセージを調べてください。
説明: システム・プログラマー管理ユーティリティーは、CRD リポジトリーをオープンしようとして重大エラーを検出しました。
ユーザー応答: VSAM 状況コード、戻りコード、機能コード、およびフィードバック・コードを調べてください。
説明: システム・プログラマー管理ユーティリティーは、認識できない入力制御ステートメントを検出しました。
ユーザー応答: DEFINE コマンドの直後に 1 つのスペースと、その直後に CPSMNAME、STAGINGGROUPNAME、MANIFESTEXPORTRULE、DSBINDING、DB2TRAN、DOCTEMPLATE、FILE、MAPSET、PROCESSTYPE、PROGRAM、TDQUEUE、TRANSACTION のいずれかのキーワードがあったかどうかを調べてください。
説明: システム・プログラマー管理ユーティリティーは、DEFINE キーワード入力制御ステートメントを処理しています。
ユーザー応答: なし。
説明: システム・プログラマー管理ユーティリティーは、無効なマニフェスト・エクスポート規則を検出しました。
ユーザー応答: MANIFESTEXPORTRULE キーワードの値が「installOnly」、「exportOnly」、「both」のいずれかであることを確認してください。
説明: システム・プログラマー管理ユーティリティーが処理しようとした DEFINE DSBINDING 制御ステートメントに DSNAME キーワードがありませんでした。
ユーザー応答: DEFINE DSBINDING 制御ステートメントに DSNAME キーワードが含まれているかどうか調べてください。
説明: システム・プログラマー管理ユーティリティーが DEFINE 制御ステートメントを処理しようとして、指定されたキーワードに無効な値を検出しました。
ユーザー応答: 指定されたキーワードの長さと値が正しいかどうか調べてください。
説明: システム・プログラマー管理ユーティリティーが DEFINE 制御ステートメントを処理しようとして、キーワードまたはキーワード値の構文エラーを検出しました。
ユーザー応答: キーワード値が小括弧で囲まれていて、キーワードの直後に存在することを確認してください。キーワードおよびキーワード値は両方とも同じ行になければなりません。
説明: システム・プログラマー管理ユーティリティーは、CRD リポジトリーに書き込もうとして重複キー・エラーを検出しました。
ユーザー応答: VSAM 状況コード、戻りコード、機能コード、およびフィードバック・コードを調べてください。
説明: システム・プログラマー管理ユーティリティーは、CRD リポジトリーに書き込もうとして重大エラーを検出しました。
ユーザー応答: VSAM 状況コード、戻りコード、機能コード、およびフィードバック・コードを調べてください。
説明: システム・プログラマー管理ユーティリティーは、CRD リポジトリーから読み取ろうとして重大エラーを検出しました。
ユーザー応答: VSAM 状況コード、戻りコード、機能コード、およびフィードバック・コードを調べてください。
この付録は、Developer for System z で TSO 環境に DD ステートメントとデータ・セットを追加することにより、TSO ログオン・プロシージャーを模倣するのに役立ちます。
TSO コマンド・サービスは、TSO コマンドと (バッチ) ISPF コマンドを実行し、結果を要求側クライアントへ返す Developer for System z コンポーネントです。 それらのコマンドは、本製品が非明示的に要求するか、ユーザーが明示的に要求できます。
Developer for System z で提供されるサンプル・メンバーは、最小の TSO/ISPF 環境を作成します。ご使用のワークショップ内の開発者がカスタム・ライブラリーまたはサード・パーティー・ライブラリーへのアクセスを必要とする場合、z/OS システム・プログラマーは必要な DD ステートメントおよびライブラリーを TSO コマンド・サービス環境に追加する必要があります。Developer for System z での実装は異なりますが、その背後にあるロジックは TSO ログオン・プロシージャーと同一です。
バージョン 7.1 以降の Developer for System z では、TSO コマンド・サービスへのアクセス方法を選択できます。
バージョン 7.1 以上のホストに、どのアクセス方式が使用されているかを判別するには、rsed.envvars を調べます。構成プロセスのときにデフォルトが使用された場合、rsed.envvars は /etc/rdz/ にあります。
ISPF.conf 構成ファイル (デフォルトでは /etc/rdz/ に置かれます) は、Developer for System z に使用する TSO/ISPF 環境を定義します。 アクティブな ISPF.conf 構成ファイルは 1 つだけ存在し、すべての Developer for System z ユーザーによって使用されます。
この構成ファイルのメイン・セクションでは、次のサンプルに示すように、DD 名および関連するデータ・セット連結が定義されています。
sysproc=ISP.SISPCLIB,FEK.SFEKPROC ispmlib=ISP.SISPMENU isptlib=ISP.SISPTENU ispplib=ISP.SISPPENU ispslib=ISP.SISPSLIB ispllib=ISP.SISPLOAD myDD=HLQ1.LLQ1,HLQ2.LLQ2
デフォルトでは、TSO/ISPF クライアント・ゲートウェイは TSO コマンド・サービス用に一時的な ISPF プロファイルを作成します。しかし、既存の ISPF プロファイルのコピーを使用するように、TSO/ISPF クライアント・ゲートウェイ z に指示することができます。ここで重要なものは、rsed.envvars 内の _RSE_CMDSERV_OPTS ステートメントです。
#_RSE_CMDSERV_OPTS="$_RSE_CMDSERV_OPTS &ISPPROF=&SYSUID..ISPPROF"
この機能を使用するには、このステートメントをコメント解除 (先行ポンド記号 (#) 文字を除去) し、既存の ISPF プロファイルの完全修飾データ・セット名を指定します。
データ・セット名の中で、以下の変数を使用できます。
ISPF.conf 内の allocjob ステートメント (これは、デフォルトではコメント化されています) は、ある exec を指しており、この exec を使用すると、ユーザー ID 別に詳細なデータ・セット割り振りを指定できます。
*allocjob = FEK.#CUST.CNTL(CRAISPRX)
この機能を使用するには、このステートメントをコメント解除 (先行アスタリスク (*) 文字を除去) し、割り振り exec への完全修飾参照を指定してください。
ISPF.conf は 1 つの割り振り exec の呼び出しだけをサポートしていますが、その exec が別の exec を呼び出すことに制限はありません。また、パラメーターとして渡されるクライアントのユーザー ID によって、個人別の割り振り exec を呼び出すことができます。例えば、メンバー USERID'.EXEC(ALLOC)' が存在するかどうかを検査し、実行することができます。
この機能を上手に利用すれば、次のようにして既存の TSO ログオン・プロシージャーを使用できます。
上記の割り振り exec シナリオで特定の要求を処理できない場合は、Developer for System z の RSE 通信サーバーのさまざまなインスタンスを作成し、それぞれに独自の ISPF.conf ファイルを使用することができます。以下に述べる方式の主な欠点は、Developer for System z ユーザーが、希望の TSO 環境を得るために同じホスト上の異なるサーバーに接続する必要があることです。
$ cd /etc/rdz $ mkdir /etc/rdz/tso2 $ cp rsed.envvars /etc/rdz/tso2 $ cp ISPF.conf /etc/rdz/tso2 $ ls /etc/rdz/tso2 ISPF.conf rsed.envvars $ oedit /etc/rdz/tso2/rsed.envvars -> change: _CMDSERV_CONF_HOME=/etc/rdz/tso2 -> uncomment and change: -Ddaemon.log=/var/rdz/logs/tso2 -> add at the END: # -- NEEDED TO FIND THE REMAINING CONFIGURATION FILES CFG_BASE=/etc/rdz CLASSPATH=.:$CFG_BASE:$CLASSPATH # -- $ oedit /etc/rdz/tso2/ISPF.conf -> change: change as needed
前の例のコマンドは、変更が必要な Developer for System z 構成ファイルを、新規に作成された tso2 ディレクトリーにコピーします。 rsed.envvars 内の _CMDSERV_CONF_HOME 変数を更新して新しい ISPF.conf ホーム・ディレクトリーを定義し、daemon.log を更新して新しいログ・ロケーション (これは、存在しなければ自動的に作成されます) を定義する必要があります。 CLASSPATH の更新は、tso2 にコピーされなかった構成ファイルを RSE が確実に検出できるようにします。ISPF.conf ファイル自体を、必要性に合わせて更新できます。ISPF 作業域 (rsed.envvars 内の変数 _CMDSERV_WORK_HOME) を両方のインスタンスで共用できることに注意してください。
この時点で残っている作業は、新しいポート番号と新しい /etc/rdz/tso2 構成ファイルを使用する RSE 用の新規開始タスクを作成することです。
上記の各アクションの詳細については、この資料の関連するセクションを参照してください。
APPC トランザクションの定義は、APPC パラメーターとトランザクション JCL からなっています。Developer for System z APPC トランザクションを作成するサンプル JCL、FEK.#CUST.JCL(FEKAPPCC) は、ISPF サポート付きと ISPF サポートなしでトランザクション JCL を定義する 2 つのオプションを保持しています。
//SYSIN DD DDNAME=SYSINISP * use SYSINTSO or SYSINISP
クライアントはトランザクション JCL 内で定義された TSO/ISPF 環境を取得するので、このセクションを通常の DD 規則に従ってカスタマイズすることにより、クライアントの環境をカスタマイズできます。
... //CMDSERV EXEC PGM=IKJEFT01,DYNAMNBR=50, // PARM='ISPSTART CMD(%FEKFRSRV TIMEOUT=60) NEWAPPL(ISR) NESTMACS' //SYSPROC DD DISP=SHR,DSN=FEK.SFEKPROC //ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU //ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU //ISPTLIB DD DISP=SHR,DSN=ISP.SISPTENU //ISPSLIB DD DISP=SHR,DSN=ISP.SISPSENU //ISPPROF DD DISP=(NEW,DELETE,DELETE),UNIT=SYSALLDA, // SPACE=(TRK,(1,1,5)),LRECL=80,RECFM=FB //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSIN DD DUMMY //MYDD DD DISP=SHR,DSN=HLQ1.LLQ1 // DISP=SHR,DSN=HLQ2.LLQ2
ISPF サポートを選択した場合、デフォルトでは、Developer for System z は TSO コマンド・サービス用に一時的な ISPF プロファイルを作成します。しかし、既存の ISPF プロファイルのコピーを使用するように、Developer for System z に指示することができます。FEK.SFEKSAMP(FEKAPPCC) サンプル・ジョブ内で説明されているように、以下のことを行う必要があります。
...
//COPY EXEC PGM=IEBCOPY * (optional) clone existing ISPF profile
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DISP=SHR,DSN=&SYSUID..ISPROF
//SYSUT2 DD DISP=(MOD,PASS),DSN=&&PROF,
// UNIT=SYSALLDA,
// LIKE=&SYSUID..ISPROF
//*
//CMDSERV EXEC PGM=IKJEFT01,DYNAMNBR=50,
// PARM='ISPSTART CMD(%FEKFRSRV TIMEOUT=60) NEWAPPL(ISR) NESTMACS'
//*ISPPROF DD DISP=(NEW,DELETE,DELETE),UNIT=SYSALLDA,
//* SPACE=(TRK,(1,1,5)),LRECL=80,RECFM=FB
//ISPPROF DD DISP=(OLD,DELETE,DELETE),DSN=&&PROF
サンプルのトランザクション JCL は TSO コマンド・サービスを直接呼び出し、その際、名前 (FEKFRSRV) をパラメーターとしてプログラム IKJEFT01 に渡します。 これを変更して、別の exec を呼び出すことができます。その exec は現行ユーザー ID に基づいて割り振りを行い、その後、TSO コマンド・サービスを呼び出すことができます。
TSO/ISPF クライアント・ゲートウェイ・アクセス方式とは逆に、この exec は環境のカスタマイズを支援するために、ユーザーの ISPF プロファイルに保管された変数を使用できます。ただし、プロファイルに対する更新は、実際のプロファイルでなく一時的なコピーを使用しているので、セッション終了時に失われることに留意してください。
ただし、APPC トランザクション内での割り振り exec の使用はサポートされておらず、上記の説明には保証がないことに注意してください。
固有な複数の TSO 環境を必要とする場合は、Developer for System z の RSE 通信サーバーのさまざまなインスタンスを作成し、それぞれに独自の APPC トランザクションを使用することができます。以下に述べる方式の主な欠点は、Developer for System z ユーザーが、希望の TSO 環境を得るために同じホスト上の異なるサーバーに接続する必要があることです。
$ cd /etc/rdz $ mkdir /etc/rdz/tso2 $ cp rsed.envvars /etc/rdz/tso2 $ ls /etc/rdz/tso2/ rsed.envvars $ oedit /etc/rdz/tso2/rsed.envvars -> uncomment and change: _FEKFSCMD_TP_NAME_=FEKFTSO2 -> uncomment and change: -Ddaemon.log=/var/rdz/logs/tso2 -> add at the END: # -- NEEDED TO FIND THE REMAINING CONFIGURATION FILES CFG_BASE=/etc/rdz CLASSPATH=.:$CFG_BASE:$CLASSPATH # --
上記のコマンドは、新しい tso2 ディレクトリーを作成し、変更が必要な Developer for System z 構成ファイルを新しいロケーションにコピーします。rsed.envvars 内の _ FEKFSCMD_TP_NAME_ 変数を更新して、新しい APPC トランザクション名を定義し、daemon.log を更新して新しいデーモン・ログ・ロケーション (これは、存在しなければ自動的に作成されます) を定義する必要があります。CLASSPATH の更新は、tso2 にコピーされなかった構成ファイルを RSE が確実に検出できるようにします。
//FEKAPPCC JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),NOTIFY=&SYSUID //* //TPADD EXEC PGM=ATBSDFMU //SYSSDLIB DD DISP=SHR,DSN=SYS1.APPCTP //SYSSDOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSIN DD DDNAME=SYSINISP * use SYSINTSO or SYSINISP //SYSINISP DD DATA,DLM='QT' TPADD TPNAME(FEKFTSO2) ACTIVE(YES) TPSCHED_DELIMITER(DLM1) KEEP_MESSAGE_LOG(ERROR) MESSAGE_DATA_SET(&SYSUID..FEKFTSO2.&TPDATE..&TPTIME..LOG) DATASET_STATUS(MOD) CLASS(A) JCL_DELIMITER(DLM2) //FEKFTSO2 JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) //* //CMDSERV EXEC PGM=IKJEFT01,DYNAMNBR=50, // PARM='ISPSTART CMD(%FEKFRSRV TIMEOUT=60) NEWAPPL(ISR) NESTMACS' //SYSPROC DD DISP=SHR,DSN=FEK.SFEKPROC //ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU //ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU //ISPTLIB DD DISP=SHR,DSN=ISP.SISPTENU //ISPSLIB DD DISP=SHR,DSN=ISP.SISPSENU //ISPPROF DD DISP=(NEW,DELETE,DELETE),UNIT=SYSALLDA, // SPACE=(TRK,(1,1,5)),LRECL=80,RECFM=FB //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSIN DD DUMMY //MYDD DD DISP=SHR,DSN=HLQ1.LLQ1 // DISP=SHR,DSN=HLQ2.LLQ2 DLM2 DLM1 QT
次に、上記のサンプルに示すように、サンプル・ジョブ FEK.#CUST.JCL(FEKAPPCC) をカスタマイズして実行依頼することにより、新しい APPC トランザクションを作成します。通常の (JCL 内で記述されている) カスタマイズのほかに、TPNAME を TPNAME(FEKFTSO2) に変更して、新しい rsed.envvars 内の _FEKFSCMD_TP_NAME_ 定義に合わせる必要もあります。また、MESSAGE_DATA_SET 変数内の名前と、トランザクション JCL の JOB 名を変更する必要があります。
この時点で残っている作業は、新しいポート番号と新しい /etc/rdz/tso2 構成ファイルを使用する RSE 用の新規開始タスクを作成することです。
上記の各アクションの詳細については、この資料の関連するセクションを参照してください。
同じシステム上で Developer for System z の複数のインスタンスをアクティブにしたい場合があります。例えば、アップグレードをテストするときなどです。しかし、TCP/IP ポートなど、一部のリソースは共用できないため、デフォルトが常に適用可能であるとは限りません。この付録の情報を使用して Developer for System z の異なるインスタンスの共存を計画してください。その後、この構成ガイドを使用して、それらのインスタンスをカスタマイズできます。
Developer for System z の特定の部分は、2 つ (以上) のインスタンスで共用が可能ですが、それらのソフトウェア・レベルが同一で、しかも変更点が構成メンバー内に限られている場合を除いて、共用はお勧めできません。Developer for System z には、オーバーラップしない複数のインスタンスを作成するためのカスタマイズの余地が十分に残されており、それらのフィーチャーを使用することを強くお勧めします。
Developer for System z インストール・ディレクトリーをアーカイブおよび復元するための以下のサンプル・コマンドについて詳しくは、「UNIX System Services コマンド解説書」(SA88-8641) を参照してください。
Developer for System z の構成ファイル (およびコード) は、シスプレックス内の複数のシステム間で共用でき、いくつかのガイドラインに従っていれば、各システムが Developer for System z の同一コピーをそれぞれに保持して実行することができます。
限定された一連の環境においては、カスタマイズ可能な部分 (の一部) を除くすべてを共用できます。1 つの例は、オンサイト使用のために非 SSL アクセスを提供し、オフサイト使用のために SSL エンコード通信を提供することです。
アクティブな Developer for System z インストール済み環境の別のインスタンスをセットアップするには、現行セットアップとのオーバーラップを避けるため、異なるデータ・セット、ディレクトリー、およびポートを使用して、異なる部分のカスタマイズ・ステップを再実行します。
上記の SSL サンプルでは、現行 RSE デーモンのセットアップのクローンを作成でき、その後、クローンのセットアップを更新できます。 次に、RSE デーモン始動 JCL のクローンを作成し、新しい TCP/IP ポートと更新した構成ファイルのロケーションを使用してカスタマイズすることができます。MVS カスタマイズ (JES ジョブ・モニターなど) は、SSL インスタンスと非 SSL インスタンスの間で共用できます。結果として、アクションは以下のようになります。
$ cd /etc/rdz $ mkdir /etc/rdz/ssl $ cp rsed.envvars /etc/rdz/ssl $ cp ssl.properties /etc/rdz/ssl $ ls /etc/rdz/ssl/ rsed.envvars ssl.properties $ oedit /etc/rdz/ssl/rsed.envvars -> uncomment and change: -Ddaemon.log=/var/rdz/logs/ssl -> add at the END: # -- NEEDED TO FIND THE REMAINING CONFIGURATION FILES CFG_BASE=/etc/rdz CLASSPATH=.:$CFG_BASE:$CLASSPATH # -- $ oedit /etc/rdz/ssl/ssl.properties -> change: change as needed
上記のコマンドは、変更が必要な Developer for System z 構成ファイルを、新規に作成された ssl ディレクトリーにコピーします。 rsed.envvars 内の daemon.log 変数を更新して、新しいログ・ロケーション (これは、存在しなければ自動的に作成されます) を定義する必要があります。CLASSPATH の更新は、ssl にコピーされなかった構成ファイルを RSE が確実に検出できるようにします。ssl.properties ファイル自体を、必要性に合わせて更新できます。
この時点で残っている作業は、新しいポート番号と新しい /etc/rdz/ssl 構成ファイルを使用する RSE 用の新規開始タスクを作成することです。
上記の各アクションの詳細については、この資料の関連するセクションを参照してください。
コードの変更が関与する場合 (保守、テクニカル・プレビュー、新規リリース)、または変更がかなり複雑な場合は、Developer for System z の別のインストールを実行する必要があります。ここでは、さまざまなインストール間で発生する可能性がある競合点について説明します。
次のリストは、Developer for System z の複数のインスタンス間で異なるものにする必要があるか、そうすることが強く推奨される項目の要約です。
以下で、これらの概要を説明します。
//SYSIN DD * CREATE PROCEDURE SYSPROC.ELAXMRXX ( IN FUNCTION_REQUEST VARCHAR(20) CCSID EBCDIC ... , OUT RETURN_VALUE VARCHAR(255) CCSID EBCDIC ) PARAMETER STYLE GENERAL RESULT SETS 1 LANGUAGE REXX EXTERNAL NAME ELAXMRXX COLLID DSNREXCS WLM ENVIRONMENT ELAXMWDZ PROGRAM TYPE MAIN MODIFIES SQL DATA STAY RESIDENT NO COMMIT ON RETURN NO ASUTIME NO LIMIT SECURITY USER; COMMENT ON PROCEDURE SYSPROC.ELAXMRXX IS 'PLI & COBOL PROCEDURE PROCESSOR (ELAXMRXX), INTERFACE LEVEL 0.01'; GRANT EXECUTE ON PROCEDURE SYSPROC.ELAXMRXX TO PUBLIC; //
ここでは、本製品の以前のリリースと比較したインストールおよび構成上の変更点に重点を置いて説明します。また、このリリースへのマイグレーションに関する一般的なガイドラインも示します。詳細については、本書内の関連するセクションを参照してください。
以前に Developer for System z を使用していた場合は、このバージョンの IBM Developer for System z をインストールする前に、関連するカスタマイズ済みファイルを保存しておくことをお勧めします。
カスタマイズ可能な Developer for system z ファイルは、以下のロケーションにあります。
以前の Developer for system z セットアップでは、他の製品によって所有されている構成ファイルへの変更も文書化されます。
TSO コマンド・サービス用の APPC トランザクション・クラスを定義します。
z/OS UNIX システムのデフォルトを設定します。
IPL 時にサーバーを始動します。
FEK.SFEKLPA を LPA に追加します。
FEK.SFEKAUTH の APF 許可
FEK.SFEKAUTH および FEK.SFEKLOAD を LINKLIST に追加します。
TSO コマンド・サービス用の APPC トランザクションを定義します。
APPC トランザクション・プログラムを TSO パフォーマンス・グループに関連付けます。
DB2 ストアード・プロシージャーのアプリケーション環境を割り当てます。
TSO コマンド・サービス用の APPC トランザクション・クラスを定義します。
z/OS UNIX システムのデフォルトを設定します。
FEK.SFEKLOAD
の APF 許可RSE デーモン・ポートを定義します。
RSE デーモン・サービスを定義します。
TSO コマンド・サーバーのロケーションを定義します。
TSO コマンド・サービス用の APPC トランザクションを定義します。
APPC トランザクション・プログラムを TSO パフォーマンス・グループに関連付けます。
DB2 ストアード・プロシージャーのアプリケーション環境を割り当てます。
TSO コマンド・サービス用の APPC トランザクション・クラスを定義します。
z/OS UNIX システムのデフォルトを設定します。
FEK.SFEKLOAD
の APF 許可RSE デーモン・ポートを定義します。
RSE デーモン・サービスを定義します。
TSO コマンド・サービス用の APPC トランザクションを定義します。
APPC トランザクション・プログラムを TSO パフォーマンス・グループに関連付けます。
DB2 ストアード・プロシージャーのアプリケーション環境を割り当てます。
以下に示すマイグレーションに関する注は、バージョン 7.6.1 に固有です。これらの注は、バージョン 7.6 からのマイグレーションに有効であるか、またはバージョン 7.6 のマイグレーションに関する注への追加です。
表 47 は、バージョン 7.6 でカスタマイズされるファイルの概要を示しています。Developer for System z のサンプル・ライブラリー FEK.SFEKSAMP、FEK.SFEKSAMV、および /usr/lpp/rdz/samples/ は、ここにリストしたものより多くのカスタマイズ可能なメンバーが付属する場合があることに注意してください (サンプルの CARMA ソース・コードおよびそれらをコンパイルするジョブなど)。
メンバー/ファイル | デフォルト・ロケーション | 目的 | マイグレーションの注 |
---|---|---|---|
FEKSETUP |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
データ・セットおよびディレクトリーを作成し、カスタマイズ可能ファイルのデータを取り込むための JCL | 新しいカスタマイズ可能なメンバーを追加するために更新された |
JMON |
FEK.SFEKSAMP(FEJJJCL) [FEK.#CUST.PROCLIB] |
JES ジョブ・モニター用の JCL | LE オプションを変更するために追加されたオプション |
FEJJJCL |
FEK.SFEKSAMP [FEK.#CUST.PROCLIB(JMON)] |
JMON メンバーの出荷名 | JMON メンバーを参照 |
RSED |
FEK.SFEKSAMP(FEKRSED) [FEK.#CUST.PROCLIB] |
RSE デーモンの JCL | なし |
FEKRSED |
FEK.SFEKSAMP [FEK.#CUST.PROCLIB(RSED)] |
RSED メンバーの出荷名 | RSED メンバーを参照 |
LOCKD |
FEK.SFEKSAMP(FEKLOCKD) [FEK.#CUST.PROCLIB] |
ロック・デーモン用の JCL | 新規。カスタマイズが必要 |
FEKLOCKD |
FEK.SFEKSAMP [FEK.#CUST.PROCLIB(LOCKD)] |
LOCKD メンバーの出荷名 | LOCKD メンバーを参照 |
ELAXF* |
FEK.SFEKSAMP [FEK.#CUST.PROCLIB] |
リモート・プロジェクト・ビルドなどのための JCL | なし |
FEKRACF |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
セキュリティー定義の JCL | マイナー更新 |
FEJJCNFG |
FEK.SFEKSAMP [FEK.#CUST.PARMLIB] |
JES ジョブ・モニター構成ファイル | オプションの新規ディレクティブが追加された |
FEJTSO |
FEK.SFEKSAMP [FEK.#CUST.CNTL] |
TSO 実行依頼用の JCL | なし |
CRA$VMSG |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
CARMA メッセージ VSAM を作成するための JCL | なし |
CRA$VDEF |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
CARMA 構成 VSAM を作成するための JCL | なし |
CRA$VSTR |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
CARMA カスタム情報 VSAM を作成するための JCL | なし |
CRASUBMT |
FEK.SFEKSAMP [FEK.#CUST.CNTL] |
CARMA バッチ始動 CLIST | なし |
CRASUBCA |
FEK.SFEKSAMP [FEK.#CUST.CNTL] |
CA Endevor® SCM RAM 用の CARMA バッチ始動 CLIST | 新規、カスタマイズはオプション |
CRASHOW |
FEK.SFEKSAMP [FEK.#CUST.PARMLIB] |
CA Endevor® SCM RAM 用の CARMA 構成 | 新規、カスタマイズはオプション |
CRATMAP |
FEK.SFEKSAMP [FEK.#CUST.PARMLIB] |
CA Endevor® SCM RAM 用の CARMA 構成 | 新規、カスタマイズはオプション |
CRANDVRA | FEK.SFEKPROC | CA Endevor® SCM RAM 用の CARMA 割り振り REXX | 新規、カスタマイズはオプション |
CRAISPRX |
FEK.SFEKSAMP [FEK.#CUST.CNTL] |
TSO/ISPF クライアント・ゲートウェイを使用した CARMA 用のサンプル DD 割り振り exec | なし |
CRA#VSLM |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
SCLM RAM のメッセージ VSAM を作成するための JCL | なし |
CRA#ASLM |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
SCLM RAM のデータ・セットを作成するための JCL | なし |
CRA#VPDS |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
PDS RAM のメッセージ VSAM を作成するための JCL | なし |
CRA#CRAM |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
スケルトン RAM をコンパイルするための JCL | なし |
CRA#VCAD |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
CA Endevor® SCM RAM 用に CARMA 構成 VSAM を作成するための JCL | 新規、カスタマイズはオプション |
CRA#VCAS |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
CA Endevor® SCM RAM 用に CARMA カスタム情報 VSAM を作成するための JCL | 新規、カスタマイズはオプション |
CRA#UADD |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
RAM 定義をマージするための JCL | 新規、カスタマイズはオプション |
CRA#UQRY |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
RAM 定義を抽出するための JCL | 新規、カスタマイズはオプション |
CRAXJCL |
FEK.SFEKSAMP [FEK.#CUST.ASM] |
IRXJCL 置換用のサンプル・ソース・コード | なし |
CRA#CIRX |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
CRAXJCL をコンパイルするための JCL | なし |
ADNCSDRS |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
RESTful CRD サーバーを主 CICS 領域に対して定義するための JCL | 新規、カスタマイズはオプション |
ADNCSDTX |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
代替トランザクション ID を CICS 領域に対して定義するための JCL | 新規、カスタマイズはオプション |
ADNTXNC |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
代替トランザクション ID を作成するための JCL | 新規、カスタマイズはオプション |
ADNMSGHC |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
ADNMSGHS をコンパイルするための JCL | 名前変更。旧 ADNCMSGH |
ADNMSGHS |
FEK.SFEKSAMP [FEK.#CUST.COBOL] |
パイプライン・メッセージ・ハンドラー用のサンプル・ソース・コード | 名前変更。旧 ADNSMSGH |
ADNVCRD |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
CRD リポジトリーを作成するための JCL | 名前変更。旧 ADNVSAM |
ADNCSDWS |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
Web サービス CRD サーバーを主 CICS 領域に対して定義するための JCL | 名前変更。旧 ADNPCCSD |
ADNCSDAR |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
CRD サーバーを非主 CICS 領域に対して定義するための JCL | 名前変更。旧 ADNARCSD |
ADNJSPAU |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
CRD のデフォルトを更新するための JCL | RESTful サービス用の定義が追加されたため、カスタマイズを再実行する必要があります。 |
ADNVMFST |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
マニフェスト・リポジトリーを作成し、定義するための JCL | 名前変更。旧 ADNMFEST |
ELAXMSAM |
FEK.SFEKSAMP [FEK.#CUST.PROCLIB] |
PL/I および COBOL ストアード・プロシージャー・ビルダー用の WLM アドレス・スペースの JCL プロシージャー | なし |
ELAXMJCL |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
PL/I および COBOL ストアード・プロシージャー・ビルダーを DB2 に対して定義するための JCL | なし |
FEKAPPCC |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
APPC トランザクションを作成するための JCL | なし |
FEKAPPCL |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
APPC トランザクションを表示するための JCL | なし |
FEKAPPCX |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
APPC トランザクションを削除するための JCL | なし |
FEKLOGS |
FEK.SFEKSAMP [FEK.#CUST.JCL] |
ログ・ファイルを収集するための JCL | 新規、カスタマイズはオプション |
rsed.envvars |
/usr/lpp/rdz/samples/ [/etc/rdz/] |
RSE 環境変数 | 古いコピーは、このコピーに置き換える必要がある (カスタマイズの再実行が必要) |
ISPF.conf |
/usr/lpp/rdz/samples/ [/etc/rdz/] |
TSO/ISPF クライアント・ゲートウェイ構成ファイル | SCLMDT 用に SYSPROC に追加された ISP.SISPCLIB |
CRASRV.properties |
/usr/lpp/rdz/samples/ [/etc/rdz/] |
CARMA 構成ファイル | なし |
crastart.conf |
/usr/lpp/rdz/samples/ [/etc/rdz/] |
CRASTART を使用するための CARMA 構成ファイル | なし |
crastart.endevor.conf |
/usr/lpp/rdz/samples/ [/etc/rdz/] |
CA Endevor® SCM RAM 用に CRASTART を使用するための CARMA 構成ファイル | 新規、カスタマイズはオプション |
ssl.properties |
/usr/lpp/rdz/samples/ [/etc/rdz/] |
RSE SSL 構成ファイル | オプションの新規ディレクティブが追加された |
rsecomm.properties |
/usr/lpp/rdz/samples/ [/etc/rdz/] |
RSE トレース構成ファイル | なし |
propertiescfg.properties |
/usr/lpp/rdz/samples/ [/etc/rdz/] |
ホスト・ベース・プロパティー・グループ構成ファイル | なし |
projectcfg.properties |
/usr/lpp/rdz/samples/ [/etc/rdz/] |
ホスト・ベース・プロジェクト構成ファイル | なし |
FMIEXT.properties |
/usr/lpp/rdz/samples/ [/etc/rdz/] |
File Manager Integration 構成ファイル | 古いコピーは、このコピーに置き換える必要がある (カスタマイズの再実行が必要) |
uchars.settings |
/usr/lpp/rdz/samples/ [/etc/rdz/] |
編集不可能文字構成ファイル | なし |
表 48 は、バージョン 7.5 でカスタマイズされるファイルの概要を示しています。Developer for System z のサンプル・ライブラリー FEK.SFEKSAMP、FEK.SFEKSAMV、および /usr/lpp/rdz/samples/ は、ここにリストしたものより多くのカスタマイズ可能なメンバーが付属する場合があることに注意してください (サンプルの CARMA ソース・コードおよびそれらをコンパイルするジョブなど)。
メンバー/ファイル | デフォルト・ロケーション | 目的 | マイグレーションの注 |
---|---|---|---|
FEKSETUP | FEK.SFEKSAMP
[FEK.#CUST.JCL] |
データ・セットおよびディレクトリーを作成し、カスタマイズ可能ファイルのデータを取り込むための JCL | 新規。カスタマイズが必要 |
JMON | FEK.SFEKSAMP(FEJJJCL)
[FEK.#CUST.PROCLIB] |
JES ジョブ・モニター用の JCL | STEPLIB が SFEKAUTH に変更された |
RSED | FEK.SFEKSAMP(FEKRSED)
[FEK.#CUST.PROCLIB] |
RSE デーモンの JCL | 新規。カスタマイズが必要 |
ELAXF* | FEK.SFEKSAMP
[FEK.#CUST.PROCLIB] |
リモート・プロジェクト・ビルドなどのための JCL | ELAXFTSO、 ELAXFCP1、 および ELAXFPP1 は新規 |
FEKRACF | FEK.SFEKSAMP
[FEK.#CUST.JCL] |
セキュリティー定義の JCL | 新規、必須 |
FEJJCNFG | FEK.SFEKSAMP
[FEK.#CUST.PARMLIB] |
JES ジョブ・モニター構成ファイル |
|
FEJTSO | FEK.SFEKSAMP
[FEK.#CUST.CNTL] |
TSO 実行依頼用の JCL | ジョブ名を変数にできるようになった |
CRAISPRX | FEK.SFEKSAMP
[FEK.#CUST.CNTL] |
TSO/ISPF クライアント・ゲートウェイを使用した CARMA 用のサンプル DD 割り振り exec | 新規、カスタマイズはオプション |
CRAXJCL | FEK.SFEKSAMP
[FEK.#CUST.ASM] |
IRXJCL 置換用のサンプル・ソース・コード | 新規、カスタマイズはオプション |
CRA#CIRX | FEK.SFEKSAMP
[FEK.#CUST.JCL] |
CRAXJCL をコンパイルするための JCL | 新規、カスタマイズはオプション |
ADNSMSGH | FEK.SFEKSAMP
[FEK.#CUST.COBOL] |
パイプライン・メッセージ・ハンドラー用のサンプル・ソース・コード | 古いコピーは、このコピーに置き換える必要がある (カスタマイズの再実行が必要) |
ADNPCCSD | FEK.SFEKSAMP
[FEK.#CUST.JCL] |
CRD サーバーを主 CICS 領域に対して定義するための JCL | 古いコピーは、このコピーに置き換える必要がある (カスタマイズの再実行が必要) |
ADNJSPAU | FEK.SFEKSAMP
[FEK.#CUST.JCL] |
CRD のデフォルトを更新するための JCL | 新規、カスタマイズはオプション |
ADNMFEST | FEK.SFEKSAMP
[FEK.#CUST.JCL] |
マニフェスト・リポジトリーを作成し、定義するための JCL | 新規、カスタマイズはオプション |
rsed.envvars | /usr/lpp/rdz/samples/
[/etc/rdz/] |
RSE 環境変数 | 古いコピーは、このコピーに置き換える必要がある (カスタマイズの再実行が必要) |
ISPF.conf | /usr/lpp/rdz/samples/
[/etc/rdz/] |
TSO/ISPF クライアント・ゲートウェイ構成ファイル | v7.1 で SCLMDT に添付されていた ISPF.conf と同じもの |
CRASRV.properties | /usr/lpp/rdz/samples/
[/etc/rdz/] |
CARMA 構成ファイル |
|
crastart.conf | /usr/lpp/rdz/samples/
[/etc/rdz/] |
CRASTART を使用するための CARMA 構成ファイル | 新規、カスタマイズはオプション |
FMIEXT.properties | /usr/lpp/rdz/samples/
[/etc/rdz/] |
File Manager Integration 構成ファイル |
|
uchars.settings | /usr/lpp/rdz/samples/
[/etc/rdz/] |
編集不可能文字構成ファイル | 新規、カスタマイズはオプション |
表 23 は、バージョン 7.1 でカスタマイズされるファイルの概要を示しています。CARMA および Developer for System z のサンプル・ライブラリー CRA.SCRASAMP、FEK.SFEKSAMP、および /usr/lpp/wd4z/rse/lib/ は、ここにリストしたものより多くのカスタマイズ可能なメンバーが付属する場合があることに注意してください (サンプルの CARMA ソース・コードおよびそれらをコンパイルするジョブなど)。
メンバー/ファイル | デフォルト・ロケーション | 目的 | マイグレーションの注 |
---|---|---|---|
ELAXF* | FEK.SFEKSAMP | リモート・プロジェクト・ビルドおよびその他のジョブ用の JCL | ELAXFADT は新規 |
CRA$VMSG | CRA.SCRASAMP | CARMA メッセージ VSAM を作成するための JCL |
|
CRA$VDEF | CRA.SCRASAMP | CARMA 構成 VSAM を作成するための JCL |
|
CRA$VSTR | CRA.SCRASAMP | CARMA カスタム情報 VSAM を作成するための JCL | 名前変更。旧 CRASREPR |
CRASUBMT | CRA.SCRASAMP | CARMA バッチ始動 CLIST | DD CARMALOG を追加 |
CRA#VSLM | CRA.SCRASAMP | SCLM RAM のメッセージ VSAM を作成するための JCL | 名前変更。旧 CRALREPR |
CRA#ASLM | CRA.SCRASAMP | SCLM RAM のデータ・セットを作成するための JCL | 名前変更。旧 CRASALX |
CRA#VPDS | CRA.SCRASAMP | PDS RAM のメッセージ VSAM を作成するための JCL | 名前変更。旧 CRATREPR |
CRA#CRAM | CRA.SCRASAMP | スケルトン RAM をコンパイルするための JCL | 名前変更。旧 CRARAMCM |
FEKAPPCC | FEK.SFEKSAMP | APPC トランザクションを作成するための JCL | ISPF NEST サポートを活用 |
rsed.envvars |
/usr/lpp/wd4z/rse/lib/ [/etc/wd4z/] |
RSE 環境変数 | 古いコピーは、このコピーに置き換える必要がある (カスタマイズの再実行が必要) |
FMIEXT.properties |
/usr/lpp/wd4z/rse/lib/ [/etc/wd4z/] |
File Manager Integration 構成ファイル | 新規。使用する場合はカスタマイズが必要 |
この付録は、Secure Socket Layer (SSL) のセットアップ時、または既存のセットアップの検査時や変更時に起きる可能性があるいくつかの一般的な問題について、支援を提供するためのものです。また、この付録には、X.509 証明書で自分自身を認証するユーザーをサポートするためのサンプルのセットアップも記載されています。
セキュアな通信は、正しい通信パートナーと通信できるようにし、他の人間がデータを傍受して読み取ることが困難な方法で情報を伝送することを意味します。SSL は、TCP/IP ネットワーク内でその機能を提供します。SSL では、デジタル証明書を使用して自分自身を識別し、公開鍵プロトコルを使用して通信を暗号化します。SSL で使用されるデジタル証明書および公開鍵プロトコルの詳細については、「Security Server RACF セキュリティー管理者のガイド」(SA88-8613) を参照してください。
Developer for System z 用に SSL 通信をセットアップするために必要なアクションは、厳密な必要性、使用される RSE 通信方式、およびサイトで既に使用可能なものに応じてサイトごとに異なります。
この付録では、現行の RSE 定義のクローンを作成して、SSL を使用する 2 番目の RSE デーモン接続を使用できるようにします。また、RSE 接続のさまざまな部分で使用される独自のセキュリティー証明書も作成します。
この付録では、次のような一律の命名規則が使用されています。
以下に述べるタスクの一部では、ユーザーが z/OS UNIX 内でアクティブであることを想定しています。そのためには、TSO コマンド OMVS を発行します。TSO に戻るには、exit コマンドを使用します。
SSL で使用される ID 証明書と暗号化/暗号化解除鍵は、鍵ファイルに保管されます。この鍵ファイルには、アプリケーション・タイプに応じて、さまざまな実装が存在します。
しかし、すべての実装が同じ原則に従います。あるコマンドが、鍵ペア (公開鍵とそれに関連付けられた秘密鍵) を生成します。その後、コマンドは公開鍵を X.509 自己署名証明書の中に包み込み、この証明書は単一要素の証明書チェーンとして保管されます。この証明書チェーンと秘密鍵が (別名によって識別される) 1 つの項目として、鍵ファイルに保管されます。
RSE デーモンは System SSL アプリケーションであり、鍵データベース・ファイルを使用します。この鍵データベースは、gskkyman によって作成された物理ファイルとするか、SAF 準拠のセキュリティー・ソフトウェア (例えば RACF) など) によって管理される鍵リングとすることができます。RSE サーバー (これはデーモンによって始動されます) は Java SSL アプリケーションであり、keytool によって作成される鍵ストア・ファイルを使用するか、セキュリティー・ソフトウェアによって管理される鍵リングを使用します。
証明書ストレージ | 作成者および管理者 | RSE デーモン | RSE サーバー |
---|---|---|---|
鍵リング | SAF 準拠のセキュリティー製品 | サポート | サポート |
鍵データベース | z/OS UNIX の gskkyman | サポート | / |
鍵ストア | Java の keytool | / | サポート |
SSL を通じて接続するためには、鍵ストアと鍵データベースの両方が、z/OS UNIX ファイルとして、または SAF 準拠の鍵リングとして必要です。
STEPLIB=$STEPLIB:SYS1.SIEALNKE
ただし、以下の点に注意してください。
RACF およびデジタル証明書については、「Security Server RACF セキュリティー管理者のガイド」(SA88-8613) を参照してください。gskkyman の資料は、「System SSL プログラミング」(SD88-6252) で、keytool の資料は、http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html で入手できます。
RSE デーモン鍵データベースの作成に gskkyman を使用し、RSE サーバー鍵ストアの作成に keytool を使用する場合は、このステップを実行しないでください。
RACDCERT コマンドは、秘密鍵と証明書を RACF にインストールし、保守します。RACF は、複数の秘密鍵と証明書を 1 つのグループとして管理できます。それらのグループは、鍵リングと呼ばれます。
RACDCERT コマンドの詳細については、「Security Server RACF コマンド言語解説書」(SA88-8617) を参照してください。
RDEFINE FACILITY IRR.DIGTCERT.LIST UACC(NONE) RDEFINE FACILITY IRR.DIGTCERT.LISTRING UACC(NONE) PERMIT IRR.DIGTCERT.LIST CLASS(FACILITY) ACCESS(READ) ID(stcrse) PERMIT IRR.DIGTCERT.LISTRING CLASS(FACILITY) ACCESS(READ) ID(stcrse) SETROPTS RACLIST(FACILITY) REFRESH RACDCERT ID(stcrse) GENCERT SUBJECTSDN(CN('rdz rse ssl') + OU('rdz') O('IBM') L('Raleigh') SP('NC') C('US')) + NOTAFTER(DATE(2017-05-21)) WITHLABEL('rdzrse') KEYUSAGE(HANDSHAKE) RACDCERT ID(stcrse) ADDRING(rdzssl.racf) RACDCERT ID(stcrse) CONNECT(LABEL('rdzrse') RING(rdzssl.racf) + DEFAULT USAGE(PERSONAL))
上記のサンプルは始めに、必要なプロファイルを作成し、ユーザー ID STCRSE に、そのユーザー ID が所有する証明書と鍵リングへのアクセスを許可します。使用するユーザー ID は、SSL RSE デーモンを実行するために使用したユーザー ID に一致する必要があります。次のステップは、新しい自己署名証明書を rdzrse というラベルで作成することです。パスワードは必要ありません。この証明書は、その後、新規に作成された鍵リング (rdzssl.racf) に追加されます。証明書の場合と同様に、鍵リングにパスワードは必要ありません。
結果は、以下の list オプションを使用して検査できます。
RACDCERT ID(stcrse) LIST Digital certificate information for user STCRSE: Label: rdzrse Certificate ID: 2QjW1OXi0sXZ1aaEqZmihUBA Status: TRUST Start Date: 2007/05/24 00:00:00 End Date: 2017/05/21 23:59:59 Serial Number: >00< Issuer's Name: >CN=rdz rse ssl.OU=rdz.O=IBM.L=Raleigh.SP=NC.C=US< Subject's Name: >CN=rdz rse ssl.OU=rdz.O=IBM.L=Raleigh.SP=NC.C=US< Private Key Type: Non-ICSF Private Key Size: 1024 Ring Associations: Ring Owner: STCRSE Ring: >rdzssl.racf<
証明書には、自己署名付きの証明書と認証局 (CA) によって署名された証明書があります。CA によって署名された証明書は、その証明書の所有者が本人に間違いないことを CA が保証することを意味します。署名プロセスでは、CA 資格情報 (証明書でもある) がユーザーの証明書に追加され、複数要素の証明書チェーンが作成されます。
CA によって署名された証明書を使用した場合は、Developer for System z クライアントによる信頼性検証のための質問を回避できます (クライアントがすでにその CA を信頼している場合)。
CA 署名付き証明書を作成および使用するには、以下のステップを実行します。
RACDCERT ID(stcrse) GENCERT WITHLABEL('rdzrse') . . .
RACDCERT ID(stcrse) GENREQ (LABEL('rdzrse')) DSN(dsn)
RACDCERT CERTAUTH LIST
RACDCERT CERTAUTH ALTER(LABEL('CA cert')) TRUST
または、CA 証明書をデータベースに追加します。
RACDCERT CERTAUTH ADD(dsn) WITHLABEL('CA cert') TRUST
RACDCERT ID(stcrse) ADD(dsn) WTIHLABEL('rdzrse') TRUST
RACDCERT ID(stcrse) ADDRING(rdzssl.racf)
RACDCERT ID(stcrse) CONNECT(ID(stcrse) LABEL('rdzrse') RING(rdzssl.racf))
RACDCERT ID(stcrse) CONNECT(CERTAUTH LABEL('CA cert') RING(rdzssl.racf))
このステップでは、SSL セットアップを既存のセットアップと並行して稼働できるように、RSE 構成ファイルの新しいインスタンスを作成します。以下のサンプル・コマンドでは、構成ファイルが /etc/rdz/ に入っていることを想定しています。これは、カスタマイズのセットアップで使用されるデフォルトのロケーションです。
$ cd /etc/rdz $ mkdir ssl $ cp rsed.envvars ssl $ cp ssl.properties ssl $ ls ssl rsed.envvars ssl.properties
上記の z/OS UNIX コマンドは ssl というサブディレクトリーを作成し、そこに変更が必要な構成ファイルを取り込みます。その他の構成ファイル、インストール・ディレクトリー、および MVS コンポーネントは、SSL 固有ではないので、共用できます。
既存の大部分の構成ファイルを再利用することにより、SSL のセットアップに実際に必要な変更に集中でき、RSE セットアップ全体を再度実行しなくても済みます。(例えば、ISPF.conf の新しいロケーションを定義せずに済みます。)
これまでのところ、定義は現行のセットアップの正確なコピーであり、これは、新しい RSE デーモンのログが現行のサーバー・ログ・ファイルと重なることを意味します。また、RSE は、ssl ディレクトリーにコピーされなかった構成ファイルがどこにあるかも知っている必要があります。 どちらの問題も、rsed.envvars に小さな変更を加えることによって対処できます。
$ oedit /etc/rdz/ssl/rsed.envvars -> uncomment and change: -Ddaemon.log=/var/rdz/logs/ssl -> add at the END: # -- NEEDED TO FIND THE REMAINING CONFIGURATION FILES CFG_BASE=/etc/rdz CLASSPATH=.:$CFG_BASE:$CLASSPATH # --
上記の変更では、新しいログ・ロケーションが定義されます (そのログ・ロケーションは、存在しない場合、RSE デーモンによって作成されます)。また、これらの変更では、SSL RSE プロセスが最初に現行ディレクトリー (/etc/rdz/ssl) で構成ファイルを検索し、その後に元のディレクトリー (/etc/rdz) を検索するように CLASSPATH も更新されます。
ssl.properties を更新することにより、SSL 暗号化通信を使用して開始するように RSE に指示します。
$ oedit /etc/rdz/ssl/ssl.properties -> change: enable_ssl=true -> uncomment and change: daemon_keydb_file=rdzssl.racf -> uncomment and change: daemon_key_label=rdzrse -> uncomment and change: server_keystore_file=rdzssl.racf -> uncomment and change: server_keystore_label=rdzrse -> uncomment and change: server_keystore_type=JCERACFKS
上記の変更は SSL を使用可能に設定し、RSE デーモンおよび RSE サーバーに、(共用の) 証明書が鍵リング rdzssl.racf 内のラベル rdzrse の下に保管されることを通知します。JCERACFKS キーワードは、SAF 準拠の鍵リングが鍵ストアとして使用されることを RSE サーバーに通知します。
前に述べたように、ここでは SSL を使用する第 2 の接続を作成します。これは、新しい RSE デーモンを作成することを意味します。RSE デーモンは、開始タスクまたはユーザー・ジョブとすることができます。ここでは、初期 (テスト) セットアップにユーザー・ジョブ方式を使用します。以下の説明では、サンプル JCL が FEK.#CUST.PROCLIB(RSED) に入っていることを想定しています。これは、カスタマイズのセットアップ で使用されるデフォルトのロケーションです。
//RSEDSSL JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),USER=STCRSE //* //* RSE DAEMON - SSL //* //RSED PROC IVP='', * 'IVP' to do an IVP test // PORT=4047, // HOME='/usr/lpp/rdz', // CNFG='/etc/rdz/ssl' //* //RSE EXEC PGM=BPXBATSL,REGION=0M,TIME=NOLIMIT, // PARM='PGM &HOME./bin/rsed.sh &IVP &PORT &CNFG' //STDOUT DD SYSOUT=* //STDERR DD SYSOUT=* //PEND //* //RSED EXEC RSED //*
SSL ホスト構成が完了し、前に作成したジョブ FEK.#CUST.PROCLIB(RSEDSSL) を実行依頼することにより、SSL 用の RSE デーモンを始動できます。
この時点で、Developer for System z クライアントと接続することにより、新しいセットアップをテストできます。SSL で使用するために新しい構成を (既存の構成のクローン作成によって) 作成してあるので、RSE デーモン用のポート 4047 を使用して、クライアント上に新しい接続を定義する必要があります。
接続と同時に、ホストとクライアントはセキュア・パスをセットアップするために何らかのハンドシェークを開始します。このハンドシェークの一環として、証明書の交換があります。Developer for System z クライアントは、ホスト証明書またはそれに署名した CA を認識できない場合、ユーザーにその証明書が信頼できるかどうかを尋ねるプロンプトを出します。
「完了」ボタンをクリックすると、この証明書を信頼できるものとして受け入れることができ、その後、接続の初期化が続行されます。
証明書がクライアントに既知となった後、このダイアログが再び表示されることはありません。 信頼できる証明書のリストは、「ウィンドウ」>「設定...」>「リモート・システム」>「SSL」を選択することによって管理できます。その場合、次のダイアログが表示されます。
SSL 通信が失敗した場合、クライアントはエラー・メッセージを返します。 詳細な情報は、RSE デーモンおよびスレッド・プールのロギング、および RSE ユーザー・ロギングの説明のように、さまざまなサーバーおよびユーザー・ログ・ファイルから入手できます。
RSE デーモンは、X.509 証明書で自分自身を認証するユーザーをサポートしています。この機能の場合、SSL 暗号化通信の使用は前提条件です。この機能は、SSL で使用される証明書でのホスト認証を拡張したものだからです。
ユーザーの証明書認証を行うには、X.509 証明書を使用したクライアント認証の説明にあるように、複数の方法があります。以下の手順は、セキュリティー・ソフトウェアで HostIdMappings 証明書拡張を使用して証明書を認証する方式をサポートするために必要なセットアップを文書化したものです。
RACDCERT CERTAUTH ALTER(LABEL('HighTrust CA')) HIGHTRUST
RACDCERT ID(stcrse) CONNECT(CERTAUTH LABEL('HighTrust CA') + RING(rdzssl.racf))
これで、CA 証明書のためのセキュリティー・ソフトウェアのセットアップは完了しました。
RDEFINE SERVAUTH IRR.HOST.CDFMVS08.RALEIGH.IBM.COM UACC(NONE)
PERMIT IRR.HOST.CDFMVS08.RALEIGH.IBM.COM CLASS(SERVAUTH) + ACCESS(READ) ID(stcrse)
SETROPTS CLASSACT(SERVAUTH) RACLIST(SERVAUTH) or SETROPTS RACLIST(SERVAUTH) REFRESH
これで、HostIdMappings 拡張のためのセキュリティー・ソフトウェアのセットアップは完了しました。
RSE デーモンの鍵データベースに SAF 準拠の鍵リングを使用する場合は、このステップを実行しないでください。
gskkyman は z/OS UNIX シェル・ベースのメニュー方式プログラムであり、秘密鍵、証明書要求、および証明書が入っている z/OS UNIX ファイルを作成し、それにデータを取り込み、管理します。この z/OS UNIX ファイルは鍵データベースと呼ばれます。
PATH=$PATH:/usr/lpp/gskssl/bin export NLSPATH=/usr/lpp/gskssl/lib/nls/msg/En_US.IBM-1047/%N:$NLSPATH export STEPLIB=$STEPLIB:SYS1.SIEALNKE
$ cd /etc/rdz/ssl $ gskkyman Database Menu 1 - Create new database Enter option number: 1 Enter key database name (press ENTER to return to menu): rdzssl.kdb Enter database password (press ENTER to return to menu): rsessl Re-enter database password: rsessl Enter password expiration in days (press ENTER for no expiration): Enter database record length (press ENTER to use 2500): Key database /etc/rdz/ssl/rdzssl.kdb created. Press ENTER to continue. Key Management Menu 6 - Create a self-signed certificate Enter option number (press ENTER to return to previous menu): 6 Certificate Type 5 - User or server certificate with 1024-bit RSA key Select certificate type (press ENTER to return to menu): 5 Enter label (press ENTER to return to menu): rdzrse Enter subject name for certificate Common name (required): rdz rse ssl Organizational unit (optional): rdz Organization (required): IBM City/Locality (optional): Raleigh State/Province (optional): NC Country/Region (2 characters - required): US Enter number of days certificate will be valid (default 365): 3650 Enter 1 to specify subject alternate names or 0 to continue: 0 Please wait ..... Certificate created. Press ENTER to continue. Key Management Menu 0 - Exit program Enter option number (press ENTER to return to previous menu): 0 $ ls -l rdzssl.* total 152 -rw------- 1 IBMUSER SYS1 35080 May 24 14:24 rdzssl.kdb -rw------- 1 IBMUSER SYS1 80 May 24 14:24 rdzssl.rdb $ chmod 644 rdzssl.* $ ls -l rdzssl.* -rw-r--r-- 1 IBMUSER SYS1 35080 May 24 14:24 rdzssl.kdb -rw-r--r-- 1 IBMUSER SYS1 80 May 24 14:24 rdzssl.rdb
上記のサンプルは始めに、rdzssl.kdb という鍵データベースを、パスワード rsessl を使用して作成します。データベースの作成後、約 10 年間 (うるう日はカウントしません) 有効な新しい自己署名証明書を作成することにより、データベースにデータが取り込まれます。証明書は、rdzrse というラベルの下に、鍵データベースに使用されたのと同じパスワード (rsessl) を使用して保管されます (これは RSE の必要条件です)。
gskkyman は、鍵データベースに (非常にセキュアな) 600 許可ビット・マスク (所有者だけがアクセスできる) を割り振ります。 デーモンが鍵データベースの作成者と同じユーザー ID を使用している場合を除き、アクセス権限の設定をもっと制限の少ないものにする必要があります。chmod コマンドには、644 (所有者は読み取り/書き込み権限を持ち、全員が読み取り権限を持つ) のマスクを使用できます。
結果を検査するには、以下のように、「Manage keys and certificates」サブメニューで 「Show certificate information」オプションを選択します。
$ gskkyman Database Menu 2 - Open database Enter option number: 2 Enter key database name (press ENTER to return to menu): rdzssl.kdb Enter database password (press ENTER to return to menu): rsessl Key Management Menu 1 - Manage keys and certificates Enter option number (press ENTER to return to previous menu): 1 Key and Certificate List 1 - rdzrse Enter label number (ENTER to return to selection menu, p for previous list): 1 Key and Certificate Menu 1 - Show certificate information Enter option number (press ENTER to return to previous menu): 1 Certificate Information Label: rdzrse Record ID: 14 Issuer Record ID: 14 Trusted: Yes Version: 3 Serial number: 45356379000ac997 Issuer name: rdz rse ssl rdz IBM Raleigh NC US Subject name: rdz rse ssl rdz IBM Raleigh NC US Effective date: 2007/05/24 Expiration date: 2017/05/21 Public key algorithm: rsaEncryption Public key size: 1024 Signature algorithm: sha1WithRsaEncryption Issuer unique ID: None Subject unique ID: None Number of extensions: 3 Enter 1 to display extensions, 0 to return to menu: 0 Key and Certificate Menu 0 - Exit program Enter option number (press ENTER to return to previous menu): 0
次の ssl.properties のサンプルは、daemon_* ディレクティブが、前に示した SAF 鍵リングのサンプルと異なることを示しています。
$ oedit /etc/rdz/ssl/ssl.properties -> change: enable_ssl=true -> uncomment and change: daemon_keydb_file=rdzssl.kdb -> uncomment and change: daemon_keydb_password=rsessl -> uncomment and change: daemon_key_label=rdzrse -> uncomment and change: server_keystore_file=rdzssl.racf -> uncomment and change: server_keystore_label=rdzrse -> uncomment and change: server_keystore_type=JCERACFKS
上記の変更は SSL を使用可能に設定し、RSE デーモンに、パスワード rsessl を持つ鍵データベース rdzssl.kdb 内のラベル rdzrse の下に証明書が保管されることを通知します。RSE サーバーは、依然として SAF 準拠の鍵リングを使用しています。
RSE サーバーの鍵ストアに SAF 準拠の鍵リングを使用する場合は、このステップを実行しないでください。
「keytool -genkey」は、秘密鍵ペアとそれに適合する自己署名証明書を生成します。それらは、(別名によって識別される) 1 つの項目として (新しい) 鍵ストア・ファイルに保管されます。
すべての情報を 1 つのパラメーターとして渡すことができますが、コマンド行の長さに制限があるため、以下のように何らかの対話性が必要になります。
$ cd /etc/rdz/ssl $ keytool -genkey -alias rdzrse -validity 3650 -keystore rdzssl.jks -storepass rsessl -keypass rsessl What is your first and last name? [Unknown]: rdz rse ssl What is the name of your organizational unit? [Unknown]: rdz What is the name of your organization? [Unknown]: IBM What is the name of your City or Locality? [Unknown]: Raleigh What is the name of your State or Province? [Unknown]: NC What is the two-letter country code for this unit? [Unknown]: US Is CN=rdz rse ssl, OU=rdz, O=IBM, L=Raleigh, ST=NC, C=US correct? (type "yes" or "no") [no]: yes $ ls -l rdzssl.* -rw-r--r-- 1 IBMUSER SYS1 1224 May 24 14:17 rdzssl.jks
上記の方法で作成した自己署名証明書は、約 10 年間有効です (うるう日はカウントしません) 。これは、別名 rdzrse を使用して /etc/rdz/ssl/rdzssl.jks に保管されます。そのパスワード (rsessl) は鍵ストア・パスワードと同一であり、これは RSE の必要条件です。
結果は、以下のように -list オプションを使用して検査できます。
$ keytool -list -alias rdzrse -keystore rdzssl.jks -storepass rsessl -v Alias name: rdzrse Creation date: May 24, 2007 Entry type: keyEntry Certificate chain length: 1 Certificate 1¨: Owner: CN=rdz rse ssl, OU=rdz, O=IBM, L=Raleigh, ST=NC, C=US Issuer: CN=rdz rse ssl, OU=rdz, O=IBM, L=Raleigh, ST=NC, C=US Serial number: 46562b2b Valid from: 5/24/07 2:17 PM until: 5/21/17 2:17 PM Certificate fingerprints: MD5: 9D:6D:F1:97:1E:AD:5D:B1:F7:14:16:4D:9B:1D:28:80 SHA1: B5:E2:31:F5:B0:E8:9D:01:AD:2D:E6:82:4A:E0:B1:5E:12:CB:10:1C
次の ssl.properties のサンプルは、server_* ディレクティブが、前に示した SAF 鍵リングのサンプルと異なることを示しています。
$ oedit /etc/rdz/ssl/ssl.properties -> change: enable_ssl=true -> uncomment and change: daemon_keydb_file=rdzssl.racf -> uncomment and change: daemon_key_label=rdzrse -> uncomment and change: server_keystore_file=rdzssl.jks -> uncomment and change: server_keystore_password=rsessl -> uncomment and change: server_keystore_label=rdzrse -> optionally uncomment and change: server_keystore_type=JKS
上記の変更は SSL を使用可能に設定し、RSE サーバーに、パスワード rsessl を持つ鍵ストア rdzssl.jks 内のラベル rdzrse の下に証明書が保管されることを通知します。RSE デーモンは、引き続き SAF 準拠の鍵リングを使用しています。
この付録は、TCP/IP のセットアップ時、または既存のセットアップの検査時や変更時に起きる可能性があるいくつかの一般的な問題について、ユーザーを支援するためのものです。
TCP/IP 構成の詳細については、「Communications Server IP 構成ガイド」(SC88-8926) および「Communications Server IP 構成解説書」(SC88-8927) を参照してください。
TSO コマンド・サービスに APPC を使用する場合、Developer for System z は TCP/IP が初期化時に正しいホスト名を持っているかどうかに依存します。つまり、各種の TCP/IP 構成ファイルやリゾルバー構成ファイルが正しくセットアップされていなければなりません。
TCP/IP 構成は、fekfivpt インストール検査プログラム (IVP) でテストできます。このコマンドは次のサンプルのような出力を返します ($ は z/OS UNIX プロンプトです)。
$ fekfivpt Wed Jul 2 13:11:54 EDT 2008 uid=1(USERID) gid=0(GROUP) using /etc/rdz/rsed.envvars ------------------------------------------------------------- TCP/IP resolver configuration (z/OS UNIX search order): ------------------------------------------------------------- Resolver Trace Initialization Complete -> 2008/07/02 13:11:54.745964 res_init Resolver values: Global Tcp/Ip Dataset = None Default Tcp/Ip Dataset = None Local Tcp/Ip Dataset = /etc/resolv.conf Translation Table = Default UserId/JobName = USERID Caller API = LE C Sockets Caller Mode = EBCDIC (L) DataSetPrefix = TCPIP (L) HostName = CDFMVS08 (L) TcpIpJobName = TCPIP (L) DomainOrigin = RALEIGH.IBM.COM (L) NameServer = 9.42.206.2 9.42.206.3 (L) NsPortAddr = 53 (L) ResolverTimeout = 10 (L) ResolveVia = UDP (L) ResolverUdpRetries = 1 (*) Options NDots = 1 (*) SockNoTestStor (*) AlwaysWto = NO (L) MessageCase = MIXED (*) LookUp = DNS LOCAL res_init Succeeded res_init Started: 2008/07/02 13:11:54.755363 res_init Ended: 2008/07/02 13:11:54.755371 ************************************************************************ MVS TCP/IP NETSTAT CS V1R9 TCPIP Name: TCPIP 13:11:54 Tcpip started at 01:28:36 on 06/23/2008 with IPv6 enabled ------------------------------------------------------------- host IP address: ------------------------------------------------------------- hostName=CDFMVS08 hostAddr=9.42.112.75 bindAddr=9.42.112.75 localAddr=9.42.112.75 Success, addresses match
リゾルバーは、プログラムに代わってネーム・サーバーにアクセスするクライアントとして機能し、名前からアドレス、またはアドレスから名前への解決を行います。要求側プログラムの照会を解決するために、リゾルバーは使用可能なネーム・サーバーにアクセスするか、ローカル定義 (例えば、/etc/resolv.conf、/etc/hosts、/etc/ipnodes、HOSTS.SITEINFO、HOSTS.ADDRINFO、または ETC.IPNODES) を使用するか、あるいはその両方の組み合わせを使用します。
リゾルバー・アドレス・スペースが開始されると、リゾルバー JCL プロシージャー内の SETUP DD カードによって指し示されている、オプションのリゾルバー・セットアップ・データ・セットが読み取られます。セットアップ情報が提供されていない場合、リゾルバーは該当するネイティブの MVS または z/OS UNIX 検索順序を使用します。その際、GLOBALTCPIPDATA、DEFAULTTCPIPDATA、GLOBALIPNODES、DEFAULTIPNODES、または COMMONSEARCH 情報は使用されません。
TCP/IP 機能によって使用される構成ファイルの検索順序と、どのようなときにデフォルトの検索順序を環境変数、JCL、またはその他の変数によってオーバーライドできるかを理解しておくことが重要です。その知識があれば、ローカル・データ・セットと HFS ファイルの命名の標準に対応することができ、問題の診断時にも、使用されている構成データ・セットまたは HFS ファイルを知るのに役立ちます。
注意すべきもう 1 つの重要な点は、いずれかの構成ファイルに検索順序が適用された場合、最初に検出されたファイルで検索が終了するということです。したがって、絶対に検出されないファイル内に構成情報を入れた場合は、検索順序内に他のファイルが先に存在するか、またはアプリケーションが選択した検索順序内にそのファイルが含まれていないために、予期しない結果になることがあります。
構成ファイルを検索するときは、JCL プロシージャーの中で DD ステートメントを使用するか環境変数を設定することにより、大部分の構成ファイルが置かれている場所を TCP/IP に明示的に指示できます。それ以外の場合は、「Communications Server IP 構成ガイド」(SC88-8926) で説明されている検索順序に基づいて、TCP/IP に構成ファイルのロケーションを動的に判別させることができます。
TCP/IP スタックの構成コンポーネントは、TCP/IP スタックの初期化時に TCPIP.DATA を使用して、スタックの HOSTNAME を判別します。 その値を取得するために、z/OS UNIX 環境の検索順序が使用されます。
検索対象となる特定のファイルまたはテーブルは、リゾルバーの構成設定およびシステム上の所定のファイルの存在に応じて、MVS データ・セットか HFS ファイルになります。
基本リゾルバー構成ファイルには、TCPIP.DATA ステートメントが入っています。 このファイルは、リゾルバー・ディレクティブだけでなく、特にこのセクションで指定されている一部の構成ファイルへのアクセスを試みるときに使用されるデータ・セット接頭部 (DATASETPREFIX ステートメントの値) を判別するために、参照されます。
基本リゾルバー構成ファイルへのアクセスに使用される検索順序は、以下のとおりです。
定義されていれば、リゾルバーの GLOBALTCPIPDATA セットアップ・ステートメントの値が使用されます (リゾルバーについても参照)。 検索は、追加構成ファイルについて続行されます。検索は、次のファイルが検出されると終了します。
環境変数の値が使用されます。この検索は、ファイルが存在しないか他の場所で排他的に割り振られている場合、失敗します。
DD 名 SYSTCPD へ割り振られたデータ・セットが使用されます。z/OS UNIX 環境では、子プロセスは SYSTCPD DD にアクセスできません。なぜなら、SYSTCPD 割り振りは親プロセスから fork() または exec 関数呼び出しで継承されないからです。
userid は、現行セキュリティー環境 (アドレス・スペース、タスク、またはスレッド) へ関連付けられているユーザー ID です。
jobname は、バッチ・ジョブの場合は JOB JCL ステートメントで指定された名前で、開始プロシージャーの場合はプロシージャー名です。
定義されていれば、リゾルバーの DEFAULTTCPIPDATA セットアップ・ステートメントの値が使用されます (リゾルバーについても参照します)。
変換テーブル (EBCDIC から ASCII、および ASCII から EBCDIC) は、使用する変換データ・セットを判別するために参照されます。この構成ファイルへのアクセスに使用される検索順序は、以下のとおりです。検索順序は、最初に検出されたファイルの位置で終了します。
userid は、現行セキュリティー環境 (アドレス・スペースまたはタスク/スレッド) へ関連付けられているユーザー ID です。
jobname は、バッチ・ジョブの場合は JOB JCL ステートメントで指定された名前で、開始プロシージャーの場合はプロシージャー名です。
hlq は、基本リゾルバー構成ファイル内で指定された DATASETPREFIX ステートメントがある場合は、そのステートメントの値を表します。ない場合、hlq はデフォルトの TCPIP になります。
デフォルトでは、リゾルバーは構成済みのドメイン・ネーム・サーバーがあれば、最初にそれを解決要求に使用しようとします。解決要求を満足できない場合は、ローカル・ホスト・テーブルが使用されます。リゾルバーの動作は、TCPIP.DATA ステートメントによって制御されます。
TCPIP.DATA リゾルバー・ステートメントは、ドメイン・ネーム・サーバーを使用するかどうか、およびその使用方法を定義します。LOOKUP TCPIP.DATA ステートメントは、ドメイン・ネーム・サーバーおよびローカル・ホスト・テーブルの使用方法を制御するためにも使用されます。TCPIP.DATA ステートメントの詳細については、「Communications Server IP 構成解説書」(SC88-8927) を参照してください。
リゾルバーは、getnetbyname API 呼び出しに対して、無条件に IPv4 固有の検索順序を使用します。sitename 情報の IPv4 固有の検索順序は、以下のとおりです。検索は、最初に検出されたファイルの位置で終了します。
この環境変数の値は、TSO MAKESITE コマンドによって作成された HOSTS.SITEINFO 情報ファイルの名前です。
この環境変数の値は、TSO MAKESITE コマンドによって作成された HOSTS.ADDRINFO 情報ファイルの名前です。
userid は、現行セキュリティー環境 (アドレス・スペースまたはタスク/スレッド) へ関連付けられているユーザー ID です。
jobname は、バッチ・ジョブの場合は JOB JCL ステートメントで指定された名前で、開始プロシージャーの場合はプロシージャー名です。
hlq は、基本リゾルバー構成ファイル内で指定された DATASETPREFIX ステートメントがある場合は、そのステートメントの値を表します。ない場合、hlq はデフォルトの TCPIP になります。
前に述べたように、APPC を使用する場合、Developer for System z は TCP/IP が初期化時に正しいホスト名を持っているかどうかに依存します。つまり、各種の TCP/IP 構成ファイルやリゾルバー構成ファイルが正しくセットアップされていなければなりません。
以下の例では、TCP/IP およびリゾルバーのいくつかの構成タスクに焦点を当てます。これは TCP/IP またはリゾルバーの完全なセットアップについて述べたものではなく、ご使用のサイトにも適用できる可能性がある、いくつかの重要な局面だけを中心に説明したものであることに注意してください。
//TCPIP PROC PARMS='CTRACE(CTIEZB00)',PROF=TCPPROF,DATA=TCPDATA //* //* TCP/IP NETWORK //* //TCPIP EXEC PGM=EZBTCPIP,REGION=0M,TIME=1440,PARM=&PARMS //PROFILE DD DISP=SHR,DSN=SYS1.TCPPARMS(&PROF) //SYSTCPD DD DISP=SHR,DSN=SYS1.TCPPARMS(&DATA) //SYSPRINT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136) //ALGPRINT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136) //CFGPRINT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136) //SYSOUT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136) //CEEDUMP DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136) //SYSERROR DD SYSOUT=*
; HOSTNAME specifies the TCP host name of this system. If not ; specified, the default HOSTNAME will be the node name specified ; in the IEFSSNxx PARMLIB member. ; ; HOSTNAME ; ; DOMAINORIGIN specifies the domain origin that will be appended ; to host names passed to the resolver. If a host name contains ; any dots, then the DOMAINORIGIN will not be appended to the ; host name. ; DOMAINORIGIN RALEIGH.IBM.COM ; ; NSINTERADDR specifies the IP address of the name server. ; LOOPBACK (14.0.0.0) specifies your local name server. If a name ; server will not be used, then do not code an NSINTERADDR statement. ; (Comment out the NSINTERADDR line below). This will cause all names ; to be resolved via site table lookup. ; ; NSINTERADDR 14.0.0.0 ; ; TRACE RESOLVER will cause a complete trace of all queries to and ; responses from the name server or site tables to be written to ; the user's console. This command is for debugging purposes only. ; ; TRACE RESOLVER
//RESOLVER PROC PARMS='CTRACE(CTIRES00)' //* //* IP NAME RESOLVER - START WITH SUB=MSTR //* //RESOLVER EXEC PGM=EZBREINI,REGION=0M,TIME=1440,PARM=&PARMS //*SETUP DD DISP=SHR,DSN=USER.PROCLIB(RESSETUP),FREE=CLOSE
TCPIPJOBNAME TCPIP DomainOrigin RALEIGH.IBM.COM HostName CDFMVS08
z/OS UNIX 環境で使用される検索順序で述べたように、基本構成ファイルには TCPIP.DATA ステートメントが入っています。システム名が CDFMVS08 の場合 (TCPDATA はシステム名がホスト名として使用されることを述べていました)、/etc/resolv.conf が SYS1.TCPPARMS(TCPDATA) と同期していることが分かります。DNS 定義は存在しないため、サイト・テーブル・ルックアップが使用されます。
# Resolver /etc/hosts file cdfmvs08 9.42.112.75 cdfmvs08 # CDFMVS08 Host 9.42.112.75 cdfmvs08.raleigh.ibm.com # CDFMVS08 Host 127.0.0.1 localhost
このファイルの最低限の内容は、現行システムに関する情報です。上記の例では、z/OS システムの IP アドレスの有効な名前として、cdfmvs08 と cdfmvs08.raleigh.ibm.com の両方を定義しています。
ドメイン・ネーム・サーバー (DNS) を使用した場合は、DNS が /etc/hosts 情報を保持し、/etc/resolv.conf および SYS1.TCPPARMS(TCPDATA) には、その DNS をシステムに対して識別するステートメントが含まれることになります。
混乱を避けるために、TCP/IP 構成ファイルとリゾルバー構成ファイルを互いに同期させておく必要があります。
ファイル・タイプの説明 | 影響する API | 候補ファイル |
---|---|---|
基本リゾルバー構成ファイル | すべての API |
|
変換テーブル | すべての API |
|
ローカル・ホスト・テーブル |
endhostent endnetent getaddrinfo gethostbyaddr gethostbyname gethostent GetHostNumber GetHostResol GetHostString getnameinfo getnetbyaddr getnetbyname getnetent IsLocalHost Resolve sethostent setnetent |
IPv4
IPv6
|
TCP/IP リゾルバーでホスト・アドレスを正しく解決できない問題が生じた場合、原因として最も可能性が高いのは、リゾルバー構成ファイルが欠落しているか、不完全であることです。この問題を明確に示すものは、lock.log 内の以下のメッセージです。
clientip(0.0.0.0) <> callerip(<host IP address>)
これを検査するには、インストール検査の説明に従って、fekfivpt TCP/IP IVP を実行します。出力のリゾルバー構成セクションは、以下のサンプルのようになります。
Resolver Trace Initialization Complete -> 2008/07/02 13:11:54.745964 res_init Resolver values: Global Tcp/Ip Dataset = None Default Tcp/Ip Dataset = None Local Tcp/Ip Dataset = /etc/resolv.conf Translation Table = Default UserId/JobName = USERID Caller API = LE C Sockets Caller Mode = EBCDIC
「Local Tcp/Ip Dataset」が示すファイル (データ・セット) 内の定義が正しいことを確認してください。
このフィールドは、IP リゾルバー・ファイルに (z/OS UNIX 検索順序を使用して) デフォルト名を使用していない場合にはブランクになります。その場合は、次のステートメントを rsed.envvars に追加します。ここで、<resolver file> または <resolver data> は IP リゾルバー・ファイルの名前を表しています。
RESOLVER_CONFIG=<resolver file>
or
RESOLVER_CONFIG='<resolver data set>'
この付録は、INETD のセットアップ時、または既存のセットアップの検査時や変更時に起きる可能性があるいくつかの一般的な問題について、ユーザーを支援するためのものです。INETD は、Developer for System z によって REXEC/SSH 機能のために使用されます。
INETD デーモンは、IP ネットワークのためのサービス管理を提供します。このデーモンはシステム負荷を軽減するために、必要な場合にだけ他のデーモンを呼び出し、そしていくつかの単純なインターネット・サービス (エコーなど) を内部的に提供します。INETD は、inetd.conf 構成ファイルを読み取って、どの追加サービスを提供するかを決定します。サービスをポートへリンクするために、ETC.SERVICES が使用されます。
INETD に依存するサービスは、INETD が起動時に読み取る inetd.conf の中で定義されています。inetd.conf のデフォルトのロケーションおよび名前は、 /etc/inetd.conf です。サンプル inetd.conf ファイルは、samples/inetd.conf にあります。
inetd.conf の項目には、以下の構文規則が適用されます。
各項目は 7 つの定位置フィールドからなり、次の書式に対応します。
service_name socket_type protocol wait_flag userid server_program server_program_arguments
protocol は、tcp[4|6] か udp[4|6] にすることができ、サービス名を詳しく修飾するために使用されます。サービス名とプロトコルは、両方とも ETC.SERVICES 内の項目に一致する必要があります。ただし、ETC.SERVICES 項目に「4」または「6」を含めることはできません。
sndbuf および rcvbuf は、送信バッファーと受信バッファーのサイズを指定します。n で表されるサイズはバイト単位とすることができ、キロバイトまたはメガバイトを示すために、それぞれ「k」または「m」を追加できます。sndbug と rcvbuf は、どちらの順序で使用してもかまいません。
wait または nowait.wait はデーモンがシングル・スレッドであり、最初の要求が完了するまで別の要求がサービスを受けられないことを示します。nowait を指定した場合、INETD はストリーム・ソケット上で接続要求を受信すると、受け入れを発行します。wait を指定した場合、これがストリーム・ソケットであるときに受け入れを発行するのはサーバーの責任です。
max は、60 秒間隔でサービスを要求できるユーザーの最大数です。デフォルトは 40 です。超過した場合、サービスのポートはシャットダウンされます。
userid は、fork されたデーモンを実行するユーザー ID です。このユーザー ID は、INETD ユーザー ID と異なっていてもかまいません。このユーザー ID に割り当てられる権限は、サービスの必要性によって異なります。INETD ユーザー ID は、fork されたプロセスをこのユーザー ID に切り替えるために BPX.DAEMON 権限を必要とします。
オプションの group 値は、ドット (.) によって userid から分離され、サーバーをこのユーザー ID のデフォルトと異なるグループ ID で実行できるようにします。
INETD は、ETC.SERVICES を使用して、サポートする必要があるサービスにポート番号とプロトコルをマップします。これは、MVS データ・セットでも z/OS UNIX ファイルでもかまいません。サンプルが SEZAINST(SERVICES) に出荷時に添付されており、これは /usr/lpp/tcpip/samples/services としても入手できます。ETC.SERVICES の検索順序は、INETD の始動方式 (z/OS UNIX か、ネイティブ MVS か) によって異なります。
サービス情報の指定には、以下の構文規則が適用されます。
各項目は 4 つの定位置フィールドからなり、次の書式に対応します。
service_name port_number/protocol aliases
z/OS UNIX で ETC.SERVICES にアクセスするために使用される検索順序は、以下のとおりです。 検索は、最初に検出されたファイルの位置で終了します。
userid は、INETD を始動するために使用されるユーザー ID です。
hlq は、基本リゾルバー構成ファイル内で指定された DATASETPREFIX ステートメントがある場合は、そのステートメントの値を表します。ない場合、hlq はデフォルトの TCPIP になります。
ネイティブ MVS で ETC.SERVICES にアクセスするために使用される検索順序は、以下のとおりです。 検索は、最初に検出されたデータ・セットの位置で終了します。
DD ステートメント SERVICES へ割り振られたデータ・セットが使用されます。
userid は、INETD を始動するために使用されるユーザー ID です。
jobname は、バッチ・ジョブの場合は JOB JCL ステートメントで指定された名前で、開始プロシージャーの場合はプロシージャー名です。
hlq は、基本リゾルバー構成ファイル内で指定された DATASETPREFIX ステートメントがある場合は、そのステートメントの値を表します。ない場合、hlq はデフォルトの TCPIP になります。
PROFILE.TCPIP 内の PORT (または PORTRANGE) 定義と ETC.SERVICES で定義されるポートを混同しないでください。これらの定義は、用途が異なります。PROFILE.TCPIP 内に定義されているポートは、ポートが特定のサービス用に予約されているかどうかを TCPIP が調べるために使用されます。ETC.SERVICES は、INETD がポートをサービスにマップするために使用されます。
INETD は、モニター対象ポート上で要求を受信すると、inetdx と呼ばれる子プロセスを (要求されたサービスを使用して) fork します。ここで、inetd は INETD のジョブ名 (始動方式によって異なります) で、x は 1 桁の番号です。
これはポート予約を複雑にするので、INETD モニター対象ポートが PROFILE.TCPIP 内で予約されている場合は、z/OS UNIX カーネル・アドレス・スペース用の開始 JCL プロシージャーの名前を使用して、ほぼすべてのプロセスをそのポートにバインドできるようにする必要があります。この名前には OMVS がよく使用されます。ただし、BPXPRMxx parmlib メンバーの STARTUP_PROC パラメーターで別の名前を明示的に指定した場合は除きます。
以下のリストは、アプリケーション実行環境が与えられた場合に、ジョブ名を判別する方法を説明したものです。
INETD プロセスは、一時ファイル /etc/inetd.pid を作成し、これには現在実行中の INETD デーモンの PID (プロセス ID) が入っています。 この PID 値は、INETD プロセスから発信された syslog レコードを識別するために使用されるほか、kill など、PID を必要とするコマンドに PID 値を提供するためにも使用されます。また、複数の INETD プロセスがアクティブにならないようにするロック・メカニズムとしても使用されます。
INETD の z/OS UNIX 実装は、デフォルトでは /usr/sbin/inetd に配置され、2 つの非定位置の、オプションの始動パラメーターをサポートしています。
/usr/sbin/inetd [-d] [inetd.conf]
INETD は IPL 時に始動する必要があります。これを行う最も一般的な方法は、INETD を /etc/rc または /etc/inittab (z/OS 1.8 以上のみ) から始動することです。また、BPXBATCH を使用してジョブまたは開始タスクから始動するか、適切な権限を持つユーザーのシェル・セッションから始動することもできます。
INETD は、z/OS UNIX 初期化シェル・スクリプト /etc/rc から始動された場合、z/OS UNIX 検索順序を使用して ETC.SERVICES を検出します。サンプル /etc/rc ファイルが /samples/rc として出荷時に添付されています。以下のサンプル・コマンドを使用して、INETD を始動できます。
# Start INETD _BPX_JOBNAME='INETD' /usr/sbin/inetd /etc/inetd.conf & sleep 5
z/OS 1.8 以上には、z/OS UNIX の初期化時にコマンドを発行するための代替の方式、/etc/inittab が用意されています。/etc/inittab を使用すると、終了時に自動的にプロセスを再始動する respawn パラメーターを定義できます (15 分以内に、2 番目の再始動について WTOR がオペレーターへ送信されます)。INETD は、/etc/inittab から始動された場合、z/OS UNIX 検索順序を使用して ETC.SERVICES を検出します。サンプル /etc/inittab が /samples/inittab として出荷時に添付されています。次のサンプル・コマンドを使用して、INETD を始動できます。
# Start INETD inetd::respfrk:/usr/sbin/inetd /etc/inetd.conf
BPXBATCH 始動方式は、開始タスクとユーザー・ジョブのどちらにも使用できます。INETD はバックグラウンド・プロセスなので、INETD を始動する BPXBATCH ステップは、始動後数秒以内に終了します。INETD は、BPXBATCH によって始動された場合、z/OS UNIX 検索順序を使用して ETC.SERVICES を検出します。 以下のコード・サンプルにリストされている JCL は、INETD を始動するサンプル・プロシージャーです (KILL ステップは、アクティブな INETD プロセスがあれば、それを除去します)。
//INETD PROC PRM= //* //KILL EXEC PGM=BPXBATCH,REGION=0M, // PARM='SH ps -e | grep inetd | cut -c 1-10 | xargs -n 1 kill' //* //INETD EXEC PGM=BPXBATCH,REGION=0M, // PARM='PGM /usr/sbin/inetd &PRM' //STDERR DD SYSOUT=* //* STDIN, STDOUT and STDENV are defaulted to /dev/null //*
// PARM='PGM /usr/sbin/inetd //''SYS1.TCPPARMS(INETCONF)'' &PRM'
INETD は、シェル・セッションから始動された場合、ETC.SERVICES を検出するために z/OS UNIX 検索を使用します。以下のサンプル・コマンドを使用して、(十分な権限を持つユーザーは) INETD の停止と始動を行うことができます (# は z/OS UNIX プロンプトです)。
# ps -e | grep inetd 7 ? 0:00 /usr/sbin/inetd # kill 7 # _BPX_JOBNAME='INETD' /usr/sbin/inetd &
INETD は z/OS UNIX プロセスなので、セキュリティー・ソフトウェア内に INETD へ関連付けられたユーザー ID 用の有効な OMVS 定義が必要です。ユーザー ID に対して UID、HOME、および PROGRAM を設定し、ユーザーのデフォルト・グループに対して GID を設定する必要があります。INETD が /etc/rc または /etc/inittab によって始動された場合、ユーザー ID は z/OS UNIX カーネルから継承され、デフォルトは OMVSKERN です。
ADDGROUP OMVSGRP OMVS(GID(1)) ADDUSER OMVSKERN DFLTGRP(OMVSGRP) NOPASSWORD + OMVS(UID(0) HOME('/') PROGRAM('/bin/sh'))
INETD は、setuid() などの関数へのアクセスを必要とするデーモンです。したがって、INETD の始動に使用するユーザー ID は、FACILITY クラス内の BPX.DAEMON プロファイルへの READ アクセス権を必要とします。このプロファイルが定義されていない場合は、UID 0 が必要です。
PERMIT BPX.DAEMON CLASS(FACILITY) ACCESS(READ) ID(OMVSKERN)
INETD ユーザー ID には、inetd プログラム (/usr/sbin/inetd) の EXECUTE 権限、inetd.conf および ETC.SERVICES ファイルへの READ アクセス権、/etc/inetd.pid への WRITE アクセス権も必要です。UID 0 を使用せずに INETD を実行したい場合は、UNIXPRIV クラス内の SUPERUSER.FILESYS プロファイルに対する CONTROL アクセス権を与えて、z/OS UNIX ファイルに必要な許可を提供することができます。
デーモン権限を必要とするプログラムは、FACILITY クラス内で BPX.DAEMON が定義されている場合、プログラムで制御されている必要があります。これは、デフォルトの INETD プログラム (/usr/sbin/inetd) の場合は、既にそうなっていますが、コピーまたはカスタム・バージョンを使用する場合は手動で設定する必要があります。z/OS UNIX ファイルをプログラムで制御されるようにするには、extattr +p コマンドを使用します。MVS ロード・モジュールをプログラムで制御されるようにするには、RACF PROGRAM クラスを使用します。
INETD をシェル・セッションの中から再始動する必要があるシステム・プログラマーは、自分の許可を使用して INETD を始動します。したがって、正規の INETD ユーザー ID と同じ許可リストを持っている必要があります。それに加えて、INETD プロセスをリストおよび停止する許可も必要です。これは、複数の方法で実現できます。
これは、「人間」のユーザー ID には推奨できません。その理由は、z/OS UNIX に関連した制約事項が存在しないからです。
ユーザーが su コマンドによって UID 0 になることを許可します。これは、推奨できるセットアップです。
extattr コマンドおよび su コマンドの詳細については、「UNIX System Services コマンド解説書」(SA88-8641) を参照してください。 UNIXPRIV クラスの詳細、および FACILITY クラス内の BPX.* プロファイルの詳細については、「UNIX System Services 計画」(GA88-8639) を参照してください。OMVS セグメント定義および PROGRAM クラスの詳細については、「Security Server RACF セキュリティー管理者のガイド」(SA88-8613) を参照してください。
Developer for System z は、REXEC や SSH の管理に関して、INETD に依存しています。 また、上記の INETD セットアップに加えて、追加の要件を課す場合もあります。
REXEC (または SSH) は、(オプション) REXEC (または SSH) の使用で説明されているように、次の 2 つの目的で使用されます。
z/OS UNIX サブプロジェクトでのリモート・アクションに、特別な設定は必要ありません。しかし、代替の RSE 始動方式には、特別な設定が必要です。
INETD で RSE サーバーを始動するためには、INETD の環境設定 (これはプロセスの開始時に受け渡されます) と、INETD のユーザー ID の権限が正しく設定されている必要があります。
クライアントがポート 512 (または 22) に接続したときに INETD によって始動される REXEC (または SSH) デーモンを使用して、認証が実行され、RSE サーバーが始動され、それ以降の通信用のポート番号がクライアントへ返されます。そのためには、REXEC (SSH) デーモンへ (inetd.conf 内で) 割り当てられたユーザー ID に以下の権限が必要です。
この付録は、APPC (拡張プログラム間通信機能) のセットアップ時、または既存のセットアップの検査時や変更時に起きる可能性があるいくつかの一般的な問題について、ユーザーを支援するためのものです。
以下に述べる APPC 管理および parmlib メンバーの詳細については、「MVS 計画: APPC/MVS 管理」(SA88-8571) および「MVS 初期設定およびチューニング解説書」(SA88-8564) を参照してください。
これは APPC の完全なセットアップについて述べたものではなく、ご使用のサイトにも適用できる可能性がある、いくつかの重要な局面のみを中心にした説明であることに注意してください。
メンバー SYS1.SAMPLIB(ATBALL) には、SYS1.SAMPLIB 内のすべての APPC 関連 (サンプル) メンバーのリストと説明が入っています。
APPC/MVS は、構成データを以下の SYS1.PARMLIB メンバーおよび 2 つの VSAM データ・セットに保管します。
TP は APPC を使用して、同じシステム上または別のシステム上の TP と通信し、リソースにアクセスするアプリケーション・プログラムです。Developer for System z 用の APPC セットアップは、FEKFRSRV と呼ばれる新しい TP をアクティブにします。この TP は、TSO コマンド・サービスと呼ばれます。
次のジョブはサンプル・メンバー SYS1.SAMPLIB(ATBTPVSM) と SYS1.SAMPLIB(ATBSIVSM) の連結であり、APPC VSAM の定義に使用できます。
//APPCVSAM JOB <job parameters> //* //* CAUTION: This is neither a JCL procedure nor a complete job. //* Before using this sample, you will have to make the following //* modifications: //* 1. Change the job parameters to meet your system requirements. //* 2. Change ****** to the volume that will hold the APPC VSAMs. //* //TP EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER (NAME(SYS1.APPCTP) - VOLUME(******) - INDEXED REUSE - SHAREOPTIONS(3 3) - RECORDSIZE(3824 7024) - KEYS(112 0) - RECORDS(300 150)) - DATA (NAME(SYS1.APPCTP.DATA)) - INDEX (NAME(SYS1.APPCTP.INDEX)) //* //SI EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER (NAME(SYS1.APPCSI) - VOLUME(******) - INDEXED REUSE - SHAREOPTIONS(3 3) - RECORDSIZE(248 248) - KEYS(112 0) - RECORDS(50 25)) - DATA (NAME(SYS1.APPCSI.DATA)) - INDEX (NAME(SYS1.APPCSI.INDEX)) //*
APPC はシステム・ネットワーク体系 (SNA) LU 6.2 プロトコルの実装です。SNAは、さまざまな物理および論理 SNA コンポーネント (論理装置 (LU) など) を定義する形式とプロトコルを提供します。LU 6.2 は、特にアプリケーション・プログラム間の通信を処理するように設計された論理装置タイプです。
MVS 上で SNA を使用するためには、VTAM (仮想記憶通信アクセス方式) をインストールし、構成する必要があります。APPC システム・タスクを使用するには、VTAM をアクティブにしておく必要があります。
VTAM セットアップの APPC 固有の部分は、以下の 3 つのステップからなっています。
サンプル・メンバー SYS1.SAMPLIB(ATBAPPL) 内で使用されている MVSLU01 の ACBNAME は、サイトの標準に合わせて変更できますが、SYS1.PARMLIB(APPCPMxx) メンバー内の定義に一致する必要があります。
MVSLU01 APPL ACBNAME=MVSLU01, C APPC=YES, C AUTOSES=0, C DDRAINL=NALLOW, C DLOGMOD=APPCHOST, C DMINWNL=5, C DMINWNR=5, C DRESPL=NALLOW, C DSESLIM=10, C LMDENT=19, C MODETAB=LOGMODES, C PARSESS=YES, C SECACPT=CONV, C SRBEXIT=YES, C VPACING=1
VTAM の詳しい構成方法については、「Communications Server IP SNA ネットワーク・インプリメンテーション・ガイド」(SC88-8928) を参照してください。
システム間の会話フローを使用可能にし、サポートするには、セッションをバインドできる論理装置 (LU) 同士をサイトで定義する必要があります。APPC/MVS 処理を行うには、APPC 処理が単一システム上に残留する場合でも、事前にサイトで 1 つ以上の LU を定義しておく必要があります。LU は、SYS1.PARMLIB(APPCPMxx) 内で行われる定義の一部です。
TSO コマンド・サービスを使用するには、APPC が、インバウンドとアウトバウンドの両方の要求を処理できる基本 LU を持つようにセットアップされている必要があります。
LU 定義は、SYS1.PARMLIB(APPCPMxx) メンバーに追加する必要があり、BASE パラメーターと SCHED(ASCH) パラメーターを含んでいる必要があります。 APPCPMxx メンバーは、使用するトランザクション・プロファイル (TP) とサイド情報 (SI) のVSAM データ・セットも指定する必要があります。
以下のコード・サンプルは、TSO コマンド・サービスに使用できる SYS1.PARMLIB(APPCPMxx) メンバーです。
LUADD ACBNAME(MVSLU01) BASE SCHED(ASCH) TPDATA(SYS1.APPCTP) SIDEINFO DATASET(SYS1.APPCSI)
システムに複数の LU 名があるときは、システムがどの LU を BASE LU として選択するかに応じて、変更が必要になる場合があります。システムの BASE LU は、以下のようにして決定されます。
ご使用のシステムに BASE パラメーターおよび NOSCHED パラメーターを持つ LU がある場合は、その LU が BASE LU として使用されるはずです。しかし、その LU には FEKFRSRV トランザクションへの要求を処理するトランザクション・スケジューラーがないために、TSO コマンド・サービスは機能しません。その LU を変更して NOSCHED パラメーターを除去できない場合は、BASEと SCHED(ASCH) を持つ LU に対して、次のような rsed.envvars 環境変数 _FEKFSCMD_PARTNER_LU を設定できます。
_FEKFSCMD_PARTNER_LU=MVSLU01
rsed.envvarsの詳細については、rsed.envvars、RSE 構成ファイルを参照してください。
APPC/MVS トランザクション・スケジューラー (デフォルト名は ASCH) は、会話を求めるインバウンド要求に対する応答として、トランザクション・プログラムを開始およびスケジュールします。 メンバー SYS1.PARMLIB(ASCHPMxx) は、例えば、トランザクション・クラス定義などを使用して、その機能を制御します。
TSO コマンド・サービスに使用される APPC トランザクション・クラスには、Developer for System z の各ユーザーに 1 つずつイニシエーターを許可できるだけの十分な数の APPC イニシエーターがあることが必要です。
TSO コマンド・サービスを使用するには、OPTIONS セクションと TPDEFAULT セクションでデフォルトの仕様を指定する必要もあります。
以下のコード・サンプルは、TSO コマンド・サービスに使用できる SYS1.PARMLIB(ASCHPMxx) メンバーです。
CLASSADD CLASSNAME(A) MAX(20) MIN(1) MSGLIMIT(200) OPTIONS DEFAULT(A) TPDEFAULT REGION(2M) TIME(5) MSGLEVEL(1,1) OUTCLASS(X)
この時点で、上記の各ステップで説明した構成の変更をアクティブにすることができます。 そのためには、以下のように、環境に応じてさまざまな方法があります。
システム始動時にこれらのコマンドを開始するには、これらを SYS1.PARMLIB(COMMNDxx) に追加します。
コンソール・コマンド D APPC および D ASCH を使用して、APPC セットアップを検査できます。上記のコンソール・コマンドの詳細については、「MVS システム・コマンド」(GC88-6592) を参照してください。
APPC/MVS をアクティブにした後、(オプション) TSO コマンド・サービス用の APPC トランザクションの説明に従って Developer for System z TSO コマンド・サービスを定義できます。
説明されている APPC トランザクションの定義方法は、FEK.#CUST.JCL(FEKAPPCC) をカスタマイズして実行依頼することです。
APPC トランザクションは、APPC ISPF インターフェースを通じて対話式に定義することもできます。これについては、ホワイト・ペーパーに説明があります。このホワイト・ペーパーでは、ユーザー固有のアカウンティング情報を収集するための APPC トランザクションのセットアップ方法も説明されています。
「APPC and WebSphere Developer for System z」(SC23-5885-00) ホワイト・ペーパーは、Developer for System z インターネット・ライブラリー (http://www-306.ibm.com/software/awdtools/rdz/library/) で入手できます。
// PARM='ISPSTART CMD(%FEKFRSRV TIMEOUT=60) NEWAPPL(ISR) NESTMACS'
Developer for System z は代替の APPC および VTAM セットアップ・オプションをサポートしており、このセクションでは、その一部について説明します。
TSO コマンド・サービスのデフォルトのトランザクション名は、(オプション) TSO コマンド・サービス用の APPC トランザクションで説明されているように、FEKFRSRV です。同じセクションの説明にあるように、この名前は APPC に対してトランザクションを定義するときに変更できます。
APPC でトランザクション名を変更することは、rsed.envvars、RSE 構成ファイルで説明されているように、rsed.envvars で _FEKFSCMD_TP_NAME_ に新しい名前を割り当てる必要があることを意味します。
APPC は、プログラム (パートナー・ノード) とホスト上のプログラム (ローカル・ノード) との対話を可能にする通信プロトコルです。Developer for System z を使用した場合、パートナー・ノード (TSO コマンド・サーバー) とローカル・ノード (RSE サーバー) の両方が、同じ z/OS システム上でアクティブになります。また、デフォルトでは、両方が同じ (BASE) LU 定義を使用して互いに通信します。
rsed.envvars、RSE 構成ファイルで説明されているように、rsed.envvars の _FEKFSCMD_PARTNER_LU_ ディレクティブの中で、TSO コマンド・サービスの代替パートナー LU 名を指定できます。ローカル LU 名は、常に有効な BASE LU である (BASE キーワードと SCHED キーワードを持つ) ことが必要なので、変更できないことに注意してください。
VTAM は、セキュアな APPC セットアップをサポートしており、パートナーとローカル LU の間の通信をセキュリティー・ソフトウェアに対して定義する必要があります。
これは、VERIFY=REQUIRED をローカル (BASE) LU の VTAM 定義に追加することによってアクティブになります。セキュリティー定義は APPCLU クラス内で行う必要があります。これについては、「MVS 計画: APPC/MVS 管理」(SA88-8571) で説明されています。
このセットアップが VTAM 内でアクティブであり、セキュリティー・ソフトウェアでのセットアップが完了していない場合、TSO コマンド・サービスとの通信は初期化に失敗し、システム・ログに VTAM が接続のセットアップを拒否したことを示すメッセージが何も残されないので注意してください。APPC IVP テスト (fekfivpa) は「戻りコード 1 - 割り振りの失敗、再試行なし (Return code 1 - Allocate Failure no retry)」で失敗します。
この付録では、このバージョンの Developer for System z でのホストの前提条件および相互前提条件をリストします。
必須の必要条件とオプションの必要条件の最新リストについては、Developer for System z オンライン・ライブラリー (http://www-01.ibm.com/software/awdtools/rdz/library/) で「Rational Developer for System z Prerequisites」(SC23-7659) を参照してください。(日本語版:「Rational Developer for System z 前提条件」(SC88-4704) も出版されています。)
このセクションでリストする製品は、すべて本書の発行時に使用可能なものです。関連する Developer for System z 機能を使用する際に、選択した製品が引き続き使用可能かどうかを確認するには、IBM Software Support Lifecycle Web サイト (http://www.ibm.com/software/support/lifecycle/) を参照してください。
Developer for System z を使用するには、適切な前提条件を備えた次の環境が必要です。
以下のいずれかのレベルがホストにインストールされている必要があります。
プログラム番号 | プロダクト名 | 必要な PTF またはサービス・レベル |
---|---|---|
5694-A01 | z/OS v 1.11 |
ISPF:
TCP/IP:
|
5694-A01 | z/OS v 1.10 |
ISPF:
TCP/IP:
|
5694-A01 | z/OS v 1.9 |
ISPF:
TCP/IP:
|
5694-A01 | z/OS v 1.8 |
ISPF:
TCP/IP:
|
関連する製品 Web サイトは、次のとおりです。
Developer for System z をインストールするためには、以下のいずれかのレベルがインストールされている必要があります。
プログラム番号 | プロダクト名 | 必要な PTF またはサービス・レベル |
---|---|---|
5655-G44 | IBM System Modification Program Extended (SMP/E) for z/OS v 3.5 | PTF またはサービス・レベルは必要ありません |
5655-G44 | IBM System Modification Program Extended (SMP/E) for z/OS v 3.4 | PTF またはサービス・レベルは必要ありません |
関連する製品 Web サイトは、次のとおりです。
リモート・システム・エクスプローラー (RSE) を使用するアプリケーションをサポートするためには、以下のいずれかのレベルがホストにインストールされている必要があります。
プログラム番号 | プロダクト名 | 必要な PTF またはサービス・レベル |
---|---|---|
5655-R32 | IBM 64 ビット SDK for z/OS、Java 2 Technology Edition、v 6.0 | サービス・リリース 7 |
5655-R31 | IBM 31-bit SDK for z/OS、Java 2 Technology Edition v 6.0 | サービス・リリース 7 |
5655-N99 | IBM 64 ビット SDK for z/OS、Java 2 Technology Edition、 v 5.0 | サービス・リリース 11 |
5655-N98 | IBM 31-bit SDK for z/OS、 Java 2 Technology Edition v 5.0 | サービス・リリース 11 |
関連する製品 Web サイトは、次のとおりです。
Developer for System z の特定のフィーチャーをサポートするには、このセクションにリストされている製品と記載されているその他のソフトウェアが必要です。Developer for System z ワークステーション・クライアントは、これらの必要条件なしに正常にインストールできます。ただし、該当するフィーチャーを設計どおりに機能させるには、記載されているホストの必要条件をインストールし、実行時に操作可能になるようにしておく必要があります。
プログラム番号 | プロダクト名 | 必要な PTF またはサービス・レベル |
---|---|---|
5694-A01 | z/OS v 1.11 |
HLASM PTF またはサービス・レベルは必要ありません
XL C/C++ PTF またはサービス・レベルは必要ありません
SCLM PTF またはサービス・レベルは必要ありません
LE (PL/I) PTF またはサービス・レベルは必要ありません
TN3270 PTF またはサービス・レベルは必要ありません |
5694-A01 | z/OS v 1.10 |
HLASM PTF またはサービス・レベルは必要ありません
XL C/C++ PTF またはサービス・レベルは必要ありません
SCLM PTF またはサービス・レベルは必要ありません
LE (PL/I) PTF またはサービス・レベルは必要ありません
TN3270 PTF またはサービス・レベルは必要ありません |
5694-A01 | z/OS v 1.9 |
HLASM PTF またはサービス・レベルは必要ありません
XL C/C++ PTF またはサービス・レベルは必要ありません
SCLM
LE (PL/I) PTF またはサービス・レベルは必要ありません
TN3270 PTF またはサービス・レベルは必要ありません |
5694-A01 | z/OS v 1.8 |
HLASM PTF またはサービス・レベルは必要ありません
XL C/C++ PTF またはサービス・レベルは必要ありません
SCLM
LE (PL/I)
TN3270 PTF またはサービス・レベルは必要ありません |
関連する製品 Web サイトは、次のとおりです。
関連する製品 Web サイトは、次のとおりです。
関連する製品 Web サイトは、次のとおりです。
関連する製品 Web サイトは、次のとおりです。
関連する製品 Web サイトは、次のとおりです。
関連する製品 Web サイトは、次のとおりです。
Developer for System z 内で開発または編集されている COBOL プログラムをコンパイルするには、以下のいずれかのレベルがホストにインストールされている必要があります。
プログラム番号 | プロダクト名 | 必要な PTF またはサービス・レベル |
---|---|---|
5655-S71 | IBM Enterprise COBOL for z/OS v 4.2 | PTF またはサービス・レベルは必要ありません |
5655-S71 | IBM Enterprise COBOL for z/OS v 4.1 | PTF またはサービス・レベルは必要ありません |
5535-G53 | IBM Enterprise COBOL for z/OS v 3.4 | PTF またはサービス・レベルは必要ありません |
関連する製品 Web サイトは、次のとおりです。
Developer for System z 内で開発または編集されている PL/I プログラムをコンパイルするには、以下のいずれかのレベルがホストにインストールされている必要があります。
プログラム番号 | プロダクト名 | 必要な PTF またはサービス・レベル |
---|---|---|
5655-H31 | IBM Enterprise PL/I for z/OS v 3.9 | PTF またはサービス・レベルは必要ありません |
5655-H31 | IBM Enterprise PL/I for z/OS v 3.8 | PTF またはサービス・レベルは必要ありません |
5655-H31 | IBM Enterprise PL/I for z/OS v 3.7 | PTF またはサービス・レベルは必要ありません |
5655-H31 | IBM Enterprise PL/I for z/OS v 3.6 | PTF またはサービス・レベルは必要ありません |
関連する製品 Web サイトは、次のとおりです。
Developer for System z からのリモート・デバッグをサポートするには、以下のいずれかのレベルがホストにインストールされている必要があります。
プログラム番号 | プロダクト名 | プログラム言語 | 必要な APAR、PTF、またはサービス・レベル |
---|---|---|---|
5655-V50 | IBM Debug Tool for z/OS V10.1 | COBOL、PL/I、C/C++、アセンブラー、および追加フィーチャー | すべての使用可能な保守 |
5655-U27 | IBM Debug Tool for z/OS V9.1 | COBOL、PL/I、C/C++、アセンブラー、および追加フィーチャー | すべての使用可能な保守 |
5655-S16 | IBM Debug Tool Utilities and Advanced Functions for z/OS V8.1.0 | COBOL、PL/I、C/C++、アセンブラー、および追加フィーチャー | すべての使用可能な保守 |
5655-S17 | IBM Debug Tool for z/OS V8.1.0 | COBOL、PL/I、アセンブラー、C/C++ | すべての使用可能な保守 |
関連する製品 Web サイトは、次のとおりです。
バージョン 9 で、Debug Tool for z/OS と Debug Tool Utilities and Advanced Functions が統合されて 1 つのオファリングになりました。
CICS ステートメントが埋め込まれたアプリケーションをサポートするには、以下のいずれかのレベルがインストールされている必要があります。
プログラム番号 | プロダクト名 | 必要な PTF またはサービス・レベル |
---|---|---|
5655-S97 | IBM CICS Transaction Server for z/OS v 4.1 | PTF またはサービス・レベルは必要ありません |
5697-E93 | IBM CICS Transaction Server for z/OS v 3.2 | UK34221 |
5697-E93 | IBM CICS Transaction Server for z/OS v 3.1 | UK15767、UK15764、UK11782、 UK11294、UK12233、UK12521、 UK15261、UK15271、UK34221、 UK34078 |
関連する製品 Web サイトは、次のとおりです。
ランタイム要件の特性の完全なリストについては、IBM Rational Developer for System z インフォメーション・センター (http://publib.boulder.ibm.com/infocenter/ratdevz/v7r6/) にあるエンタープライズ・サービス・ツールの資料を参照してください。
IMS データベースおよびデータ通信を使用するアプリケーションをサポートするには、以下のいずれかのレベルがホストにインストールされている必要があります。
プログラム番号 | プロダクト名 | 必要な PTF またはサービス・レベル |
---|---|---|
5635-A02 | IBM IMS v 11.1 | PTF またはサービス・レベルは必要ありません |
5635-A01 | IBM IMS v 10.1 | PTF またはサービス・レベルは必要ありません |
5655-J38 | IBM IMS v 9.1 | PTF またはサービス・レベルは必要ありません |
関連する製品 Web サイトは、次のとおりです。
DB2 をサポートするには、以下のいずれかのレベルがホストにインストールされている必要があります。
プログラム番号 | プロダクト名 | 必要な PTF またはサービス・レベル |
---|---|---|
5635-DB2 | IBM DB2 for z/OS v 9.1 | PTF またはサービス・レベルは必要ありません |
5625-DB2 | IBM DB2 Universal Database™ for z/OS v 8.1 | PTF またはサービス・レベルは必要ありません |
関連する製品 Web サイトは、次のとおりです。
Developer for System z のリモート・プロジェクトを使用した Jazz ベースのソース制御には、以下のレベルがインストールされている必要があります。
プログラム番号 | プロダクト名 | 必要な PTF またはサービス・レベル |
---|---|---|
5724-V82 | Rational Team Concert for System z Server v 2.0 |
FMID HAHA200 - Team Server (チーム・サーバー)
FMID HAHB200 - Toolkit (ツールキット)
FMID HAHC200 - Job Monitor (ジョブ・モニター)
FMID HAHD200 - BuildForge Agent (BuildForge エージェント)
|
関連する製品 Web サイトは、次のとおりです。
File Manager Integration をサポートするには、以下のいずれかのレベルがホストにインストールされている必要があります。
プログラム番号 | プロダクト名 | 必要な PTF またはサービス・レベル |
---|---|---|
5655-U29 | IBM File Manager for z/OS v 10.1 |
|
関連する製品 Web サイトは、次のとおりです。
Fault Analyzer Integration をサポートするには、以下のレベルがホストにインストールされている必要があります。
プログラム番号 | プロダクト名 | 必要な PTF またはサービス・レベル |
---|---|---|
5655-V51 | IBM Fault Analyzer v 10.1 | PTF またはサービス・レベルは必要ありません |
5655-U28 | IBM Fault Analyzer v 9.1 | PTF またはサービス・レベルは必要ありません |
5655-S15 | IBM Fault Analyzer v 8.1 | PTF またはサービス・レベルは必要ありません |
関連する製品 Web サイトは、次のとおりです。
SCLM Developer Toolkit をサポートするには、以下のいずれかのレベルがホストにインストールされている必要があります。
プログラム番号 | プロダクト名 | 必要な PTF またはサービス・レベル |
---|---|---|
5695-014 | zSeries v 1.4 での IBM Library for REXX | PTF またはサービス・レベルは必要ありません |
5695-014 | zSeries Alternate Library v 1.4.0 (FMID HWJ9143、JWJ9144) での IBM Library for REXX | PTF またはサービス・レベルは必要ありません |
REXX/370 Alternate Library のバージョンは、製品 Web サイトから入手できます。
SCLM Developer Toolkit で sftp または scp を使用してセキュア・デプロイメントを行うには、IBM Ported Tools for z/OS が (z/OS UNIX に) インストールされている必要があります。
IBM Ported Tools for z/OS のバージョンは、製品 Web サイトから入手できます。
SCLM Developer Toolkit で JAVA/J2EE ビルドを行うには、Apache Ant が (z/OS UNIX に) インストールされている必要があります。
Apache Ant は Java をベースにしたオープン・ソースのビルド・ツールで、製品 Web サイトからダウンロードできます。
Developer for System z Interface for CA Endevor® SCM を使用するには、CA Endevor® Software Change Manager リリース 12 をインストールする必要があります。
CA Endevor® SCM は、CA の製品です。関連する製品 Web サイトは、次のとおりです。
http://www.ca.com/us/products/product.aspx?ID=259
本書では、以下の資料を参照しています。
資料名 | 資料番号 | 参照 | 参照 Web サイト |
---|---|---|---|
Java Diagnostic Guide | SC34-6650 | Java 5.0 | http://www.ibm.com/developerworks/java/jdk/diagnosis/ |
Java SDK and Runtime Environment User Guide | / | Java 5.0 | http://www-03.ibm.com/servers/eserver/zseries/software/java/ |
IBM Rational Developer for System z Program Directory | GI88-4172 | Developer for System z | http://www-306.ibm.com/software/awdtools/rdz/library/ |
Rational Developer for System z Common Access Repository Manager Developer's Guide | SC23-7660 | Developer for System z | http://www-306.ibm.com/software/awdtools/rdz/library/ |
Rational Developer for System z 前提条件 | SC88-4704 | Developer for System z | http://www-306.ibm.com/software/awdtools/rdz/library/ |
Rational Developer for System z ホスト構成クイック・スタート・ガイド | GI88-4171 | Developer for System z | http://www-306.ibm.com/software/awdtools/rdz/library/ |
Rational Developer for System z ホスト・プランニング・ガイド | GI88-4131 | Developer for System z | http://www-306.ibm.com/software/awdtools/rdz/library/ |
SCLM Developer Toolkit 管理者ガイド | SC88-5664 | Developer for System z | http://www-306.ibm.com/software/awdtools/rdz/library/ |
APPC and WebSphere Developer for System z | SC23-5885 | ホワイト・ペーパー | http://www-306.ibm.com/software/awdtools/rdz/library/ |
Communications Server IP 構成ガイド | SC88-8926 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
Communications Server IP 構成解説書 | SC88-8927 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
Communications Server IP Diagnosis Guide | GC31-8782 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
Communications Server IP システム管理者のコマンド | SC88-9073 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
Communications Server SNA ネットワーク・インプリメンテーション・ガイド | SC88-8928 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
Communications Server SNA オペレーション | SC88-8930 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
Cryptographic Services System SSL (Secure Sockets Layer) プログラミング | SD88-6252 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
DFSMS Macro Instructions for Data Sets | SC26-7408 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
DFSMS データ・セットの使用法 | SC88-9114 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
言語環境プログラム カスタマイズ | SA88-8552 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
言語環境プログラム デバッグ・ガイド | GA88-8548 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
MVS 初期設定およびチューニング ガイド | SA88-8563 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
MVS 初期設定およびチューニング解説書 | SA88-8564 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
MVS JCL 解説書 | SA88-8569 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
MVS 計画 APPC/MVS 管理 | SA88-8571 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
MVS 計画: ワークロード管理 | SA88-8574 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
MVS システム・コマンド | SA88-8593 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
Security Server RACF コマンド言語解説書 | SA88-8617 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
Security Server RACF セキュリティー管理者のガイド | SA88-8613 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
TSO/E カスタマイズ | SA88-8629 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
TSO/E REXX 解説書 | SA88-8635 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
UNIX System Services コマンド解説書 | SA88-8641 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
UNIX System Services 計画 | GA88-8639 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
UNIX システム・サービス ユーザーズ・ガイド | SA88-8640 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
REXX および z/OS UNIX システム・サービスの使い方 | SA88-8644 | z/OS 1.9 | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
Resource Definition Guide | SC34-6430 | CICSTS 3.1 | http://www-03.ibm.com/systems/z/os/zos/bkserv/zapplsbooks.html |
Resource Definition Guide | SC34-6815 | CICSTS 3.2 | http://www-03.ibm.com/systems/z/os/zos/bkserv/zapplsbooks.html |
Resource Definition Guide | SC34-7000 | CICSTS 4.1 | https://publib.boulder.ibm.com/infocenter/cicsts/v4r1/index.jsp?topic=/com.ibm.cics.ts.home.doc/library/library_html.html |
RACF Security Guide | SC34-6454 | CICSTS 3.1 | http://www-03.ibm.com/systems/z/os/zos/bkserv/zapplsbooks.html |
RACF Security Guide | SC34-6835 | CICSTS 3.2 | http://www-03.ibm.com/systems/z/os/zos/bkserv/zapplsbooks.html |
RACF Security Guide | SC34-7003 | CICSTS 4.1 | https://publib.boulder.ibm.com/infocenter/cicsts/v4r1/index.jsp?topic=/com.ibm.cics.ts.home.doc/library/library_html.html |
言語解説書 | SC88-9117 | Enterprise COBOL for z/OS | http://www-03.ibm.com/systems/z/os/zos/bkserv/zapplsbooks.html |
本書では、以下の Web サイトを参照しています。
説明 | 参照 Web サイト |
---|---|
Developer for System z インフォメーション・センター | http://publib.boulder.ibm.com/infocenter/ratdevz/v7r6/index.jsp |
Developer for System z サポート | http://www-306.ibm.com/software/awdtools/rdz/support/ |
Developer for System z ライブラリー | http://www-306.ibm.com/software/awdtools/rdz/library/ |
Developer for System z ホーム・ページ | http://www-306.ibm.com/software/awdtools/rdz/ |
Developer for System z 推奨サービス | http://www-01.ibm.com/support/docview.wss?rs=2294&context=SS2QJ2&uid=swg27006335 |
Developer for System z 機能拡張要求 | https://www.ibm.com/developerworks/support/rational/rfe/ |
z/OS インターネット・ライブラリー | http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/ |
CICSTS インフォメーション・センター | https://publib.boulder.ibm.com/infocenter/cicsts/v4r1/index.jsp |
Apache Ant のダウンロード | http://ant.apache.org/ |
Java keytool の資料 | http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html |
CA サポート・ホーム・ページ | https://support.ca.com/ |
以下の資料は、必要なホスト・コンポーネントのセットアップの問題を理解するのに役立ちます。
資料名 | 資料番号 | 参照 | 参照 Web サイト |
---|---|---|---|
ABCs of z/OS System Programming Volume 9 (z/OS UNIX) | SG24-6989 | Redbook | http://www.redbooks.ibm.com/ |
System Programmer's Guide to: Workload Manager | SG24-6472 | Redbook | http://www.redbooks.ibm.com/ |
TCPIP Implementation Volume 1: Base Functions, Connectivity, and Routing | SG24-7532 | Redbook | http://www.redbooks.ibm.com/ |
TCPIP Implementation Volume 3: High Availability, Scalability, and Performance | SG24-7534 | Redbook | http://www.redbooks.ibm.com/ |
TCP/IP Implementation Volume 4: Security and Policy-Based Networking | SG24-7535 | Redbook | http://www.redbooks.ibm.com/ |
以下の保証は、国または地域の法律に沿わない場合は、適用されません。 IBM およびその直接または間接の子会社は、本書を特定物として現存するままの状態で提供し、 商品性の保証、特定目的適合性の保証および法律上の瑕疵担保責任を含む すべての明示もしくは黙示の保証責任を負わないものとします。 国または地域によっては、法律の強行規定により、保証責任の制限が 禁じられる場合、強行規定の制限を受けるものとします。
この情報には、技術的に不適切な記述や誤植を含む場合があります。 本書は定期的に見直され、必要な変更は本書の次版に組み込まれます。 IBM は予告なしに、随時、この文書に記載されている製品またはプログラムに対して、 改良または変更を行うことがあります。
本書において IBM 以外の Web サイトに言及している場合がありますが、 便宜のため記載しただけであり、決してそれらの Web サイトを推奨するものでは ありません。それらの Web サイトにある資料は、この IBM 製品の資料の一部では ありません。それらの Web サイトは、お客様の責任でご使用ください。
IBM は、お客様が提供するいかなる情報も、お客様に対してなんら義務も負うことのない、自ら適切と信ずる方法で、使用もしくは配布することができるものとします。
本プログラムのライセンス保持者で、(i) 独自に作成したプログラムと その他のプログラム (本プログラムを含む) との間での情報交換、 および (ii) 交換された情報の相互利用を可能にすることを目的として、 本プログラムに関する情報を必要とする方は、下記に連絡してください。
本プログラムに関する上記の情報は、適切な使用条件の下で使用すること ができますが、有償の場合もあります。
本書で説明されているライセンス・プログラムまたはその他のライセンス資料は、IBM 所定のプログラム契約の契約条項、IBM プログラムのご使用条件、 またはそれと同等の条項に基づいて、IBM より提供されます。
この文書に含まれるいかなるパフォーマンス・データも、管理環境下で 決定されたものです。 そのため、他の操作環境で得られた結果は、異なる可能性があります。 一部の測定が、開発レベルのシステムで行われた可能性がありますが、 その測定値が、一般に利用可能なシステムのものと同じである保証はありません。 さらに、一部の測定値が、推定値である可能性があります。 実際の結果は、異なる可能性があります。お客様は、お客様の特定の環境に適したデータを確かめる必要があります。
IBM 以外の製品に関する情報は、その製品の供給者、出版物、 もしくはその他の公に利用可能なソースから入手したものです。IBM は、それらの製品のテストは行っておりません。したがって、 他社製品に関する実行性、互換性、またはその他の要求については確証できません。 IBM 以外の製品の性能に関する質問は、それらの製品の供給者にお願いします。
IBM の将来の方向または意向に関する記述については、 予告なしに変更または撤回される場合があり、単に目標を示しているものです。
本書には、日常の業務処理で用いられるデータや報告書の例が含まれています。 より具体性を与えるために、それらの例には、個人、企業、ブランド、 あるいは製品などの名前が含まれている場合があります。 これらの名称はすべて架空のものであり、 名称や住所が類似する企業が実在しているとしても、それは偶然にすぎません。
本書には、様々なオペレーティング・プラットフォームでのプログラミング手法を例示するサンプル・アプリケーション・プログラムがソース言語で掲載されています。お客様は、サンプル・プログラムが書かれているオペレーティング・プラットフォームのアプリケーション・プログラミング・インターフェースに準拠したアプリケーション・プログラムの開発、使用、販売、配布を目的として、いかなる形式においても、IBM に対価を支払うことなくこれを複製し、改変し、配布することができます。このサンプル・プログラムは、あらゆる条件下における完全なテストを経ていません。 従って IBM は、これらのサンプル・プログラムについて信頼性、利便性もしくは機能性があることをほのめかしたり、保証することはできません。サンプル・プログラムは、現存するままの状態で提供され、いかなる保証条件も適用されません。IBM は、これらのサンプル・プログラムの使用から生ずるいかなる損害に対しても責任を負いません。
IBM、IBM ロゴ、および ibm.com は、世界の多くの国で登録された International Business Machines Corp. の商標または登録商標です。他の製品名およびサービス名等は、それぞれ IBM または各社の商標である場合があります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtml をご覧ください。
Intel® および Pentium® は、 Intel Corporation または子会社の米国およびその他の国における商標または登録商標です。
Microsoft®、Windows®、および Windows ロゴは、Microsoft Corporation の米国およびその他の国における商標です。
Java およびすべての Java 関連の商標およびロゴは、Sun Microsystems, Inc. の米国およびその他の国における商標です。
UNIX は The Open Group の米国およびその他の国における登録商標です。