Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Caché 2016.2

この章では、Caché 2016.2 の以下の項目について説明します。

Caché 2016.2 の新機能と強化機能

このセクションでは、以下の項目について説明します。

主要な開発

今回のリリースでは、Caché に次の主な新機能が加わりました。

新規の Eclipse ベースの IDE である Atelier のサポート

これは、新規の Eclipse ベースの IDE である Atelier にサーバ・サポートを提供する Caché リリースとして最初のものです。Atelier IDE は、強力で普及している Eclipse 開発環境と InterSystems Caché データベースを統合します。Atelier により、最新のファイル・ベースの IDE を使用して、クライアント・システムで Caché アプリケーションを開発できます。Atelier は、アプリケーションの実行とデバッグが可能な Caché サーバにアプリケーションをアップロードする処理を行います。

将来の開発は、新規の Eclipse ベースの IDE を主な対象としています。スタジオはインストールのオプションとして残されるため、開発者は引き続きスタジオを使用してコードを開発できます。しかし、スタジオは保守プロダクトと見なされ、今後は Atelier へ移行していくため、スタジオには新機能は追加されなくなります。必要なリソースと問題の重大度の兼ね合いによっては、スタジオの小さなバグは対処されない場合があります。

Atelier は、Caché や Ensemble に加えて別途ダウンロードして利用できます。お客様は、スタンドアロンのリッチ・クライアント・プラットフォーム (RCP) アプリケーションをインストールするか、既存の Eclipse インストールに追加できるプラグインをインストールするか選択できます。RCP アプリケーションのユーザは、Eclipse プラグインを追加できます。Atelier では、Eclipse の自動更新メカニズムを使用して、最新の変更を入手できます。Atelier のダウンロードおよび Atelier のドキュメントの詳細は、Atelier のホーム・ページ http://www.intersystems.com/atelierOpens in a new tab を参照してください。

OAuth 2.0 および OpenID Connect に対するサポート

今回のリリース以降、Caché は OAuth 2.0 フレームワークおよび OpenID Connect Core をサポートします。Caché は、クライアントとして、リソース・サーバとして、および承認サーバとして機能できます。"Caché での OAuth 2.0 および OpenID Connect の使用法" を参照してください。また、InterSystems Developer Community に投稿された https://community.intersystems.com/post/caché-open-authorization-framework-oauth-20-implementation-part-1Opens in a new tab の記事も参照してください。

SQL/JSON のサポート

SQL 構文が向上し、SQL/JSON 標準のいくつかの部分をサポートするようになりました。これにより、JSON データを SQL クエリの結果として構成できます。サポートされる機能は以下のとおりです。

  • JSON_OBJECT — 検出される行ごとに JSON オブジェクトを構成します。

  • JSON_ARRAY — 検出される行ごとに JSON 配列を構成します。

SQL の改善

今回のリリースでは、以下の SQL パフォーマンスの強化と改善が行われました。

  • %Parallel — クエリをチャンクに分割し、複数のプロセッサ・システムで並列に実行できるようにすることにより、クエリのパフォーマンスを向上させます。今回のリリースでは、%Parallel インフラストラクチャの改善点は以下のとおりです。

    • クエリをチャンクに分割するためのオーバーヘッドが削減されています。

    • Caché は、使用可能なハードウェア・スレッドの数に基づいて、キューを複数のチャンクに動的に分割します。

    • チャンクに分割できるクエリ条件の数が増えています。例えば、Caché は、IN (?, ?, ?) や %INLIST() などのセット・ループ構造をチャンクに分割できるようになりました。

    こうした変更の結果、詳しい分析を行わずに、%Parallel をほとんどのクエリに追加できるようになっています。Caché がタスクをチャンクに分割し並列処理を使用することによってパフォーマンスを向上できる場合は、それが実行されます。クエリが並列処理に適さない場合や、使用可能なハードウェア・スレッドがシステムに 1 つだけの場合、Caché はこの状況を認識して、クエリをチャンクに分割するオーバーヘッドを回避します。

  • リスト・コレクションを反復処理するときのパフォーマンスが向上しました。

  • 凍結されたプラン — インデックスの変更や他の変更の実行中は、プランを凍結できます。

