InterSystemsCachéでのアプリケーションの展開

Kazuya Akimoto Ten Blue Eyes

はじめに



したがって、InterSystemsテクノロジでアプリケーションを開発しました。 ここで、クライアントにデプロイする必要があり、多くの場合、複数回デプロイする必要があります。 開発プロセス中に、インストール手順を取得しました。クラスをインポートするだけでは十分ではないため、ファイル使用てシステム変更し、ニーズに合わせて環境を微調整する必要もあります。



これらの問題を解決するために、 %インストーラーユーティリティがあります。 この記事は彼女についてです。



%インストーラー



このユーティリティを使用すると、Cachéのターゲット構成を説明するインストールマニフェストを、それを実現する手順ではなく定義できます。 何をすべきかを説明すると、Cachéはこのために必要なすべてのコードを既に生成します。 したがって、マニフェスト自体のみを配布し、特定のCachéサーバのフレームワーク内でコード生成がすでに行われています。



マニフェストを作成するには、目的の構成の説明とともにXDataブロックを作成し、XDataブロックに基づいてCOSコードを生成するメソッドを作成します(常に同じです)。 マニフェストを作成したら、Cachéのインストール中に、ターミナルまたはCOSコードからマニフェストを呼び出すことができます。 マニフェストは%SYS領域で実行する必要があります。 マニフェストは、システムパラメーター(スーパーポート、OS、mgrディレクトリなど)と、ユーザーから渡された任意のパラメーターの両方で使用できます。 したがって、インストーラークラスは次の要件を満たす必要があります。







使用する



準備完了インストールマニフェストは、いくつかの方法で起動できます





簡単な例を考えてみましょう。 ユーザーから渡された名前の領域を作成するApp.Installer



クラスを作成します。



App.Installer
%occIncludeを 含める

クラスApp.Installer

{

///生成されたコードは、zsetup + 1 ^ App.Installer.1で表示できます。

XData インストール[ XMLNamespace = INSTALLER]

{

< マニフェスト >

< If Condition = '(## class(Config.Namespaces).Exists( "$ {Namespace}")= 0)' >

< ログ テキスト = "名前空間の作成$ {名前空間}" レベル = "0" />

< 名前空間 = "$ {名前空間}" 作成 = "はい" コード = "$ {名前空間}" アンサンブル = "0" データ = "$ {名前空間}" >

< 設定 >

< データベース = "$ {Namespace}" Dir = "$ {MGRDIR} / $ {Namespace}" Create = "yes" />

</ 設定 >

</ 名前空間 >

< ログ テキスト = "ネームスペースの作成を終了$ {ネームスペース}" レベル = "0" />

</ If >

</ マニフェスト >

}

///インストールを完了するために呼び出されるメソッド。

///クラスのコンパイル中に、COSコードが生成されます

///その後、インストーラーは次のパラメーターで開始します。

/// Set pVars( "Namespace")= "TempNamespace"

/// Do ##クラス(App.Installer).setup(.pVars)

ClassMethod setup( ByRef pVars pLogLevel As%Integer = 0 pInstaller As%Installer.Installer As%Status [ CodeMode = objectgenerator、 Internal ]

{

##クラス %Installer.Manifest )を 終了し ます。 %Generate %compileclass %code "Install"

}

}


この例では、次のことが起こります。





ターミナルから起動するには、次のコマンドを実行します。

Set pVars "Namespace" )= "NewNamespace"

##クラス App.Installer )を実行します。 セットアップ 。pVars


何がもたらす
2015-10-16 16:26:18 0 App.Installer:2015-10-16 16:26:18からインストール、LogLevel = 0

2015-10-16 16:26:18 0:名前空間NewNamespaceを作成しています

2015-10-16 16:26:19 0:名前空間NewNamespaceの作成を終了

2015-10-16 16:26:19 0 App.Installer:インストールは2015-10-16 16:26:19に成功しました

2015-10-16 16:26:19 0%インストーラー:経過時間.605257s


アイテム一覧



マニフェストは、次の要素から形成されます。

アイテム 親要素 属性(デフォルト値) 説明
引き数 呼び出し、エラー 値-引数値 InvokeまたはErrorを介して呼び出されたメソッドに引数を渡します
クラスマッピング 構成 パッケージ-表示するパッケージ

