NPが使用されると、TDPはz/OS EZASMIソケットAPIを使用するため、このソケットAPIのみがTDPLGUXによって使用されます。IBM社の資料<z/OS Communications Server: IP Sockets Application Programming Interface Guide and Reference>によると、ソケットAPIの1つのタイプのみが単一のアドレス空間内で使用可能です。別のAPIが使用される場合は予期せぬ問題が発生します。
TDPLGUXモジュールをカスタマイズする場合は、次の点について考慮します。
- TDPLGUXはTDPの一部として稼動するので、権限が付与される。コーディングが不適切な場合は、エラーになったり、TDPが破壊されたりすることさえある。
- TDPLGUXは、TDP提供のMACLIBおよびSAMPLIB(Teradataソフトウェアのリリース テープにある)で記述されたデータ制御ブロック中のデータだけにアクセスできる。他のTDPコンポーネントにはアクセスできない。
- TDPLGUXでは通常のOSサービスの大部分が直接使用できる。
- TDPLGUXが異常終了すると、TDPエラー回復時にTDPLGUXが使用不能になり、ログオン要求は続行可能になる。ただし問題が解決した時点でTDP ENABLE LGUXコマンドによって再び有効化できるようになる。
ダンプは、z/OSではTDPSNAP DDNameに書き込まれる。出口にタスクが付加され、サブタスクが正常に終了しなかった場合、TDPはエラーを処理しない。つまり、出口が無効になり、TDPによるダンプの書き込みは行なわれない。ただし、標準のリソースが使用可能な場合(z/OSのSYSUDUMP DD文など)、オペレーティング システムはダンプを記録できる。サブタスクの正しい管理は出口が行なうため、そのようなエラーが発生しても操作に支障はない。
- TDPLGUXは、TDP下で単一スレッド ルーチンとして稼動し、要求を一度に1つだけ処理できる。したがって、出口ルーチンと残りのTDPとの互換性を図るには、そのルーチンは少なくとも逐次再使用可能または再入可能でなければならない。
- TDPLGUXは独自のテーブルを保存できる。パラメータ リストの一部として、必ず単一のワードがTDPLGUXとTDPの間で渡される。TDPLGUXはこのワードを使用して、呼び出し中に必要となる情報を含む記憶域のブロックを指すことができる。
- TDPLGUXはTDPのサブルーチンであるので、呼び出された場合には、標準OS形式でレジスターの保存と復元を行なわなければならない。TDPLGUX以外のサービスも呼び出される場合、このルーチンは独自の保存領域を設けなければならない。最終的にTDPLGUXは、汎用レジスター14に渡されたアドレスに戻らなければならない。
制御権はTDPLGUXに渡され、その際、汎用レジスター1がTDPLGPRM制御ブロックを指します。この制御ブロックにはユーザー ワード、ログオン文字列、レジスターに関する情報があるフィールドを指すポインタ、およびセッション文字セットが含まれます。
ログオン文字列は、ユーザーID、パスワード、およびアカウント名に分解されます。それらは各々セッション文字セット中の文字から成り立っています。セッション文字セットでダブルバイト文字がサポートされている場合、個々のEBCDICダブルバイト文字の連続グループの前にシフトアウト制御文字X'0E'が付き、後にシフトイン制御文字X'0F'が付きます。カンマとブランクをダブルバイト文字として指定することはできません。
戻り時に、TDPLGUXは次の戻りコードのいずれかをTDPの汎用レジスター15に渡します。
戻りコード | 意味 |
---|---|
0 | ログオン要求を続行できます。 |
非ゼロ | ログオン要求を続行できません。 |