Skip navigation.

BulkLoader ガイド

  前 次 前と次、目次/インデックス/pdf を分けるコロン 目次  

BulkLoader の使用

BulkLoader は、ファイルシステムからコンテンツとメタデータを BEA 仮想コンテンツ リポジトリにロードするコマンドライン アプリケーションです。このドキュメントでは、BulkLoader の使用方法について説明します。このドキュメントは、以下のトピックで構成されています。

BulkLoader は、コンテンツを含むディレクトリ構造をスキャンし、そのコンテンツを指定のコンテンツ リポジトリにロードします。また、コンテンツをロードするとともに、準備されているメタデータ ファイルを読み込み、ロードした各コンテンツ項目にそのメタデータを関連付けます。メタデータ ファイルは、コンテンツ項目ごとに作成することも、複数の項目を含むディレクトリやサブディレクトリに対して作成することもできます。

BulkLoader でデータベース リポジトリにコンテンツをロードした場合、メタデータとバイナリ ファイルの両方がリポジトリに転送されます。ファイルシステム リポジトリにロードした場合は、メタデータだけがデータベースに転送され、実際のコンテンツ ファイルはファイルシステム上に残されます。

BulkLoader では、どのタイプのコンテンツでもロードできます。BulkLoader プログラムは、ファイルをリポジトリにバッチ モードでロードできる唯一の手段です。

注意 : BulkLoader を使用してライブラリ サービス対応のリポジトリからコンテンツを削除すると、削除されたコンテンツに関連付けられているすべてのバージョン データも削除されます。

 


BulkLoader の使用準備

BulkLoader を実行する前に、リポジトリを作成し、適切なコンテンツ タイプを作成し、ディレクトリ構造にコンテンツを挿入し、メタデータ ファイルを準備する必要があります。この節では、これらの事前準備手順について説明します。

リポジトリを作成する

BulkLoader は、事前に構成済みのコンテンツ リポジトリにコンテンツとメタデータをロードします。リポジトリの作成の詳細については、「新しいリポジトリ接続を追加する」を参照してください。

適切なタイプを作成する

リポジトリに格納されるコンテンツは、それぞれ 1 つの「タイプ」に関連付けられます。タイプとは、それに関連付けられているコンテンツ項目の識別と説明に使用できる特定のメタデータ フィールドを含む定義です。BEA リポジトリには、定義済みのデフォルトのタイプがいくつかあります。たとえば、定義済みの image タイプには次の 3 つのメタデータ フィールドが含まれています。

独自のタイプを作成することも、定義済みのタイプを使用することもできます。タイプの作成の詳細については、「コンテンツ タイプを追加する」を参照してください。

注意 : ファイル システム リポジトリを使用している場合、プライマリ プロパティを「バイナリ」にして、コンテンツ項目に関連付けるタイプを作成する必要があります。

ヒント : リポジトリに対して定義されているタイプを参照するには、WebLogic Administration Portal のコンテンツ管理セクションにある [View] プルダウン メニューから [Type] を選択します。

図 2


 

コンテンツ ディレクトリを準備する

BulkLoader は、指定のディレクトリ (および、デフォルトではサブディレクトリ) からすべてのコンテンツをコンテンツ リポジトリにロードします。コンテンツ リポジトリにディレクトリが自動的に階層ノード (フォルダ) として再作成されます。リポジトリにロードするディレクトリ構造には、リポジトリに追加するコンテンツだけを含める必要があります。BulkLoader では、このディレクトリ構造に含まれるすべてのファイルがロードされます。

ヒント : コマンドライン フラグを使用して、ファイル名のパターンに一致する特定のファイルまたはフォルダを含める、または無視するように、BulkLoader をコンフィグレーションすることができます。

メタデータ ファイルを準備する

リポジトリ内のコンテンツはそれぞれ特定の「タイプ」に関連付けられています。タイプには、デフォルトのユーザ定義プロパティが含まれています。このプロパティ (メタデータ) を使用して、リポジトリ内のコンテンツ項目を識別および検索することができます。

