1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DBB/zAppBuildについてのメモ - (2)zAppBuildプロパティー・ファイル

Last updated at Posted at 2023-06-04

はじめに

ここではzAppBuildが提供するプロパティー・ファイルについて見ていきます。
zAppBuildを使用してz/OSアプリケーションをビルドする場合、プロパティー・ファイルをカスタマイズすることでビルド環境やアプリケーションに依存する情報を設定し、ビルドの挙動を制御することになります。

※当記事はzAppBuild V3.1.0をベースにしています。

関連記事

DBB/zAppBuildについてのメモ - (1)概要
DBB/zAppBuildについてのメモ - (2)zAppBuildプロパティー・ファイル
DBB/zAppBuildについてのメモ - (3)zAppBuildビルド・スクリプト
DBB/zAppBuildについてのメモ - (4)Metadata Store構成

zAppBuild全体像

zAppBuildが提供するファイル群のおさらいです。
image.png
ここでは上の赤字部分に着目してみます。

プロパティー・ファイルのカスタマイズ

build-conf

build-conf関連のプロパティーでは、使用するz/OS環境に依存する情報を設定していきます。ビルド環境のUSS上にクローンしたzAppBuildのdbb-zappbuild/build-conf/以下にあるプロパティー・ファイルをカスタマイズしていきます。
これはビルド環境ごとに実施するものとなります。

参考: build-conf

ここではサンプルで提供されているプロパティー・ファイルをいくつかピックアップして見ていきます。

ビルド環境応じて関連するプロパティーをカスタマイズしていくことになりますが、まず必須なのがbuild.properties、datasets.properties、辺りです。
また、ここではCOBOLバッチのビルドを想定し、Cobol.propertiesをカスタマイズしていきます(他の言語やミドルウェアを使用する場合はそれに応じて追加でプロパティーを設定していくことになります)。

※各プロパティー・ファイルのパラメーターは上のGitHubのREADMEをご参照ください。

build.properties

参考: build.properties

ここではビルドに関する全般的な設定を行います。いくつか主要なプロパティーについて補足します。

buildPropFiles

build.properties以外に読み込むべきプロパティー・ファイルを指定します。

requireDBBToolkitVersion

想定するDBBの最低バージョンを指定します。

Meadata Store関連

DBBの依存関係関連のメタデータを保存するデータストアとして何を使用するかを指定します。デフォルトはfile(USS上のファイル)となっており、ロケーションは未指定なのでデフォルトだと$USER(ユーザーのホームディレクトリ)となります。
デフォルト設定の場合、例えばJENKIN1というユーザーを使用する場合、/u/JENKIN1がホームディレクトリだったとすると、/u/JENKIN1/.dbb/以下にメタデータが管理されます。

※Db2をMetadata Storeとして使用する場合はこの辺りのプロパティーを変更する必要があります。

datasets.properties

参考: datasets.properties

ここでは使用するz/OS環境の各種ライブラリのHLQを指定していきます。HLQは環境によって異なるのでここの設定は必須となります(アプリケーションで使用しないミドルウエアのライブラリなどは指定不要)。

datasets.properties設定例

例えば、Wazi as a ServiceのStock Image(ibm-zos-2-4-s390x-dev-test-wazi-7)を使用する場合の設定例はこんな感じになります。

datasets.properties
# Dataset references
# Build properties for Partition Data Sets (PDS) used by zAppBuild build scripts.
# Please provide a fully qualified DSN for each build property below.
# Ex:
# MACLIB=SYS1.MACLIB

# z/OS macro library. Example: SYS1.MACLIB
MACLIB=SYS1.MACLIB

# Assembler macro library. Example: CEE.SCEEMAC
SCEEMAC=CEE.SCEEMAC

# LE (Language Environment) load library. Example: CEE.SCEELKED
SCEELKED=CEE.SCEELKED

# High Level Assembler (HLASM) load library. Example: ASM.SASMMOD1
SASMMOD1=ASM.SASMMOD1

# Cobol Compiler Data Sets. Example: COBOL.V4R1M0.SIGYCOMP
SIGYCOMP_V4=
SIGYCOMP_V6=IGY.V6R4M0.SIGYCOMP

# PL/I Compiler Data Sets.  Example: PLI.V5R2M0.SIBMZCMP
IBMZPLI_V52=PLI.V6R1M0.SIBMZCMP
IBMZPLI_V51=