その他の注意事項

さらに、これ以外にも、さまざまな点で機能強化や改善がなされています。特に既存のインストール環境をアップグレードする場合は、"アップグレード・チェックリスト" で詳細な変更内容を確認してください。

マイナーな改善が行われたその他の領域には、以下が含まれます。

  • 今回のリリースでは、Caché ソース・コード・ファイルにアクセスするための新しい REST API が利用できます。この API は、Atelier IDE へのアクセスを提供するために実装されたもので、IDE や同様のアプリケーションを作成できます。詳細は、"REST を使用した Caché ソース・コード・ファイルへのアクセス" を参照してください。

  • DataCheck ユーティリティは、並列処理の使用効率を高めることで、チェックをより速く実行できます。^DATACHECK オペレータ・インタフェースのステータス・ページと開始ダイアログが拡張されて、使いやすさが向上しています。

  • Caché は、特定の重要な実行パスで、より高速なメモリ同期メカニズム (メモリ・バリア) を使用するように拡張されました。データ採集テストは、Linux x86-64 において 10% を超えるパフォーマンスの向上を示しています。これらの改善は、以下のプラットフォームに適用されます。

    • Apple Mac OS X (x86-64)

    • IBM AIX® for Power System-64

    • Microsoft Windows for x86–32, x86–64

    • Linux for x86–32, x86–64

    • Solaris for x86–64, SPARC-64

    これらの改善は、Itanium および Alpha プラットフォームには影響を与えません。

Caché 2016.2 アップグレードのチェックリスト

目的

このセクションでは、Caché 2016.2 の機能のうち、今回のバージョンで変更されたために、既存のシステムの管理、運用、または開発の作業に影響を及ぼすものを取り上げます。

前回リリースよりも前のリリースからアプリケーションをアップグレードする場合は、その中間に存在するリリースのアップグレード・チェックリストにも目を通すことを強くお勧めします。このドキュメントでは、2016.1 と 2016.2 の違いのみを取り上げています。

このドキュメントの冒頭に記載したアップグレードの説明は、このバージョンに適用されます。

管理者

このセクションでは、以前のバージョンの Caché の管理作業を熟知しているユーザを対象に、バージョン 2016.2 の管理に関する新機能と変更点を説明します。ここでは、各項目について簡単に説明します。ほとんどの場合は、ドキュメントの別の箇所に詳しい説明があります。

操作上の変更

ここでは、システムによる処理方法に影響を与える変更について説明します。

SQL 並列の変更により一般メモリ・ヒープの増加が必要になる場合があります

今回のリリースでは、Caché は一般メモリ・ヒープ (gmheap) の InterProcess Queues (IPQ) を使用して、SQL 並列クエリを処理します。これらのクエリは前のリリースではこのリソースを使用しなかったため、一般メモリ・ヒープのサイズを増やすことが必要になる場合があります。サイズを増やすには、[システム管理][構成][追加設定][メモリ詳細] を選択し、gmheap サイズを増やして、Caché を再起動します。

ワーカ・ジョブの変更により、ユーザ許可の変更が必要になる場合があります

効率を向上させるために、今回のリリースでは、すべてのユーザの間でワーカ・ジョブを共有します。これらのワーカ・ジョブはスーパーサーバによって開始されます。これは前のリリースとは異なります。前のリリースでは、各ワーカ・ジョブは通常、Caché を実行しているユーザのアカウントで実行されていました。その結果、これらのジョブは、前のバージョンと比べると異なる OS ユーザの下で実行されます。スーパーサーザの OS ユーザに現在のユーザと同じファイル権限がない場合、ワーカ・ジョブにはファイルのアクセスに必要なファイル権限がないことがあります。この問題が発生する場合は、オペレーティング・システムのユーザ・アカウントに追加の許可を付与すると解決できます。問題がカスタム・コードで発生する場合は、ワーク・キュー・マネージャに “/multicompile=0” を渡すように開発者に指示してください。このパラメータは、現在のユーザ・アカウントでワーカ・ジョブを実行するようにワーク・キュー・マネージャに指示します。

