ヘッダーをスキップ
Oracle Database Application Expressインストレーション・ガイド
リリース3.1.2
B51320-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

B Oracle9i リリース2で配布されたOracle HTTP Serverの構成

Oracle9i リリース2(9.2)で配布されたOracle HTTP Serverでは、Oracle Application ExpressにアクセスするためのDAD情報はwdbsvr.appファイルに含まれています。DADは、Oracle HTTP ServerコンポーネントmodplsqlがHTTPのリクエストに応じるためにデータベース・サーバーに接続する方法を指定する一連の値です。

この付録の内容は次のとおりです。

B.1 インストール前の推奨タスク

Oracle Application Expressをインストールする前に、次のステップを実行することをお薦めします。

  1. Oracle Application Expressのすべてのインストール要件を確認して満たします。 「Oracle Application Expressのインストール要件」を参照してください。

  2. 既存のすべてのOracle DatabaseインスタンスおよびOracle関連のプロセスを停止します。

    通常の順、または優先度の高い順に、Oracle Application Expressスキーマをインストールするデータベースを除く、既存のすべてのOracle Databaseインスタンスを停止します。Real Application Clusters(RAC)システムでは、各ノードのすべてのインスタンスを停止します。

    自動ストレージ管理(ASM)を実行中の場合は、Oracle Application Expressをインストールするデータベースを除く、ASMを使用するすべてのデータベースを停止してから、ASMインスタンスを停止します。

    Oracle DatabaseおよびASMインスタンスを停止するには、Windowsの「サービス」ユーティリティを使用します。このユーティリティは、Windowsの「コントロール パネル」または「管理ツール」メニュー(「スタート」→「プログラム」)から使用できます。Oracle Databaseの名前は、OracleServiceから始まります。Oracle ASMサービスは、OracleASMService+ASMという名前です。また、ASMが使用するOracleCSServiceサービスも停止します。サービスの名前を右クリックし、メニューから「停止」を選択します。

  3. Oracle Databaseインストールをバックアップします。

    Oracle Application Expressをインストールする前に、現行のOracle Databaseインストールのバックアップを作成することをお薦めします。バックアップには、Oracle Database Recovery Manager(Oracle Databaseインストールに含まれる)を使用できます。


    参照:

    『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』

  4. ターゲット・データベースが含まれるOracle Databaseインスタンスを起動します。

    システムをバックアップした後で、ターゲットのOracle Databaseが含まれるOracleインスタンスを起動する必要があります。リスナー、Oracle HTTP Serverなど、他のプロセスは開始しないでください。ただし、リモート・インストールを実行している場合は、リモート・データベースのデータベース・リスナーが起動されていることを確認します。


    注意:

    リモート・データベースに接続している場合は、そのリスナーを起動します。

B.2 OTNからのダウンロードおよびOracle HTTP Serverの構成

このセクションでは、Oracle Technology Network(OTN)からZIPファイルをダウンロードし、Oracle9i リリース2で配布されたOracle HTTP Serverを構成して、Oracle Application Expressをインストールする方法について説明します。

このセクションの内容は次のとおりです。

B.2.1 Oracle Databaseのインストールおよびインストール前のタスクの実行

Oracle Application Expressでは、リリース9.2.0.3以上のOracle Databaseが必要です。 詳細は、ご使用のオペレーティング環境向けの『Oracle Databaseインストレーション・ガイド』および「インストール前の推奨タスク」を参照してください。

B.2.2 ソフトウェアのダウンロードおよびインストール

Oracle Application Expressをインストールするには、次のステップを実行します。

  1. Oracle Application Expressのダウンロード・ページから、apex_3.1.zipファイルをダウンロードします。次の場所で参照できます。

    http://www.oracle.com/technology/products/database/application_express/download.html
    

    ご使用のリリースがこのマニュアルの発行時点より新しい場合、実際のファイル名が異なる場合があります。

  2. 次のとおり、ディレクトリ名を変更せずにapex_3.1.zipを解凍します。

    • UNIXおよびLinuxの場合:apex_3.1.zipを解凍します。

    • Windowsの場合: Windowsエクスプローラでapex_3.1.zipファイルをダブルクリックします。

  3. 作業ディレクトリをapexに変更します。

  4. SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBAロールが指定されているSYSとして接続します。次に例を示します。

    • Windowsの場合:

      SYSTEM_DRIVE:\ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
    • UNIXおよびLinuxの場合:

      $ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
  5. 適切なインストール・オプションを選択します。

    完全開発環境ではアプリケーションを開発するため、アプリケーション・ビルダー環境へのすべてのアクセス権があります。 ランタイム環境ではアプリケーションは変更できず、実行することができます。詳細は、「Oracle Application Expressランタイム環境について」を参照してください。

    使用可能なインストール・オプションは次のとおりです。

    • 完全開発環境。次の4つの引数を記載された順序どおりに渡し、apexins.sqlを実行します。

      @apexins tablespace_apex tablespace_files tablespace_temp images
      

      各要素の意味は次のとおりです。

      • tablespace_apexは、Oracle Application Expressアプリケーション・ユーザーの表領域の名前です。

      • tablespace_filesは、Oracle Application Expressファイル・ユーザーの表領域の名前です。

      • tablespace_tempは、一時表領域の名前です。

      • images は、Oracle Application Expressイメージの仮想ディレクトリです。将来的にOracle Application Expressのアップグレードをサポートするために、仮想イメージ・ディレクトリを/i/と定義します。

      次に例を示します。

      @apexins SYSAUX SYSAUX TEMP /i/
      
    • ランタイム環境。 次の引数を記載された順序どおりに渡し、apxrtins.sqlを実行します。

      @apxrtins tablespace_apex tablespace_files tablespace_temp images
      

      各要素の意味は次のとおりです。

      • tablespace_apexは、Oracle Application Expressアプリケーション・ユーザーの表領域の名前です。

      • tablespace_filesは、Oracle Application Expressファイル・ユーザーの表領域の名前です。

      • tablespace_tempは、一時表領域の名前です。

      • images は、Oracle Application Expressイメージの仮想ディレクトリです。将来的にOracle Application Expressのアップグレードをサポートするために、仮想イメージ・ディレクトリを/i/と定義します。

      次に例を示します。

      @apxrtins SYSAUX SYSAUX TEMP /i/
      

参照:

SQL*Plusの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。

Oracle Application Expressをインストールすると、3つの新しいデータベース・アカウントが作成されます。

  • FLOWS_030100: Oracle Application Expressのスキーマおよびメタデータを所有するアカウント。

  • FLOWS_FILES: Oracle Application Expressのアップロードされたファイルを所有するアカウント。

  • APEX_PUBLIC_USER: Oracle HTTP Serverおよびmod_plsqlを使用したOracle Application Expressの構成に使用する最小限の権限が付与されたアカウント。

以前のリリースからアップグレードする場合、FLOWS_FILESはすでに存在し、APEX_PUBLIC_USERが作成されていない場合は作成されます。


ヒント:

Oracle Application Expressは、ファイル・システム上の書込み可能なディレクトリからインストールする必要があります。「インストール・セッションのログの確認」を参照してください。

B.2.3 ADMINアカウントのパスワードの変更

Oracle Application Expressを新しくインストールした場合またはランタイム環境を開発環境に変換した場合は、内部ADMINアカウントのパスワードを変更する必要があります。アップグレードの場合、パスワードは保存され、前のリリースから継承されます。

ADMINアカウントのパスワードを変更するには、次のステップを実行します。

  1. 作業ディレクトリを、インストール・ソフトウェアを解凍したapexディレクトリに変更します。

  2. SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBAロールが指定されているSYSとして接続します。次に例を示します。

    • Windowsの場合:

      SYSTEM_DRIVE:\ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
    • UNIXおよびLinuxの場合:

      $ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
  3. apxchpwd.sqlを実行します。次に例を示します。

    @apxchpwd
    

    ADMINアカウントのパスワードの入力を求められたら入力します。


