Ensemble 2015.1
Ensemble 2015.1 の新機能
Ensemble 2015.1 では、次の新機能と拡張機能が導入されました。
-
モバイル・デバイスのプッシュ通知
-
ネームスペースのデータベース・ストレージの向上
-
REST サービスの機能強化
-
CSP ポートの使用が可能なパススルー呼び出し
-
Java へのステートレスな呼び出し
-
エンタープライズ・モニタとプロダクション・モニタの機能強化
Ensemble 2015.1 にアップグレードする際の互換性の問題
このリリースの以下の変更によって、既存のシステムの動作が影響を受ける可能性があります。Ensemble のインスタンスをアップグレードする前に、以下の問題を確認してください。
認証情報パスワードの格納に使用する新しいグローバルおよびデータベース
新規ネームスペースを作成すると、認証情報パスワードは、二次データベースに格納されます。このデータベースには、デフォルトで、ユーザ・アカウントからアクセスすることはできません。ほとんどのプロダクションで、これによって互換性の問題が発生することはありません。ビジネス・ホストが必要とするときに、Ensemble によってパスワードへのアクセスが提供されるからです。この変更によって、保管されているパスワードの保護が強化されています。ただし、認証情報パスワードが格納されているデータベースを暗号化することをお勧めします。
この変更によって互換性の問題が発生する状況があります。この節では、そのような状況について説明し、問題を回避する方法を提示します。
Ensemble のライセンスによっては、許可するデータベースの数を制限しています。 認証情報用のこの新しいデータベースはその制限に加算されます。
新規ネームスペースを作成すると、Ensemble によって二次データベースが作成され、グローバル用データベースの名前に SECONDARY を付加した名前が付けられます。例えば、グローバル用データベースが INVENTG、ルーチン用データベースが INVENTR である INVENT ネームスペースを作成した場合、Ensemble によって認証情報パスワード用に INVENTGSECONDARY データベースも作成されます。以前のリリースでは、Ensemble によって、認証情報パスワードは、^Ens.Conf.CredentialsD に格納されていましたが、このリリースでは、認証情報パスワードは、グローバル ^Ens.SecondaryData.Password に格納され、そのグローバルは二次データベースにマッピングされます。
既存のネームスペースの場合、Ensemble のアップグレードによって新しい二次データベースが作成されることはありませんが、初めて認証情報にアクセスしたときに、パスワードは新しいグローバルに移動されます。 %Library.EnsembleMgr:CreateNewDBForSecondary() メソッドを呼び出すと、Ensemble によって認証情報パスワード用の二次データベースが作成され、パスワードが新しい二次データベースに移行されて、^Ens.SecondaryData.Password が二次データベースにマッピングされます。プロダクションが停止しているときにのみ、CreateNewDBForSecondary() メソッドを呼び出す必要があります。
ほとんどの場合、これらの変更はプロダクション・コードや管理ポータルからの認証情報のアクセスには影響を与えませんが、次の互換性の問題が発生します。
-
認証情報を読み取るためのコードを実行するジョブには、パスワード用二次データベースを保護するリソースが必要になりました。例えば、INVENTGSECONDARY はリソース %DB_INVENTGSECONDARY によって保護されているので、認証情報を読み取るにはプロセスに %DB_INVENTGSECONDARY リソースに対する読み取りアクセス権が必要です。ただし、プロダクションの一部として起動されたジョブは、ユーザ _ENSEMBLE の下で実行されるため、これらのジョブは認証情報を読み取ることができます。
-
認証情報を書き込むためのコードを実行するジョブには、%Ens_Credentials:"W" リソースが必要になりました。認証情報の書き込み時には、管理ポータルによって権限が昇格されることに注意してください。このため、前のバージョンの Ensemble で認証情報を入力することができていたポータル・ユーザの権限を変更する必要はありません。
-
Web アプリケーションで認証情報を読み取るまたは書き込む場合は、InProc ビジネス・オペレーションの呼び出しによるものも含め、少なくとも認証情報の読み取りまたは書き込みの実行中には、その Web アプリケーションに、必要なリソースを付与する必要があります。
-
コードが別のコンテキストで実行されていて、認証情報パスワードへのアクセスが必要な場合、ユーザ・アカウントは、必要なリソースを有する必要があります。
-
Ens.DirectorOpens in a new tab の CreateBusinessService() を呼び出して、認証情報パスワードへのアクセスが必要な InProc オペレーションに直接メッセージを送信するビジネス・サービスを作成する場合、ユーザ・アカウントは、必要なリソースを有する必要があります。
-
既存のネームスペースで、^Ens.Conf.CredentialsD を別のデータベースに移動するマッピングを作成していた場合、^Ens.SecondaryData.Password に対して同じマッピングを作成する必要があります。
HealthShare のインスタンスを実行している場合、CreateNewDBForSecondary() メソッドを明示的に呼び出さない限り、認証情報パスワード用の二次データベースは作成されません。HealthShare Information Exchange で使用するネームスペースに対して、このメソッドを呼び出さないでください。
一時グローバルが保存される新しいデータベースと保存先の変更
Runtime および JobStatus データは、ネームスペースで添え字が付けられたグローバル ^CacheTemp.EnsRuntimeAppData に保存されるようになりました。これまでのバージョンでは、このデータはグローバル ^Ens.RuntimeAppData に保存されていました。さらに、プロダクション・モニタに表示するために使用されるメトリック・データは、グローバル ^CacheTemp.EnsMetrics に保存されるようになりました。これまでのバージョンでは、このデータはグローバル ^Ens.Metrics に保存されていました。ほとんどの場合、これらの変更が互換性の問題になることはありませんが、以下の項目について確認する必要があります。
-
この変更が行われているバージョンの Ensemble へのアップグレード時に、問題が発生した状態のプロダクションは存在しない。
-
該当するグローバルに明示的にアクセスするコードでは、新しい場所のデータにアクセスするようにコードを更新する必要がある。
該当するグローバルは、ジャーナル化されていないデータベースに保存されるようになり、その値はミラー・メンバでは利用できません。
Ensemble のライセンスによっては、許可するデータベースの数を制限しています。一時グローバル用のこの新しいデータベースはその制限に加算されます。
ラージ・オブジェクトを文字列ではなくストリームとして返す JDBC SQL
JDBC SQL アダプタの使用時、ストアド・プロシージャのラージ・オブジェクト (LOB) 出力パラメータは、ストリームとして返されるようになりました。これまでのバージョンでは、このような出力パラメータは文字列として返されていました。そのため、LOB が最大文字列サイズを超過したときにはエラーが発生していました。これに該当する出力パラメータにアクセスするコードは、文字列ではなくストリームを処理するように変更する必要があります。
一時的な回避策として、該当する出力パラメータの文字列値を返すようにグローバルを設定できます。ただし、このようにグローバルを設定しても、LOB のサイズが最大文字列サイズを超過するときは、出力パラメータがストリームとして返されます。
Ensemble が許容サイズの LOB 出力パラメータを文字列として返すように構成するには、以下のいずれかのグローバルを 1 に設定します。
-
^Ens.Config("JDBC","LOBasString",ConfigName)
ここで、ConfigName はビジネス・サービス、プロセス、またはオペレーションの名前です。
-
^Ens.Config("JDBC","LOBasString")
スタジオと互換するように変更されたルックアップのインポート形式とエクスポート形式
Ensemble ポータルの [インポート] ボタンと [エクスポート] ボタンは、スタジオと同じファイル形式を使用するようになりました。これまでのバージョンの Ensemble では、ポータルのエクスポート形式とスタジオのエクスポート形式に互換性がありませんでした。
これまでのバージョンの Ensemble からポータルでルックアップ・テーブルをエクスポートした場合は、Ensemble 2015.1 以降の [レガシのインポート] ボタンを使用してインポートする必要があります。Ensemble 2015.1 以降からルックアップ・テーブルをエクスポートしていて、そのエクスポートを以前のバージョンの Ensemble にインポートする場合は、スタジオを使用して以前のバージョンでインポートする必要があります。ポータルのインポートは使用できません。
X12 オブジェクトの削除による子オブジェクトの削除
これまでのリリースでは、X12 オブジェクトを削除しても、その子のオブジェクトは削除されませんでした。今回のリリースでは、X12 オブジェクトを削除すると、その子のオブジェクトがすべて削除されます。
DTL foreach エラーの正しい報告
以前のリリースでは、foreach の括弧内に反復子キーを含めると、特定の状況ではデータ変換はエラーを報告しませんでした。このエラーは正しく報告されるようになりました。