このドキュメントでは、次のトピックについて説明します。
Adabas バージョン 7 より前のバージョンでは、必要に応じて、Entire Net-Work が全データをメインフレーム Adabas 用に ASCII から EBCDIC に変換していました。 バージョン 7 から、Adabas は、ユニバーサルエンコーディングサポート(UES)と呼ばれる独自のデータ変換機能を備えるようになりました。 Entire Net-Work は、データを変換するターゲットデータベースに接続されるとそれを検出し、データを変換しないで Adabas に渡します。
ユニバーサルエンコーディングサポートは、次の場合にアクティブになっている必要があります。
Adabas ニュークリアス。
Adabas リンクルーチン。 Adabas バージョン 7 の場合、リンクルーチン ADALNK、ADALNKR、ADALCO の UES はデフォルトで有効になっています。 Adabas 8 の場合、すべてのリンクルーチンに対して UES が有効になっています。 リンクルーチンで UES の有効/無効を変更する方法については、「TP モニタを使用する場合の Adabas のインストール」の「UES 有効リンクルーチン」以降のセクションを参照してください。
UES 対応のデータベースは、Com-plete または Smarts 経由で異なるアーキテクチャのマシンに接続したり、Entire Net-Work 経由で接続したりできます。また、オプションで、z/OS 環境で、Software AGの Jadabas などの Web ベースのアプリケーションまたは PC ベースのアプリケーションから Adabas ニュークリアスにダイレクト TCP/IP リンクで接続することができます。 Com-plete または Smarts 経由の接続では、Adabas Com-plete リンクルーチンを、Entire Net-Work 経由の接続では Adabas バッチリンクルーチンを使用します。 ダイレクト TCP/IP リンクについては、このセクションで説明します。
Adabas データベース。 詳細については、「ユニバーサルエンコーディングサポート(UES)」および「ADADEF ユーティリティ:データベースの定義」、「ADACMP ユーティリティ:データの圧縮/圧縮解除」を参照してください。
注意:
UES 有効リンクルーチンおよび UES
有効ニュークリアスの使用は、アプリケーションに対して透過的です。これはエンコード変換サポートを必要としないアプリケーションでも同じです。 したがって、UES
をすでに有効にしている場合、無効にする必要はありません。
TCP/IP リンクでは、リエントラント ADALNKR モジュールを LNKUES とリンクするだけでなく、変換テーブルを修正および再アセンブルして、さらに生成されたオブジェクトを Adabas steplib で使用できるようにする必要があります。
UES 対応のデータベースは、Adabas リエントラントバッチまたは TSO リンクルーチン ADALNKR を使用して、TCP/IP 経由で直接接続されます。 ADALNK のアセンブルとリンクを行うためのサンプルジョブストリームが ALNKLNKR です。
TCP/IP 経由でデータベースの UES サポートを有効にするには、修正したバッチ ADALNKR を準備する必要があります。
修正したバッチ ADALNKR を準備するには、次の手順に従います。
ソース ADALNKR を更新します。
&RENT SETB 1 SVCNR EQU nnn (hard-coded SVC number)
修正したバッチ ADALNKR をアセンブルおよびリンクします。
MVSJOBS メンバ ALNKLNKR を修正して、次のようにアセンブルおよびリンクします。
必要なすべてのジョブカード情報を指定します。
バージョン、リビジョンレベル、および SM レベルの記号パラメータ値(vrs)を確認します。 この値は、Adabas のソースとロードライブラリのレベルを反映している必要があります。
SAGASM および LINKALL インラインプロシージャの SYSLIB、SYSIN、SYSLMOD、SYSLIN のデータセット名を確認します。
// JOB //SAGASM PROC MEM=, // VRS= //ASM EXEC PGM=ASMA90, // PARM=’ASA,NODECK,OBJECT,USING(MAP),XREF(SHORT),TERM’ //SYSUT1 DD SPACE=(4096,(120,120),,,ROUND),UNIT=VIO,DCB=BUFNO=1 //SYSTERM DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSLIB DD DISP=SHR,DSN=ADABAS.&VRS..SRCE // DD DISP=SHR,DSN=SYS1.MACLIB // DD DISP=SHR,DSN=SYS1.MODGEN //S//SYSLIN DD DSN=&&OBJ,SPACE=(3040,(40,40),,,ROUND),UNIT=VIO, // DISP=(MOD,PASS), // DCB=(BLKSIZE=3040,LRECL=80,RECFM=FBS,BUFNO=1) //LINK EXEC PGM=HEWL,REGION=2M,COND=(5,LT,ASM), // PARM=’XREF,LIST(ALL),LET,MAP’ //SYSPRINT DD SYSOUT=* //SYSLIN DD DSN=&&OBJ,DISP=(OLD,DELETE) //SYSLMOD DD DISP=SHR,DSN=ADABAS.&VRS..LOAD(&MEM) // PEND //* //ADALNKR EXEC SAGASM,VRS=Vvrs,MEM=ADALNKR //LINK.SYSIN DD * MODE AMODE(31) RMODE(24) ENTRY ADABAS NAME ADALNKR(R)YSIN DD DISP=SHR,DSN=ADABAS.&VRS..SRCE(&MEM)
デフォルトのまたは修正した、ASCII から EBCDIC への変換テーブル、EBCDIC から ASCII への変換テーブルをアセンブルします。
/* //ASC2EBC EXEC SAGASM,VRS=Vvrs,MEM=ASC2EBC //LINK.SYSIN DD * MODE AMODE(31) RMODE(ANY) ENTRY ASC2EBC NAME ASC2EBC(R) /* //EBC2ASC EXEC SAGASM,VRS=Vvrs,MEM=EBC2ASC //LINK.SYSIN DD * MODE AMODE(31) RMODE(ANY) ENTRY EBC2ASC NAME EBC2ASC(R)
次に ADALNKR を LNKUES および修正して再アセンブルした変換テーブルに(再)リンクする必要があります。
ADALNKR、ASC2EBC、EBC2ASC、LNKUES、およびその他のユーザ出口モジュールを、UES 対応の最終的な ADALNKR モジュールにリンクします。 このロードモジュールを USER.LOAD ライブラリに配置します。 SYSLMOD ステートメントの &USERLIB シンボルをユーザロードライブラリに一致するよう修正します。
/* //LINKALL PROC VRS=,USERLIB= //LKED EXEC PGM=HEWL,REGION=2M,COND=(5,LT), // PARM=’XREF,LIST(ALL),LET,MAP,NCAL’ //SYSPRINT DD SYSOUT=* //ADALIB DD DISP=SHR,DSN=ADABAS.&VRS..LOAD //SYSLMOD DD DISP=SHR,DSN=&USERLIB //SYSLIN DD DDNAME=SYSIN // PEND //LINKUES EXEC LINKALL,VRS=Vvrs, // USERLIB=’YOUR.USER.LOADLIB’ //LKED.SYSIN DD * MODE AMODE(31) RMODE(24) INCLUDE ADALIB(ADALNKR) INCLUDE ADALIB(LNKUES) INCLUDE ADALIB(ASC2EBC) INCLUDE ADALIB(EBC2ASC) ENTRY ADABAS NAME ADALNKR(R) /*
(再)リンクされた ADALNK は Adabas ニュークリアスから利用できるようにする必要があります。
TCP/IP リンク経由で Adabas バージョン 7 を直接コールしている場合、Adabas ニュークリアスから正しい ADALNKR を使用できないときは、レスポンスコード 148、空のバッファなど、Adabas に予期しない結果が発生します。
Adabas ニュークリアスへのダイレクト TCP/IP リンクをアクティブ化するには、次の手順に従います。
ADARUN パラメータ TCPIP=YES を設定します。
URL を指定します。
URL は、RFC の URL 仕様に準拠した 20 バイトのアドレスです。
ダイレクト TCP/IP リンクをアクティブにするための URL は、ADARUN パラメータ TCPURL で次のように指定します。
ADARUN PROG=ADANUC,TCPIP=YES,TCPURL=api-name://stackid:port-number
上記の意味は次に示すとおりです。
api-name は使用するアプリケーションプログラミングインターフェイス(API)を表す 1~3 文字の値です。 現在、IBM TCP/IP スタック(HPS、OES)の API がサポートされています。
stackid は使用するスタックを識別する 1~8 文字の値です。HPS API の場合、これは TCP/IP 開始タスクの名前になります。 OES API の場合、値は必要ありません。 ILK API の場合、サブシステム ID になります。
port-number は 1~5 文字の 10 進数です。
ADARUN PROG=ADANUC,TCPIP=YES,TCPURL=HPS://STACKNAME:1234 ADARUN PROG=ADANUC,TCPIP=YES,TCPURL=OES://:1234 ADARUN PROG=ADANUC,TCPIP=YES,TCPURL=ILK://ILZ5:1234
オプションで、オペレータコマンド TCPIP を使用して、最初の URL と、追加のURLを指定することができます。
TCPIP={ OPEN=url|CLOSE=url | CLOSE }
url は、オープンまたはクローズする TCP/IP リンクの URL です。フォーマットは ADARUN TCPURL パラメータと同じです。
api-name://stackid:port-number
このコマンドは、Adabas ニュークリアスへの TCP/IP リンクをオープン/クローズしたり、すべてのリンクをクローズすることができます。 ADARUN TCPIP=YES が指定され、その設定のすべての条件が満されている場合のみ使用できます。 このコマンドは、ADARUN TCPURL パラメータで設定された URL を閉じるために使用されます。または追加の TCP/IP リンクを開いたり閉じたりするために使用されます。
TCPIP=OPEN=ILK://ILZ5:1234 TCPIP=CLOSE=ILK://ILZ5:1234 To close all open URLs: TCPIP=CLOSE