参照:

SQL*Plusの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。

B.2.4 プロセスの再起動

Oracle Application Expressをインストールした後で、インストールの開始前に停止したプロセス(リスナーなど)を再起動する必要があります。また、Oracle HTTP Serverも再起動します。

B.2.5 Oracle HTTP Serverの構成

このセクションでは、Oracle9i リリース2で配布されたOracle HTTP Serverおよびmod_plsqlを構成する方法について説明します。

このセクションの内容は次のとおりです。

B.2.5.1 APEX_PUBLIC_USERアカウントのロック解除

APEX_PUBLIC_USERアカウントは、新しいOracle Application Expressのインストールの終了時にロックされます。新しいインストール環境でデータベース・アクセス記述子(DAD)を構成するには、まず、このアカウントをロック解除する必要があります。

APEX_PUBLIC_USERアカウントをロック解除するには、次のステップを実行します。

  1. SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBAロールが指定されているSYSとして接続します。次に例を示します。

    • Windowsの場合:

      SYSTEM_DRIVE:\ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
    • UNIXおよびLinuxの場合:

      $ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
  2. 次の文を実行します。

    ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK
    

B.2.5.2 APEX_PUBLIC_USERアカウントのパスワードの変更

APEX_PUBLIC_USERアカウントは、新しいOracle Application Expressのインストール時にランダムなパスワードとともに作成されます。新しいインストール環境でデータベース・アクセス記述子(DAD)を構成するには、まず、このアカウントのパスワードを変更する必要があります。

APEX_PUBLIC_USERアカウントのパスワードを変更するには、次のステップを実行します。

  1. SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBAロールが指定されているSYSとして接続します。次に例を示します。

    • Windowsの場合:

      SYSTEM_DRIVE:\ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
    • UNIXおよびLinuxの場合:

      $ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
  2. 次の文を実行します。

    ALTER USER APEX_PUBLIC_USER IDENTIFIED BY new_password
    

    new_passwordは、APEX_PUBLIC_USERに設定する新しいパスワードです。後続のセクションでDADを作成する場合に、このパスワードを使用します。

B.2.5.3 imagesディレクトリのコピー

新規インストールをロードしているか、以前のリリースをアップグレードしているかにかかわらず、トップ・レベルのapex\imagesディレクトリからOracle HTTP Server用のOracleホームを含むファイル・システム上の場所に、imagesディレクトリをコピーする必要があります。

このセクションの内容は次のとおりです。

B.2.5.3.1 アップグレード後のimagesディレクトリのコピー

アップグレード中に、既存のimagesディレクトリを上書きする必要があります。以前のバージョンに戻すことができるように、アップグレードの開始前に、Oracle Application Express用の既存のimagesディレクトリのコピーを作成して、imagesのリリース番号(images_3_0など)を示しておくことをお薦めします。

ファイル・システム上でimagesディレクトリを特定するには、httpd.confファイルでテキスト別名/i/を確認します。

imagesディレクトリのパスを特定したら、既存のimagesディレクトリをバックアップの場所にコピーします。これによって、必要に応じて、以前のリリースに戻すことができます。

既存のimagesディレクトリをコピーした後、次のコマンド構文を使用してOracle Databaseホームから既存のimagesディレクトリのパスにapex\imagesディレクトリをコピーし、既存のimagesを上書きします。

  • Windowsの場合:

    xcopy /E /I APEX_HOME\apex\images ORACLE_HTTPSERVER_HOME\Apache\images
    
  • UNIXおよびLinuxの場合:

    cp -rf APEX_HOME/apex/images ORACLE_HTTPSERVER_HOME/Apache
    

前述の構文例では、次のとおりです。

  • ORACLE_HOMEは、Oracle DatabaseのOracleホームを示しています。

  • ORACLE_HTTPSERVER_HOMEはOracle HTTP Serverの既存のOracleホームです。

B.2.5.3.2 新規インストールでのimagesディレクトリのコピー

インストール後、ディレクトリapex/imagesをコピーします。

  • Windowsの場合:

    xcopy /E /I ORACLE_HOME\apex\images ORACLE_HTTPSERVER_HOME\Apache\images
    
  • UNIXおよびLinuxの場合:

    cp -rf $ORACLE_HOME/apex/images ORACLE_HTTPSERVER_HOME/Apache
    

前述の構文例では、次のとおりです。

  • ORACLE_HOMEは、Oracle DatabaseのOracleホームを示しています。

  • ORACLE_HTTPSERVER_HOMEはOracle HTTP Serverの既存のOracleホームです。

B.2.5.4 wdbsvr.appファイルの変更

DADを作成するには、wdbsvr.appファイルを変更し、Oracle Application Express用のエントリを1つ追加します。

wdbsvr.appファイルを変更するには、次のステップを実行します。

  1. テキスト・エディタを使用して、wdbsvr.appファイルを開きます。

    • Windowsの場合:

      ORACLE_HTTPSERVER_HOME\Apache\modplsql\cfg\wdbsvr.app
      
    • UNIXおよびLinuxの場合:

      ORACLE_HTTPSERVER_HOME/Apache/modplsql/cfg/wdbsvr.app
      
  2. 次の構文を使用して、Oracle Application Express用のエントリを1つ追加します。イタリック体の設定項目のみを変更します。

    [DAD_apex]
     connect_string = localhost:1521:orcl
     password = apex
     username = apex_public_user
     default_page = apex
     document_table = wwv_flow_file_objects$
     document_path = docs
     document_proc = wwv_flow_file_mgr.process_download
     reuse = Yes
     enablesso = No
     stateful = STATELESS_RESET
     nls_lang = American_America.AL32UTF8
    

    各要素の意味は次のとおりです。

    • connect_stringは、ホストID、ポート番号、およびOracle Application ExpressがインストールされたOracle9i データベースを示します。ホスト:ポート:SIDの書式を使用します。

      使用するOracle9i バージョンのOracle HTTP Serverが、Oracle Application Expressとの併用に指定したデータベースと同じOracleホームにインストールされている場合、このパラメータを空白のままにします。

    • passwordは、APEX_PUBLIC_USERの変更したパスワードです。 詳細は、「APEX_PUBLIC_USERアカウントのパスワードの変更」を参照してください。

    • nls_lang設定で、DADの言語設定を判断します。データベース・キャラクタ・セットがAL32UTF8であるかどうかにかかわらず、nls_lang値のキャラクタ・セット部分は、AL32UTF8に設定されている必要があります。

      NLS設定の地域部分または言語部分のいずれかに空白が含まれている場合、次のように二重引用符で値を囲む必要があります。

      nls_lang = "ENGLISH_UNITED KINGDOM.AL32UTF8"
      

      データベースのNLS設定の情報を確認するには、次のようにNLS_DATABASE_PARAMETERSビューを問い合せます。

       SELECT parameter,value
       FROM nls_database_parameters
       WHERE PARAMETER IN ('NLS_CHARACTERSET','NLS_LANGUAGE','NLS_TERRITORY');
      
  3. ユーザー名などの他の設定は、前述の例のままにします。

  4. 変更を保存して、wdbsvr.appファイルを閉じます。

B.2.5.5 Oracle9i httpd.confの変更

imagesディレクトリをコピーしたファイル・システム・パスを指す別名が含まれるように、httpd.confファイルを変更する必要があります。また、SQLワークショップをサポートするために2つの新しいMIMEタイプを追加するには、httpd.confファイルを変更する必要があります。

