アップグレード後のタスク
必要なアップグレード後のタスクは、InterSystems IRIS の新規メジャー・バージョンへのアップグレードか、インストール済みバージョンのメンテナンス・リリースへのアップグレードかによって異なります。また、以下の点についても注意してください。
-
アップグレード中にインスタンスを 8 ビットから Unicode に変更した場合、データベースは自動的には変換されません。ユーザが自分自身でこの変換作業を行う必要があります。詳細は、"サーバ側プログラミングの入門ガイド" の “ネームスペースとデータベース” の章の "データベースの移植性" のセクションを参照してください。
-
OpenAPI 2.0 仕様Opens in a new tabファイルを再インポートする必要はありません。
-
Web サービス定義 (WSDL) ファイルを再インポートする必要はありません。
-
クエリ・キャッシュは常にアップグレードの際に削除されます。 これらは、必要に応じてリコンパイルされ、キャッシュされます。
-
インストール・プロセスで Web サーバを自動構成しなかった場合は、これを手動で接続する必要があります。
-
Web サーバで 80 以外のポート番号を使用している場合は、IDE と接続できるようにするため、CPF の WebServerPort および WebServerURLPrefix パラメータを Web サーバのポート番号に変更する必要があります。
-
プライベート Web サーバ (2023.1 以前) が設定されているインスタンスからアップグレードした場合は、プライベート Web サーバを無効化および削除する必要があります。
メンテナンス・リリースのアップグレード後のタスク
アップグレードの完了後、システムでプロダクションを実行している場合は、"プロダクションの管理" の “プロダクションの開始と停止” の章にある "プロダクションの開始" のセクションの手順に従ってプロダクションを再開します。
通常、メンテナンス・リリース・アップグレードでは、外部ファイルやクライアントを変更したり、クラスやルーチンをリコンパイルしたりする必要はありません。ただし、クライアント上のスタジオ・バージョンは、接続先の InterSystems IRIS サーバ・バージョンと同じかそれ以降である必要があります。
リコンパイルする場合は、"メジャー・バージョンのインストール後のタスク" のセクションの情報を参照してください。
メジャー・バージョンのインストール後のタスク
InterSystems IRIS を新規メジャー・バージョンにアップグレードした後は、"リリース・ノート" の "アップグレードの一般情報" に示されているガイダンスに従うことが重要です。以下のタスクも実行する必要があります (この章の前の手順の一部として実行していない場合)。
-
クラスおよびルーチンのリコンパイル — 各ネームスペースに含まれるすべてのクラスとすべてのルーチンをリコンパイルすることをお勧めします。手順については、"ネームスペースのコンパイル方法" を参照してください。アップグレードするインスタンスに固有の依存関係およびその他のニーズを考慮して、そのための独自のツールや手順を使用できます。
-
%SYS クラスおよびルーチンのリコンパイル — すべてのクラスおよびルーチンをコンパイルする際、既定では %SYS ネームスペースはスキップされます。必ずこのネームスペースも再コンパイルしてください。手順については、"ネームスペースのコンパイル方法" を参照してください。“Z”、“z”、“%Z”、“%z” で始まるクラスとルーチンのみが、アップグレード時に保持されます。これらのクラスとルーチンはプリコンパイルできません。
-
プロキシ・クラスの再生成 — アップグレードしたインスタンスで生成されていたプロキシ・クラスはすべて、"InterSystems IRIS 言語バインディング" セットの該当するガイドの手順に従って再生成する必要があります。
この項目は Web サービスおよび Web クライアントには適用されません。Web サービス定義 (WSDL) ファイルを再インポートする必要はありません。
-
ブラウザ・キャッシュのクリア — ブラウザ・キャッシュに、インストール済みバージョンの InterSystems IRIS との互換性がなくなった JavaScript ファイルが含まれていると、エラーが発生することがあります。アップグレードの完了後、直ちにブラウザ・キャッシュをクリアしてください。
お使いの環境および使用するコンポーネントによっては、以下のタスクが必要になることがあります。
-
クエリ・プランの確認。新しいメジャー・バージョンにアップグレードするときに、既存のクエリ・プランは自動的に凍結されます。これにより、ソフトウェアのメジャー・アップグレードによって既存のクエリのパフォーマンスが低下することがなくなります。パフォーマンスが重要なクエリの場合、パフォーマンスの改善が達成できたかどうかをテストする必要があります。
-
プロダクションの再開 — システムでプロダクションを実行している場合は、"プロダクションの管理" の “プロダクションの開始と停止” の章にある "プロダクションの開始" のセクションの手順に従ってください。
-
スタジオ・クライアントのアップグレード — クライアント上のスタジオ・バージョンは、接続先の InterSystems IRIS サーバ・バージョンと同じかそれ以降である必要があります。
-
Web ゲートウェイのアップグレード — Web ゲートウェイがアップグレードしている InterSystems IRIS サーバとは別個のマシン上にある場合、その別個のマシン上の Web ゲートウェイもアップグレードする必要があります。これを行うには、この章の "Windows でのアップグレード手順" に従うか、"Windows での自動インストール" の説明に従って、ADDLOCAL プロパティを使用してサイレント・インストールを実行します。
-
Web サーバ・ファイルの更新 — アップグレード後、サイトで確立されている手法を使用して、これらを導入する必要があります。
ネームスペースのコンパイル方法
アップグレード後、各ネームスペース内のコードをコンパイルして、新規バージョンの InterSystems IRIS で実行されるようにする必要があります。コンパイラでエラーが検出された場合、コンパイラですべての依存関係を解決するために、1 回または複数回のリコンパイルが必要になることがあります。
追加の環境でアップグレードを実行する必要がある場合は、コードが正常にコンパイルされた後、更新済みのクラスまたはルーチンをエクスポートできます。今後アップグレードを行う際にこれらのクラスまたはルーチンをインポートすると、ダウンタイムを最小限に抑えて、迅速にコードを更新することができます。
アップグレード・プロセスの一部としてマニフェストを使用する場合は、マニフェストからコードをコンパイルすることができます。手順については、このドキュメントの付録 "インストール・マニフェストの作成および使用" の "アップグレード後のタスクの実行" のセクションを参照してください。
クラスのコンパイル
ターミナルからすべてのネームスペース内のクラスをコンパイルするには :
do $system.OBJ.CompileAllNamespaces("u")
ターミナルから 1 つのネームスペース内のクラスをコンパイルするには :
set $namespace = "<namespace>"
do $system.OBJ.CompileAll("u")
ターミナルから %SYS ネームスペース内のクラスをコンパイルするには :
set $namespace = "%SYS"
do $system.OBJ.CompileAll("u")
ネームスペースに、マップされたクラスが含まれる場合は、CompileAllNamespaces() または CompileAll() の呼び出しに /mapped 修飾子を含めます。
do $system.OBJ.CompileAllNamespaces("u /mapped")
do $system.OBJ.CompileAll("u /mapped")
クラス・コンパイラ・バージョン・ユーティリティ
ネームスペース内のクラスがどのクラス・コンパイラ・バージョンを使用してコンパイルされているかをお客様が判断するのを支援するため、インターシステムズでは 2 つの支援を提供しています。
-
メソッド – $System.OBJ.CompileInfoClass(<classname>)
このメソッドは、この <classname> のコンパイルに使用されたクラス・コンパイラのバージョンとこのクラスがコンパイルされた日時を返します。
-
クエリ – $System.OBJ.CompileInfo(<sortby>)
このクエリは、すべてのクラス、各クラスをコンパイルするのに使用されたコンパイラのバージョン、各クラスがコンパイルされた日時が含まれる、現在のネームスペースのレポートを生成します。最初の引数 <sortby> は、以下の値を取ることができます。
-
0 – クラスがコンパイルされた時間
-
1 – クラス名
-
2 – クラスがコンパイルされた InterSystems IRIS のバージョン
-
ルーチンのコンパイル
ターミナルからすべてのネームスペース内のルーチンをコンパイルするには :
do ##Class(%Routine).CompileAllNamespaces()
ターミナルから 1 つのネームスペース内のルーチンをコンパイルするには :
set $namespace = "<namespace>"
do ##Class(%Routine).CompileAll()
ターミナルから %SYS ネームスペース内のルーチンをコンパイルするには :
set $namespace = "%SYS"
do ##Class(%Routine).CompileAll()