インスタンス管理者は、Oracle Application Expressインスタンス内にある既存のワークスペースを管理できます。
「既存のワークスペース」レポートを使用して、既存のワークスペースに関する対話モード・レポートを表示します。「既存のワークスペース」レポートから、ワークスペースの詳細の表示または編集が可能です。
既存のワークスペースを表示および編集するには、次の手順を実行します。
ワークスペースを削除しても、関連付けられているデータベース・オブジェクトは削除されません。関連付けられているスキーマを削除する場合、データベース管理者(DBA)は、Oracle Enterprise Manager、SQL*Plusなどの標準的なデータベース管理ツールを使用する必要があります。
このセクションでは、アクティブでないワークスペースの識別方法を説明します。
ホスティングされた大規模なOracle Application Expressインスタンスを管理している場合は、アクティブではないワークスペースを手動で削除すると、他のユーザーに対してリソースを開放できます。アクティブではないワークスペースを手動で削除するプロセスは、次の手順で構成されます。
ステップ1: アクティブではないワークスペースを識別します。最近の更新をチェックしてアクティブではないワークスペースを識別およびサンプル・アプリケーションのみを持つワークスペースの表示を参照してください。
Step 2: アクティブではない各ワークスペースに関連付けられているリソース(データベース・スキーマ、表領域およびデータファイル)を削除します。アクティブではないワークスペースに関連付けられているリソースの削除を参照してください。
ステップ3: アクティブではないワークスペースをOracle Application Expressから削除します。アクティブではないワークスペースの削除を参照してください。
ヒント:
アクティブではないワークスペースを体系的に消去するには、「ワークスペースのパージ」設定を構成する必要があります。アクティブではないワークスペースの消去を参照してください。
ワークスペースがアクティブでないかどうかを判別する場合の最初の手順は、いくつかの基本ルールを確立することです。Application Expressエンジンのカレント・スキーマにあるOracle Application Expressアクティビティ・レコードに基づいてルールを決定する方法が一般的です。
次のDDL(データ定義言語)によって、2004年6月28日以前にリクエストされ、2004年6月10日以降アクティブではないすべてのワークスペースの表が作成されます。この例では、ワークスペースごとにApplication Expressエンジン・スキーマ内の最新の更新に関するキーを確認することで、アクティブでないかどうかが判別されます。
ALTER SESSION SET CURRENT_SCHEMA = APEX_050100; CREATE TABLE ws_to_purge AS SELECT c.security_group_id, c.company_name, c.admin_email, c.request_date, SYSDATE last_updated_on, 'Y' ok_to_delete FROM wwv_flow_provision_company c WHERE c.request_date <= to_date('20040628','YYYYMMDD') AND ( not exists (SELECT NULL /* Activity Log */ FROM wwv_flow_activity_log l WHERE l.security_group_id = c.security_group_id AND l.time_stamp > to_date('20040610','YYYYMMDD')) ) AND NOT EXISTS (SELECT NULL /* workspace applications */ FROM wwv_flows f WHERE f.security_group_id = c.security_group_id AND f.last_updated_on > to_date('20040610','YYYYMMDD')) AND NOT EXISTS (SELECT NULL /* Pages */ FROM wwv_flow_steps s WHERE s.security_group_id = c.security_group_id AND s.last_updated_on > to_date('20040610','YYYYMMDD')) AND NOT EXISTS (SELECT NULL /* Regions */ FROM wwv_flow_page_plugs p WHERE p.security_group_id = c.security_group_id AND p.last_updated_on > to_date('20040610','YYYYMMDD')) AND NOT EXISTS (SELECT NULL /* Items */ FROM wwv_flow_step_items i WHERE i.security_group_id = c.security_group_id AND i.last_updated_on > to_date('20040610','YYYYMMDD')) AND NOT EXISTS (SELECT NULL /* Templates */ FROM wwv_flow_templates t WHERE t.security_group_id = c.security_group_id AND t.last_updated_on > to_date('20040610','YYYYMMDD')) AND NOT EXISTS (SELECT NULL /* Files uploaded */ FROM wwv_flow_file_objects$ o WHERE o.security_group_id = c.security_group_id AND o.created_on > to_date('20040610','YYYYMMDD')) AND NOT EXISTS (SELECT NULL /* SQL Workshop history */ FROM wwv_flow_sw_sql_cmds s WHERE s.security_group_id = c.security_group_id AND s.created_on > to_date('20040610','YYYYMMDD'));
潜在的にアクティブでないワークスペースを識別するもう1つの方法は、「サンプル・アプリケーションのみを持つワークスペース」レポートを表示することです。
サンプル・アプリケーションのみを含んでいるレポートまたはワークスペースを表示するには、次の手順を実行します。
アクティブではないワークスペースを1つの表で識別した後、それらを削除します。
注意:
アクティブではないワークスペースに関連付けられているスキーマ、表領域またはデータファイルを削除する前に、それらのリソースが他のワークスペースまたはアプリケーションで使用されていないことを確認してください。
アクティブではないワークスペースに関連付けられているリソースを削除するには、次の手順を実行します。
アクティブではないワークスペースに関連付けられているリソースを削除すると、そのワークスペースを削除できます。アクティブではないワークスペースは、Oracle Application Express管理サービス・アプリケーションを使用して手動で削除できます。また、次のPL/SQLの例に示すように、プログラムによって削除できます。
BEGIN FOR c1 IN (SELECT security_group_id FROM ws_to_purge WHERE ok_to_delete = 'Y') LOOP WWV_FLOW_PROVISIONING.TERMINATE_SERVICE_BY_SGID(c1.security_group_id); END LOOP; END;
インスタンス管理者は、セキュリティまたはパフォーマンスの問題に対処するために、ワークスペースをロックできます。
ワークスペースのロックにより、ワークスペース内のすべてのワークスペース管理者、開発者およびユーザーのアカウントは即時にロックされます。また、ワークスペース内のすべてのアプリケーションのステータスが「使用不可」に変更されます。
警告:
ワークスペースのロックにより、ワークスペースへのアクセスは永続的にできなくなります。
ワークスペースをロックするには、次の手順を実行します。
インスタンス管理者は、スキーマおよびワークスペースの割当てを表示、編集および削除し、ワークスペースに追加のスキーマを関連付けて、新しいスキーマを作成できます。
ユーザーがOracle Application Expressにサインインする場合、ワークスペースという作業用の共有領域にアクセスします。各ワークスペースに、複数のスキーマを関連付ける(マップする)ことができます。ワークスペースをスキーマに関連付けることによって、開発者はワークスペースで、スキーマ内の新規データベース・オブジェクトの作成、およびスキーマ内のデータベース・オブジェクトと相互作用するアプリケーションの構築が可能です。
参照:
完全開発環境で既存のスキーマとワークスペースの割当てを表示します。
既存のスキーマへのワークスペースの割当てを表示するには、次のステップを実行します。
ランタイム環境で既存のスキーマとワークスペースの割当てを表示します。
ランタイム環境で既存のスキーマへのワークスペースの割当てを表示するには、次のステップを実行します。
「ワークスペースとスキーマの割当ての管理」ページで、既存のスキーマまたは新規スキーマをワークスペースに関連付けます。
スキーマをワークスペースに関連付けるには:
ランタイム環境で追加スキーマをワークスペースに関連付けます。
ランタイム環境で追加スキーマをワークスペースに関連付けるには、次のステップを実行します。
Oracle Application Expressインスタンスで使用可能なコンポーネントを制御します。これには、アプリケーション・ビルダー、SQLワークショップ、SQLワークショップでのPL/SQLの編集の有効化、チーム開発、パッケージ・アプリケーションが含まれます。
コンポーネントの可用性を構成するには、次の手順を実行します。
管理サービスでワークスペース・メッセージを作成します。
ワークスペース・メッセージは「ワークスペース」ホームページおよび「ワークスペース管理」ページの両方に表示されます。「ワークスペース」ホームページでは、ワークスペース・メッセージは「ニュースとメッセージ」リージョンに表示されます。
ワークスペース・メッセージを定義するには、次のステップを実行します。
「ワークスペース・タスク」ページで「ワークスペースの検索」をクリックして、ワークスペースの検索を実行します。
ワークスペースの検索を実行するには、次の手順を実行します。
インスタンス管理者は、ワークスペースを分離する制限を構成してブラウザ攻撃を防ぐことができます。
参照:
『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のワークスペースの分離の概要に関する項
ワークスペースの分離は、ブラウザ攻撃を防ぐ効果的な方法です。
ワークスペースを真に分離する唯一の方法は、「ホスト名の許可」属性を構成してURLで異なるドメインを適用することです。攻撃者と攻撃を受ける側のURLでドメインとホスト名が異なる場合、ブラウザの同一起点ポリシーによって攻撃が回避されます。
ワークスペース・サマリー・レポートを表示して、ワークスペースの情報を表示します。
ワークスペース・サマリー・レポートを表示するには、次の手順を実行します。
「ワークスペース・データベース権限」ページで、ワークスペース・データベース権限のサマリーを表示します。
ワークスペース・データベース権限を表示するには、次の手順を実行します。
「ワークスペース別のファイルの使用状況」ページで、ワークスペース別のファイル・サイズとファイル数の合計を表示します。
ワークスペース別のファイル・サイズおよびファイル数を表示するには、次の手順を実行します。
エクスポートおよびインポートすることで、作業領域および関連付けられているすべてのユーザーを新規Oracle Application Expressインスタンスに移動します。
ヒント:
Oracle Application Expressアプリケーションのライフサイクル全体を通して開発およびデプロイを最適化するための推奨事項を確認するには、Oracle Application Expressによるライフサイクル管理を参照してください。『Oracle Application Expressでのライフ・サイクル管理』を表示します。
Utilities
フォルダにあるAPEXExport
プログラムおよびAPEXExportSplitter
プログラムを使用して、コマンドラインからワークスペース、アプリケーションおよび関連ファイルをエクスポートすることもできます。参照:
『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』
ワークスペースおよび関連付けられているすべてのユーザーを新規Oracle Application Expressインスタンスに移動するには、ワークスペースをエクスポートします。
ワークスペースをエクスポートすると、Oracle Application Expressによってテキスト・ファイルが生成されます。このファイルには、ワークスペース、ワークスペース内のすべてのユーザーおよびワークスペース内のすべてのグループ(該当する場合)についての情報が含まれます。このファイルを別のOracle Application Expressインスタンスにインポートできます。
ワークスペースをエクスポートして、新しいデータベース・インスタンスにインポートすることで、開発者はアプリケーション・コンポーネントをインポートできます。新しい環境を構築する場合(例: 開発をテストに移動またはテストを本番に移動)、ワークスペースをインポートして作成することをお薦めします。
この方法ではワークスペース、ユーザーおよびグループのみがインポートされることに注意してください。このファイルに、次の情報は含まれません。
このワークスペースに関連付けられているスキーマ、またはそれらのスキーマ内のオブジェクト。
アプリケーション、イメージ、カスケード・スタイルシートおよび静的テキスト・ファイル。
これらのアイテムは個別にエクスポートする必要があります。
参照:
Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイドの「アプリケーションのデプロイ」
「ワークスペースの管理」で「ワークスペースのエクスポート」をクリックして、ワークスペースをエクスポートします。
ワークスペースをエクスポートするには、次のステップを実行します。
「ワークスペースの管理」で「ワークスペースのインポート」をクリックして、ワークスペースをインポートします。
ワークスペースをインポートするには、次の手順を実行します。
ダウンロードしたインストールzipファイルのUtilities
フォルダにあるAPEXExport
プログラムおよびAPEXExportSplitter
プログラムを使用して、コマンドラインからワークスペース、アプリケーションおよび関連ファイルをエクスポートすることもできます。
APEXExport
プログラムは、コマンドラインからOracle Application Expressアプリケーションまたはワークスペースをエクスポートするために使用します。Oracle Application ExpressのWebインタフェースから手動でエクスポートする必要はありません。APEXExportSplitter
プログラムは、Oracle Application Expressエクスポート・ファイルを独立したSQLスクリプトに分割するために使用します。これは、Oracle Application Expressアプリケーションの個々の要素に対応するファイルを管理するときに有用です。APEXExport
プログラムは、コマンドラインからOracle Application Expressアプリケーションまたはワークスペースをエクスポートするために使用します。Oracle Application ExpressのWebインタフェースから手動でエクスポートする必要はありません。
プログラム要件
APEXExport
プログラムの要件は次のとおりです。
JDK (Java Development Kit)リリース1.5以上
Oracle JDBCクラス・ライブラリがCLASSPATHに存在する必要があります。
APEXExportの概要
APEXExport
を使用するには、次の手順を実行します。
CLASSPATHを設定します。次に例を示します。
UNIXおよびLinuxの場合:
export CLASSPATH=.:${ORACLE_HOME}/jdbc/lib/ojdbc5.jar
Bashシェルでは次のようにします。
set CLASSPATH=%CLASSPATH%;.\;%ORACLE_HOME%\jdbc\lib\ojdbc5.jar
Windowsの場合:
apex/utilities
ディレクトリから、次のコマンドを発行します。
java oracle.apex.APEXExport
使用方法と使用例の両方を示した次の出力が返されます。
Usage APEXExport -db -user -password -applicationid -workspaceid -instance -expWorkspace -expMinimal -expFiles -skipExportDate -expPubReports -expSavedReports -expIRNotif -expTranslations -expTeamdevdata -expFeedback -deploymentSystem -expFeedbackSince -expOriginalIds -debug- -db: Database connect url in JDBC format -user: Database username -password: Database password -applicationid: ID for application to be exported -workspaceid: Workspace ID for which all applications to be exported or the workspace to be exported -instance: Export all applications -expWorkspace: Export workspace identified by -workspaceid or all workspaces if -workspaceid not specified -expMinimal: Only export workspace definition, users, and groups -expFiles: Export all workspace files identified by -workspaceid -skipExportDate: Exclude export date from application export files -expPubReports: Export all user saved public interactive reports -expSavedReports: Export all user saved interactive reports -expIRNotif: Export all interactive report notifications -expTranslations: Export the translation mappings and all text from the translation repository -expFeedback: Export team development feedback for all workspaces or identified by -workspaceid to development or deployment -expTeamdevdata: Export team development data for all workspaces or identified by -workspaceid -deploymentSystem: Deployment system for exported feedback -expFeedbackSince: Export team development feedback since date in the format YYYYMMDD -expOriginalIds: If specified, the application export will emit ids as they were when the application was imported
Single Application Example: APEXExport -db localhost:1521:ORCL -user scott -password scotts_password -applicationid 31500 All Applications in a Workspace Example: APEXExport -db localhost:1521:ORCL -user scott -password scotts_password -workspaceid 9999 All Applications in an Instance Example: APEXExport -db localhost:1521:ORCL -user system -password systems_password -instance Export All Workspaces Example: APEXExport -db localhost:1521:ORCL -user system -password systems_password -expWorkspace Export Feedback to development environment: APEXExport -db localhost:1521:ORCL -user scott -password scotts_password -workspaceid 9999 -expFeedback Export Feedback to deployment environment EA2 since 20100308: APEXExport -db localhost:1521:ORCL -user scott -password scotts_password -workspaceid 9999 -expFeedback -deploymentSystem EA2 -expFeedbackSince 20100308
APEXExportSplitter
プログラムは、Oracle Application Expressエクスポート・ファイルを独立したSQLスクリプトに分割するために使用します。これは、Oracle Application Expressアプリケーションの個々の要素に対応するファイルを管理するときに有用です。
プログラム要件
APEXExportSplitter
プログラムの要件は次のとおりです。
JDK (Java Development Kit)リリース1.5以上
Oracle JDBCクラス・ライブラリがCLASSPATH
に存在する必要があります。
APEXExportSplitterの概要
APEXExportSplitter
を使用するには、次の手順を実行します。
CLASSPATHを設定します。次に例を示します。
UNIXおよびLinuxの場合:
export CLASSPATH=.:$CLASSPATH
Bashシェルでは次のようにします。
set CLASSPATH=%CLASSPATH%;.\;
Windowsの場合:
apex/utilities
ディレクトリから、次のコマンドを発行します。
java oracle.apex.APEXExportSplitter
使用方法を示した次の出力が返されます。
Usage java oracle.apex.APEXExportSplitter filename -help : < print this syntax > -flat : < flat file structure > -debug : < print debug info > -update : < create update file > -nochecksum : < do not check for changes
アプリケーション・エクスポート・ファイルを分割し、コンポーネント・タイプごとにサブディレクトリを作成するには、次のコマンドを発行します。
java oracle.apex.APEXExportSplitter f123.sql
ここで、f123.sql
がアプリケーション・エクスポート・ファイルです。
ファイル名にコンポーネント・タイプが含まれているアプリケーション・エクスポート・ファイルを分割するには(ディレクトリは作成しません)、次のコマンドを発行します。
java oracle.apex.APEXExportSplitter f123.sql -flat
ここで、f123.sql
がアプリケーション・エクスポート・ファイルです。
インスタンス管理者は、アプリケーションのビルド・ステータスを変更できます。
ビルド・ステータス属性を使用して、アプリケーションが他の開発者によって変更されるのを防ぎます。
ビルド・ステータス属性には2つの設定があります。
アプリケーションの実行および構築: 開発者は、アプリケーションを実行および編集できます。
アプリケーションの実行のみ: 開発者は、アプリケーションの実行のみができます。
ビルド・ステータスを「アプリケーションの実行のみ」に設定することは、他の開発者によってアプリケーションが変更されないようにするために有効な方法です。
ビルド・ステータスを変更する方法
アプリケーションのビルド・ステータスは、次のようにして変更できます。
アプリケーション・レベル - 開発者および管理者は、アプリケーションの編集ページでビルド・ステータス属性を変更できます。Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイドの「可用性」を参照してください。
ワークスペースレベル - ワークスペース管理者は、現行のワークスペース内のアプリケーションのビルド・ステータスを「アプリケーション・ビルド・ステータスの管理」ページで変更できます。複数のアプリケーションのビルド・ステータスの変更を参照してください。
インスタンスレベル - 「管理サービスでのビルド・ステータスの変更」で説明するように、インスタンス管理者は「ビルド・ステータス」ページでアプリケーションのビルド・ステータスを変更できます。