# CICS Macro Library. Example: CICSTS.V3R2M0.CICS.SDFHMAC
SDFHMAC=CICSTS.V6R1M0.CICS.SDFHMAC

# CICS Load Library. Example: CICSTS.V3R2M0.CICS.SDFHLOAD
SDFHLOAD=CICSTS.V6R1M0.CICS.SDFHLOAD

# CICS COBOL Library. Example: CICSTS.V3R2M0.CICS.SDFHCOB
SDFHCOB=CICSTS.V6R1M0.CICS.SDFHCOB

# CICS PLI Library. Example: CICSTS.V3R2M0.CICS.SDFHPL1
SDFHPL1=CICSTS.V6R1M0.CICS.SDFHPL1

# MQ COBOL Library. Example: CSQ.V9R1M0.SCSQCOBC
SCSQCOBC=MQCD.V9R3M0.SCSQCOBC

# MQ PLI Library. Example: CSQ.V9R1M0.SCSQPLIC
SCSQPLIC=MQCD.V9R3M0.SCSQPLIC

# MQ Assembler Library. Example: CSQ.V9R1M0.SCSQMACS
SCSQMACS=MQCD.V9R3M0.SCSQMACS

# MQ Load Library. Example: CSQ.V9R1M0.SCSQLOAD
SCSQLOAD=MQCD.V9R3M0.SCSQLOAD

# DB2 Load Library. Example: DB2.V9R1M0.SDSNLOAD
SDSNLOAD=DB2.V13R1M0.SDSNLOAD

# IMS Macro Library. Example: DFS.V11R1M0.SDFSMAC
SDFSMAC=IMS.V15R1M0.SDFSMAC

# IMS RESLIB. Example: DFS.V11R1M0.SDFSRESL
SDFSRESL=IMS.V15R1M0.SDFSRESL

# User generated library for DB/DC and DC installations. Example: DFS.V11R1M0.REFERAL
REFERAL=IMS15.REFERAL

# IBM Debug Library containing Exits
SEQAMOD=EQAW.SEQAMOD

# Optional IDz Load Library. Example: FEL.V14R0M0.SFELLOAD
SFELLOAD=FEL.SFELLOAD

# Optional IDZ zUnit / WAZI VTP library containing necessary copybooks. Example : FEL.V14R2.SBZUSAMP
SBZUSAMP=BZU.SBZUSAMP

# REXX Compiler Data Sets. Example: REXX.V1R4.SFANLMD
SFANLMD=REXX.V1R4M0.SFANLMD

Cobol.properties

参考: Cobol.properties

ここではCOBOLのビルド環境に関する設定を行います。いくつか主要なプロパティーについて補足します。

cobol_requiredBuildProperties

COBOLのビルドに必要なプロパティーのリストを指定します。ビルド・スクリプト中ではここで指定したプロパティーが指定されているかどうかのチェックが行われます。

コンパイラー/リンカー

コンパイラー用、リンカー用それぞれのプログラムを指定します。

PDSデータセット関連

これらのプロパティーでは、ビルド時に使用されるPDSデータセットを指定しています。例えばCOBOLのソースは${hlq}.COBOL、COPYBOOKは${hlq}.COPY、生成されるロードモジュールは${hlq}.LOADという具合です。${hlq}はビルド実行に動的に設定される変数です。

PDSデータセット作成時オプション

上で設定したビルド時に使用されるPDSデータセットは、存在しなければ動的に作成されます。これらのプロパティーでは、必要なPDSデータセットと動的に作成する際に使用されるオプションを指定します。
ここではVOLUME名などの指定がされていないので、基本的にはSMS管理のデータセットから動的にVOLUMEが判断されて使用される想定になっています。例えば、非SMS管理で動的にVOLUME名を指定したいのであれば、オプション設定を以下のように変更することになります。
cobol_srcOptions=cyl space(1,1) lrecl(80) dsorg(PO) recfm(F,B) dsntype(library) vol(TEMP01)

application-conf

application-conf以下に管理されるプロパティー・ファイルでは、ビルドしたいアプリケーションに関連する設定を行います。アプリケーションに依存するものなので、基本的にはソース類と一緒にGitで管理されることになります。