^JCONVERT ジャーナル変換の変更

今回のリリースでは、^JCONVERT は RAW 形式を出力形式としてサポートしなくなったため、この形式のプロンプトは削除されました。今回のリリースでは、^JCONVERT はジャーナル・ファイルを変数/UTF8 形式にのみ変換します。

前のリリースでは RAW 形式の出力がサポートされていましたが、バイナリ・ジャーナル・データは処理されないといった、実質的な制限がありました。^JCONVERT を使用して RAW ファイルを作成した場合は、変換が必要かどうかを評価してください。

Note:

^JCONVERT をスクリプトから実行している場合、最初のプロンプトは削除されたため、スクリプトを変更する必要があります。

グローバル・バッファの共有メモリの増加

前のリリースでは、自動構成でのグローバル・バッファの共有メモリは 256 メガバイトに制限されていました。今回のリリースでは、自動構成で、最大 1 ギガバイトの共有メモリをグローバル・バッファに使用できます。多数のインスタンスを単一のシステムで実行している場合、このメモリの増加により、使用できるインスタンスの数が制限されることがあります。通常、こうした構成はテスト環境や開発環境に使用されます。"自動" 構成は、プロダクション・システムまたはパフォーマンス・ベンチマークの作成には使用してはならないことに注意してください。

プラットフォーム固有の項目

このセクションでは、特定のプラットフォームに関係する項目について説明します。

UNIX®

前のリリースでは、.tar.gz で圧縮されたアーカイブ・ファイルを解凍すると、圧縮されたアーカイブ・ファイルが含まれるフォルダと同じ最上位のフォルダに、すべてのファイルが配置されていました。今回のリリースでは、圧縮されたアーカイブ・ファイルと同じ名前 (.tar.gz 拡張子は省略) で新規ディレクトリが作成され、解凍されたファイルはすべてそのディレクトリに入れられます。

アーカイブ・ファイルを解凍してからインストールを実行するスクリプトを使用している場合は、この新規ディレクトリに対処するようにスクリプトを変更する必要があります。

Mac OS X

前のリリースでは、.tar.gz で圧縮されたアーカイブ・ファイルを解凍すると、圧縮されたアーカイブ・ファイルが含まれるフォルダと同じ最上位のフォルダに、すべてのファイルが配置されていました。今回のリリースでは、圧縮されたアーカイブ・ファイルと同じ名前 (.tar.gz 拡張子は省略) で新規ディレクトリが作成され、解凍されたファイルはすべてそのディレクトリに入れられます。

アーカイブ・ファイルを解凍してからインストールを実行するスクリプトを使用している場合は、この新規ディレクトリに対処するようにスクリプトを変更する必要があります。

開発者

このセクションでは、以前のバージョンの Caché 上で実行されているアプリケーションの設計者、開発者、および保守担当者に関係する情報を示します。

ここでは、各項目について簡単に説明します。ほとんどの場合は、ドキュメントの別の箇所に詳しい説明があります。

クラスの変更

クラスの削除

以前のバージョンに存在していた以下のクラスは、今回のリリースで削除されています。

  • %Dictionary — CompiledSystemMethod、CompiledSystemMethodQuery、SystemMethodDefinition、SystemMethodDefinitionQuery

  • %EM.Session — AssignToMirrorGroup、CreateMirror、EditAborted、EditApproved、EditCompleted、UpdateInstances

  • %Library — AbstractObject、Array、Object

  • %SYSTEM — WorkIPQ、WorkMgrSend

削除されたメソッド

以前のバージョンに存在していた以下のメソッドは、今回のリリースで削除されています。

  • %CSP.Documatic

    • RenderSystemMethodInfo

  • %EM.Session

    • AssignToMirrorGroup

    • CreateMirror

    • EditAborted

    • EditApproved

    • EditCompleted

    • UpdateInstances

削除されたプロパティ