httpd.confファイルを変更するには、次のステップを実行します。

  1. テキスト・エディタを使用して、httpd.confファイルを開きます。

    • Windowsの場合:

      ORACLE_HTTPSERVER_HOME\Apache\Apache\conf\httpd.conf
      
    • UNIXおよびLinuxの場合:

      ORACLE_HTTPSERVER_HOME/Apache/Apache/conf/httpd.conf
      
  2. imagesディレクトリをコピーしたファイル・システム・パスを指す別名エントリを追加します。

    • Windowsの場合は、次のようになります。

      Alias /i/ "C:\oracle\ora92\Apache\Apache\images/"
      
    • UNIXおよびLinuxの場合は、次のようになります。

      Alias /i/ "/home/oracle/OraHome1/Apache/Apache/images/"
      

    前述の例では、apexins.sqlスクリプトの実行時に、imagesディレクトリの別名を/i/と指定したと想定していることに注意してください。

    パスの末尾にスラッシュ(/)を含める必要があることに注意してください。

  3. 次に、SQLワークショップをサポートする次の2つの行が存在しない場合は、これを追加します。

    AddType text/xml             xbl
    AddType text/x-component     htc
    

    Oracle HTML DB 2.0以降からのアップグレードの場合、これらのMIMEタイプがすでに存在している必要があります。

  4. 変更を保存して、httpd.confファイルを閉じます。

  5. Oracle HTTP Serverを停止して再起動します。

    • WindowsでOracle HTTP Serverを停止および再起動するには、次のようにします。

      • スタート」メニュー→「プログラム」→「Oracle - OraHome」→「Oracle」→「Oracle HTTP Server」→「Oracle HTTP Serverの停止」を選択して、Oracle HTTP Serverを停止します。

      • スタート」メニュー→「プログラム」→「Oracle - OraHome」→「Oracle」→「Oracle HTTP Server」→「Oracle HTTP Serverの起動」を選択して、Oracle HTTP Serverを再起動します。

    • UNIXおよびLinuxでは、次のコマンドを実行します。

      ORACLE_HTTPSERVER_HOME/Apache/Apache/bin/apachectl stop
      ORACLE_HTTPSERVER_HOME/Apache/Apache/bin/apachectl start
      

    Oracle HTTP Serverが1024未満の番号のポートでリスニングしている場合は、これらのコマンドを権限が付与されたユーザー(rootなど)として実行する必要があることに注意してください。


参照:

『Oracle HTTP Server管理者ガイド』

B.2.6 Oracle Database 11gでのネットワーク・サービスの有効化について

Oracle Database 11gリリース1(11.1)では、デフォルトで、ネットワーク・サービスと対話する機能は無効になっています。このため、Oracle Database 11gリリース1(11.1)でOracle Application Expressを実行している場合は、新しいDBMS_NETWORK_ACL_ADMINパッケージを使用して、FLOWS_030100データベース・ユーザーにすべてのホストに対する接続権限を付与する必要があります。これらの権限を付与しないと、次の動作で問題が発生します。

  • Oracle Application Expressでアウトバウンド・メールを送信する。

    ユーザーはAPEX_MAILパッケージからメソッドをコールできますが、アウトバンド・メールの送信時に問題が発生します。

  • Oracle Application ExpressでWebサービスを使用する。

  • PDF/レポートを印刷する。

  • オンライン・ヘルプの内容を検索する(Findリンクの使用)。

このセクションの内容は次のとおりです。


ヒント:

このセクションで示されている例を実行するには、データベースのcompatible初期化パラメータが11.1.0.0.0以上に設定されている必要があります。デフォルトでは、11gデータベースのパラメータは事前に適切に設定されていますが、以前のリリースから11gにアップグレードされたデータベースのパラメータは適切に設定されていない場合があります。データベース初期化パラメータの変更については、『Oracle Database管理者ガイド』の「Oracle Databaseの作成および構成」を参照してください。

B.2.6.1 接続権限の付与

次の例は、FLOWS_030100データベース・ユーザーにすべてのホストに対する接続権限を付与する方法を示しています。

DECLARE
  ACL_PATH  VARCHAR2(4000);
  ACL_ID    RAW(16);
BEGIN
  -- Look for the ACL currently assigned to '*' and give FLOWS_030100
  -- the "connect" privilege if FLOWS_030100 does not have the privilege yet.

  SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
   WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

  -- Before checking the privilege, make sure that the ACL is valid
  -- (for example, does not contain stale references to dropped users).
  -- If it does, the following exception will be raised:
  --
  -- ORA-44416: Invalid ACL: Unresolved principal 'FLOWS_030100'
  -- ORA-06512: at "XDB.DBMS_XDBZ", line ...
  --
  SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID
    FROM XDB.XDB$ACL A, PATH_VIEW P
   WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND
         EQUALS_PATH(P.RES, ACL_PATH) = 1;

  DBMS_XDBZ.ValidateACL(ACL_ID);
   IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'FLOWS_030100',
     'connect') IS NULL THEN
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
     'FLOWS_030100', TRUE, 'connect');
  END IF;

EXCEPTION
  -- When no ACL has been assigned to '*'.
  WHEN NO_DATA_FOUND THEN
  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
    'ACL that lets power users to connect to everywhere',
    'FLOWS_030100', TRUE, 'connect');
  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;

次の例は、ローカル・ネットワーク・リソースへのアクセス権について、より少ない権限を付与する方法を示しています。この例では、Oracle Application Expressオンライン・ヘルプを索引付けできます。また、対象サーバーもローカル・ホスト上に存在する場合は、電子メールおよびPDFへの出力を行うことができる場合があります。

DECLARE
  ACL_PATH  VARCHAR2(4000);
  ACL_ID    RAW(16);
BEGIN
  -- Look for the ACL currently assigned to 'localhost' and give FLOWS_030100
  -- the "connect" privilege if FLOWS_030100 does not have the privilege yet.
  SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
   WHERE HOST = 'localhost' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

  -- Before checking the privilege, make sure that the ACL is valid
  -- (for example, does not contain stale references to dropped users).
  -- If it does, the following exception will be raised:
  --
  -- ORA-44416: Invalid ACL: Unresolved principal 'FLOWS_030100'
  -- ORA-06512: at "XDB.DBMS_XDBZ", line ...
  --

  SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID
    FROM XDB.XDB$ACL A, PATH_VIEW P
   WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND
         EQUALS_PATH(P.RES, ACL_PATH) = 1;

  DBMS_XDBZ.ValidateACL(ACL_ID);
   IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'FLOWS_030100',
     'connect') IS NULL THEN
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
     'FLOWS_030100', TRUE, 'connect');
  END IF;

EXCEPTION
  -- When no ACL has been assigned to 'localhost'.
  WHEN NO_DATA_FOUND THEN
  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml',
    'ACL that lets power users to connect to everywhere',
    'FLOWS_030100', TRUE, 'connect');
  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost');
END;
/
COMMIT;

B.2.6.2 無効なACLエラーのトラブルシューティング

前述のスクリプトを実行した後でORA-44416: 無効なACLエラーを受信した場合は、次の問合せを使用して無効なACLを識別します。

REM Show the dangling references to dropped users in the ACL that is assigned
REM to '*'.

SELECT ACL, PRINCIPAL
  FROM DBA_NETWORK_ACLS NACL, XDS_ACE ACE
 WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL AND
       NACL.ACLID = ACE.ACLID AND
       NOT EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);

次に、次のコードを実行してACLを修正します。

DECLARE
  ACL_ID   RAW(16);
  CNT      NUMBER;
BEGIN
  -- Look for the object ID of the ACL currently assigned to '*'
  SELECT ACLID INTO ACL_ID FROM DBA_NETWORK_ACLS
   WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

  -- If just some users referenced in the ACL are invalid, remove just those
  -- users in the ACL. Otherwise, drop the ACL completely.
  SELECT COUNT(PRINCIPAL) INTO CNT FROM XDS_ACE
   WHERE ACLID = ACL_ID AND
         EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);

  IF (CNT > 0) THEN

    FOR R IN (SELECT PRINCIPAL FROM XDS_ACE
               WHERE ACLID = ACL_ID AND
                     NOT EXISTS (SELECT NULL FROM ALL_USERS
                                  WHERE USERNAME = PRINCIPAL)) LOOP
      UPDATE XDB.XDB$ACL
         SET OBJECT_VALUE =
               DELETEXML(OBJECT_VALUE,
                         '/ACL/ACE[PRINCIPAL="'||R.PRINCIPAL||'"]')
       WHERE OBJECT_ID = ACL_ID;
    END LOOP;

  ELSE
    DELETE FROM XDB.XDB$ACL WHERE OBJECT_ID = ACL_ID;
  END IF;

