5.9.1 作業用コピーについて
作業用コピーについて説明します。
作業用コピーを使用すると、開発者はアプリケーションの特殊なコピーを作成し、そのコピーに変更を加え、その変更をメインの開発アプリケーション(メイン・アプリケーション)にマージできます。同様に、メイン・アプリケーションから作業用コピーに変更内容をマージすることもできます。エクスポート・プロセス中に、作業用コピーとメイン・アプリケーションの比較(または差分)を表示して、マージする変更を選択できます。
この機能の一般的なユース・ケースは、最初にページで変更をテストしてから、その変更をメイン・アプリケーションにマージして戻す場合です。
比較プロセスについて
作業用コピーをメイン・アプリケーションと比較すると、両方のアプリケーションの分割YAMLエクスポートが取得され、個別のファイルにチェックサムが生成されます。作業用コピーは元のIDでエクスポートされ、両方のアプリケーションでIDが同じことを保証します。その後、チェックサムが比較され、2つのアプリケーションの差異が識別されます。
ノート:
両方のアプリケーションのYAMLエクスポートは、バックグラウンド・ジョブで実行されます。そのため、データベースでJOB_QUEUE_PROCESSES
が有効になっている必要があります(つまり、JOB_QUEUE_PROCESSES
にはゼロより大きい値が必要です)。ジョブ・キューが無効になっている場合、プログレス・バーに進行状況は表示されません。マルチテナント・データベースの場合はCDBのJOB_QUEUE_PROCESSES
設定によってPDB設定をオーバーライドできるため、両方をチェックする必要があることに注意してください。JOB_QUEUE_PROCESSES
についてさらに学習するには、『Oracle APEXインストレーション・ガイド』の同時ジョブの数の制御を参照してください。
作業用コピーをメイン・アプリケーションと比較するときは、現在のアプリケーションが作業用コピーである場合はMAIN_APP_ID
置換文字列を使用してメイン・アプリケーションのIDを特定します。
マージ・プロセスについて
マージ・プロセスでは、作業用コピーからページと共有コンポーネントのサブセットを取得して、それらをメイン・アプリケーションにインポートします。ページまたは共有コンポーネントが存在する場合は、置き換えられます。そのため、作業用コピーに含まれていないメイン・アプリケーションの変更は、作業用コピーのマージによって上書きされます。
サポートされていないコンポーネント・タイプ
次のコンポーネント・タイプの自動マージは、作業用コピーではサポートされていません
- 翻訳
- テーマ
- テーマ・テンプレート
- サポートするオブジェクト
- アプリケーションのプロパティ
- ワークスペースレベルのコンポーネント(アプリケーション・グループ、資格証明、リモート・サーバーなど)
サポートされていないコンポーネント・タイプについて、Oracleの提案は、開発者が作業用コピーをマージし、その作業用コピーを削除してから、サポートされていないコンポーネント・タイプの追加または変更を手動で適用することです。
作業用コピーの制限
作業用コピーには、次のような制限があります:
-
作業用コピーの作業用コピーは作成できません。
-
削除した作業用コピーのページまたは共有コンポーネントは、メイン・アプリケーションで手動で削除する必要があります。
-
欠落としてリストされたコンポーネントは、作業用コピーで削除されているか、メイン・アプリケーションにのみ存在している可能性があります。
-
作業用コピーが作成されると、すべての自動化が無効に設定されます。自動化がメイン・アプリケーションで有効になっている場合は、比較またはマージの間にそれらが差分レポートで表示されます。
アプリケーションに自動化が含まれている場合は、マージ前に自動化の選択を解除するか、マージ後に手動で自動化を再有効化することをお薦めします。
作業用コピーに関する既知の問題
-
「サーバー・エラー」メッセージ - Oracle Databaseリリース19cでAPEXを実行しており、作業用コピー機能を使用している場合は、アクション「メインにマージ」、メインからリフレッシュまたは「変更の比較」を選択すると、基にあるORA-00600エラー・メッセージが原因で、「サーバー・エラー」メッセージが表示されることがあります。たとえば:
ORA-00600: internal error code, arguments: [qjsnplsDecDomRefCnt:noValP], [], [], [], [], [], [], [], [], [], [], []
このエラーを修正するには、Oracle Databaseリリース19.16以上にアップグレードしてください。
-
マージ中のORA-00001エラー - 作業用コピー機能では、一意でないコンポーネント名に変更した場合にその変更内容をマージしようとすると、ORA-00001一意制約エラーが発生します。このエラーの発生を防ぐために、作業用コピーとメイン・アプリケーションの間で共有コンポーネントのネーミングを調整することが重要です。
親トピック: マージ、リフレッシュまたは比較のための作業用コピーの作成