From-表示するデータベースの名前
データベースのクラスから斜めのクラスへのマッピングを作成します。
コンパイルする 名前空間 クラス-コンパイルするクラスの名前

フラグ-コンパイルフラグ(ck)

IgnoreErrors-エラーを無視(0)
クラスをコンパイルします。 $ System.OBJ.Compileを呼び出します(クラス、フラグ)
構成 名前空間 スコープとデータベースを作成する必要がありました。 終了タグはマッピングをアクティブにし、cpfファイルを更新します
コピークラス 名前空間 Src-ソースクラス

ターゲット-ターゲットクラス

置換-ソースクラスを削除(0)
ソースクラスをターゲットにコピーまたは移動する
Copydir マニフェスト Src-ソースディレクトリ

Targe-宛先ディレクトリ

IgnoreErrors-エラーを無視(0)
ディレクトリをコピー
コピーファイル マニフェスト Src-ソースファイル

ターゲット-ターゲットファイル

IgnoreErrors-エラーを無視(0)
ファイルをコピー
クレデンシャル 生産 名前-アクセス要件の名前

ユーザー名-ユーザー名

パスワード-パスワード

上書き-存在する場合は上書き
アクセスの詳細を作成または再定義します
Cspapplication 名前空間 AuthenticationMethods-利用可能な認証方法

自動コンパイル-自動コンパイル

CSPZENEnabled-CSP / ZENフラグ

ChangePasswordPage-パスワード変更ページ

CookiePath-Cookieセッションの方法

CustomErrorPage-カスタムエラーページ

DefaultSuperclass-デフォルトのスーパークラス

DefaultTimeout-セッションタイムアウト

説明-説明

ディレクトリ-CSPファイルへのパス

EventClass-イベントクラス

付与-ログイン時に発行されるロールのリスト

GroupById-IDによるグループ化

InboundWebServicesEnabled-インバウンドWebサービス

IsNamespaceDefault-デフォルトエリアアプリケーション

LockCSPName-CSP名のロック

LoginClass-ログインページ

PackageName-パッケージ名

PermittedClasses-許可されたクラス

再帰-サブディレクトリ(0)

リソース-必要なリソース

ServeFiles-サービスファイル

ServeFilesTimeout-サービスファイルのタイムアウト

TwoFactorEnabled-二要素認証

Url-Webアプリケーションの名前

UseSessionCookie-セッションにCookieを使用
Webアプリケーションを作成または変更します。 ドキュメントおよびSecurity.Applicationsクラスの設定の詳細な説明
データベース 構成 BlockSize-ブロックサイズ

ClusterMountMode-クラスターの一部としてデータベースをマウントします

照合-ソート

作成-データベースを作成-はい、いいえ、上書き(はい)

Dir-ディレクトリ

暗号化-暗号化

EncryptionKeyID-暗号化キーID

ExpansionSize-拡張機能

InitialSize-初期サイズ

MaximumSize-最小サイズ

MountAtStartup-起動時にマウント

MountRequired-マウントが必要

名前-名前

PublicPermissions-公的権利

リソース-リソース

StreamLocation-ストリームの場所
データベースを作成または変更します。 ドキュメントおよびクラスConfig.Databasesの設定の詳細な説明
デフォルト マニフェスト 名前-変数名

値-変数の値

Dir-変数の値(これがフォルダー/ファイルへのパスの場合)
定義されていない場合、変数の値を定義します
その他 マニフェスト、名前空間 if条件チェックが否定的に終了した場合に実行されます。
エラー マニフェスト ステータス-エラーコード

ソース-エラーソース
例外をスローします。 $ {}および#{}構文は利用できません
Foreach マニフェスト インデックス-変数名

値-変数値のリスト
共同ループ演算子
グローバルマッピング 構成 グローバル-グローバル名

From-表示するデータベースの名前Collat​​ion-sort(CachéStandard)
グローバル表示
もし マニフェスト、名前空間 条件-条件 条件付きジャンプ演算子
Ifdef マニフェスト、名前空間 Var-変数名 変数が定義されている場合、条件付きジャンプ演算子
IfNotDef マニフェスト、名前空間 Var-変数名 変数が定義されていない場合の条件付きジャンプ演算子
インポート 名前空間 ファイル-インポートするファイル/フォルダー

