Ensemble 2012.1
Ensemble 2012.1 の新機能
Ensemble 2012.1 では、次の新機能が導入されました。
-
再設計されたユーザ・インタフェース
-
管理ポータルのきめ細かいセキュリティ
-
新しいビジネス・ルール
-
管理ポータルのソース・コントロール・フック
-
レコード・マッパー
-
レコードのバッチ処理
-
XML 仮想ドキュメント
-
監視対象しきい値に関するアラートの生成
-
UDDI API
-
Caché 2012.1 の機能
Ensemble 2012.1 では、次の機能が拡張されました。
-
DeepSee スタイルのダッシュボード
-
ebXML メッセージング
-
シーケンス・マネージャ
-
プロダクションからのスタジオ・プロジェクトの作成
Ensemble 2012.1 にアップグレードする際の互換性の問題
このリリースの以下の変更によって、既存のシステムの動作が影響を受ける可能性があります。Ensemble のインスタンスをアップグレードする前に、以下の問題を確認してください。
"Caché リリース・ノートおよびアップグレード・チェックリスト・アーカイブ" も参照してください。
新しい管理ポータルのユーザ・インタフェース
Ensemble 管理ポータルのユーザ・インタフェースは、このリリースで刷新されました。そのため、使用している手順や文書化した手順をすべて変更する必要があるものと考えられます。新しいポータルの各ページには、ガイドとなるヘルプ情報が用意されています。
詳細は、"Ensemble の管理" を参照してください。
ビジネス・ルールの変換
このリリースへのアップグレード手順によって、既存のルールが自動的に変換されます。古いルール名 (拡張子が .rul のもの) では、クラス名でサポートされていない文字を使用することができました。この場合、ルール定義にルールの呼び出しに使用されるエイリアスが含まれます。古いルールは、アップグレードまたはインポート時に自動的に変換され、変更はアプリケーションには影響しません。ただし、古い実装の詳細に依存している場合は、問題が発生する可能性があります。
古いルールの構造はより制限されているため、変換されたルールによっては、新しいエディタでのルールの作成における最も簡単な方法や推奨される方法ではない構造を持つことがありますが、従来どおり機能します。
HL7 ルーティング・ルールに関しては、ルール・エディタでメッセージ構造を示す Schema DocType が表示されなくなりました。これは、メッセージ・タイプから推測することになります。以前のバージョンからインポートしたルールに関しては、メッセージ構造が引き続き表示されます。
ルール・ログ構造の変更
ビジネス・ルールおよびルーティング・ルールの実装に対する変更の一部として、このリリースではルール・ログの構造が変更されています。以前のルール・ログは、引き続き Ens.Rule.RuleLogOpens in a new tab クラス (SQL テーブルの Ens_Rule.RuleLog) で使用可能です。新しいルール・ログは、Ens.Rule.LogOpens in a new tab クラス (SQL テーブルの Ens_Rule.Log) に格納されます。
前の節で説明したビジネス・ルールの変換では、異なるストレージ構造が使用されるだけでなく、若干異なる情報がルール・ログに記録されるようになりました。ルール・ログの内容に基づいて独自のクエリやレポートを記述していた場合、クエリが引き続き正しい情報を取得し、最適に動作するように、それらのクエリを更新する必要があります。
Ensemble 2012.1 にアップグレードする前に作成したビジネス・ルール・ログのエントリは、新しい管理ポータルの Ensemble, ルール・ログ ページでは確認できません。
[ルール・ログ] ページには、新しいルール・ログのエントリのみが表示されます。ただし、Ensemble では、Ensemble, レガシ・ルール・ログ というレガシ・ページが以下の場所に用意されているため、以前のバージョンのルール・ログのエントリを確認することもできます。
http://localhost:57772/csp/ensemble/EnsPortal.LegacyRuleLog.zen
このレガシ・ページには管理ポータルのメニューからアクセスすることはできません。上記の URI の 57772 を Ensemble インスタンスの Web サーバ・ポートに置き換えたものを入力してください。EnsPortal.LegacyRuleLogOpens in a new tab ページには、EnsPortal.RuleLogOpens in a new tab ページと同じセキュリティ制限が適用されます。
Ensemble はレガシ・ログを通常の方法でパージするため、保持ポリシーによっては、古いエントリはすべて数週間だけ保持されることになります。
新しいダッシュボード開発ツール
このリリース以降、従来のダッシュボードは使用されませんが、従来のビジネス・メトリックは引き続き有効です。ダッシュボードを以前のリリースから今回のリリースに直接変換することはできません。代わりに、従来のビジネス・メトリックをデータ・ソースとして使用して DeepSee ユーザ・ポータルでダッシュボードを作成し、新しいダッシュボードをそれぞれ実装する必要があります。このような更新についてのサポートが必要な場合は、インターシステムズのサポート窓口Opens in a new tabにご相談ください。
初めに、"Ensemble プロダクションの構成"の “ダッシュボードの作成” の章を参照してください。
新しい管理ポータルのセキュリティ・モデル
Ensemble のインスタンスをアップグレードすると、Ensemble ユーザに、その以前のロールに基づく新しいロールが追加されます。アップグレード後にそれらのロールを見直して、変換されたアクセスを確認し、必要に応じてさらにアクセスを制限してください。
唯一の例外は、%Service_Login リソースを有する以前のバージョンのユーザは、管理ポータルへのアクセス権限を持たない場合でも、コマンド・ラインからプロダクションの開始や停止を行うことができた点です。Ensemble をアップグレードすると、そのようなユーザはプロダクションの開始や停止を行えなくなります。それらの操作をユーザが行えるようにするには、必要なリソースを有する %Ens_Operator などのロールをユーザに付与する必要があります。以前のリリースで Ensemble 管理ポータルからプロダクションの開始や停止を行うことができたユーザは、このセキュリティ・チェックの厳格化による影響を受けることはありません。
詳細は、"Ensemble の管理" の “管理ポータルの機能へのアクセス制御” を参照してください。
ワークフロー・ユーザ・インタフェースの変更
このリリースの時点で、独立した Workflow Management Portal は廃止されました。代わりに、Ensemble には、次のようにそれぞれ異なるユーザ・グループを対象とした 2 つのユーザ・インタフェースが用意されています。
-
管理ポータルには、実装担当者やスーパーバイザがワークフローのロール、ユーザ、タスクを管理するために使用できるページが用意されています。それらのページにアクセスするには、[Ensemble] メニューの [管理] をクリックし、[ワークフロー] をクリックします。
これらのページは、Workflow Management Portal とほとんどの点で似ていますが、ユーザが各自のタスクを管理するためのオプションは廃止されました。
-
DeepSee ユーザ・ポータルは、エンド・ユーザ向けの独立したユーザ・インタフェースです。DeepSee ユーザ・ポータルには、ダッシュボード (Ensemble と DeepSee の両方のダッシュボード) が表示されます。ワークフロー・ユーザの場合は、ワークフローの受信トレイも含まれます。ユーザは、ワークフローの受信トレイを使用して、タスクに関連付けられたタスク・フォームを表示し、以前のリリースと同じ方法でそのタスクを管理することができます。
メッセージ・ウェアハウスの選択性と拡張サイズの更新
Ensemble では、任意のテーブルの拡張サイズと選択性 (任意の値と一致するレコードの数またはパーセンテージ) のプロパティ・パラメータを使用して、SQL クエリを最適化します。Ens.MessageHeaderOpens in a new tab に対してこれらの値を正確に設定することは、Ensemble メッセージ・ブラウザ使用時の最適な応答時間を実現するうえで重要です。これらの値を設定するには、このクラスに対してテーブル・チューニング機能を実行します。
ただし、Ensemble のアップグレード手順では、この情報がデフォルト値で上書きされます。このリリースでは、デフォルト値が一般的な大規模サイトを表すように改善されており、ほとんどのインストール環境で優れたパフォーマンスを発揮します。次の値は、この Ensemble リリースにおける Ens.MessageHeaderOpens in a new tab クラスの ExtentSize および Selectivity のデフォルト値を示しています。
<ExtentSize>20000000</ExtentSize>
<IdLocation>^Ens.MessageHeaderD</IdLocation>
<IndexLocation>^Ens.MessageHeaderI</IndexLocation>
<Property name="MessageBodyClassName">
<Selectivity>10%</Selectivity>
</Property>
<Property name="MessageBodyId">
<Selectivity>0.0001%</Selectivity>
</Property>
<Property name="Priority">
<Selectivity>20%</Selectivity>
</Property>
<Property name="SessionId">
<Selectivity>20</Selectivity>
</Property>
<Property name="SourceConfigName">
<Selectivity>5%</Selectivity>
</Property>
<Property name="Status">
<Selectivity>11%</Selectivity>
</Property>
<Property name="TargetConfigName">
<Selectivity>5%</Selectivity>
</Property>
<Property name="TimeCreated">
<Selectivity>5</Selectivity>
</Property>
<Property name="TimeProcessed">
<Selectivity>5</Selectivity>
</Property>
大規模なメッセージ・ウェアハウスを持ち、かつテーブル・チューニングの実行かこれらの値の手動設定を行った場合は、このデフォルト値が既存のシステムと適合することを確認するか、アップグレード後にテーブル・チューニングを実行するようにしてください。テーブル・チューニングの実行も、Selectivity の値の手動設定も行っていない場合は、この新しい値によってメッセージ・ビューワでのクエリのパフォーマンスが向上します。
このテーブルへのアクセスを最適化するための操作を行った場合、次の操作を実行して、アップグレード後にシステムが適切に動作することを確認してください。
-
現在のシステムの ExtentSize および Selectivity の各値を記録します。その方法の 1 つとして、スタジオで Ens.MessageHeaderOpens in a new tab クラスを開きます。ExtentSize と Selectivity の各値は、コード・ウィンドウのクラス定義の末尾付近にリストされます。
-
値が新しいデフォルト値と大幅に異なる場合は、アップグレード後にテーブル・チューニングを実行するか、スタジオまたは管理ポータルを使用して、そのシステムを表すように ExtentSize および Selectivity の各値を手動で更新してください。
[クラスを最新状態に保つ] チェック・ボックスにチェックを付けておけば、実行中のシステムに対してテーブル・チューニングを実行できます。
管理ポータルの システム, SQL, スキーマ, テーブル ページからのテーブル・チューニングの使用に関する詳細は、"Caché SQL 最適化ガイド" の “テーブルの最適化” の章にある “ExtentSize、Selectivity、および BlockCount” を参照してください。
保存されているメッセージ検索の更新
Ensemble では、保存されているメッセージ・フィルタまたは保存されている検索を利用することで、メッセージ・ビューワで頻繁に使用する基準の組み合わせを指定できます。これらのフィルタのストレージが変更されましたが、アップグレード時にメッセージ・フィルタが自動的に新しい形式に変換されるため、何もする必要はありません。ただし、以前のリリースのフィルタを 2012.1 にエクスポートしたい場合は、手動で変換を実行する必要があります。
まず、グローバル ^CSPX.EnsMsgFilterFormD を以前のバージョンからエクスポートして、Ensemble 2012.2 インスタンスにインポートします。
次に、保存されている検索を 1 つだけ変換する場合は、以下のコマンドを使用します。
Do ##class(EnsPortal.MsgFilter.SavedSearch).ConvertCSPXSearch("mysearch")
または、保存されている検索をすべて変換する場合は、以下のコマンドを使用します。
Do ##CLASS(EnsPortal.MsgFilter.SavedSearch).ConvertAllCSPXSearches()
配信からの CSPX ファイルの除外
Ensemble では、配信から CSPX ファイルが除外されました。これらのファイルが含まれていると、古いユーザ・インタフェースにアクセスすることによって、新しいユーザ・インタフェースのきめ細かいセキュリティを回避することが可能になるためです。過去にこれらのファイルを使用していて、Ensemble 環境のアップグレードについてサポートが必要な場合は、インターシステムズのサポート窓口Opens in a new tabにご相談ください。
検索テーブルの検証の更新
検索テーブルの一貫性チェック、ストレージ定義、アップグレード手順の更新によって、アップグレードで検索テーブルのメタデータが失われる長年の問題が解決されます。Ensemble では、検索テーブルのメタデータを各ネームスペースにローカルで保存するようになりました。
アップグレード後のカスタム検索テーブルの再構築を回避するには、アップグレード前に追加手順 ("Ensemble のアップグレード" の手順 4) を実行して、Ensemble で正しく検索テーブルのメタデータが保持されるようにします。
検索テーブルのメタデータは、Ensemble ネームスペースごとのデフォルト・グローバル・データベースに配置されます。そのため、検索テーブル・クラスを変更しても、クラスがマッピングされているすべてのネームスペース内のメタデータは更新されません。すべての対象ネームスペース内のマッピングされた検索テーブル・クラスをコンパイルして、各ネームスペースのローカルのメタデータが最新状態になるようにする必要があります。
このリリースにアップグレードすると、既存の検索テーブルは更新されたメタデータを適切なネームスペースに有するため、それらをリコンパイルする必要はありません。ただし、追加または変更した検索テーブルに関しては、必ず説明したコンパイル手順に従ってください。
カスタムの検索テーブルを作成しなかった場合、何もする必要はありません。アップグレード前の追加手順を実行せずにアップグレードを完了してから、カスタムの検索テーブルがあることが判明した場合は、検索テーブルの値が正しくない可能性があります。検索テーブルを再構築して、これを修正できます。各検索テーブルに対して、以下のコマンドを実行します。
Set sc=##class(EnsLib.HL7.SearchTable).BuildIndex()
詳細は、"クラス・リファレンス" の EnsLib.HL7.SearchTableOpens in a new tab のエントリを参照してください。
EnsLib.HL7.SearchTable.BuildIndex()Opens in a new tab クラス・メソッドを実行すると、ジャーナル・エントリが生成され、時間がかかる場合があります。メッセージを処理中にこのクラス・メソッドを実行するか、または開始 ID および終了 ID を指定してバッチでこのクラス・メソッドを実行できます。アップグレード後に処理されたメッセージを含める必要はありません。
REPORTERRORS パラメータを真に設定して作成される新しい DTL クラス
このリリース以前は、Ens.DataTransformDTLOpens in a new tab から継承されたすべての DTL データ変換クラスの REPORTERRORS パラメータは偽に設定されていました。このリリース以降、スタジオまたは管理ポータルのデータ変換ウィザードを使用して作成するすべての DTL クラスは、次の宣言を使用してこの値を真に上書きします。
Parameter REPORTERRORS = 1;
この設定によって、Ensemble は変換の実行時に発生したあらゆるエラーを警告としてイベント・ログに記録し、すべてのエラーを含む複合ステータス・コードをその戻り値として返します。
ただし、既存の DTL データ変換クラスの互換性を維持するために、抽象クラス内のデフォルト設定は変更されませんでした。Ens.DataTransformDTLOpens in a new tab クラスは、引き続き次の内容を宣言します。
Parameter REPORTERRORS = 0;
この設定によって、Ensemble はカテゴリ xform を使用して、エラーを通知せずにトレース・メッセージとしてログに記録します。
実行した変換を見直して、このパラメータ値の更新がアプリケーションで有効かどうかを確認することができます。
構成名における適正文字チェックの更新
[ 文字は、プロダクション構成名に使用できなくなりました。この文字を含む名前を持つ構成項目が含まれたプロダクションは、今後正常にコンパイルされません。詳細は、"クラス・リファレンス" の Ens.Config.ItemOpens in a new tab エントリにある CheckForIllegalCharacters() メソッドの説明を参照してください。この文字は、メッセージ・バンク・オペレーション (Ens.Enterprise.MsgBankOperationOpens in a new tab) クラスの ArchiveItems プロパティ設定構文の妨げとなる可能性があるために制限されています。
非活動タイムアウトの動作変更
InactivityTimeout 設定の動作は、構成項目の非活動タイムアウト期間内にアクティビティが一切実行されなかった場合に、コンポーネントを非アクティブとしてマーキングするだけでなく、アラートを送信するようになりました。また、この設定は Ens.Config.ItemOpens in a new tab クラスの Settings プロパティに含まれるため、Default Settings を使用してこの値を入力することができます。
Ens.Config.ItemOpens in a new tab クラスおよび同じ名前の XML 属性の元の InactivityTimeout プロパティは、ユーザが意識することなく新しい位置に移動されるため、この値に直接アクセスする以前のコードの動作に変化は見られませんが、プロダクションの XData に作成される XML の構造は多少異なります。
ユーザ・インタフェースからのホスト・モニタの削除
Ensemble の以前のリリースでは、Ensemble 管理ポータルに [ホスト・モニタ] ページがありました。新しい管理ポータルのユーザ・インタフェースにはこの特定のページはありませんが、ポータルの Ensemble 部分の [モニタ] メニューからアクセス可能な次のページが用意されており、Ensemble プロダクションを監視することができます。
-
システム監視
-
プロダクション監視
-
キュー
-
ジョブ
詳細は、ドキュメント "Ensemble の監視" を参照してください。
実行中のプロダクションの停止に関する通知の向上
新しい管理ポータルのユーザ・インタフェースでは、プロダクションの停止は Ensemble, プロダクション構成 ページから行います。プロダクションを停止できるのは、プロダクションが構成用に開かれていて、実行中である場合のみです。実行中でないプロダクションを停止しようとした場合や、プロダクションを開始しようとしたときに別のプロダクションがそのネームスペースで既に実行中だった場合には、情報メッセージが表示されます。プロダクションを停止するには、まず [プロダクション構成] ページで実行中のプロダクションを開く必要があります。
以前の Ensemble バージョンでは、あるプロダクションの実行中に別のプロダクションを構成する場合、構成ページの [プロダクションの停止] をクリックすると、Ensemble は実行中のプロダクションが構成用に開かれているかどうかに関係なくそのプロダクションを停止しました。これにより、ユーザが誤って違うプロダクションを停止してしまう恐れがありました。
実行中のプロダクションは、管理ポータル・メニューのナビゲーション・ページの右側で確認でき、[詳細表示] をクリックすると、選択したプロダクションが [プロダクション構成] ページで開かれます。
$$$EnsSystemError の動作変更
以前のリリースでは、$$$EnsSystemError マクロによって、Ensemble でトラップされたすべての例外のログが %ETN ユーティリティに記録されました。このリリースでは、この動作が更新され、ログ機能がオプションとなって、デフォルトで無効にされています。
ログ機能は、^Ens.Debug("LogETN") グローバルによって制御するようになりました。このグローバルは、デフォルトでは定義されていないため、%ETN によるログの記録は行われません。いつでもグローバルをゼロ以外の値に設定することで、%ETN ロギングを有効にできます。この変更の目的は、Ensemble プロダクションで繰り返しエラーが発生する場合に、過度にデータベース容量を消費しないようにすることです。グローバルの設定によってこの機能を有効にできることで、いつでもこの機能を有効にして、問題の発生時により詳細な情報を収集できます。
アプリケーションで %ETN に例外のログを記録するために $$$EnsSystemError マクロを利用した場合、アプリケーションのエラー・ログ記録を継続するには、^Ens.Debug("LogETN") グローバルを設定する必要があります。