以前のバージョンに存在していた以下のプロパティは、今回のリリースで削除されています。

  • %Dictionary.ClassDefinition

    • SystemMethods

  • %Dictionary.CompiledClass

    • SystemMethods

  • %Library.ClassDefinition

    • SystemMethods

  • %SYSTEM.WorkMgrIPQ

    • queueIdx

    • tailIdx

  • Security.SSLConfigs

    • CRLFile

削除されたパラメータ

以前のバージョンに存在していた以下のパラメータは、このリリースで削除されています。

削除されたパラメータはありません。

削除されたインデックス

以前のバージョンに存在していた以下のインデックスは、今回のリリースで削除されています。

削除されたインデックスはありません。

変更されたメソッド

今回のバージョンの Caché では、以下のメソッドのシグニチャが変更されました。

  • %CSP.UI.Portal.SQL.Home

    • 古いメソッド: doReferenceTo (newtable) As (none)

    • 新しいメソッド: doReferenceTo (newtable, type) As (none)

  • %CSP.UI.Portal.SQL.Utils

    • 古いメソッド: SQLExecuteQuery (pText:%String(MAXLEN=""), &pClassName:%String, pRuntimeMode:%Integer=2, pDialect:%String="Cache", pObjectSelectMode:%Boolean=0, %caller:%String="", &tGlobals) As %String

    • 新しいメソッド: SQLExecuteQuery (pText:%String(MAXLEN=""), &pClassName:%String, pRuntimeMode:%Integer=2, pDialect:%String="Cache", pObjectSelectMode:%Boolean=0, %caller:%String="", &tGlobals, &tLines, &tDiskRead) As %String

  • %CSP.UI.SQL.RunQueryPane

    • 古いメソッド: DrawResult (&tRS:%ResultSet, tGlobals:%String, tStart:%String) As (none)

    • 新しいメソッド: DrawResult (&tRS:%ResultSet, tGlobals:%String, tStart:%String, tLines:%String, tDiskRead:%String) As (none)

    • 古いメソッド: ExecuteResultSet (pParam:%String, &pRS:%ResultSet) As %Status

    • 新しいメソッド: ExecuteResultSet (%pParam:%String, &%pRS:%ResultSet) As %Status

  • %DeepSee.Component.Widget.widget

    • 古いメソッド: printSVGContent (svgFrameId, parms) As (none)

    • 新しいメソッド: printSVGContent (svgFrameId, parms, svgContent) As (none)

  • %DeepSee.Component.deepseeSvgImageProvider

    • 古いメソッド: parseSize (sizeStr) As (none)

    • 新しいメソッド: parseSize (size) As (none)

    • 古いメソッド: prepareFilterTable (filterNames, filterValues) As (none)

    • 新しいメソッド: prepareFilterTable (filterNames, filterValues, parms) As (none)

  • %DeepSee.ResultSet

    • 古いメソッド: %PrepareKey (pCubeName:%String, pQueryKey:%String) As %Status

    • 新しいメソッド: %PrepareKey (pCubeName:%String="", pQueryKey:%String="", pPrepareMDX:%Boolean=0) As %Status

  • %DeepSee.UI.FolderManager

    • 古いメソッド: ExportItems () As %String

    • 新しいメソッド: ExportItems (pUseContainerClass:%Boolean, pContainerClassName:%String="") As %String

  • %EM.Session

    • 古いメソッド: IsEditable (groupName:%String, serviceName:%String) As %Boolean

    • 新しいメソッド: IsEditable (groupName:%String, serviceName:%String) As %String

  • %EM.Session.IsEditable

    • 古いメソッド: Invoke (%Client, %Action, groupName:%String, serviceName:%String) As %Library.Boolean

    • 新しいメソッド: Invoke (%Client, %Action, groupName:%String, serviceName:%String) As %Library.String

  • %Iterator.Array

    • 古いメソッド: %OnNew (oref:%Library.AbstractObject) As %Status

    • 新しいメソッド: %OnNew (oref:%Library.DynamicAbstractObject) As %Status

  • %Library.GTWCatalog

    • 古いメソッド: SQLProceduresExecute (&QHandle:%Binary, dsn:%String, pname:%String, schname:%String, catalog:%String="") As %Status

    • 新しいメソッド: SQLProceduresExecute (&QHandle:%Binary, dsn:%String, pname:%String, schname:%String="", catalog:%String="") As %Status

  • %Net.Provision.Configure

    • 古いメソッド: AuthenticateWithKeyPair (username:%String, publickeyfile:%String, privatekeyfile:%String, passphrase:%String) As %Status

    • 新しいメソッド: AuthenticateWithKeyPair () As %Status

    • 古いメソッド: AuthenticateWithUsername (username:%String, password:%String) As %Status

    • 新しいメソッド: AuthenticateWithUsername () As %Status

    • 古いメソッド: Provision (cachekitfile:%String="") As %Status

    • 新しいメソッド: Provision () As %Status

  • %SYSTEM.OBJ

    • 古いメソッド : CompileList (&list:%String="", qspec:%String="", &errorlog:%String) As %Status

    • 新しいメソッド : CompileList (&list:%String="", qspec:%String="", &errorlog:%String, &updatedlist:%String) As %Status

  • %SYSTEM.WorkMgr

    • 古いメソッド: Clear (timeout:%Integer=5) As %Status

    • 新しいメソッド: Clear (timeout:%Integer=0) As %Status

    • 古いメソッド: WaitForComplete (qspec:%String) As %Status

    • 新しいメソッド: WaitForComplete (qspec:%String, errorlog:%String) As %Status

  • %SYSTEM.WorkMgrIPQ

    • 古いメソッド: Decode (data:%String, qspec:%String, &AtEnd:%Boolean) As %Status

    • 新しいメソッド: Decode (qspec:%String, &AtEnd:%Boolean) As %Status

  • %Studio.Project

    • 古いメソッド : realCompile (qstruct, &%errorlog:%String, &itemlist:%String) As %Status

    • 新しいメソッド : realCompile (qstruct, &%errorlog:%String, &itemlist:%String, &updatedlist:%String) As %Status

  • %Studio.SASchemaClass

    • 古いメソッド: GetSchemaForClasses (&pClassList:%String, pNode) As %Status

    • 新しいメソッド: GetSchemaForClasses (&pClassList:%String) As %Status

    • 古いメソッド: loopGlobal (pStream:%Stream.Object, pNode:%String) As %Status

    • 新しいメソッド: loopGlobal (pStream:%Stream.Object) As %Status

  • %ZEN.Auxiliary.altJSONProvider

    • 古いメソッド: %ArrayToAET (&pMetaData, &pData) As %AbstractObject

    • 新しいメソッド: %ArrayToAET (&pMetaData, &pData) As %DynamicAbstractObject

    • 古いメソッド: %GetTypeInfo (pClass:%String, pProperty:%String) As %Object

    • 新しいメソッド: %GetTypeInfo (pClass:%String, pProperty:%String) As %DynamicObject

    • 古いメソッド: %ObjectToAET (pObject:%RegisteredObject, &oVisited, pLevel:%Integer=0, pFormat:%String="acelo") As %AbstractObject

    • 新しいメソッド: %ObjectToAET (pObject:%RegisteredObject, &pVisited, pLevel:%Integer=0, pFormat:%String="acelo") As %DynamicAbstractObject

    • 古いメソッド: %TestForNestedObjects (pObj:%Array) As %Boolean

    • 新しいメソッド: %TestForNestedObjects (pObj:%DynamicArray) As %Boolean

  • %ZEN.Auxiliary.jsonMDXProvider

    • 古いメソッド: %ConstructNewDynamicArray () As %Array

    • 新しいメソッド: %ConstructNewDynamicArray () As %DynamicArray

    • 古いメソッド: %ConstructNewDynamicObject () As %Object

    • 新しいメソッド: %ConstructNewDynamicObject () As %DynamicObject

  • SYS.DataCheck.DestinationSYS.DataCheck.Destination

    • 古いメソッド: Start () As %Status

    • 新しいメソッド: Start (restartworkflow:%Boolean) As %Status

