2.3.4 ミドルウェア定義用テンプレートファイル
- 〈この項の構成〉
(1) 形式
ミドルウェア定義用テンプレートファイルはVTL(Velocity Template Language)で記述します。ISCMでは次のVTLをサポートします。
-
可変部作成
${可変部名称}とファイルに記載することによってテンプレートファイルの可変部として識別されます。ただし,代入を行う場合だけ,${可変部名称}と記載してください。また,$!{可変部名称}と記載することで,該当する可変部が存在しない場合,空文字が代入されます。
-
四則演算
#set△(${可変部名称}△四則演算記号△${可変部名称})と記載することで可変部の値で四則演算を行います。
「四則演算記号」は(+,-,/,*)をサポートします。
記載例:#set△(${aaa}△+△${bbb})
-
代入
#set△($可変部名称△=△”文字列”)
あるいは
#set△($可変部名称△=△数値)
と記載すると可変部に文字列あるいは数値が挿入されます。
ただし,#set△${aaa}△=△${bbb}のように可変部単体を代入することはできません。このような代入を行うと,マージで定義の内容が一部欠落する場合があります(Velocityの仕様)。
(凡例) △:半角スペース
-
繰り返し
マスターイメージ操作で設計書を使用する場合,VTLの繰り返し構文(#foreach文)が使用できます。
#foreach(ローカル可変部定義名△in△繰り返しリスト)処理#endと記載すると,繰り返しリストに格納されている要素数によって処理を挿入する回数を変更できます。繰り返しリストが未定義の場合,定義ファイル生成時に#foreach〜#endで囲んだ個所が削除されます。繰り返しリストの概念図と,用語の説明を次に示します。
項番
項目
説明
1
繰り返しリスト
任意の個数の要素を保持します。
ISCMでは,繰り返しリストを「繰り返し形式の可変部定義名(親項目)」と表現します。
2
要素
任意の個数の可変部定義名,または繰り返しリストを保持します。
繰り返しリストは再帰的に保持できます。その場合,ISCMでは参照の深さを階層※で表現します。
ISCMでは,要素が保持する可変部定義名を「繰り返し形式の可変部定義名(子項目)」と表現します。
3
ローカル可変部定義名
VTLの繰り返し構文(#foreach文)で一時的に使用する可変部定義名です。繰り返しリストから取り出した要素が格納されます。
- 注※
-
最上位階層を1とし,参照の深さが増すごとに階層を1加算して扱います。
- 記載例:
-
繰り返し形式の可変部定義名の(親項目)をCsdU1_list,繰り返し形式の可変部定義名(子項目)をval1,val2,ローカル可変部定義名をCsdU_tmpとしたときの記載例を次に示します。繰り返し形式の可変部定義名(子項目)は,${ローカル可変部定義名.繰り返し形式の可変部定義名(子項目)}の形式で記述します。
-
行をまたいで繰り返す場合
#foreach(${CsdU_tmp}△in△${CsdU1_list})
key1 = ${CsdU_tmp.val1}
key2 = ${CsdU_tmp.val2}
#end
-
同一行内で繰り返す場合
#foreach(${CsdU_tmp}△in△${CsdU1_list})key=${CsdU_tmp.val1}:${CsdU_tmp.val2}#end
VTLの繰り返し構文(#foreach文)を使用する場合の注意事項を次に示します。
-
VTLの繰り返し構文(#foreach文)は,設計書を使用する場合だけサポートします。そのため,VTLの繰り返し構文(#foreach文)が含まれるコンポーネントテンプレートをマスターイメージ定義ファイルに指定しないでください。
-
繰り返し形式の可変部定義名には制約があります。詳細は,「(5) 指定項目」を参照してください。
-
-
条件分岐
#if(条件式1)△処理1[△#elseif(条件式2)△処理2] [△#else△処理n]△#endと記載すると,条件式によって挿入する内容を変更することができます。条件式は,数値または文字列の比較ができます。また,#elseifは0回以上繰り返すことができます。
条件式の記載例:
-
文字列等号:#if(${aaa}△==△ “str1”)
-
数値等号:#if(${aaa}△==△30)
-
数値不等号:#if(${aaa}△>△30)
-
可変部同士の比較:#if(${aaa}△==△${bbb})
(凡例) △:半角スペース
-
要素に数値を記載した場合の注意事項を次に示します。
(a) 数値として扱えるのは,10進数として解釈できる範囲です※。
- (b) 数値の記載として冗長な部分はVelocity変換時に次のように最適化されます。
-
例
変換前
変換後
(例1)
00320
320
上位桁の”0”が除かれる
(例2)
003.20
3.2
上位桁と小数点以下最終位の”0”が除かれる
- (c) 小数がOS定義ファイルおよびミドル定義ファイルで展開される際の文字列形式:java.lang.Doubleのpublic static String toString(double d)の仕様に従います。
-
- 注※
-
-
整数として指定できる最大値と最小値(java.lang.Longで扱うことができる範囲)
-
小数として指定できる最大値と最小値(java.lang.Doubleで扱うことができる範囲)
-
(2) ファイル名
ミドルウェア定義用テンプレートファイル名は任意です。
(3) 格納先ディレクトリ
ミドルウェア定義用テンプレートファイルの格納先は任意です。
(4) 説明
ミドルウェア定義ファイルを生成するためのテンプレートファイルです。テンプレートファイルにパラメータファイルの内容を反映させミドルウェア定義ファイルを生成します。テンプレートファイルの拡張子は「.vm 」です。テンプレートファイルは,文字コードをMS932,改行コードをCR+LF(\r\n)で記述します。
(5) 指定項目
ミドルウェア定義用テンプレートファイルの指定項目は各ミドルウェアのマニュアルを参照してください。このテンプレートの記載ルールは次のようになります。
-
行
行には,自然行と論理行が存在します。
自然行は一般的な行において改行コードで終わる一行の文字列であり,論理行とは改行コードの変わりにバックスラッシュ文字(\)を使用し,改行コードをエスケープすることで隣接している複数の自然行までを含めて一行とするものです。自然行,論理行ともに記載できます。
-
コメント
「##」のあとに続く自然行はコメントとなります。
複数行コメントしたい場合は,「#*」と「*#」の間の自然行がコメント行となります。
-
可変部
可変部とはテンプレートファイルに挿入する必要がある場所を識別する識別子です。
よってパラメータファイルで定義した可変部の値をテンプレートファイルで使用する時はテンプレートファイルに${パラメータファイルの可変部名称}と記載します。
-
可変部名称制約
可変部名称で使用できる文字は半角アルファベット(大文字含む),半角数字,「_」,「-」です。
可変部名称の先頭は必ず「CsdU_」から始めます。
CsdU_XXXXX
- (凡例)
-
XXXXX:1〜251文字
ISCMのサイジングまたはリソース予約で決定する項目を設定する可変部名称はあらかじめ予約されています。下記の可変部名称がパラメータファイルに指定されている場合は設定順序に従い可変部の値が上書きされます。
事前に予約する項目の名称を次に示します。
項番 |
項目 |
可変部名称 |
|
---|---|---|---|
1 |
CPUコア数※3 |
CsdS_CpuCore |
|
2 |
CPUクロック数※3 |
CsdS_CpuClock |
|
3 |
メモリサイズ※3 |
CsdS_MemSize |
|
4 |
業務用IPアドレス |
CsdS_IPAddressBussinessX(X:1以上の整数) |
|
5 |
管理用IPアドレス |
CsdS_IPAddressManageX(X:1) |
|
6 |
DB用IPアドレス※2 |
CsdS_DBIPAddressX(X:1) |
|
7 |
DB用ホスト名 |
CsdS_DBHostNameX(X:1以上の整数) |
|
8 |
サブネットマスク |
− |
|
業務用 |
CsdS_SubNetMaskBussinessX(X:1以上の整数) |
||
管理用 |
CsdS_SubNetMaskManageX(X:1) |
||
9 |
デフォルトゲートウェイ |
− |
|
業務用 |
CsdS_GateWayBussinessX(X:1以上の整数) |
||
管理用 |
CsdS_GateWayManageX(X:1以上の整数) |
||
10 |
仮想ホスト名 |
CsdS_HostName |
|
11 |
パスワード |
CsdS_LogInPasswd※1 |
|
12 |
ユーザ名 |
CsdS_LogInUserName |
注※1 数値だけのパスワードが登録されている場合,Velocity変換時に,「(1)形式」に示すような数値の最適化が行われます。したがって,CsdS_LogInPasswdを使用してVelocity変換する場合は,数値だけのパスワードは登録してはいけません。
注※2 ミドルウェアにHiRDBを指定した仮想ホストの業務IPアドレス。
- (1) 業務用LANが2未満の場合
-
ミドルウェアがHiRDBの仮想ホストの業務LANに設定されているIPアドレスを設定します。
- (2) 業務用LANが2以上の場合
-
リソース予約対象仮想ホストの業務用LANと,ミドルウェアがHiRDBの仮想ホストの業務用LANで,同一の仮想ネットワークデバイス用途を持つNICに設定されているIPアドレスを設定します。複数存在する場合は,J2EEサーバのNICで最初に定義されているものとします。
注※3 仮想ホストのデプロイを行わないコンポーネントのミドルウェアの場合,これらの項目は値が設定されません。これらの項目を使用している場合,リソース予約時にKFUD24203-Eメッセージを出力してミドルウェア定義の生成に失敗します。
-
繰り返し形式の可変部名称制約
繰り返し形式の可変部定義名の仕様を次の表に示します。
項番
項目
形式
説明
1
繰り返し形式の可変部定義名(親項目)
CsdUn_A...A
n:階層の深さを示す1〜Fの文字(16進数表記)。最上位階層が1。nが2〜Fの場合,nは1つ上の階層+1であること。
CsdU(n)_:固定文字列
A...A:半角英数字,_(アンダーバー)または-(ハイフン)で1〜250文字。
VTLの繰り返し構文(#foreach文)で読み込む繰り返しリストを指定します。
2
繰り返し形式の可変部定義名(子項目)
a...a
a...a:半角英数字,_(アンダーバー)または-(ハイフン)で1〜256文字。
ただし"CsdU_"で始まる名称は不可。
繰り返しリストの要素に含まれる可変部定義名を指定します。
3
ローカル可変部定義名※
CsdU_A...A
A...A:半角英数字,_(アンダーバー)または-(ハイフン)。
VTLの繰り返し構文(#foreach文)で一時的に使用する可変部定義名です。ミドルウェア定義用テンプレートファイルに記述します。
- 注※ ローカル可変部定義名の命名規則について
-
・ローカル可変部定義名は“CsdU_”から始まる名称にしてください。このルールに従っていない場合,定義ファイル生成時に繰り返し形式の可変部定義の子項目が変換されなかったときにエラーを検出しません。
・ローカル可変部定義名は可変部定義名と重ならない名称にしてください。別のVTLの繰り返し構文(#foreach文)のローカル可変部定義名と重なるのは問題ありません。