フラグ-コンパイルフラグ(ck)

IgnoreErrors-エラーを無視(0)

再帰-再帰的インポート(0)
ファイルをインポートします。 原因:

$ System.OBJ.ImportDir(ファイル、フラグ、再帰)および$ System.OBJ.Load(ファイル、フラグ)
呼び出す 名前空間 クラス-クラス

メソッド-メソッド

CheckStatus-返品ステータスを確認する

Return-結果を変数に書き込みます
クラスメソッドを呼び出し、引数を渡して実行結果を取得できます
ロードページ 名前空間 名前-CSPページへのパス

Dir-CSPページのあるフォルダー

フラグ-コンパイルフラグ(ck)

IgnoreErrors-エラーを無視(0)
$ System.CSP.LoadPage(名前、フラグ)および$ System.CSP.LoadPageDir(Dir、フラグ)を介してCSPファイルをロードします。
ログ マニフェスト レベル-0(最小)から3(詳細)のロギングレベル

テキスト-テキスト、最大32000文字
ロギングレベルがlevel属性以上の場合、ログにメッセージを追加します
マニフェスト ルート要素。 マニフェスト内の唯一のもの、他のすべての要素はその中にあります
名前空間 マニフェスト 名前-エリア名

作成-エリアの作成-はい、いいえ、上書き(はい)

コード-コード付きDB

データ-データを含むデータベース

アンサンブル-の分野にアンサンブルを含める

Ensemble Webアプリケーションに関連するその他の属性
インストーラーのスコープを定義します
生産 名前空間 名前-製品名

AutoStart-製品の自動起動
Ensemble製品を構成します
資源 マニフェスト 名前-リソース名

説明-説明

許可-公的権利
リソースを作成または変更します
役割 マニフェスト 名前-ロール名

説明-説明

リソース-「MyResource:RW、MyResource1:RWU」の形式のリソースRolesGranted-関連するロールを付与
ロールを作成します
ルーチンマッピング 構成 ルーチン-ルーチンの名前

タイプ-タイプ「MAC、INT、INC、OBJ、ALL」のいずれか

From-どのデータベースから
マッピングルーチンを作成します
セッティング 生産 アイテム-カスタムアイテム

ターゲット-設定タイプ:アイテム、ホスト、アダプター

設定-設定の名前

値-設定値
Ensemble製品アイテムを構成します。 Ens.Production:ApplySettingsメソッドを呼び出します
システム設定 マニフェスト 名前-クラスConfigパッケージのプロパティ

値-プロパティ値
Configパッケージのプロパティの値を設定します(Modifyメソッドを使用)
ユーザー マニフェスト ユーザー名-ユーザー名

PasswordVar-パスワードを含む変数

役割-ユーザー役割リスト

氏名-氏名

名前空間-開始エリア

ルーチン-開始ルーチン

ExpirationDate-ユーザーがアクティブ化されなくなる日

ChangePassword-次回ログイン時にパスワードを変更

有効-ユーザーがアクティブ化されているかどうか
ユーザーを作成または変更する
ヴァール マニフェスト 名前-変数名

値-変数の値
変数の値を定義します


変数



変数は属性値として機能し、次の3つの方法のいずれかで定義されます。





パラメーター値はコンパイル段階で決定されるため、変数またはCOS式の一部にすることができます。 COSコードを解釈する前に変数の解釈が行われるため、変数をCOS式に含めることができます。例: #{$ZCVT("${NAMESPACE}","L")}.







環境変数



次の変数は常に使用可能です。

可変 説明 値の例
Sourcedir (キャッシュのインストール時のみ)インストーラーがあるディレクトリ(setup_cache.exeまたはcinstall) /インターシステムズ/ distr /
ISCUpgrade (キャッシュのインストール時のみ)インストールまたはアップグレードするかどうかを決定します 0(インストール)