スタジオの変更

実装されるメソッドは読み取り専用としてマークされます

前のリリースでは、スタジオは、$system.OBJ.MakeClassDeployed() メソッドで処理されたデータタイプ・クラスを無視しました。今回のリリースでは、スタジオに表示されますが、読み取り専用としてマークされます。

DeepSee

DeepSee はロケール設定を使用して日付値と時刻値を表示する

今回のリリースでは、現在のロケールを使用して日付を表示する必要があることを指定した場合、DeepSee はロケールに従って日付を表示します。例えば、日付は、以前のリリースでは "mmm dd y" 形式で表示されましたが、今回のリリースでは "mm/dd/y" 形式で表示されます。日付に現在のロケールを使用しないことを指定するか、または明示的に形式を指定することによって、以前の動作に戻すことができます。日付に現在のロケールを使用しないことを指定するには、[システム管理] > [構成] > [各国言語の設定] > [ロケール定義] を選択して、[ロケール名 に対してロケールの日付/時刻/数値 形式を使用][いいえ] を選択します。

DeepSee の ^OBJ.DSTIME の更新状態の追跡の変更

競合状態を回避するために、今回のリリースでは、クラスの更新状態を追跡する場所を変更しています。アプリケーションで以下の両方を実行している場合、変更を反映するためにアプリケーションを更新する必要があります。

  • ^OBJ.DSTIME からクラスに対する更新のログを読み込む

  • DeepSee を使用して、クラスに基づいてキューブを構築または同期する