BulkLoader では、個々のファイルや、複数のファイルを含むディレクトリを自動的に特定のタイプに関連付けることができます。この節では、この 2 つの関連付けについて説明します。また、ライブラリ サービスが有効になっているリポジトリにメタデータを追加する方法と、メタデータ ファイルに正しく名前を付けて格納する方法についても説明します。

複数のファイルを含むディレクトリのメタデータを定義する

1 つのディレクトリ (および、デフォルトではそのサブディレクトリ) に含まれるファイルがすべて同じタイプであることがわかっている場合、そのタイプを指定すれば、リポジトリに格納されるときにすべてのファイルにそのタイプが関連付けられます。それには、関連コンテンツが含まれるルート ディレクトリに dir.md.properties というファイルを置きます。このファイルには次の 1 行を記述します。

nodeType=type

ここで、type はコンテンツに関連付けるタイプの名前です。次に例を示します。

nodeType=image

デフォルトでは、ディレクトリとそのサブディレクトリ内のすべてのコンテンツがこのタイプに関連付けられます。サブディレクトリの 1 つに別の dir.md.properties ファイルが含まれていると、そのディレクトリとその中のすべてのサブディレクトリでは、このファイルに定義されているタイプで元のタイプがオーバーライドされます。さらに、filename.md.properties ファイルが含まれていると、その特定のファイルについては、dir.md.properties ファイルもオーバーライドされます。次に、filename.md.properties ファイルについて説明します。

特定のファイルのメタデータを定義する

BulkLoader でロードする特定のファイルに対してメタデータを定義することもできます。それには、各コンテンツについて次のようなファイルを作成します。

filename.md.properties 

ここで、filename はメタデータを関連付けるファイルの名前です。このファイルには、タイプに関連するすべての名前と値のペアを含める必要があります。たとえば、Ad タイプには、次のエントリが関連します。

nodeType=Ad
height=65
width=115
adTargetUrl=
adTargetContent=
adWinClose=
adWinTarget=
adWinTitle=
adClickTarget=
adUseXhtml=
adAltText=BEA Logo
adMapName=
adMap=
adBorder=
audience=internal

これらのプロパティの一部またはすべてに値を追加して、ファイルを保存します。保存したファイルを、関連付けるコンテンツ項目と同じディレクトリに置きます。BulkLoader を実行すると、このメタデータは、指定のコンテンツ項目に永久に関連付けられて格納されます。

メタデータのガイドライン

ライブラリ サービスが有効になっているリポジトリのメタデータを作成する

ライブラリ サービスが有効になっているリポジトリにコンテンツを格納する場合、各コンテンツ項目の filename.md.properties ファイルに lifecyclestatus キーを含める必要があります。lifecyclestatus キーは、コンテンツ項目のステータスを指定する次のような整数値を取ります。

表 1

lifecyclestatus

指定する整数

下書き

1

レビュー準備完了

2

公開済み

4

廃棄済み

5

たとえば、Ad タイプには、次の md.properties エントリが関連します。lifecyclestatus エントリが含まれており、ステータスの値は 2 (レビュー準備完了) に設定されています。

nodeType=Ad
height=65
width=115
adTargetUrl=
adTargetContent=
adWinClose=
adWinTarget=
adWinTitle=
adClickTarget=
lifecyclestatus=2
adUseXhtml=
adAltText=BEA Logo
adMapName=
adMap=
adBorder=
audience=internal

その他のプロパティの一部またはすべてに値を追加して、ファイルを保存します。保存したファイルを、関連付けるコンテンツ項目と同じディレクトリに置きます。

メタデータ ファイルに名前を付けて格納する