END;
/

REM commit the changes.

COMMIT;

ACLの修正後、このセクションの最初のスクリプトを実行してFLOWS_030100ユーザーにACLを適用する必要があります。「接続権限の付与」を参照してください。

B.2.7 セキュリティ上の考慮事項

HTTPリクエストで、パスワードやその他の機密データがクリア・テキストで送信されることのないように、Secure Sockets Layer(SSL)を構成して使用することをお薦めします。SSLを使用しないと、パスワードが公開され、セキュリティが損なわれる可能性があります。

SSLは、業界標準のプロトコルです。RSA公開鍵暗号化と対称鍵暗号化を組み合せて使用することにより、認証、暗号化およびデータの整合性が提供されます。

B.2.8 他の言語でのOracle Application Expressの実行について

Oracle Application Expressのインタフェースは、ドイツ語、スペイン語、フランス語、イタリア語、日本語、韓国語、ポルトガル語(ブラジル)、簡体字中国語および繁体字中国語に変換できます。Oracle Application Expressの単一インスタンスは、これらの言語変換されたバージョンを1つ以上実装してインストールできます。実行時に、各ユーザーのWebブラウザの言語設定によって、特定の言語バージョンが使用されます。

言語変換されたバージョンのOracle Application Expressは、その特定言語をサポートするキャラクタ・セットが実装されたデータベースにロードする必要があります。言語変換されたバージョンのOracle Application Expressを、その言語の文字コードをサポートしないデータベースにインストールすると、インストールが正常に実行されなかったり、言語変換されたOracle Application Expressインスタンスが実行時に破損しているように見える場合があります。データベース・キャラクタ・セットAL32UTF8は、言語変換されたすべてのバージョンのOracle Application Expressをサポートします。

言語変換されたバージョンのOracle Application Expressを手動でインストールするには、SQL*Plusを使用します。インストール・ファイルはAL32UTF8にエンコードされます。


注意:

言語変換されたバージョンのOracle Application Expressをインストールするには、ターゲット・データベースのキャラクタ・セットにかかわらず、SQL*Plusを起動する前に環境変数NLS_LANGのキャラクタ・セット値をAL32UTF8に設定する必要があります。

言語変換されたバージョンのOracle Application Expressのロードに有効なNLS_LANG設定の例を次に示します。

American_America.AL32UTF8
Japanese_Japan.AL32UTF8

B.2.8.1 言語変換されたバージョンのOracle Application Expressのインストール

初めてインストールを行う場合も以前のリリースからアップグレードする場合も、言語変換されたバージョンのOracle Application Expressを実行するには、load_lang.sqlスクリプトを実行する必要があります。

インストール・スクリプトは、配布を解凍したapex/builderのサブディレクトリに格納されます。これらのサブディレクトリは、言語コードで識別されます。たとえば、ドイツ語バージョンはapex/builder/de、日本語バージョンはapex/builder/jaに格納されます。各ディレクトリには、言語コード(たとえば、load_de.sqlload_ja.sql)で識別される、言語固有のロード・スクリプトが格納されます。

言語変換されたバージョンのOracle Application Expressをインストールするには、次のステップを実行します。

  1. 環境変数NLS_LANGをキャラクタ・セットAL32UTF8に設定します。次に例を示します。

    • BourneシェルまたはKornシェルの場合:

      NLS_LANG=American_America.AL32UTF8
      export NLS_LANG
      
    • Cシェルの場合:

      setenv NLS_LANG American_America.AL32UTF8
      
    • Windowsベースのシステムの場合:

      set NLS_LANG=American_America.AL32UTF8
      
  2. SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBAロールが指定されているSYSとして接続します。次に例を示します。

    • Windowsの場合:

      SYSTEM_DRIVE:\ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
    • UNIXおよびLinuxの場合:

      $ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
  3. 次の文を実行します。

    ALTER SESSION SET CURRENT_SCHEMA = FLOWS_030100;
    
  4. 該当する言語固有のスクリプトを実行します。次に例を示します。

    @load_lang.sql
    

    langは特定の言語です。たとえば、ドイツ語の場合はload_de.sql、日本語の場合はload_ja.sqlとなります。

B.2.9 JOB_QUEUE_PROCESSESの管理について

JOB_QUEUE_PROCESSESには、同時に実行するジョブの最大数を指定します。 Oracle Application Expressリリース3.0では、トランザクションのサポートおよびSQLスクリプトでジョブが必要です。JOB_QUEUE_PROCESSESが有効でなく、正常に動作していない場合、スクリプトを正常に実行することはできません。

このセクションの内容は次のとおりです。

B.2.9.1 JOB_QUEUE_PROCESSESの数の表示

JOB_QUEUE_PROCESSESの数を表示するには、3つの方法があります。

  • インストール・ログ・ファイル

  • Oracle Application Expressの「Application Expressのバージョン情報」ページ

  • SQL*Plus

B.2.9.1.1 インストール・ログ・ファイルでのJOB_QUEUE_PROCESSESの表示

Oracle Application Expressリリース3.1をインストールした後、またはOracle Application Expressをリリース3.0にアップグレードした後、JOB_QUEUE_PROCESSESの数をインストール・ログ・ファイルに表示できます。「インストール・セッションのログの確認」を参照してください。

B.2.9.1.2 Oracle Application ExpressでのJOB_QUEUE_PROCESSESの表示

「Application Expressのバージョン情報」ページにJOB_QUEUE_PROCESSESの数を表示することもできます。

「Application Expressのバージョン情報」ページを表示するには、次のステップを実行します。

  1. Oracle Application Expressにログインします。 詳細は、「Oracle Application Expressへのログイン」を参照してください。

  2. 「管理」リストで、「Application Expressのバージョン情報」をクリックします。

    ページの下部に、現在のJOB_QUEUE_PROCESSESの数が表示されます。

B.2.9.1.3 SQL*PlusでのJOB_QUEUE_PROCESSESの表示

次のSQLコマンドを実行して、SQL*PlusでJOB_QUEUE_PROCESSESの数を表示することもできます。

SELECT VALUE FROM v$parameter WHERE NAME = 'job_queue_processes'

B.2.9.2 JOB_QUEUE_PROCESSESの数の変更

SQL*Plusで次のSQL文を実行して、JOB_QUEUE_PROCESSESの数を変更できます。

JOB_QUEUE_PROCESSESの数を更新するには、次のステップを実行します。

  1. SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBAロールが指定されているSYSとして接続します。

    • Windowsの場合:

      SYSTEM_DRIVE:\ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
    • UNIXおよびLinuxの場合:

      $ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
  2. SQL*Plusで次のSQL文を実行します。

    ALTER SYSTEM SET JOB_QUEUE_PROCESSES = <number>
    

    たとえば、ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20を実行すると、JOB_QUEUE_PROCESSESは20に設定されます。

B.2.10 PlsqlDatabasePasswordパラメータの難読化について

PlsqlDatabasePasswordパラメータは、データベースへのログイン用のパスワードを指定します。dadTool.plユーティリティを使用すると、dads.confファイル内のパスワードを難読化できます。

dadTool.plユーティリティは、次のディレクトリに格納されています。

  • UNIXベースおよびLinuxベースのシステムの場合:

    ORACLE_BASE/ORACLE_HTTPSERVER_HOME/Apache/modplsql/conf
    
  • Windowsベースのシステムの場合:

    ORACLE_BASE\ORACLE_HTTPSERVER_HOME\Apache\modplsql\conf
    