アプリケーションで上記の両方を実行している場合、^OBJ.DSTIME から ^DeepSee.Update への参照を変更する必要があります。^DeepSee.Update グローバルには、以前 ^OBJ.DSTIME に格納されていたのと同じ更新状態のログが含まれます。%PurgeDSTIME メソッドは、^DeepSee.Update グローバルを消去します。^OBJ.DSTIME グローバルに格納されているクラスの ID エントリは、そのクラスに基づくキューブに対して更新が行われるたびに削除されます。

個々の ID は、^OBJ.DSTIME バッファに同一構造で格納されます。

^DeepSee.Update(class,counter,ID) = updateType

Ensemble

IsEnsembleNamespace メソッドはパラメータを受け取る

今回のリリースでは、%Library.EnsembleMgr IsEsembleNamespace() メソッドのパラメータとしてネームスペースの名前を指定できます。メソッドでは、ネームスペースが Ensemble で有効な場合は 1、有効ではない場合は 0 を返します。パラメータを指定しない場合のメソッドの動作はこれまでと同じであり、現在のネームスペースの値を返します。以前のリリースでは、このメソッドはパラメータを受け取りませんでしたが、パラメータを指定した場合はメソッドが常に 0 を返していました。

バッチ・トランザクションの X12 レスポンスを実装ガイドに従うように変更した

今回のリリースでは、X12 ビジネス・サービスが X12 バッチ・トランザクションで 999 レスポンスを送信するのは、実装ガイドで 999 レスポンスが指定されているトランザクション・タイプの場合のみです。他の X12 バッチ・トランザクションの場合は、Ensemble が 997 レスポンスを返します。Ensemble 2014.1 から Ensemble 2016.1 までは、X12 ビジネス・サービスは、受信したバッチのバージョンが 5010 以降の場合に 999 レスポンスを送信していました。Ensemble 2016.2 での動作は正しい動作ですが、999 レスポンスを想定しているコードを使用している場合は、999 レスポンス・ドキュメントを構築するために、カスタム X12 ビジネス・サービス・クラスで OnConstructReply() メソッドをオーバーライドできます。

具体的には、X12 ビジネス・サービスは、産業識別子コード (括弧内は関連付けられているトランザクション・セット識別子コード) が以下のいずれかである X12 バッチ・トランザクションの場合のみ、999 レスポンスを構築します。

   005010X187 (269) 
   005010X279 (270/271) 
   005030X209 (274) 
   005040X254 (275) 
   005010X212 (276/277) 
   005010X214 (277CA) 
   005010X217 (278) 
   005010X218 (820) 
   005010X220 (834) 
   005010X221 (835) 
   005010X222 (837P) 
   005010X223 (837I) 
   005010X224 (837D) 
効率が向上したためにプロダクション構成ページに古いデータが表示される可能性がある