BulkLoader は、ディレクトリを処理するときに、メタデータ プロパティ ファイルをロードします。まず、ディレクトリから dir.md.properties というファイルを検索します。他にメタデータ ファイルがなく、オーバーライドが行われない場合は、これらのプロパティがそのディレクトリとサブディレクトリ内のすべてのコンテンツ項目に適用されます。特定のコンテンツ ファイルにメタデータ ファイルを関連付けることができます。このようなメタデータ ファイルは、同じディレクトリにあるファイルをオーバーライドします。特定のコンテンツ ファイルに関連付けるメタデータ ファイルは、次の命名規約に従って名前を付ける必要があります。

filename.md.properties 

ここで、filename は関連付けるコンテンツ項目ファイルの名前です。次に例を示します。

logo.gif.md.properties

この場合、メタデータ ファイルは logo.gif という画像ファイルに関連付けられます。

注意 : デフォルトの拡張子 md.properties は、BulkLoader の -mdext パラメータを使用して、任意の拡張子に変更できます。

ヒント : デフォルトでは、BulkLoader はサブディレクトリに再帰を実行し、dir.md.properties ファイル内のプロパティがサブディレクトリのコンテンツに継承されます。この動作は、+recurse フラグ (再帰を無効にする) と +inheritProps フラグ (サブディレクトリのメタデータ プロパティの継承を無効にする) を指定することでオーバーライドできます。

メタデータの要約

要約すると、BulkLoader は以下のソースからコンテンツ メタデータをこの順序で収集します。

 


BulkLoader のコンフィグレーションと実行

通常、BulkLoader はスクリプトから実行します。

注意 : メモリ不足エラーで BulkLoader が実行できない場合は、Java ヒープ サイズを増やしてください。BulkLoader スクリプトでこの設定を行うには、BulkLoader コマンドにパラメータとして -Xmsxxxm を指定します。ここで、xxx はメガバイト数です。たとえば、-Xms1000m とします。

BEA Weblogic Workshop には次のスクリプトが用意されています。

Windows : Weblogic81b¥portal¥bin¥load_cm_data.cmd

UNIX : Weblogic81b/portal/bin/load_cm_data.sh

このスクリプトは、各自の環境で実行できるように編集し、BulkLoader プログラム自体に渡すパラメータをカスタマイズする必要があります。この節では、このコマンド スクリプトを設定および実行する方法について説明します。

注意 : BulkLoader を実行するには、BEA Weblogic Server が起動されている必要があります。

  1. スクリプトを編集するために、スクリプト ファイルを開きます。
  2. PLATFORM_HOME 変数を、インストールされている WebLogic Server を参照するように設定します。次に例を示します。
  3. PLATFORM_HOME=C:¥bea¥weblogic81
  4. CM_DATA 変数を、コンテンツ リポジトリにロードするコンテンツを含むディレクトリの親ディレクトリを参照するように設定します。たとえば、格納するコンテンツが D:¥myContent¥imagesimages というディレクトリにある場合は、CM_DATA を次のように設定します。
  5. CM_DATA=D:¥myContent
  6. コマンド スクリプトに BulkLoader コマンド パラメータをコンフィグレーションします。次に例を示します。
  7. %JAVA_HOME%¥bin¥java -classpath %CLASSPATH% com.bea.content.loader.bulk.BulkLoader -verbose -repository "MyRepository" -application portalApp -d %CM_DATA% file1 file2 filen

太字で示したパラメータについて、次の表で説明します。

表 2

パラメータ

説明

-verbose

BulkLoader の実行時にメッセージを出力する。

-repository

コンテンツをロードするリポジトリの名前を指定する。

-application

実行しているリポジトリの WebLogic Portal アプリケーションの名前を指定する。

-d

コンテンツ リポジトリにロードするディレクトリとファイルを含むベース ディレクトリを指定する。このオプションを指定しない場合は、カレント ディレクトリ (.) が使用される。このディレクトリは、リポジトリの作成時に定義した cm_fileSystem_path プロパティと同じ値にする必要がある。このオプションは、相対パスと絶対パスのどちらでも指定できる。

file1...filen