B.2.10.1 パスワードの難読化

パスワードを難読化するには、dadTool.READMEファイルに記載されたステップに従って、dadTool.plを実行します。

B.2.11 Oracle Application Expressへのログイン

WebブラウザでOracle Application Expressのホームページにアクセスします。Oracle Application Expressアプリケーションを表示または開発するには、WebブラウザでJavaScriptおよびHTML 4.0およびCSS 1.0規格がサポートされている必要があります。「ブラウザの要件」を参照してください。

このセクションの内容は次のとおりです。

B.2.11.1 Application Expressのユーザー・ロールについて

Oracle Application Express開発環境では、ユーザーは作業領域という作業用の共有領域にログインします。ユーザーは、次の4つの主なロールに分類されます。

  • Oracle Application Express管理者は、Oracle Application Express管理サービス・アプリケーションを使用して、ホスティングされたインスタンス全体を管理するスーパーユーザーです。

  • 作業領域管理者は、ユーザー・アカウントの管理、作業領域アクティビティの監視、ログ・ファイルの表示など、作業領域固有の管理者タスクを実行するユーザーです。

  • 開発者は、アプリケーションを作成および編集するユーザーです。開発者は、専用の作業領域を使用することも、作業領域を共有することもできます。

  • エンド・ユーザーには、開発権限はありません。外部認証スキームを使用しないアプリケーションにアクセスできるように、エンド・ユーザーを定義する必要があります。

B.2.11.2 ローカル環境設定について

自分のユーザー・ロールに応じてOracle Application Expressを設定します。構成済の開発環境にログインする開発者の場合、管理者が作業領域へのアクセス権をその開発者に付与する必要があります。Oracle Application Express管理者の場合、次のステップを実行する必要があります。

  1. Oracle Application Express管理サービスにログインします。Oracle Application Express管理サービスは、Oracle Application Expressインスタンス全体を管理するための個別のアプリケーションです。インストール時に作成または再設定したADMINアカウントおよびパスワードを使用してログインします。

  2. 割当てモードを指定します。Oracle Application Express管理サービスで、作業領域の作成(または割当て)プロセスが開発環境にどのように影響するかを判別する必要があります。

  3. 作業領域を作成します。作業領域は、複数のユーザーが、各自のオブジェクト、データおよびアプリケーションをそれぞれに保持しながら、同じOracle Application Expressインストール内で作業できる、仮想プライベート・データベースです。各作業領域には、一意のIDと名前があります。Oracle Application Express管理者は、作業領域を手動で作成するか、ユーザーにリクエストを送信してもらうことができます。

  4. 作業領域にログインします。Oracle Application Express管理サービスで作業領域を作成した後、Oracle Application Expressの「ログイン」ページに戻って、作業領域にログインします。

環境設定の詳細は、『Oracle Database Application Express 2日で開発者ガイド』または 『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「クイック・スタート」を参照してください。

B.3 データベースのインストールおよびOracle HTTP Serverの構成

このセクションでは、新規インストールでOracle HTTP Serverおよびmod_plsqlを構成する方法について説明します。

このセクションの内容は次のとおりです。

Oracle9i リリース2で配布されたOracle HTTP Serverを実行している場合、次のステップは該当しません。詳細は、「Oracle9i リリース2で配布されたOracle HTTP Serverの構成」を参照してください。


注意:

このセクションでは、Oracleホーム・ディレクトリ(ORACLE_HTTPSERVER_HOME)にOracle HTTP Serverがインストールされていると想定します。

B.3.1 Oracle Databaseのインストールおよびインストール前のタスクの実行

Oracle Application Expressでは、リリース9.2.0.3以上のOracle Databaseが必要です。 詳細は、ご使用のオペレーティング環境向けの『Oracle Databaseインストレーション・ガイド』および「インストール前の推奨タスク」を参照してください。

B.3.2 Oracle Databaseリリース9.0.3で配布されたOracle HTTP Serverの構成

次の場合は、後述するインストール後の処理を実行する必要があります。

  • Oracle Application Expressを新しくインストールする(以前のリリースからのアップグレードではない)。

  • Oracle Databaseリリース9.0.3で配布されたOracle HTTP Serverを実行している。

  • Oracle HTTP ServerがOracleホームにインストールされている。

このセクションの内容は次のとおりです。


注意:

このセクションでは、Oracleホーム・ディレクトリ(ORACLE_HTTPSERVER_HOME)にOracle HTTP Serverがインストールされていると想定します。

B.3.2.1 ADMINアカウントのパスワードの変更

最初に、Oracle Application Express ADMINアカウントのパスワードを変更します。

ADMINアカウントのパスワードを変更するには、次のステップを実行します。

  1. 作業ディレクトリをORACLE_BASE\ORACLE_HOME\apex(またはOracleホームを示すために使用される表記規則)に変更します。

  2. SQL*Plusを起動し、Oracle Application ExpressがインストールされているデータベースにSYSとして接続します。次に例を示します。

    • Windowsの場合:

      SYSTEM_DRIVE:\ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
    • UNIXおよびLinuxの場合:

      $ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
  3. apxxepwd.sqlを実行します。次に例を示します。

    @apxxepwd.sql
    

    ADMINアカウントのパスワードの入力を求められたら入力します。

  4. 次のコマンドの後に新しいパスワードを入力します。

    @apxxepwd.sql password
    

    たとえば、パスワードをapexに変更するには、次のように入力します。

    @apxxepwd.sql apex
    

B.3.2.2 APEX_PUBLIC_USERアカウントのロック解除

新規インストールでOracle HTTP Server for Oracle Application Expressを構成する場合、データベース・ユーザーAPEX_PUBLIC_USERはロック解除されたアカウントである必要があります。 データベース・ユーザーAPEX_PUBLIC_USERのアカウントをロック解除するには、次のステップを実行します。

  1. SQL*Plusを起動し、Oracle Application ExpressがインストールされているデータベースにSYSとして接続します。次に例を示します。

    • Windowsの場合:

      SYSTEM_DRIVE:\ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
    • UNIXおよびLinuxの場合:

      $ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
  2. 次の文を実行します。

    ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK
    

B.3.2.3 APEX_PUBLIC_USERデータベース・ユーザーのパスワードの変更

DADファイルにパスワードを指定するには、データベース・ユーザーAPEX_PUBLIC_USERのパスワードを変更する必要があります。 次のステップを実行してAPEX_PUBLIC_USERデータベース・ユーザーのパスワードを変更してください。

  1. SQL*Plusを起動し、Oracle Application ExpressがインストールされているデータベースにSYSとして接続します。次に例を示します。

    • Windowsの場合:

      SYSTEM_DRIVE:\ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
    • UNIXおよびLinuxの場合:

      $ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
  2. 次の文を実行します。

    SQL> PASSWORD APEX_PUBLIC_USER
    Changing password for APEX_PUBLIC_USER
    New password: password
    Retype new password: password
    

B.3.2.4 wdbsvr.appファイルの変更

DADを作成するには、wdbsvr.appファイルを変更し、Oracle Application Express用のエントリを1つ追加します。