Ensemble プロダクション構成は、定期的にプロダクション状態を問い合わせて、プロダクションの更新が必要かどうかをテストします。これらのチェックにより、コア・ランタイム・データがロックされます。今回のリリースでは、プロダクション構成ページでロックを保持する時間が短くなりました。これによりプロダクション効率は向上しますが、古いプロダクション・ステータスまたは更新情報が表示される可能性があります。このページでツールチップに古い更新情報が表示されていても、更新を選択すると、表示されている古い値ではなく、現在値が常に使用されます。

ソース・コントロールで禁止されている場合はユーザはドキュメントを編集できない

今回のリリースでは、Ensemble エディタでソース・コントロールがサポートされており、ユーザはソース・コントロールによって読み取り専用とマークされているドキュメントを変更できません。チェック・アウトされていないドキュメントをユーザが開くと、読み取り専用として表示されます。このドキュメントを編集するには、ユーザがソース・コントロールからドキュメントをチェック・アウトして、エディタを更新する必要があります。ユーザが開いたときにはチェック・アウトされていたドキュメントが、その後ソース・コントロールによって読み取り専用とマークされた場合は、ユーザはそのドキュメントを上書き保存することはできません。[名前を付けて保存] を使用して名前を変更する必要があります。以下の Ensemble エディタが上記のように動作します。

  • BPL エディタ

  • DTL エディタ

  • ルール・エディタ

  • レコード・マッパ

  • 複雑なレコード・マッパ

  • データ・ルックアップ・テーブル

  • レコード・マッパ

XML スキーマ・グローバル・ストレージの変更

今回のリリースでは、XSD に使用する内部グローバル・ストレージが変更されています。ドキュメントには記載されていませんが、以前のリリースでは、仮想 XSD グローバル・ストレージの配列ノードに直接アクセスできました。今回のリリースでは、このアクセスは機能しません。このデータには、GetContentArray() API を使用してアクセスできます。

この変更により、XSD を表現するために必要なストレージが減少します。この変更の副次的作用として、大きなスキーマを再インポートする場合、廃止されたスキーマ・データが削除されると、大量のジャーナリングが記録される可能性があります。

JSON ダイナミック・オブジェクト

JSON ダイナミック・オブジェクト・クラスの変更

今回のリリースでは、Caché 2016.1 で導入された JSON ダイナミック・オブジェクト・クラスが大幅に変更されています。これらの変更の詳細は、"JSON changes in Caché 2016.2 (https://community.intersystems.com/node/413171)Opens in a new tab" を参照してください。この記事には、Caché 2016.1 JSON ダイナミック・オブジェクト・クラスを操作する自作のコードを更新する方法に関するガイダンスも含まれています。

ユーティリティの変更

CacheHung.sh ユーティリティの出力ディレクトリの変更

今回のリリースでは、CacheHung ユーティリティは、出力ファイルを instance/mgr ディレクトリに移動した後、現在のディレクトリからそのファイルを削除します。前のリリースでは、このユーティリティは出力ファイルを instance/mgr ディレクトリにコピーした後も、現在のディレクトリに残していました。出力ファイルが現在のディレクトリにあることを想定しているスクリプトがある場合は、スクリプトを変更する必要があります。

Note:

現在のプロセスに instance/mgr ディレクトリへの書き込み許可がない場合は、移動は失敗して、出力ファイルは現在のディレクトリに残されます。

ReturnUnusedSpace は常に有効な %Status 値を返すようになりました

SYS.Database.ReturnUnusedSpace は %Status を返しますが、前のバージョンでは、可能な返り値として -1 と -2 も挙げられていました。特定の競合するデータベース操作 (例えば、拡張とバックアップ) が進行していると、これらの値が返されましたが、その他の競合する操作では、適切なエラー・ステータスとしてこれらの値が返されました。インターフェイスが更新され、すべての障害 (同一ディレクトリでの拡張またはバックアップが原因で発生する障害を含む) を適切な %Status 返り値として返すようになりました。ReturnUnusedSpace を呼び出すコードを検査して、%Status 返り値が適切に処理されるようにしてください。

FeedbackOpens in a new tab