5.2 アプリケーション・コンテナへのAPEXのインストール

Oracle APEXアプリケーションのバックエンドのデータおよびメタデータを格納するアプリケーション・コンテナについて説明します。

5.2.1 アプリケーション・コンテナについて

アプリケーション・コンテナは、アプリケーション・バックエンドのデータおよびメタデータを格納するCDBコンポーネントです。

Oracle APEXは、apxappcon.sqlスクリプトを使用してアプリケーション・コンテナにインストールできます。アプリケーション・コンテナは、アプリケーションが定義されているアプリケーション・ルートと、アプリケーション・ルートからアプリケーションに関するデータおよびメタデータを共有する1つ以上のPDBから構成されます。1つのCDBに複数のアプリケーション・コンテナを含め、各コンテナに異なるバージョンのOracle APEXを含めることができます。

アプリケーション・コンテナでのOracle APEXのパッチ適用やアップグレードは、そのアクションがアプリケーション・ルートに対して実行されるため、簡略化されます。アプリケーションPDBがパッチまたはアップグレードされたバージョンを実行する場合、アプリケーション・ルートと同期されるだけです。Oracle APEXは、アプリケーションPDBがアプリケーション・ルートと同期するまで、既存のバージョンのアプリケーションPDBで引き続き実行されます。

5.2.2 アプリケーション・コンテナの作成

アプリケーション・コンテナとしてCDB内にPDBを作成するには、PDB作成コマンドのAS APPLICATION CONTAINER句を使用します。

アプリケーション・コンテナを作成するには:

  1. アプリケーション・コンテナを作成するには、CREATE PLUGGABLE DATABASE文のAS APPLICATION CONTAINER句を使用します。
  2. アプリケーション・コンテナを開きます。

    たとえば:

    CREATE PLUGGABLE DATABASE apex_approot1 AS APPLICATION CONTAINER admin user admin IDENTIFIED
          BY <admin_password> FILE_NAME_CONVERT=('pdbseed','apex_approot1');
    ALTER PLUGGABLE DATABASE apex_approot1 open;
    

ノート:

前述の例のapex_approot1およびadmin userは、有効などのORACLE識別子でもかまいません。

5.2.3 アプリケーション・コンテナでのAPEXのインストールまたはアップグレード

アプリケーション・コンテナでOracle APEXをインストールまたはアップグレードするには:

  1. アプリケーション・コンテナに接続します。
  2. apxappcon.sqlを実行します。

    apxappcon.sqlによって、APEXが、APEXという名前のアプリケーションとしてアプリケーション・ルートにインストールされます。

    このスクリプトでは、最初の4つの引数はapexins.sql scriptと同じであり、5番目のパラメータで、APEX_PUBLIC_USER用に使用するパスワードを指定します。アップグレード・インストールでは、APEX_PUBLIC_USERデータベース・ユーザーはすでに存在するため、5番目の引数は無視されます。

    たとえば:

    ALTER SESSION SET CONTAINER = apex_approot1;
    
     @apxappcon.sql SYSAUX SYSAUX TEMP /i/ P@ssw0rd!

5.2.4 アプリケーション・コンテナのインストールの確認

ORA-またはPLS-エラーのログ・ファイルを調べ、無効なオブジェクトをコンパイルして、アプリケーション・コンテナを確認します。

アプリケーション・コンテナのインストールを確認するには:

  1. インストールのログ・ファイルでORA-エラーまたはPLS-エラーを手動で調べます。
  2. 次のコマンドを実行して、無効なオブジェクトをコンパイルします。

    たとえば:

    ALTER SESSION SET CONTAINER=apex_approot1;
    
    begin
        sys.dbms_utility.compile_schema( 'APEX_220200', false );
        sys.dbms_utility.compile_schema( 'FLOWS_FILES', false );
    end;
    /
  3. dba_applicationsdba_app_errorsを問い合せます。
    SQL> select app_name, app_version, app_status from dba_applications where app_name = 'APEX';
    
    
    APP_NAME                       APP_VERSION                    APP_STATUS
    
    ------------------------------ ------------------------------ ------------
    
    APEX                           22.2                           NORMAL
    
    SQL> select app_name, app_statement, errornum, errormsg from dba_app_errors where app_name = 'APEX';
    
    
    no rows selected

5.2.5 アプリケーション・シードの作成

アプリケーション・シードは、Oracle APEXアプリケーション・ルートの事前インストール済アプリケーションにアプリケーションPDBをプロビジョニングするために使用します。

アプリケーション・シードを作成するには:

  1. sysdbaとしてCDB$ROOTに接続します。
  2. セッションを変更し、コンテナをアプリケーション・ルートに設定します。
  3. アプリケーション・シードを作成するには、CREATE PLUGGABLE DATABASE文のAS SEED句を使用します。
  4. APEXアプリケーションをアプリケーション・シードと同期します。
  5. 無効なオブジェクトをコンパイルします。
  6. アプリケーション・シードを読取り専用モードでオープンします。

    たとえば:

    ALTER SESSION SET CONTAINER=apex_approot1;
    
    CREATE PLUGGABLE DATABASE as seed admin user admin identified by <admin_password> file_name_convert=('pdbseed','apex_approot1_seed');
    
    ALTER PLUGGABLE DATABASE apex_approot1$seed open;
    
    ALTER SESSION SET CONTAINER=apex_approot1$seed;
    
    ALTER PLUGGABLE DATABASE application APEX sync;
    
    begin
        sys.dbms_utility.compile_schema( 'APEX_220200', false );
        sys.dbms_utility.compile_schema( 'FLOWS_FILES', false );
    end;
    /
    
    ALTER PLUGGABLE DATABASE close immediate;
    
    ALTER PLUGGABLE DATABASE open read only;

    ノート:

    前述の例のapex_approot1およびadmin userは、有効などのORACLE識別子でもかまいません。

5.2.6 アプリケーション・ルート・シードからのアプリケーションPDBの作成

アプリケーションPDBは、アプリケーション・ルートからCREATE PLUGGABLE DATABASE文を発行することで作成されます。

PLUGGABLE DATABASEはアプリケーション・コンテナ・シードから作成されるため、APEXアプリケーションはすでにインストールされており構成の準備ができています。

アプリケーション・ルート・シードからアプリケーションPDBを作成するには:

  1. sysdbaとしてCDB$ROOTに接続します。
  2. セッションを変更し、コンテナをアプリケーション・ルートに設定します。
  3. CREATE PLUGGABLE DATABASEコマンドを使用して、アプリケーション・シードからPDBを作成します。

    たとえば:

    ALTER SESSION SET CONTAINER=apex_approot1;
    
    CREATE PLUGGABLE DATABASE apex_pdb1 admin user admin identified by <admin password> file_name_convert=('apex_approot1_seed','apex_pdb1');
    
    ALTER PLUGGABLE DATABASE apex_pdb1 open;
    
    
    ALTER SESSION SET CONTAINER=apex_pdb1;
    
    SQL> select app_name, app_version, app_status from dba_applications where app_name = 'APEX';
    
    
    APP_NAME                       APP_VERSION                    APP_STATUS
    
    ------------------------------ ------------------------------ ------------
    
    APEX                           22.2                           NORMAL

    ノート:

    前述の例のapex_approot1およびadmin userは、有効などのORACLE識別子でもかまいません。

5.2.7 アプリケーションPDBへのHTTPアクセスの構成

新しいアプリケーションPDBをHTTPアクセスについて構成します。

Oracle REST Data Servicesのダウンロードとインストールの項で説明する手順に従って、HTTPアクセス用に新規アプリケーションPDBを構成します。