1(更新)
CFGDIR INSTALLDIRを参照してください。 /インターシステムズ/キャッシュ/
CFGFILE cpfファイルへのパス /InterSystems/Cache/cache.cpf
CFGNAME インスタンス名 キャッシュ
CPUCOUNT CPUコア 4
Cspdir CSPディレクトリ /インターシステムズ/キャッシュ/ csp /
ホスト名 Webサーバー名 SCHOOL15
HTTPPORT Webサーバーのポート 80
INSTALLDIR Cachéがインストールされているディレクトリ /インターシステムズ/キャッシュ/
MGRDIR 管理ディレクトリ(mgr) /インターシステムズ/キャッシュ/ mgr /
プラットフォーム オペレーティングシステム Unix
Cachéスーパーサーバーポート 1972
プロセッサー プラットフォーム名 x86-64
バージョン Cachéバージョン 2015.1.1


デバッグ



属性がどの値を取ることができるかは明確ではありません。 明確にするために、setupメソッドの生成されたintコードを見てください。 通常、メインコールはメソッドです。



tInstaller.ElementName()







つまり 既にシステムメソッドを直接呼び出すクラスメソッド%Installer.Installer 。 あるいは、クラス%Installer., . %OnBeforeGenerateCode, %OnGenerateCode, %OnAfterGenerateCode.



, . TSTART /
TROLLBACK , Caché ( Caché , ).





MDX2JSON . installer.xml MDX2JSON.Installer. .



:



do ##class(MDX2JSON.Installer).setup()





GitHub-, « » MDX2JSON MDX2JSON, MDX2SJON %All, REST- /MDX2JSON , .





.

Sample.Installer Samples.

CacheGitHubCI .

SYSMON Dashboards .

DeepSee Audit .





%Installer InterSystems Caché Ensemble.









コードを見ることができます%Installer., . %OnBeforeGenerateCode, %OnGenerateCode, %OnAfterGenerateCode.



, . TSTART /
TROLLBACK , Caché ( Caché , ).





MDX2JSON . installer.xml MDX2JSON.Installer. .



:



do ##class(MDX2JSON.Installer).setup()





GitHub-, « » MDX2JSON MDX2JSON, MDX2SJON %All, REST- /MDX2JSON , .





.

Sample.Installer Samples.

CacheGitHubCI .

SYSMON Dashboards .

DeepSee Audit .





%Installer InterSystems Caché Ensemble.









%Installer., . %OnBeforeGenerateCode, %OnGenerateCode, %OnAfterGenerateCode.



, . TSTART
/ TROLLBACK , Caché ( Caché , ).





MDX2JSON . installer.xml MDX2JSON.Installer. .



:



do ##class(MDX2JSON.Installer).setup()





GitHub-, « » MDX2JSON MDX2JSON, MDX2SJON %All, REST- /MDX2JSON , .





.

Sample.Installer Samples.

CacheGitHubCI .

SYSMON Dashboards .

DeepSee Audit .





%Installer InterSystems Caché Ensemble.









%Installer., . %OnBeforeGenerateCode, %OnGenerateCode, %OnAfterGenerateCode.



, . TSTART
/ TROLLBACK , Caché ( Caché , ).





MDX2JSON . installer.xml MDX2JSON.Installer. .



:



do ##class(MDX2JSON.Installer).setup()





GitHub-, « » MDX2JSON MDX2JSON, MDX2SJON %All, REST- /MDX2JSON , .





.

Sample.Installer Samples.

CacheGitHubCI .

SYSMON Dashboards .

DeepSee Audit .





%Installer InterSystems Caché Ensemble.









%Installer., . %OnBeforeGenerateCode, %OnGenerateCode, %OnAfterGenerateCode.



, . TSTART
/ TROLLBACK , Caché ( Caché , ).





MDX2JSON . installer.xml MDX2JSON.Installer. .



:



do ##class(MDX2JSON.Installer).setup()





GitHub-, « » MDX2JSON MDX2JSON, MDX2SJON %All, REST- /MDX2JSON , .





.

Sample.Installer Samples.

CacheGitHubCI .

SYSMON Dashboards .

DeepSee Audit .





%Installer InterSystems Caché Ensemble.









 %Installer.,      .     %OnBeforeGenerateCode, %OnGenerateCode, %OnAfterGenerateCode. 
      



, . TSTART
/ TROLLBACK , Caché ( Caché , ).





MDX2JSON . installer.xml MDX2JSON.Installer. .



:



do ##class(MDX2JSON.Installer).setup()

GitHub-, « » MDX2JSON MDX2JSON, MDX2SJON %All, REST- /MDX2JSON , .





.

Sample.Installer Samples.

CacheGitHubCI .

