第3章
この章では、Novell exteNd Application Server展開計画DTDの参照マニュアルを提供します。トピックは次のとおりです。
はじめに この章では、XMLに関する基本的な知識が必要です。
展開計画DTDファイルは、J2EEアーカイブをアプリケーションサーバに展開する際に使用されます。これらのDTD (XML Document Type Definition)は、特定の種類のアーカイブの展開計画を作成する場合に従う必要がある構造を記述します。
DTDおよびサンプルXMLファイル 次に、これらのファイルの名前と場所の概要を示します。
検索するファイル |
サーバのインストールで検索する場所 |
---|---|
展開計画DTDファイル |
\Resources\DTDCatalogディレクトリ |
DTDを使用するサンプル展開計画XMLファイル |
\Samples\SilverCmdディレクトリ |
DTDマニュアル 次のものを参照することで、DTDについて学ぶことができます。
展開計画の編集 展開計画を作成および編集するには、次のエディタを使用できます。
この節では、アプリケーションサーバのクライアントJAR展開計画DTDに関する参照情報について説明します。
DTDファイル クライアントJAR展開計画DTDは、deploy-car_1_3.dtdです。
選択した要素 次に、クライアントJAR展開計画DTDによって定義されている要素のサブセットをアルファベット順に説明します。
<!ELEMENT beanLink (#PCDATA)>
アプリケーションクライアントによって参照されるEJBのJNDI名を指定します。参照されるEJBは、アプリケーションクライアントが展開されているサーバ以外のサーバに配置することができます。
beanLink用サーバホストの指定 クライアントJARを単独またはEAR内のいずれで展開する場合でも、マップするEJB参照に対してアプリケーションサーバホスト名を指定する方法には十分に注意する必要があります。これは、SilverJ2EEClientを呼び出す際に入力するホスト名は、展開計画のbeanLink要素に記述されているホスト名と「完全に一致」する必要があるためです。
ガイドライン たとえば、beanLinkのホスト名の部分にmyserverを指定する場合は、次のようになります。
<beanLink>sssw://myserver/RMI/sbOrderSummary</beanLink>
SilverJ2EEClientコマンド行でも、その名前を指定する必要があります。
SilverJ2EEClient myserver snuckerby appclient Sam
または、両方にサーバのIPアドレスを指定するか、両方にlocalhostを指定することができます(一般的にはlocalhostを使用しないことをお勧めします)。一方にサーバのポート番号(myserver:80など)を指定した場合は、両方ともポート番号を指定する必要があります。
トラブルシューティング 完全に一致しない場合は(一方でサーバのホスト名を指定し、他方でIPアドレスを指定した場合など)、クライアントがEJBにアクセスしようとすると、次のランタイムエラーが発生します。
java.rmi.RemoteException: リクエストに対する有効なセッションを取得できません。
EARの場合 ホスト名をEAR展開計画で指定するか、それともSilverCmd DeployEARコマンドラインで指定するかに関係なく、クライアントJARをEAR内に展開するよう決めた場合は、引き続きこの一致要件が適用されます。
<!ELEMENT clientDataSource (jdbcURL?, jdbcDriver?, jdbcUsername?,jdbcPassword?)>
アプリケーションクライアントによってアクセスされるjavax.sql.DataSourceへのアクセスを記述するコンテナ要素。クライアントはデータソースリソースに直接アクセスするので、クライアントには、アクセスする必要のあるデータソースに適したJDBCDドライバがインストールされている必要があります。これらの値は文字列として渡されます。jdbcURL、jdbcDriver、jdbcUsername、およびjdbcPasswordの正しい構文については、特定のデータソースのマニュアルを参照してください。
<!ELEMENT mailRefProperties (el+)>
JavaMail仕様に従って、タイプjavax.mail.Sessionのリソース参照を関連付けるための名前/値の組み合せのセットを指定します。
mail.host mail.from mail.user mail.store.protocol mail.transport.protocol mail.debug mail.[protocol].host (例: mail.http.host) mail.[protocol].user (例: mail.http.user)
<!ELEMENT name (#PCDATA)>
環境エントリ、リソース参照、またはEJB参照の名前を指定します。指定する名前は、展開記述子内にある同じタイプのエントリの名前と一致する必要があります(一致しない場合、展開の際に警告メッセージが表示されます)。
<!ELEMENT resourceEnvReference (name, resourceJNDIName)>
リソース環境参照名をJNDI名にマップします。展開記述子内で使用される各resource-env-refには、JNDI名を指定するために、展開計画で対応するresourceEnvReferenceが1つ必要です。name要素は、展開記述子内の対応するresource-env-ref-nameと同じである必要があります。
<!ELEMENT resourceJNDIName (#PCDATA)>
リソース参照用のJNDI名を指定します。javax.sql.DataSourceおよびjava.net.URLのリソース参照を除き、すべてのリソース参照にJNDI名が含まれている必要があります。
JNDI名は、アプリケーションクライアントが存在するサーバ以外のサーバに配置することができます。resourceJNDINameを検索するには、次の構文を使用します。
<resourceJNDIName>sssw://server:port
/RMI/JNDINameOfResource
</resourceJNDIName>
<!ELEMENT resourceReference(name,(clientDataSource|resourceURL|resourceJNDIName|mailRefProperties))>
<!ELEMENT resourceURL (#PCDATA)>
この節では、EJB JAR展開計画DTDに関する参照情報について説明します。
DTDファイル EJB JAR展開計画は、deploy-ejb_2_0.dtdです。
選択された要素 次に、EJB JAR展開計画DTDによって定義されている要素のサブセットをアルファベット順に説明します。
<!ELEMENT alternateColumn (#PCDATA)>
isolationLevelがTRANSACTION_READ_COMMITTEDの場合は、BLOBタイプのデータの処理を管理するために、SQLタイプBIGINTの代替カラムを指定します。
<!ELEMENT autoInc (autoIncSequenceName?, (schemaName?, autoIncTableName, columnName)?)>
自動増分がサポートされているデータベース(ほとんどのデータベース)の場合、空のautoInc要素はすべて自動増分がサポートされるカラムと見なされます。
自動増分をサポートしていないデータベースの場合は、schemaName要素、autoIncTableName要素、およびcolumnName要素を使用して固有の番号を生成できます。
<!ELEMENT beanJNDIName (#PCDATA)>
EJBのJNDI名を指定します。JNDI名は、コンテナによって、JNDIネームスペース内にBeanを登録するために使用されます。Beanをコールするすべてのコードは、最初にJNDI名を使用してBeanを検索する必要があります。JNDI名は、1つのサーバ内、およびクラス内の複数のサーバ内で一意である必要があります。Beanの命名のために、階層構造の使用を検討することをお勧めします。EJBが確実に一意になるように、階層内部に会社名(またはイニシャル)を含めることもできます。次に例を示します。
abccorp/samples/SalesDemo/Customers com/sssw/samples/BankDemo/SessionBeans/AddCustomer com/sssw/samples/BankDemo/EntityBeans/Customer
contextEnv.lookup(“RMI/abccorp/samples/SalesDemo/Customers"); contextEnv.lookup("RMI/com/sssw/samples/BankDemo/SessionBeans/ AddCustomer"); contextEnv.lookup("RMI/com/sssw/samples/BankDemo/EntityBeans/ Customer");
<!ELEMENT beanLink (#PCDATA)>
参照されるEJBのJNDI名を指定します。EJBは別のサーバに配置することができます。
次に、EJBのJNDI名を指定する場合の2つの例を示します。
<beanLink>SBBankATM</beanLink>
<beanLink>sssw://myServer:80/RMI/SBBankATM</beanLink>
別のサーバに存在するEJBへのリンクを指定する場合、参照されるBeanのリモートJARを参照元のサーバにコピーする必要があります。
<!ELEMENT classpathJars (excludeJ2EEXMLJars?, userlibJars?)>
この要素を使用すると、JARファイルのリストをサーバに展開せずにアプリケーションで使用することができます。また、この要素を使用することで、ユーザは、CTSテストを渡すために使用されるデフォルトXML JARを含めないようにすることもできます。
<!ELEMENT columnName (#PCDATA)>
cmp-field (永続的フィールド)をデータベースカラムにマップします。指定する名前は、JDBC DataMetaData.getColumns()が返すCOLUMN_NAMEプロパティと一致している必要があります。
<!ELEMENT delayInstantiation (#PCDATA)>
CMPエンティティBeanのインスタンスをただちに生成するか(FALSE - デフォルト)、それとも必要な場合にのみ生成するか(TRUE)を指定します。
この要素は、ファインダメソッドの実行時にサーバがデータを取得およびキャッシュする方法を決定します。インスタンスの生成が遅延されるBeanは、レイジーBeanと呼ばれます。
<!ELEMENT deployedObject (#PCDATA)>
アプリケーションサーバ上に作成するEJB展開されたオブジェクトの名前を指定します。これはオプションで、コマンドラインでも指定できます(SilverCmd DeployEJBを使用して展開する場合)。
この要素が指定されていない場合は、展開を行うと、ejbJarName要素の値にDeployedという単語が追加されて名前が生成されます。
<!ELEMENT destinationName (#PCDATA)>
キューまたはトピック名を指定します。次のように指定する必要があります。
corbaname:iiop:JMSServer:53,506lbqueue/queueName
<!ELEMENT mailRefProperties (el+)>
JavaMail仕様に従って、タイプjavax.mail.Sessionのリソース参照を関連付けるための名前/値の組み合せのセットを指定します。
mail.host mail.from mail.user mail.store.protocol mail.transport.protocol mail.debug mail.[protocol].host (例: mail.http.host) mail.[protocol].user (例: mail.http.user)
<!ELEMENT relationRole (beanName, cmrFieldName?, columnNames?)>
関係に参加する役割のソースの「Bean名」(展開記述子で指定されています)。これは、ejb-relationship-roleノードのrelationship-role-source要素と一致する必要があります。
役割の「CMRフィールド名」(展開記述子で指定されています)。これはcmr-field-nameに一致する必要があります(cmr-field-nameがない場合は、この要素も存在しません)。展開プログラムは、beanNameとcmrFieldNameを使用して関係を一致させます。
関係を管理するためにコンテナが使用する「カラム名のリスト」(ほとんどの場合は、1つの要素のみが含まれます)。通常は、外部キーです。多対多の関係では、これらはBeanのプライマリキーと対応する、リンクテーブル内の外部キーのカラム名です。
<!ELEMENT resourceEnvReference (name, resourceJNDIName)>
リソース環境参照名とJNDI名のマッピングを指定します。JNDI名を指定するために、展開記述子内の各resource-env-refには、展開計画で対応するresourceEnvReferenceが1つ必要です。name要素は、展開記述子内で対応するresource-env-ref-nameと同じである必要があります。
この節では、WAR展開計画DTDに関する参照情報について説明します。
DTDファイル WAR展開計画DTDは、deploy-war_2_3.dtdです。
選択した要素 次に、WAR展開計画DTDによって定義されている要素のサブセットをアルファベット順に説明します。
<!ELEMENT beanLink (#PCDATA)>
参照されるEJBへのリンクを指定します。EJBが同じJARにある場合は内部名、別のJARにある場合はJNDI名を指定できます。EJBは別のサーバに配置することができます。
<!ELEMENT classpathJars (excludeJ2EEXMLJars?, userlibJars?)>
この要素を使用すると、JARファイルのリストをサーバに展開せずにアプリケーションで使用することができます。また、この要素を使用することで、ユーザは、CTSテストを渡すために使用されるデフォルトXML JARを含めないようにすることもできます。
<!ELEMENT deployedObject (#PCDATA)>
アプリケーションサーバ上に作成する展開済みオブジェクトの名前を指定します。この要素が指定されていない場合は、展開を行うと、warJarName要素の値にDeployedという単語が追加されて名前が生成されます。
<!ELEMENT deployToFilesystem (#PCDATA)>
アプリケーションをアプリケーションサーバ上のファイルシステムに展開するかどうかを指定します。デフォルトはFALSE(ファイルシステムに展開しない)です。
<!ELEMENT excludedJSPs (el+)>
コンパイルしないJSPリソースのリスト(一般的には、他のJSPページに含めるJSPページは単独でコンパイルしないでください)。
<!ELEMENT mailRefProperties (el+)>
JavaMail仕様に従って、タイプjavax.mail.Sessionのリソース参照を関連付けるための名前/値の組み合せのセットを指定します。
mail.host mail.from mail.user mail.store.protocol mail.transport.protocol mail.debug mail.[protocol].host (例: mail.http.host) mail.[protocol].user (例: mail.http.user)
<!ELEMENT name (#PCDATA)>
環境エントリ、リソース参照、EJB参照、役割マッピング、またはコンテキストパラメータエントリの名前を指定します。指定する名前は、展開記述子内にある同じタイプのエントリの名前と一致する必要があります(一致しない場合、展開の際に警告メッセージが表示されます)。
<!ELEMENT resourceJNDIName (#PCDATA)>
リソース参照のJNDI名を指定します。javax.sql.DataSourceあるいはjava.net.URLのリソース参照を除き、すべてのリソース参照にJNDI名が含まれている必要があります。
JNDI名は、WARが含まれるサーバ以外のサーバに配置することができます。別のサーバにアクセスする場合には、次の構文を使用します。
<resourceJNDIName>sssw://server:port/RMI/JNDINameOfResource </resourceJNDIName>
<!ELEMENT resourceReference (name, (dataSource | resourceURL | resourceJNDIName | mailRefProperties))>
<!ELEMENT sessionTimeout (#PCDATA)>
セッションタイムアウトを分単位で指定します。次に、セッションタイムアウトの階層を優先度の高いものから低いものに順に示します。
この節では、RAR (Resource Adapter Archive)展開計画DTDに関する参照情報について説明します。
DTDファイル RAR展開計画DTDは、deploy-rar_1_0.dtdです。
選択された要素 次に、RAR展開計画DTDによって定義されている要素のサブセットをアルファベット順に説明します。
<!ELEMENT idleTimeout (#PCDATA)>
プール内にある未使用の接続がサーバによって破棄されるまでの時間を秒数で指定します。デフォルトは60秒です。指定する値は、接続プールに依存するアプリケーションのタイプによって異なります。より短いタイムアウトの時間を指定すると、サーバは頻繁に接続を作成しなければならない場合があります。接続の作成はコストの大きい操作です。ただし、指定するタイムアウトの時間が長すぎると、他のアプリケーションは接続が使用可能になるまで待機しなければならない場合があります。
<!ELEMENT isEnabled (#PCDATA)>
RARを有効にする(デフォルト)かどうかを指定します。展開済みのRARを無効にするには、このフラグをFALSEに設定してRARを再展開します。
<!ELEMENT name (#PCDATA)>
<!ELEMENT password (#PCDATA)>
プール内に作成されたデフォルト接続のパスワードを指定します。デフォルト接続は、ユーザがConnectionFactory.getConnection()を呼び出したときに作成されます。サーバが効率的に接続をプールできるため、これは接続を取得するために適した方法です。
<!ELEMENT poolName (#PCDATA)>
<!ELEMENT resourceAdapterName (#PCDATA)>
<!ELEMENT user (#PCDATA)>
プール内に作成されたデフォルト接続のユーザ名を指定します。デフォルト接続は、ユーザがConnectionFactory.getConnection()を呼び出したときに作成されます。サーバが効率的に接続をプールできるため、これは接続を取得するために適した方法です。
この節では、EAR展開計画DTDに関する参照情報について説明します。
DTDファイル EAR展開計画DTDは、deploy-ear_1_3.dtdです。
選択した要素 次に、要素のサブセットをアルファベット順に説明します。
<!ELEMENT alternateDeplDesc (#PCDATA)>
指定されたモジュールで使用するための展開記述子を識別します。この要素は、指定されたモジュールのアーカイブで展開記述子を使用しない場合に使用します。指定する代替展開記述子はEARに存在する必要があります。
<!ELEMENT classpathJars (excludeJ2EEXMLJars?, userlibJars?)>
この要素を使用すると、JARファイルのリストをサーバに展開せずにアプリケーションで使用することができます。また、この要素を使用することで、ユーザは、CTSテストを渡すために使用されるデフォルトXML JARを含めないようにすることもできます。
<!ELEMENT deployAs (#PCDATA)>
通常展開されるモジュールの名前を上書きします。デフォルトでは、EAR展開プロセスは、EAR名とモジュール名を組み合せた展開名を作成します。この名前が指定されている場合、EJBモジュールに対しては、リモートJARのベース名としても使用されます。注意して使用してください。
<!ELEMENT earJarName (#PCDATA)>
展開するEARの名前を指定します。これは、展開計画またはコマンドラインで指定できます(SilverCmd DeployEARを使用して展開する場合)。コマンドラインで指定された値が優先されます。フルパス(EARがディスク上にある場合)を指定するか、または名前のみを指定できます。名前のみを指定した場合にEARが現在のディレクトリにないときは、EARは、展開先の同じデータベースおよびサーバ内にすでに存在すると想定されます。
<!ELEMENT module (ejbJar | warJar | carJar)>
この要素に含まれる情報は、特定のモジュールの展開計画です。このセクションを完成させるには、アプリケーションクライアントJAR、EJB JAR、またはWARから展開計画を切り取って貼り付ける必要があります。
EJBの場合、Bean要素のbeanNameコンポーネントはEAR内で一意である必要があります。一意でない場合は、EARを展開する際にエラーが表示されます(Bean名は、EAR内部のBean参照を解決するために使用されるためです)。
<!ELEMENT name (#PCDATA)>
ユーザ名またはグループ名にマップされる必要のある役割参照の名前を指定します。指定する名前は、展開記述子内にある役割参照エントリの名前に一致する必要があります(一致していない場合、展開の際に警告メッセージが生成されます)。
<!ELEMENT order (#PCDATA)>
モジュールの展開の順序を識別します。数字が小さいほど、展開の優先度が高くなります。order要素が指定されていないモジュールは、順序が設定されているモジュールの後に展開されます。
<!ELEMENT roleMap (roleMapping+)>
セキュリティ役割は、個々のモジュール(EJB JAR、WARなど)内ではなく、EARレベルでマップすることをお勧めします。これによって、構成要素であるJ2EEモジュールのセキュリティ設定を結合および簡素化できます。
個々のモジュールの一部またはすべてとEARの両方に役割マップが含まていれる場合は、次のようになります。
役割マップが一意の場合、各モジュールに使用される役割マップは、EARレベルの役割マップとモジュールを結合したものになります。
1つまたは複数の役割マップが一意でない場合、重複した役割に対してはモジュールレベルの役割マップが優先され、一意な役割は役割マップに追加されます。
次に、役割が一意でない場合に役割マップを決定する方法の例を示します。EARレベルの役割マップに次の値が含まれているとします。
役割 |
役割がマップされるuserOrGroupName |
---|---|
EJBAdmin |
Zack |
User |
Mary |
また、EAR内のEJBモジュールには次の役割マップが含まれています。
役割 |
役割がマップされるuserOrGroupName |
---|---|
Admin |
Joe |
User |
Helen |
この場合、EJBに使用される役割マップは次のようになります。
役割 |
役割がマップされるuserOrGroupName |
---|---|
Admin |
Joe |
User |
Helen |
EJBAdmin |
Zack |
この場合、EJBモジュールのUser役割が優先されます。Admin役割は、EARの役割マップから継承されているため、EJBの役割マッピングに追加されます。
<!ELEMENT userOrGroupName (#PCDATA)>
セキュリティポリシードメイン内のプリンシパルの名前、または運用環境のユーザグループの名前を指定します。これは、展開記述子から役割参照名にマップされます。アプリケーションサーバでサポートされている任意のセキュリティドメインに役割参照をマップできます。
<!ELEMENT userlibJars (el+)>
アプリケーションに対して使用可能にする必要がある追加のJARファイルをすべてリストします。JARはサーバのuserlibディレクトリに存在する必要があります。値はJAR名のStringArrayで、userlibディレクトリに対して相対的です(userlibディレクトリに含まれています)。
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...