コンテンツ管理システムにロードするファイルやフォルダの名前を指定する。これらのファイルやフォルダは、ベース ディレクトリ (-d) を基準にした相対パスに存在すると想定される。

BulkLoader のすべてのパラメータについては、「BulkLoader のパラメータ リファレンス」を参照してください。

ヒント : BulkLoader スクリプトは、コマンドラインで実行することも、ファイル アイコンをダブルクリックして実行することもできます。

BulkLoader コマンドの例

注意 : BulkLoader コマンドのパラメータにワイルドカードや正規表現を使用することはできません。

次のコマンドは、D:¥mediaImagesAudio、および Doc ディレクトリ内の全ファイルを再帰的にロードします。ImagesAudioDoc の各ディレクトリに dir.md.properties ファイルが含まれているか、これらのディレクトリ内の各コンテンツ項目に定義する filename.md.properties ファイルが配置されている必要があります。

%JAVA_HOME%¥bin¥java -classpath %CLASSPATH% com.bea.content.loader.bulk.BulkLoader -verbose -repository "MyRepository" -application portalApp -d D:¥media Images Audio Doc

次のコマンドは、D:¥media¥images 内の全ファイルをロードします。サブディレクトリへの再帰は実行しません。*.info.properties の命名規約に準拠するメタデータ ファイルが認識されます。

%JAVA_HOME%¥bin¥java -classpath %CLASSPATH% com.bea.content.loader.bulk.BulkLoader -verbose -repository "MyRepository" -application portalApp -mdext info.properties +recurse -d D:¥media images 

 


BulkLoader のパラメータ リファレンス

表 3 BulkLoader の必須パラメータ

必須パラメータ

説明

-repository <repository name>

ローダを実行する対象リポジトリの名前を指定する。

-application <app name>

ローダを実行する対象アプリケーションの名前を指定する。

-url <wls url>

コンテンツ マネージャが実行中の WebLogic Server インスタンス ホストを指定する。

-user <principal username>

ローダ EJB リソースにアクセスを許可されたプリンシパルのユーザ名を指定する。

-password <principal password>

ローダ EJB リソースにアクセスを許可されたプリンシパルのパスワードを指定する。

-d <dir>

コンテンツ リポジトリにロードするディレクトリとファイルを含むベース ディレクトリを指定する。このオプションを指定しない場合は、カレント ディレクトリ (.) が使用される。このディレクトリは、リポジトリの作成時に定義した cm_fileSystem_path プロパティと同じ値にする必要がある。このオプションは、相対パスと絶対パスのどちらでも指定できる。


 

表 4

省略可能パラメータ

説明

-recurse

ディレクトリに再帰を実行する (デフォルト)。

+recurse

ディレクトリに再帰を実行しない。

-metaparse

HTML ファイルの META タグを解析する (デフォルト)。

+metaparse

HTML ファイルの META タグを解析しない。

-hidden

隠しファイルとディレクトリを無視する (デフォルト)。

+hidden

隠しファイルとディレクトリを含める。

-inheritProps

再帰を実行するときにメタデータ プロパティを継承する (デフォルト)。

+inheritProps

再帰を実行する際にメタデータ プロパティを継承しない。

-ignoreErrors

コンテンツをロードする際にエラーを無視する (エラーの報告は行われる)。

+ignoreErrors

エラーが発生した場合、処理を停止する (デフォルト)。

-htmlPat <pattern>

HTML ファイルを表すファイル拡張子を指定する。-metaparse フラグを設定した場合、この拡張子を持つファイルから <meta> タグと <title> タグの値を読み取り、それをコンテンツ メタデータとして格納する。このフラグは何回でも指定でき、複数のファイル拡張子を定義することができる。デフォルトでは、*.htm*.html が使用される。

-encoding <encoding>

使用するファイル エンコードを指定する。有効なエンコード名については、JDK のドキュメントを参照。デフォルトは、システムのデフォルトのファイル エンコード。

-match <pattern>