wdbsvr.appファイルを変更するには、次のステップを実行します。

  1. テキスト・エディタを使用して、wdbsvr.appファイルを開きます。

    • Windowsの場合:

      ORACLE_HTTPSERVER_HOME\Apache\modplsql\cfg\wdbsvr.app
      
    • UNIXおよびLinuxの場合:

      ORACLE_HTTPSERVER_HOME/Apache/modplsql/cfg/wdbsvr.app
      
  2. 次の構文を使用して、Oracle Application Express用のエントリを1つ追加します。イタリック体の設定項目のみを変更します。

    [DAD_apex]
     connect_string = localhost:1521:orcl
     password = apex
     username = apex_public_user
     default_page = apex
     document_table = wwv_flow_file_objects$
     document_path = docs
     document_proc = wwv_flow_file_mgr.process_download
     reuse = Yes
     enablesso = No
     stateful = STATELESS_RESET
     nls_lang = American_America.AL32UTF8
    

    各要素の意味は次のとおりです。

    • connect_stringは、ホストID、ポート番号、およびOracle Application ExpressがインストールされたOracle9i データベースを示します。ホスト:ポート:SIDの書式を使用します。

      使用するOracle9i バージョンのOracle HTTP Serverが、Oracle Application Expressとの併用に指定したデータベースと同じOracleホームにインストールされている場合、このパラメータを空白のままにします。

    • passwordは、APEX_PUBLIC_USERの変更したパスワードです。 詳細は、「APEX_PUBLIC_USERデータベース・ユーザーのパスワードの変更」を参照してください。

    • nls_lang設定で、DADの言語設定を判断します。データベース・キャラクタ・セットがAL32UTF8であるかどうかにかかわらず、nls_lang値のキャラクタ・セット部分は、AL32UTF8に設定されている必要があります。

      NLS設定の地域部分または言語部分のいずれかに空白が含まれている場合、次のように二重引用符で値を囲む必要があります。

      nls_lang = "ENGLISH_UNITED KINGDOM.AL32UTF8"
      

      データベースのNLS設定の情報を確認するには、次のようにNLS_DATABASE_PARAMETERSビューを問い合せます。

       SELECT parameter,value
       FROM nls_database_parameters
       WHERE PARAMETER IN ('NLS_CHARACTERSET','NLS_LANGUAGE','NLS_TERRITORY');
      
  3. ユーザー名などの他の設定は、前述の例のままにします。

  4. 変更を保存して、wdbsvr.appファイルを閉じます。

B.3.2.5 Oracle9i httpd.confの変更

imagesディレクトリをコピーしたファイル・システム・パスを指す別名が含まれるように、httpd.confファイルを変更する必要があります。また、SQLワークショップをサポートするために2つの新しいMIMEタイプを追加するには、httpd.confファイルを変更する必要があります。

httpd.confファイルを変更するには、次のステップを実行します。

  1. テキスト・エディタを使用して、httpd.confファイルを開きます。

    • Windowsの場合:

      ORACLE_HTTPSERVER_HOME\Apache\Apache\conf\httpd.conf
      
    • UNIXおよびLinuxの場合:

      ORACLE_HTTPSERVER_HOME/Apache/Apache/conf/httpd.conf
      
  2. imagesディレクトリをコピーしたファイル・システム・パスを指す別名エントリを追加します。

    • Windowsの場合は、次のようになります。

      Alias /i/ "C:\oracle\ora92\Apache\Apache\images/"
      
    • UNIXおよびLinuxの場合は、次のようになります。

      Alias /i/ "/home/oracle/OraHome1/Apache/Apache/images/"
      

    前述の例では、apexins.sqlスクリプトの実行時に、imagesディレクトリの別名を/i/と指定したと想定していることに注意してください。

    パスの末尾にスラッシュ(/)を含める必要があることに注意してください。

  3. 次に、SQLワークショップをサポートする次の2つの行が存在しない場合は、これを追加します。

    AddType text/xml             xbl
    AddType text/x-component     htc
    

    Oracle HTML DB 2.0以降からのアップグレードの場合、これらのMIMEタイプがすでに存在している必要があります。

  4. 変更を保存して、httpd.confファイルを閉じます。


参照:

『Oracle HTTP Server管理者ガイド』

B.3.2.6 Oracle HTTP Serverの停止および再起動

Oracle HTTP Serverを停止および再起動するには、次のステップを実行します。

  • WindowsでOracle HTTP Serverを停止および再起動するには、次のようにします。

    • スタート」メニュー→「プログラム」→「Oracle - OraHome」→「Oracle」→「Oracle HTTP Server」→「Oracle HTTP Serverの停止」を選択して、Oracle HTTP Serverを停止します。

    • スタート」メニュー→「プログラム」→「Oracle - OraHome」→「Oracle」→「Oracle HTTP Server」→「Oracle HTTP Serverの起動」を選択して、Oracle HTTP Serverを再起動します。

  • UNIXおよびLinuxでは、次のコマンドを実行します。

    ORACLE_HTTPSERVER_HOME/Apache/Apache/bin/apachectl stop
    ORACLE_HTTPSERVER_HOME/Apache/Apache/bin/apachectl start
    

Oracle HTTP Serverが1024未満の番号のポートでリスニングしている場合は、これらのコマンドを権限が付与されたユーザー(rootなど)として実行する必要があることに注意してください。


参照:

『Oracle HTTP Server管理者ガイド』

B.3.2.7 imagesディレクトリのコピー

新規インストールをロードしているか、以前のリリースをアップグレードしているかにかかわらず、トップ・レベルのORACLE_BASE\ORACLE_HOME\apexディレクトリからOracle HTTP Server用のOracleホームを含むファイル・システム上の場所に、imagesディレクトリをコピーする必要があります。


注意:

このセクションはOracle Application ExpressをOracle HTTP Serverおよびmod_plsqlとともに実行する場合のみ関連があります。

このセクションの内容は次のとおりです。

B.3.2.7.1 アップグレード後のimagesディレクトリのコピー

アップグレード中に、既存のimagesディレクトリを上書きする必要があります。 以前のバージョンに戻すことができるように、アップグレードの開始前に、Oracle Application Express用の既存のimagesディレクトリのコピーを作成して、imagesのリリース番号(images_2_0など)を示しておくことをお薦めします。

ファイル・システム上でimagesディレクトリを特定するには、httpd.confファイルでテキスト別名/i/を確認します。

imagesディレクトリのパスを特定したら、既存のimagesディレクトリをバックアップの場所にコピーすることをお薦めします。 これによって、必要に応じて、以前のリリースに戻すことができます。

既存のimagesディレクトリをコピーした後、次のコマンド構文を使用してOracle Databaseホームから既存のimagesディレクトリのパスにapex\imagesディレクトリをコピーし、既存のimagesを上書きします。

DRIVE_LETTER:\> xcopy /E /I ORACLE_HOME\apex\images ORACLE_HTTPSERVER_HOME\Apache\images

前述の構文例では、次のとおりです。

  • ORACLE_HOMEは、Oracle DatabaseのOracleホームを示しています。

  • ORACLE_HTTPSERVER_HOMEはOracle HTTP Serverの既存のOracleホームです。

B.3.2.7.2 新規インストールでのimagesディレクトリのコピー

インストール後、ディレクトリapex/imagesをコピーします。

imagesディレクトリは、Windowsエクスプローラを使用するか、またはコマンド・プロンプトから次のようなコマンドを実行してコピーできます。

DRIVE_LETTER:\> xcopy /E /I ORACLE_HOME\apex\images ORACLE_HTTPSERVER_HOME\Apache\images

前述の構文例では、次のとおりです。

  • ORACLE_HOMEは、Oracle DatabaseのOracleホームを示しています。

  • ORACLE_HTTPSERVER_HOMEはOracle HTTP Serverの既存のOracleホームです。

B.3.3 Oracle Database 11gでのネットワーク・サービスの有効化について

Oracle Database 11gリリース1(11.1)では、デフォルトで、ネットワーク・サービスと対話する機能は無効になっています。このため、Oracle Database 11gリリース1(11.1)でOracle Application Expressを実行している場合は、新しいDBMS_NETWORK_ACL_ADMINパッケージを使用して、FLOWS_030100データベース・ユーザーにすべてのホストに対する接続権限を付与する必要があります。これらの権限を付与しないと、次の動作で問題が発生します。

  • Oracle Application Expressでアウトバウンド・メールを送信する。

    ユーザーはAPEX_MAILパッケージからメソッドをコールできますが、アウトバンド・メールの送信時に問題が発生します。

  • Oracle Application ExpressでWebサービスを使用する。

  • PDF/レポートを印刷する。

  • オンライン・ヘルプの内容を検索する(Findリンクの使用)。