MortgageApplicationというサンプルのアプリケーションが提供されており、このアプリケーションをzAppBuildでビルドするためのapplication-confも合わせて提供されているので、これをベースにapplication-confのプロパティーを見ていきます。

まず、application.properties、file.properties辺りは必須です。また、ここではCOBOLバッチのビルドを想定し、Cobol.propertiesをカスタマイズしていきます(他の言語やミドルウェアを使用する場合はそれに応じて追加でプロパティーを設定していくことになります)。

プロパティーはいくつかの箇所で指定が可能なもあります。プロパティー指定方法や優先順の詳細については以下のドキュメントもご参照ください。
参考: File Property Management

application.properties

参考: MortgageApplication/application-conf/application.properties

ここではアプリケーション全般に関連する設定を行います。アプリケーションに関する特性を設定するものですので、アプリケーションごとにカスタマイズします。
基本激にはアプリケーションは基本的にはGitで管理される想定なので、Gitリポジトリ内でアプリケーションと一緒に管理されることになります。
いくつか主要なプロパティーについて補足します。

applicationPropFiles

application.properties以外に読み込むべきプロパティー・ファイルを指定します。

applicationSrcDirs

アプリケーション・ソースが含まれるトップのディレクトリ名を指定します。通常はGitでリポジトリーをCloneするとリポジトリ名と同じディレクトリが作成されるので、リポジトリ名と同じ名前を指定することになります。${application}はビルド時に動的に設定される変数です。

buildOrder

ビルドする順番を指定します。この例では、BMS、COBOL、LinkEditの順番に実行されることになります。

excludeFileList

fullbuildをする際にビルド対象から除外するファイルを指定します。

file.properties

参考: MortgageApplication/application-conf/file.properties

ここではソース・ファイルに関連する設定を行います。いくつか主要なプロパティーについて補足します。

dbb.scriptMapping

ビルドに使用する言語別スクリプトと、ソースのマッピングを行います。
例えば上の例では、任意の場所にある.cblという拡張子のついたファイルはCOBOLのソースとして判断し、Cobol.groovyというビルドスクリプトでビルドする、というマッピングが行われます。

参考: DBB APIs - Build properties

cobol_fileBuildRank

COBOLプログラムの中での優先順位付けを行います。(コンパイル/リンクの順序性がある場合の制御)
ランク(数値)が少ないものが優先度が高くなります。ランク付けされていないものは優先度が最下位となります。

cobol_linkEdit

ロード・モジュール作成しないようにする(LinkEditをスキップする)ソースを指定します(他のプログラムからスタティックにリンクされる場合など)。
上の例ではepsnbrvl.cblおよびepsmlist.cblは他のプログラムからStatic Linkされる想定なのでLinkEditはスキップするよう設定しています。

isCICS

CICSプログラムとしてビルドすべきプログラムを指定します。
(zAppBuildのスクリプトではCICS個別のトランスレーターを使用するのではなく、言語環境提供の統合トランスレーターを使用する仕組みとなっている)

loadFileLevelProperties

共通のプロパティー・ファイルで全てのソースのビルド特性を制御するのは難しい場合があります。例外的なビルド特性を持つソースについては、そのソースごとに個別のプロパティーを設定する方が分かりやすい場合があります。そのような場合はこのプロパティーでソースごと(ファイルごと)のプロパティー・ファイルを用意し、それを使用することができます。
上の例では、epsmlist.cblについては個別のプロパティー・ファイルを使用することを宣言しています。実際のプロパティー・ファイルは「epsmlist.cbl.properties」が使用されることになります(パスやファイル名は、application.propertiesのpropertyFilePath、propertyFileExtensionで制御される)。

loadLanguageConfigurationProperties

特定のグループ単位でプロパティーを制御したい場合もあります。上の例だと、epsnbrvl.cblepsmpmt.cblを個別のプロパティーを設定する対象のソースとして指定しています。具体的なプロパティーとのマッピングは、languageConfigurationMapping.propertiesで指定します。

Cobol.properties

参考: MortgageApplication/application-conf/Cobol.properties

ここではCOBOLのソースに関連する設定を行います。いくつか主要なプロパティーについて補足します。

cobol_compilerVersion

COBOL Compilerのバージョンを指定します。

コンパイル/リンク関連オプション

Compilerオプション、LinkEditのオプション等を指定します。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?