SYSMON Dashboards .

DeepSee Audit .





%Installer InterSystems Caché Ensemble.













%Installer., . %OnBeforeGenerateCode, %OnGenerateCode, %OnAfterGenerateCode.



, . TSTART
/ TROLLBACK , Caché ( Caché , ).





MDX2JSON . installer.xml MDX2JSON.Installer. .



:



do ##class(MDX2JSON.Installer).setup()





GitHub-, « » MDX2JSON MDX2JSON, MDX2SJON %All, REST- /MDX2JSON , .





.

Sample.Installer Samples.

CacheGitHubCI .

SYSMON Dashboards .

DeepSee Audit .





%Installer InterSystems Caché Ensemble.









%Installer., . %OnBeforeGenerateCode, %OnGenerateCode, %OnAfterGenerateCode.



, . TSTART
/ TROLLBACK , Caché ( Caché , ).





MDX2JSON . installer.xml MDX2JSON.Installer. .



:



do ##class(MDX2JSON.Installer).setup()





GitHub-, « » MDX2JSON MDX2JSON, MDX2SJON %All, REST- /MDX2JSON , .





.

Sample.Installer Samples.

CacheGitHubCI .

SYSMON Dashboards .

DeepSee Audit .





%Installer InterSystems Caché Ensemble.









%Installer., . %OnBeforeGenerateCode, %OnGenerateCode, %OnAfterGenerateCode.



, . TSTART
/ TROLLBACK , Caché ( Caché , ).





MDX2JSON . installer.xml MDX2JSON.Installer. .



:



do ##class(MDX2JSON.Installer).setup()





GitHub-, « » MDX2JSON MDX2JSON, MDX2SJON %All, REST- /MDX2JSON , .





.

Sample.Installer Samples.

CacheGitHubCI .

SYSMON Dashboards .

DeepSee Audit .





%Installer InterSystems Caché Ensemble.









%Installer., . %OnBeforeGenerateCode, %OnGenerateCode, %OnAfterGenerateCode.



, . TSTART
/ TROLLBACK , Caché ( Caché , ).





MDX2JSON . installer.xml MDX2JSON.Installer. .



:



do ##class(MDX2JSON.Installer).setup()





GitHub-, « » MDX2JSON MDX2JSON, MDX2SJON %All, REST- /MDX2JSON , .





.

Sample.Installer Samples.

CacheGitHubCI .

SYSMON Dashboards .

DeepSee Audit .





%Installer InterSystems Caché Ensemble.









%Installer., . %OnBeforeGenerateCode, %OnGenerateCode, %OnAfterGenerateCode.



, . TSTART
/ TROLLBACK , Caché ( Caché , ).





MDX2JSON . installer.xml MDX2JSON.Installer. .



:



do ##class(MDX2JSON.Installer).setup()





GitHub-, « » MDX2JSON MDX2JSON, MDX2SJON %All, REST- /MDX2JSON , .





.

Sample.Installer Samples.

CacheGitHubCI .

SYSMON Dashboards .

DeepSee Audit .





%Installer InterSystems Caché Ensemble.









%Installer., . %OnBeforeGenerateCode, %OnGenerateCode, %OnAfterGenerateCode.



, . TSTART
/ TROLLBACK , Caché ( Caché , ).





MDX2JSON . installer.xml MDX2JSON.Installer. .



:



do ##class(MDX2JSON.Installer).setup()





GitHub-, « » MDX2JSON MDX2JSON, MDX2SJON %All, REST- /MDX2JSON , .





.

Sample.Installer Samples.

CacheGitHubCI .

SYSMON Dashboards .

DeepSee Audit .





%Installer InterSystems Caché Ensemble.









%Installer., . %OnBeforeGenerateCode, %OnGenerateCode, %OnAfterGenerateCode.



, . TSTART
/ TROLLBACK , Caché ( Caché , ).





MDX2JSON . installer.xml MDX2JSON.Installer. .



:



do ##class(MDX2JSON.Installer).setup()





GitHub-, « » MDX2JSON MDX2JSON, MDX2SJON %All, REST- /MDX2JSON , .





.

Sample.Installer Samples.

CacheGitHubCI .

SYSMON Dashboards .

DeepSee Audit .





%Installer InterSystems Caché Ensemble.












All Articles