BulkLoader でロードするファイル名およびディレクトリ名のパターンを指定する。このパターンに一致するすべてのファイルがロードされる。このフラグは何回でも指定でき、複数のパターンを定義することができる。このフラグを省略すると、すべてのファイルとディレクトリがロードされる。

-ignore <pattern>

BulkLoader で無視するファイル名およびディレクトリ名のパターンを指定する。このパターンに一致するすべてのファイルが無視される。このフラグは何回でも指定でき、複数のパターンを定義することができる。

-mdext <ext>

メタデータ プロパティ ファイルのファイル名拡張子を指定する。値の先頭は「.」でなければならない。デフォルトでは、.md.properties となる。

-filter <filter class>

このパラメータは、通常は使用しないが、コンテンツのタイプの特定の特性に基づくメタデータの値を設定するカスタム フィルタを作成することができる。たとえば、画像ファイルの幅と高さを計算してその値をメタデータに設定するフィルタを作成できる。

このフラグは、ファイルをフィルタ処理する LoaderFilter のクラス名を設定する。このフラグは何回でも指定でき、複数のクラス名を LoaderFilter のリストに追加することができる。LoaderFilter はファイルに追加のメタデータを割り当てる。BulkLoader は、起動すると、クラスパスにある content¥com¥bea¥content¥loader¥bulk ファイルを検索する。次に、このファイルから loader.defFilters プロパティを検索する。これは、BulkLoader が必ずロードする LoaderFilter のクラス名をコロンで区切ったリストである。このファイルが変更されない限り、BulkLoader は ImageLoaderFilter をロードする。これにより *.gif*.jpg*.png、および *.xbm の各画像ファイルから幅と高さが取得される。

-filters

LoaderFilter の現在のリストをクリアする (デフォルトのフィルタも含む)。

--

このパラメータの後ろのファイルまたはディレクトリはすべてアップロード対象と見なされる。

-Xms<xxx>m

Java ヒープ サイズを増やす。ここで、xxx はメガバイト数。たとえば、-Xms1000m とする。このフラグは、メモリ不足エラーで BulkLoader が実行できない場合に使用する。

-h

コマンドラインの使用法を表示する。

BulkLoader の省略可能パラメータ

BulkLoader スクリプトの例

WebLogic Workshop には次のスクリプトが用意されています。このスクリプトは、適切なパスをコンフィグレーションして BulkLoader プログラムを実行します。このスクリプトは特定の環境やニーズに合わせて自由に編集できます。

コード リスト 1-1 BulkLoader スクリプト (Windows) : Weblogic81b/portal/bin/load_cm_data.cmd

@ECHO OFF
REM #########################################################################
REM # (c) BEA SYSTEMS INC. All rights reserved
REM #
REM ##########################################################################
SETLOCAL
SET PLATFORM_HOME=C:¥bea¥weblogic81
FOR %%i IN ("%PLATFORM_HOME%") DO SET PLATFORM_HOME=%%~fsi
SET PORTAL_HOME=%PLATFORM_HOME%¥portal
SET P13N_HOME=%PLATFORM_HOME%¥p13n
CALL %PLATFORM_HOME%¥common¥bin¥commEnv.cmd
@rem **************************************************************************
@rem Set any additional CLASSPATH information below
@rem **************************************************************************
setCLASSPATH=%POINTBASE_CLASSPATH%;%WEBLOGIC_CLASSPATH%;%P13N_HOME%¥lib¥
p13n_system.jar;%PORTAL_HOME%¥lib¥content.jar;%PORTAL_HOME%¥lib¥
content_system.jar;%CLASSPATH%
REM Set some defaults
if "%CM_DATA%"=="" set CM_DATA=..¥db¥data¥sample¥cm_data
%JAVA_HOME%¥bin¥java -classpath %CLASSPATH% com.bea.content.loader.bulk.BulkLoader -verbose -repository "BEA Repository" -application portalApp -d %CM_DATA% Ads
ENDLOCAL

 

ページの先頭 前 次