このセクションの内容は次のとおりです。


ヒント:

このセクションで示されている例を実行するには、データベースのcompatible初期化パラメータが11.1.0.0.0以上に設定されている必要があります。デフォルトでは、11gデータベースのパラメータは事前に適切に設定されていますが、以前のリリースから11gにアップグレードされたデータベースのパラメータは適切に設定されていない場合があります。データベース初期化パラメータの変更については、『Oracle Database管理者ガイド』の「Oracle Databaseの作成および構成」を参照してください。

B.3.3.1 接続権限の付与

次の例は、FLOWS_030100データベース・ユーザーにすべてのホストに対する接続権限を付与する方法を示しています。

DECLARE
  ACL_PATH  VARCHAR2(4000);
  ACL_ID    RAW(16);
BEGIN
  -- Look for the ACL currently assigned to '*' and give FLOWS_030100
  -- the "connect" privilege if FLOWS_030100 does not have the privilege yet.

  SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
   WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

  -- Before checking the privilege, make sure that the ACL is valid
  -- (for example, does not contain stale references to dropped users).
  -- If it does, the following exception will be raised:
  --
  -- ORA-44416: Invalid ACL: Unresolved principal 'FLOWS_030100'
  -- ORA-06512: at "XDB.DBMS_XDBZ", line ...
  --
  SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID
    FROM XDB.XDB$ACL A, PATH_VIEW P
   WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND
         EQUALS_PATH(P.RES, ACL_PATH) = 1;

  DBMS_XDBZ.ValidateACL(ACL_ID);
   IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'FLOWS_030100',
     'connect') IS NULL THEN
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
     'FLOWS_030100', TRUE, 'connect');
  END IF;

EXCEPTION
  -- When no ACL has been assigned to '*'.
  WHEN NO_DATA_FOUND THEN
  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
    'ACL that lets power users to connect to everywhere',
    'FLOWS_030100', TRUE, 'connect');
  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;

次の例は、ローカル・ネットワーク・リソースへのアクセス権について、より少ない権限を付与する方法を示しています。この例では、Oracle Application Expressオンライン・ヘルプを索引付けできます。また、対象サーバーもローカル・ホスト上に存在する場合は、電子メールおよびPDFへの出力を行うことができる場合があります。

DECLARE
  ACL_PATH  VARCHAR2(4000);
  ACL_ID    RAW(16);
BEGIN
  -- Look for the ACL currently assigned to 'localhost' and give FLOWS_030100
  -- the "connect" privilege if FLOWS_030100 does not have the privilege yet.
  SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
   WHERE HOST = 'localhost' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

  -- Before checking the privilege, make sure that the ACL is valid
  -- (for example, does not contain stale references to dropped users).
  -- If it does, the following exception will be raised:
  --
  -- ORA-44416: Invalid ACL: Unresolved principal 'FLOWS_030100'
  -- ORA-06512: at "XDB.DBMS_XDBZ", line ...
  --

  SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID
    FROM XDB.XDB$ACL A, PATH_VIEW P
   WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND
         EQUALS_PATH(P.RES, ACL_PATH) = 1;

  DBMS_XDBZ.ValidateACL(ACL_ID);
   IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'FLOWS_030100',
     'connect') IS NULL THEN
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
     'FLOWS_030100', TRUE, 'connect');
  END IF;

EXCEPTION
  -- When no ACL has been assigned to 'localhost'.
  WHEN NO_DATA_FOUND THEN
  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml',
    'ACL that lets power users to connect to everywhere',
    'FLOWS_030100', TRUE, 'connect');
  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost');
END;
/
COMMIT;

B.3.3.2 無効なACLエラーのトラブルシューティング

前述のスクリプトを実行した後でORA-44416: 無効なACLエラーを受信した場合は、次の問合せを使用して無効なACLを識別します。

REM Show the dangling references to dropped users in the ACL that is assigned
REM to '*'.

SELECT ACL, PRINCIPAL
  FROM DBA_NETWORK_ACLS NACL, XDS_ACE ACE
 WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL AND
       NACL.ACLID = ACE.ACLID AND
       NOT EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);

次に、次のコードを実行してACLを修正します。

DECLARE
  ACL_ID   RAW(16);
  CNT      NUMBER;
BEGIN
  -- Look for the object ID of the ACL currently assigned to '*'
  SELECT ACLID INTO ACL_ID FROM DBA_NETWORK_ACLS
   WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

  -- If just some users referenced in the ACL are invalid, remove just those
  -- users in the ACL. Otherwise, drop the ACL completely.
  SELECT COUNT(PRINCIPAL) INTO CNT FROM XDS_ACE
   WHERE ACLID = ACL_ID AND
         EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);

  IF (CNT > 0) THEN

    FOR R IN (SELECT PRINCIPAL FROM XDS_ACE
               WHERE ACLID = ACL_ID AND
                     NOT EXISTS (SELECT NULL FROM ALL_USERS
                                  WHERE USERNAME = PRINCIPAL)) LOOP
      UPDATE XDB.XDB$ACL
         SET OBJECT_VALUE =
               DELETEXML(OBJECT_VALUE,
                         '/ACL/ACE[PRINCIPAL="'||R.PRINCIPAL||'"]')
       WHERE OBJECT_ID = ACL_ID;
    END LOOP;

  ELSE
    DELETE FROM XDB.XDB$ACL WHERE OBJECT_ID = ACL_ID;
  END IF;

END;
/

REM commit the changes.

COMMIT;

ACLの修正後、このセクションの最初のスクリプトを実行してFLOWS_030100ユーザーにACLを適用する必要があります。「接続権限の付与」を参照してください。

B.3.4 セキュリティ上の考慮事項

HTTPリクエストで、パスワードやその他の機密データがクリア・テキストで送信されることのないように、Secure Sockets Layer(SSL)を構成して使用することをお薦めします。SSLを使用しないと、パスワードが公開され、セキュリティが損なわれる可能性があります。

SSLは、業界標準のプロトコルです。RSA公開鍵暗号化と対称鍵暗号化を組み合せて使用することにより、認証、暗号化およびデータの整合性が提供されます。

B.3.5 他の言語でのOracle Application Expressの実行について

Oracle Application Expressのインタフェースは、ドイツ語、スペイン語、フランス語、イタリア語、日本語、韓国語、ポルトガル語(ブラジル)、簡体字中国語および繁体字中国語に変換できます。Oracle Application Expressの単一インスタンスは、これらの言語変換されたバージョンを1つ以上実装してインストールできます。実行時に、各ユーザーのWebブラウザの言語設定によって、特定の言語バージョンが使用されます。

言語変換されたバージョンのOracle Application Expressは、その特定言語をサポートするキャラクタ・セットが実装されたデータベースにロードする必要があります。言語変換されたバージョンのOracle Application Expressを、その言語の文字コードをサポートしないデータベースにインストールすると、インストールが正常に実行されなかったり、言語変換されたOracle Application Expressインスタンスが実行時に破損しているように見える場合があります。データベース・キャラクタ・セットAL32UTF8は、言語変換されたすべてのバージョンのOracle Application Expressをサポートします。

言語変換されたバージョンのOracle Application Expressを手動でインストールするには、SQL*Plusを使用します。インストール・ファイルはAL32UTF8にエンコードされます。


注意:

言語変換されたバージョンのOracle Application Expressをインストールするには、ターゲット・データベースのキャラクタ・セットにかかわらず、SQL*Plusを起動する前に環境変数NLS_LANGのキャラクタ・セット値をAL32UTF8に設定する必要があります。

言語変換されたバージョンのOracle Application Expressのロードに有効なNLS_LANG設定の例を次に示します。

American_America.AL32UTF8
Japanese_Japan.AL32UTF8

B.3.5.1 言語変換されたバージョンのOracle Application Expressのインストール

