WebLogic Platform アプリケーションのデプロイメント
プロダクション環境にデプロイする場合は、エンタープライズレベルのデータベース インスタンスを設定し、データベース テーブルを定義する必要があります。
この節では、WebLogic Portal および WebLogic Integration のデータベース テーブルのコンフィグレーション方法と、対象環境への既存データのプロモート方法について説明します。
注意 : この節では、WebLogic Platform 製品ラインタイムの要件を満たすデータベースのコンフィグレーションについて説明します。アプリケーション固有の要件に合わせたデータベースのコンフィグレーションについては、このドキュメントでは説明しません。アプリケーション ビジネス ロジックおよびアプリケーション データの要件をサポートするようにデータベースがユーザによって適切に設定されていることを前提としています。
WebLogic Platform アプリケーションでの使用のためにデータベース スキーマを作成し、データベースをロードするには、以下の手順に従います。
プロダクション環境で WebLogic Portal 行動イベント追跡を行う場合は、行動イベント追跡用に別のデータベースを使用することを検討してください。詳細については、『WebLogic Portal データベース管理ガイド』を参照してください。
BEA では複数のサンプル初期化スクリプトを提供しています。WebLogic Platform コンポーネントでデータベースを使用する前に、これらのスクリプトを修正してベンダ データベース上で実行する必要があります。初期化スクリプトを実行すると、データベース テーブルに適切な情報がロードされます。
WebLogic Portal 機能を実装する WebLogic Platform アプリケーション用にデータベースを準備するには、ベンダの種類に応じて、『WebLogic Portal データベース管理ガイド』の以下の節を参照してください。
WebLogic Integration 機能を実装する WebLogic Platform アプリケーション用にデータベースを準備するには、『WebLogic Integration ソリューションの管理』の「プロダクション データベースのコンフィグレーション」を参照してください。
アプリケーションが Web サービスまたはタイマー コントロールを使用している場合、WebLogic Workshop は開発ドメインのデータベース テーブルを使用して対話状態を格納します。
WebLogic Workshop により、/META-INF/wlw-manifest.xml
ファイルに対話状態テーブルが <con:conversation-state-table>
という要素名で指定されます。
wlw-manifest.xml
ファイルで定義された対話状態テーブル要素ごとに、対象データベースで対応するテーブルをコンフィグレーションする必要があります。特定のデータベース用に対話状態テーブルを定義する SQL スクリプトについては、WebLogic Workshop オンライン ヘルプの「WebLogic Workshop アプリケーションをプロダクション サーバにデプロイするには」の「プロダクション サーバで必要なリソースを手動で作成する」の手順 2 を参照してください。
たとえば、Oracle の場合は、以下の SQL スクリプトを使用して、対話状態テーブルを作成できます。ここでは、<TableName>
は、<con:conversation-state-table>
要素に現れるテーブルの名前を示します。
CREATE TABLE <TableName>(
CG_ID varchar(768) not null,
LAST_ACCESS_TIME number(19,0),
CG_DATA BLOB,
PRIMARY KEY (CG_ID)
)
Ant を使用して対話状態データベース テーブルを作成する例については、「例 : Ant を使用した対話状態データベース テーブルの作成方法」を参照してください。
以下の節では、既存のデータベース情報をエンタープライズレベルのプロダクション データベースにプロモートするために必要な手順について説明します。
WebLogic Portal Datasync 情報は、ユーザ セグメント、コンテンツ セレクタ、キャンペーン、および割引と、ユーザ プロファイル、カタログ、イベント、セッション、リクエストなどのプロパティ セットから構成されます。開発からプロダクションに移行し、「アプリケーションをデプロイする手順」で説明されているようにデプロイメント中に別のプロセスとしてブートストラップする場合は、この情報を慎重に管理する必要があります。
開発環境では、ポータル アプリケーションの Datasync 情報は WebLogic Workshop で特別な Datasync プロジェクトとして作成および格納されます。ファイルは、ポータル アプリケーションの META-INF/data
ディレクトリに格納され、WebLogic Workshop の <portalApplication>/data
ディレクトリにエクスポーズされます。Datasync データは、開発者、ビジネス ユーザ、およびポータル管理者によって変更され (WebLogic Administration Portal でユーザ セグメント、キャンペーン、プレースホルダ、およびコンテンツ セレクタが変更可能)、WebLogic Workshop と WebLogic Administration Portal によって更新されます。
プロダクション環境では、ユーザは WebLogic Administration Portal を使用してポータル定義を変更できる必要があります。プロダクション環境で Datasync 情報への更新を有効にする方法は、以下のテーブルで説明されているようにポータル アプリケーションのデプロイメント方法によって異なります。
圧縮されたアーカイブまたは展開されたアーカイブとして WebLogic Portal アプリケーションをプロダクション環境に初めてデプロイする場合は、Datasync 情報がデータベースで自動的にブートストラップ (初期化) されます。
また、各ポータル アプリケーションには、Datasync リポジトリを参照し、新しいコンテンツをアップロードできる Datasync Web アプリケーションが含まれます。Datasync Web アプリケーションにアクセスするには、http://
servername
:
port
/
appName
DataSync
の URL を使用します。ここでは、servername
と port
はサーバの名前とポート番号を示し、appName
は WebLogic Portal アプリケーション名を示します。
ポータル データを追加的に更新する必要がある場合は、Datasync Web アプリケーションを使用して再デプロイ操作の一環として新しい情報をロードするか、別のスタンドアロンの JAR ファイルを使用して個別に新しい情報をロードします。有効なデータを削除したり、誤って変更したりしないように、細心の注意を払ってください。また、プロダクション環境から Datasync 情報を取得し、ステージング環境に保存することもできます。
Datasync 情報のプロモートと取得の詳細については、『WebLogic Portal プロダクション業務ユーザーズ ガイド』の「Datasync Web アプリケーションの使用」を参照してください。
WebLogic Portal LDAP データには、グローバル ロール、エンタープライズ アプリケーション ロール、Web アプリケーション ロール (委託管理ロールや訪問者の資格ロールなど)、委託管理の割り当てと定義、および訪問者の資格の割り当てと定義が含まれます。データベース データには、WebLogic Administration Portal で作成または変更されたすべてのデータが含まれます。
WebLogic Portal Propagation ユーティリティを使用すると、アプリケーション LDAP とデータベース データをプロダクション環境にプロモートできます。また、LDAP および Portal データベース情報をプロダクション環境から取得し、ステージング環境に保存することもできます。
Propagation ユーティリティはポータル Web アプリケーションであり、エンタープライズ アプリケーション アーカイブ (EAR) 内にパッケージ化されています。このユーティリティは、ソース ドメインと対象ドメインの両方にデプロイする必要があります。最新バージョンの Propagation ユーティリティについては、BEA のサポートまでお問い合わせください。
クラスタ環境では、管理サーバに対してのみプロモートする必要があります。管理サーバにより、データが管理対象サーバに自動的にプロモートされます。データベース データを伝播する場合は、以下のことに注意してください。
Propagation ユーティリティを使用した LDAP および Portal データベース データのプロモートの詳細については、『WebLogic Portal プロダクション業務ユーザーズ ガイド』の「Propagation Utility の使用」を参照してください。
WebLogic Integration データベース テーブル以外に、以下の表で定義されているように、アプリケーションの要件に基づいて追加のデータベース情報を作成またはプロモートする必要がある場合があります。
|
|
|
以下の例では、WLST Offline を使用してドメイン データベースをロードする方法を示しています。手順は以下のとおりです。
WLST Offline の詳細については、次の URL にある WLST Offline キットに付属のドキュメントと例を参照してください。https://codesamples.projects.dev2dev.bea.com/servlets/Scarab?id=97
注意 : わかりやすくするために、以下のコード例では変数ではなく実際の値が使用されています。WLST 変数の使用については、「WLST 変数を定義する」を参照してください。
以下のコード例は、データベースをロードするために使用するドメイン テンプレートを開きます。
readTemplate('/bea/weblogic81/common/templates/domains/platform.jar')
以下のコード例は、Oracle データベースを使用して定義済みの JDBC 接続プールである cgJMSPool-nonXA
をコンフィグレーションします。
existingPoolName = 'cgJMSPool-nonXA'
cd ('/JDBCConnectionPool/' + existingPoolName)
cmo.setDriverName('oracle.jdbc.driver.OracleDriver')
cmo.setUserName('user
')
cmo.setPassword('password
')
cmo.setDbmsHost('myDBhost')
cmo.setDbmsPort('1521')
cmo.setDbmsName('myDB')
以下のコード例は、指定された JDBC 接続プールのデータベースをロードします。
loadDB('9i',existingPoolName)
以下のコード例は、ドメインを作成せずにテンプレートを閉じます。
closeTemplate()
以下の例では、Ant を使用してアプリケーション データベースをロードする方法を示しています。Ant の詳細については、以下を参照してください。
http://ant.apache.org
異なる対象環境でスクリプトを自動化および再利用するには、コードで、Ant スクリプトにインポートされたプロパティ ファイルで解決される ${scripts.dir} などのプロパティを参照します。たとえば、次のプロパティは別個のプロパティ ファイル myprops.properties
で定義されます。
scripts.dir=scripts
app1dbaccnt.type=9i
db.host=host
db.port=1531
db.dbname=ora920
db.driver=oracle.jdbc.driver.OracleDriver
db.sqltask.url=jdbc:oracle:thin:@${db.host}:${db.port}:${db.dbname}
db.delimiter=;
db.user=user
db.password=password
このファイルは、以下のように Ant ビルド ファイルで参照されます。
<property file="myprops.properties"/>
以下のコード例は、APP1DDL.sql
ファイルを使用して app1
のデータベース データをロードします。
<target name="load-app1-tables">
<antcall target="run-sql-script">
<param name="db.acct" value="app1dbaccnt"/>
<param name="db.script"
value="${scripts.dir}/db/${app1dbaccnt.type}/APP1DDL.sql"/>
</antcall>
</target>
以下のコード例は、SQL データベース呼び出しを実行する run-sql-script
対象スクリプトを定義します。
<target name="run-sql-script">
<sql
driver="${db.driver}"
url="${db.sqltask.url}"
delimiter="${db.delimiter}"
userid="${db.user}"
password="${db.password}"
onerror="continue"
autocommit="true"
classpathref="basic.classpath"
print="true"
src="${db.script}"/>
</target>
dev2dev Web サイトの『PO Sample』では、Ant を使用して対話状態データベース テーブルを作成する例が提供されています。https://codesamples.projects.dev2dev.bea.com/servlets/Scarab?id=76
で、この記事にアクセスして、関連サンプル ファイルをダウンロードできます。
キットに含まれているサンプル Java ユーティリティ、ManifestReader
は、wlw-manifest.xml
ファイルを読み込み、対話状態データベース テーブルを作成するために必要な情報を抽出します。このユーティリティは、Jython スクリプトである create_app_db_scripts
から参照され、wlw-manifest.xml
ファイルに示されている対話状態データベース テーブルを削除および作成する SQL コマンドを使用して DDL ファイルを作成します。
注意 : dev2dev に関するコード例とユーティリティは、参考のために記載されています。これらの製品は、BEA によってサポートされていません。