AS/400 システムでのアプリケーション・サーバー・サポートは、 DRDA アプリケーション・リクエスターのサーバーとして機能することができます。 DB2 ユニバーサル・データベース (AS/400 版) アプリケーション・サーバーに接続できるアプリケーション・リクエスターは、 DRDA プロトコルをサポートする任意のクライアントです。
アプリケーション・リクエスターは、 DB2 ユニバーサル・データベース (AS/400 版) アプリケーション・サーバーにローカルで保管された表にアクセスすることが許されています。アプリケーション・リクエスターは、SQL が実行できるようになる前に、 DB2 ユニバーサル・データベース (AS/400 版) アプリケーション・サーバーでパッケージを作成しなければなりません。 DB2 ユニバーサル・データベース (AS/400 版) アプリケーション・サーバーは、プログラム実行時にアプリケーションの SQL ステートメントを含むパッケージを使用します。
AS/400 アプリケーション・サーバーで分散データベース要求を処理する場合、 RDB ディレクトリーでアプリケーション・サーバー・データベースに名前を付ける必要があります。 SNA 通信では、アプリケーション・サーバー・システムを定義し、要求単位および応答単位のサイズと歩調合わせを設定します。 DB2 ユニバーサル・データベース (AS/400 版) バージョン 4.2 でサポートされる TCP/IP 通信については、 TCP/IP を使用した DRDA ネットワークでの DB2 ユニバーサル・データベース (AS/400 版) の接続を参照してください。
アプリケーション・サーバー・データベース (アプリケーション・サーバー・ロケーションにある) は、アプリケーション・リクエスター・データベース (アプリケーション・リクエスター・ロケーションにある) を識別するのと同じ方法で名前を付けます。関係データベース・ディレクトリー項目の追加 (ADDRDBDIRE) コマンドを使用して、リモート・ロケーションとして *LOCAL を指定します。
SNA を使用してアクセスする場合、アプリケーション・サーバーをネットワークに定義する方法は、アプリケーション・リクエスターをネットワークに定義する方法と同じです。アプリケーション・サーバーと、要求を送信するアプリケーション・リクエスターの両方を定義するには、回線、制御装置、デバイス、およびモードの記述を作成しなければなりません。ネットワークにアプリケーション・サーバーを定義する方法についての詳細は、 ローカル・システムの DB2 ユニバーサル・データベース (AS/400 版) への定義およびリモート・システムの DB2 ユニバーサル・データベース (AS/400 版) への定義を参照してください。 AS/400 分散データベース・プログラミング も参照してください。
AS/400 アプリケーション・サーバー・データベースを開始するために使用されるトランザクション・プログラム名は、 DRDA 省略時値 X'07F6C4C2' です。 このトランザクション・プログラム名は、アプリケーション・サーバーを開始するために AS/400 システムで定義されます。 TCP/IP で対応するパラメーターは、 DB2/400 がそのプロトコルをサポートしている場合、ポートになります。 DB2/400 は、サーバーとして通常 446 のウェルノウン・ポートを使用します。
分散データベース・ネットワークが既存のネットワークに影響を与えるかどうかを判別するためには、ネットワーク定義を再検討しなければなりません。これらの考慮事項は、アプリケーション・サーバーと、アプリケーション・リクエスターとでは同一です。
アプリケーション・リクエスターが分散データベース要求を AS/400 アプリケーション・サーバーに向けるときには、以下の機密保護上の考慮事項が関係します。
アプリケーション・リクエスターは、機密保護処理のためにユーザー ID をアプリケーション・サーバーに送信します。 AS/400 アプリケーション・サーバーで処理されているジョブは、このユーザー ID、またはいくつかのインスタンスでは省略時のユーザー ID を使用します。
固有でないユーザー ID またはシングル・ユーザー ID の下のグループ複数ユーザーの対立を解決するために、 AS/400 アプリケーション・サーバーがインバウンド・ユーザー ID 変換を提供することはありません。アプリケーション・リクエスターから送信される各ユーザー ID は、アプリケーション・サーバー上に存在していなければなりません。機密保護をいくらか犠牲にしても着信要求を単一ユーザー ID にグループ化するには、リモート・ジョブ開始要求を制御しているサブシステムの通信項目に省略時ユーザー ID を指定します。 AS/400e シリーズ CL 解説書 にある ADDCMNE と CHGCMNE の説明を参照してください。
LU 6.2 は、主に 3 つのネットワーク機密保護機能を提供します。
DB2 ユニバーサル・データベース (AS/400 版) アプリケーション・サーバーは、 DB2 ユニバーサル・データベース (AS/400 版) アプリケーション・リクエスターとまったく同じ方法でセッション・レベル機密保護を使用します。
アプリケーション・サーバーは、会話に使用される SNA 会話レベルを制御します。 APPC 装置記述の SECURELOC パラメーターまたは APPN リモート・ロケーション・リストの安全ロケーション値によって、会話にアプリケーション・リクエスターから何が受け入れられるかを判別します。
SNA 会話機密保護オプションは以下のとおりです。
SNA/DS (SNA 配布サービス) には省略時ユーザー ID が必要です。そのため DRDA アプリケーション用の省略時ユーザー ID が必要ない場合のために、 SNA/DS にはサブシステムがなければなりません。
着信開始ジョブ要求をグループ化して単一のユーザー ID にする方法については、 エンド・ユーザー名の選択に説明されています。この方法では、アプリケーション・リクエスターから送信されたユーザー ID は検査されません。アプリケーション・サーバー・ジョブは省略時ユーザー ID で開始され、アプリケーション・サーバーから接続を開始したユーザーは、送信されたユーザー ID の許可が制限されている場合でも、アプリケーション・サーバーにアクセスを持ちます。これを実現するには、アプリケーション・サーバーを無保護ロケーションとして定義し、 AS/400 サブシステムの通信項目に省略時ユーザー ID を指定し、そして、接続処理のときにのみユーザー ID を送信するようにアプリケーション・リクエスターを構成します。パスワードが送信されると、これに伴うユーザー ID が省略時ユーザー ID の代わりに使用されます。
AS/400 サブシステムの通信項目は、会話を開始するために使用された装置およびモード名によりそれぞれ区別されます。異なる省略時ユーザー ID を異なる装置 / モードの組に割り当てると、アプリケーション・サーバーと通信する方法によってユーザーがグループ化されます。
AS/400 システムは、分散データベースおよび分散ファイル管理にのみ使用できるネットワーク機密保護機能も提供しています。このタイプのシステム・アクセス用のネットワーク属性は、アクセスのすべての試行を拒否するか、個々のオブジェクトに基づいてシステムが機密保護を制御することを許可するかのどちらかになります。
DB2 ユニバーサル・データベース (AS/400 版) バージョン 4.2 では、新しい CRTDDMTCPA というコマンドが提供されます。これを使用することにより、サーバーが TCP/IP 接続要求をパスワードなしで受け入れるかどうかを指定できるようになります。
機密保護はすべて、OS/400 機密保護機能により制御されます。
AS/400 システムには、外部機密保護サブシステムがありません。すべての機密保護は、オペレーティング・システムの重要な部分である OS/400 機密保護機能により制御されます。プログラム、パッケージ、表、視点、および集合を含むシステムのすべてのオブジェクトの認可は、オペレーティング・システムが制御します。
アプリケーション・サーバーは、アプリケーション・サーバーにあるオブジェクトの認可を制御します。これらのオブジェクトの機密保護制御は、アプリケーション・サーバー・ジョブを開始するユーザー ID により異なります。このユーザー ID は、エンド・ユーザー名の選択で解説されているように判別されます。
オブジェクトの機密保護は、オブジェクト権限 CL コマンドを使用するか、 SQL ステートメント GRANT および REVOKE を使用して管理できます。オブジェクト権限 CL コマンドには、オブジェクト権限の付与 (GRTOBJAUT) およびオブジェクト権限の取り消し (RVKOBJAUT) が含まれています。システムのどのオブジェクトにもこれらの CL コマンドを使用できます。 SQL オブジェクト (表、視点、およびパッケージ) にのみ、ステートメント GRANT および REVOKE を使用してください。他のオブジェクト (プログラムや集合など) の許可を変更する必要がある場合には、 GRTOBJAUT および RVKOBJAUT コマンドを使用してください。
オブジェクトがシステム上に作成されると、省略時の許可が与えられます。表、視点、およびパッケージを作成するユーザー ID には、すべての権限が与えられます。他のすべてのユーザー ID (パブリック) には、オブジェクトが作成された集合またはライブラリーに対して同一の権限を与えられます。
パッケージ内で静的または動的ステートメントにより参照されるオブジェクトへの権限は、パッケージ実行時に検査されます。パッケージの作成者に、参照されるオブジェクトへの権限がない場合には、パッケージが作成されるときに警告メッセージが戻されます。実行時には、パッケージを実行しているユーザーがパッケージの作成者としての許可を受けます。パッケージの作成者に表を使用する許可があり、パッケージを実行しているユーザーに許可がない場合、ユーザーはパッケージ作成者の権限を受けて、表を使用できます。
システム機密保護についての詳細は、 AS/400 機密保護 解説書 を参照してください。
DRDA をサポートしている製品は、アプリケーション・サーバーでなんらかの変換が必要な場合に、これを自動的に実行します。これが実行されるには、アプリケーション・サーバーの CCSID 値が、アプリケーション・リクエスターによる変換用にサポートされる値でなければなりません。
アプリケーション・サーバーでは、以下に関連して CCSID を考慮しなければなりません。
ご使用のジョブの CCSID はアプリケーション・リクエスターと互換性がなければなりません。この CCSID は、接続を要求するユーザー ID のユーザー・プロファイルにより確立されます。 OS/400 作業管理サポートは、ジョブ CCSID を、ユーザー・プロファイルの CCSID に初期設定します。ユーザー・プロファイルに CCSID が存在しない場合には、作業管理サポートはシステム値から CCSID (QCCSID) を取り出します。システム値 QCCSID は、最初に CCSID 65535 に設定されます。
DB2 ユニバーサル・データベース (AS/400 版) への要求を開始する前に、サインオンしてユーザー・プロファイルの変更 (CHGUSRPRF) を使用することにより、 DRDA 要求を処理するジョブのユーザー・プロファイルに受け入れ可能な CCSID 値を割り当てる必要があります。
SQL 集合は、OS/400 ライブラリー・オブジェクト、ジャーナル、ジャーナル・レシーバーで構成されています。さらに、WITH DATA DICTIONARY 文節が CREATE COLLECTION ステートメントに指定された場合には、任意選択で IDDU データ・ディクショナリーも含まれます。これらのオブジェクトの一部に使用される物理および論理ファイルは、作成時にジョブ CCSID を省略時値として使用します。これらのファイルの CCSID 値をサポートしていないアプリケーション・リクエスターからデータ・ディクショナリーまたはカタログを照会すると、表示不能のデータまたは間違ったデータが表示されることがあります。あるいは、アプリケーション・リクエスターは CCSID 値がサポートされていないことを示すメッセージを出します。これを訂正するには、他のシステムで受け入れられるジョブ CCSID 値を使用して新しい SQL 集合を作成しなければなりません。
ジョブ CCSID は、ジョブの変更 (CHGJOB) コマンドを使用して変更できます。また、後続のジョブについては、ユーザー・プロファイルの CCSID 値を変更するには、ユーザー・プロファイルの変更 (CHGUSRPRF) コマンドを使用してください。 CL プログラムでは、ジョブ属性の検索 (RTVJOBA) コマンドを使用して現行ジョブ CCSID を取得してください。対話式には、ジョブの処理 (WRKJOB) コマンドを使用して、ジョブでの作業の画面で、オプション 2「ジョブ定義属性の表示」を選択します。
SQL 表は、集合と同じ名前を持つライブラリー内にある DB2 ユニバーサル・データベース (AS/400 版) 物理ファイルに対応します。また、表の列は、物理ファイルのフィールド定義に対応します。表または列の CCSID 値は、アプリケーション・リクエスターと互換性がありません。この値を変更する方法については、 データの表示を参照してください。ここでは、データベース物理ファイルの変更について説明されています。バージョン 3 リリース 1 以前の OS/400 のバージョンの CCSID に互換性がない主な原因は、多くのファイルまたは SQL 表に省略時解釈で CCSID 65535 のタグが付いていたことにあります。バージョン 3 リリース 1 以降のリリースでは、これらのファイルの CCSID は自動的に他の適切な値に変更されます。