初めてインストールを行う場合も以前のリリースからアップグレードする場合も、言語変換されたバージョンのOracle Application Expressを実行するには、load_lang.sqlスクリプトを実行する必要があります。

インストール・スクリプトは、配布を解凍したapex/builderのサブディレクトリに格納されます。これらのサブディレクトリは、言語コードで識別されます。たとえば、ドイツ語バージョンはapex/builder/de、日本語バージョンはapex/builder/jaに格納されます。各ディレクトリには、言語コード(たとえば、load_de.sqlload_ja.sql)で識別される、言語固有のロード・スクリプトが格納されます。

言語変換されたバージョンのOracle Application Expressをインストールするには、次のステップを実行します。

  1. 環境変数NLS_LANGをキャラクタ・セットAL32UTF8に設定します。次に例を示します。

    • BourneシェルまたはKornシェルの場合:

      NLS_LANG=American_America.AL32UTF8
      export NLS_LANG
      
    • Cシェルの場合:

      setenv NLS_LANG American_America.AL32UTF8
      
    • Windowsベースのシステムの場合:

      set NLS_LANG=American_America.AL32UTF8
      
  2. SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBAロールが指定されているSYSとして接続します。次に例を示します。

    • Windowsの場合:

      SYSTEM_DRIVE:\ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
    • UNIXおよびLinuxの場合:

      $ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
  3. 次の文を実行します。

    ALTER SESSION SET CURRENT_SCHEMA = FLOWS_030100;
    
  4. 該当する言語固有のスクリプトを実行します。次に例を示します。

    @load_lang.sql
    

    langは特定の言語です。たとえば、ドイツ語の場合はload_de.sql、日本語の場合はload_ja.sqlとなります。

B.3.6 JOB_QUEUE_PROCESSESの管理について

JOB_QUEUE_PROCESSESには、同時に実行するジョブの最大数を指定します。 Oracle Application Expressリリース3.0では、トランザクションのサポートおよびSQLスクリプトでジョブが必要です。JOB_QUEUE_PROCESSESが有効でなく、正常に動作していない場合、スクリプトを正常に実行することはできません。

このセクションの内容は次のとおりです。

B.3.6.1 JOB_QUEUE_PROCESSESの数の表示

JOB_QUEUE_PROCESSESの数を表示するには、3つの方法があります。

  • インストール・ログ・ファイル

  • Oracle Application Expressの「Application Expressのバージョン情報」ページ

  • SQL*Plus

B.3.6.1.1 インストール・ログ・ファイルでのJOB_QUEUE_PROCESSESの表示

Oracle Application Expressリリース3.1をインストールした後、またはOracle Application Expressをリリース3.0にアップグレードした後、JOB_QUEUE_PROCESSESの数をインストール・ログ・ファイルに表示できます。「インストール・セッションのログの確認」を参照してください。

B.3.6.1.2 Oracle Application ExpressでのJOB_QUEUE_PROCESSESの表示

「Application Expressのバージョン情報」ページにJOB_QUEUE_PROCESSESの数を表示することもできます。

「Application Expressのバージョン情報」ページを表示するには、次のステップを実行します。

  1. Oracle Application Expressにログインします。 詳細は、「Oracle Application Expressへのログイン」を参照してください。

  2. 「管理」リストで、「Application Expressのバージョン情報」をクリックします。

    ページの下部に、現在のJOB_QUEUE_PROCESSESの数が表示されます。

B.3.6.1.3 SQL*PlusでのJOB_QUEUE_PROCESSESの表示

次のSQLコマンドを実行して、SQL*PlusでJOB_QUEUE_PROCESSESの数を表示することもできます。

SELECT VALUE FROM v$parameter WHERE NAME = 'job_queue_processes'

B.3.6.2 JOB_QUEUE_PROCESSESの数の変更

SQL*Plusで次のSQL文を実行して、JOB_QUEUE_PROCESSESの数を変更できます。

JOB_QUEUE_PROCESSESの数を更新するには、次のステップを実行します。

  1. SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBAロールが指定されているSYSとして接続します。

    • Windowsの場合:

      SYSTEM_DRIVE:\ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
    • UNIXおよびLinuxの場合:

      $ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
  2. SQL*Plusで次のSQL文を実行します。

    ALTER SYSTEM SET JOB_QUEUE_PROCESSES = <number>
    

    たとえば、ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20を実行すると、JOB_QUEUE_PROCESSESは20に設定されます。

B.3.7 PlsqlDatabasePasswordパラメータの難読化について

PlsqlDatabasePasswordパラメータは、データベースへのログイン用のパスワードを指定します。dadTool.plユーティリティを使用すると、dads.confファイル内のパスワードを難読化できます。

dadTool.plユーティリティは、次のディレクトリに格納されています。

  • UNIXベースおよびLinuxベースのシステムの場合:

    ORACLE_BASE/ORACLE_HTTPSERVER_HOME/Apache/modplsql/conf
    
  • Windowsベースのシステムの場合:

    ORACLE_BASE\ORACLE_HTTPSERVER_HOME\Apache\modplsql\conf
    

B.3.7.1 パスワードの難読化

パスワードを難読化するには、dadTool.READMEファイルに記載されたステップに従って、dadTool.plを実行します。

B.3.8 Oracle Application Expressへのログイン

WebブラウザでOracle Application Expressのホームページにアクセスします。Oracle Application Expressアプリケーションを表示または開発するには、WebブラウザでJavaScriptおよびHTML 4.0およびCSS 1.0規格がサポートされている必要があります。「ブラウザの要件」を参照してください。

このセクションの内容は次のとおりです。

B.3.8.1 Application Expressのユーザー・ロールについて

Oracle Application Express開発環境では、ユーザーは作業領域という作業用の共有領域にログインします。ユーザーは、次の4つの主なロールに分類されます。

  • Oracle Application Express管理者は、Oracle Application Express管理サービス・アプリケーションを使用して、ホスティングされたインスタンス全体を管理するスーパーユーザーです。

  • 作業領域管理者は、ユーザー・アカウントの管理、作業領域アクティビティの監視、ログ・ファイルの表示など、作業領域固有の管理者タスクを実行するユーザーです。

  • 開発者は、アプリケーションを作成および編集するユーザーです。開発者は、専用の作業領域を使用することも、作業領域を共有することもできます。

  • エンド・ユーザーには、開発権限はありません。外部認証スキームを使用しないアプリケーションにアクセスできるように、エンド・ユーザーを定義する必要があります。

B.3.8.2 ローカル環境設定について

自分のユーザー・ロールに応じてOracle Application Expressを設定します。構成済の開発環境にログインする開発者の場合、管理者が作業領域へのアクセス権をその開発者に付与する必要があります。Oracle Application Express管理者の場合、次のステップを実行する必要があります。

  1. Oracle Application Express管理サービスにログインします。Oracle Application Express管理サービスは、Oracle Application Expressインスタンス全体を管理するための個別のアプリケーションです。インストール時に作成または再設定したADMINアカウントおよびパスワードを使用してログインします。

  2. 割当てモードを指定します。Oracle Application Express管理サービスで、作業領域の作成(または割当て)プロセスが開発環境にどのように影響するかを判別する必要があります。

  3. 作業領域を作成します。作業領域は、複数のユーザーが、各自のオブジェクト、データおよびアプリケーションをそれぞれに保持しながら、同じOracle Application Expressインストール内で作業できる、仮想プライベート・データベースです。各作業領域には、一意のIDと名前があります。Oracle Application Express管理者は、作業領域を手動で作成するか、ユーザーにリクエストを送信してもらうことができます。

  4. 作業領域にログインします。Oracle Application Express管理サービスで作業領域を作成した後、Oracle Application Expressの「ログイン」ページに戻って、作業領域にログインします。

環境設定の詳細は、『Oracle Database Application Express 2日で開発者ガイド』または 『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「クイック・スタート」を参照してください。