WebLogic Server アプリケーションの開発
|
|
以下の節では、開発ビルド スクリプトに含めることができる WebLogic Ant タスクを使用して、WebLogic Server インスタンスの起動と停止、および WebLogic Server ドメインのコンフィグレーションを行う方法について説明します。
WebLogic Server には、開発環境で一般的なコンフィグレーション タスクを実行するのに役立つ Ant タスクが 2 つあります。コンフィグレーション タスクでは、WebLogic Server インスタンスの起動と停止、WebLogic Server ドメインの作成とコンフィグレーションを行うことができます。
他の WebLogic Ant タスクと組み合わせると、カスタム ドメインでアプリケーションの実証やテストを行うための強力なビルド スクリプトを作成できます。たとえば、単一の Ant ビルド スクリプトでは、以下のことを実行できます。
wlcompile、wlappc、および Web サービス Ant タスクを使用して、アプリケーションをコンパイルする。wlserver Ant タスクを使用して、新しい単一サーバ ドメインを作成し、管理サーバを起動する。wlconfig Ant タスクを使用して、必要なアプリケーション リソースを備えた新しいドメインをコンフィグレーションする。wldeploy Ant タスクを使用して、アプリケーションをデプロイする。以下の節では、コンフィグレーション用 Ant タスクの wlserver および wlconfig の使い方について説明します。
wlserver Ant タスクを使用すると、WebLogic Server インスタンスを起動、再起動、および停止したり、WebLogic Server インスタンスへ接続したりできます。サーバ インスタンスは、コンフィグレーション済みの WebLogic Server ドメインにすでに存在している場合もあります。または、generateconfig=true 属性を使用して、開発用の新しい単一サーバ ドメインを作成することができます。
Ant スクリプトで wlserver タスクを使用する場合、指定したサーバが使用可能になり接続をリスンするまで、タスクは制御を返しません。wlserver を使用してサーバ インスタンスを起動すると、サーバ プロセスは Ant VM の終了後に自動的に終了します。wlserver タスクを使用して、現在動作中のサーバにのみ接続する場合、サーバ プロセスは Ant の完了後も実行し続けます。
wlserver WebLogic Server Ant タスクは、標準 java Ant タスク (org.apache.tools.ant.taskdefs.Java) を拡張します。つまり、java Ant タスクのすべての属性も wlserver Ant タスクに適用されます。たとえば、output 属性と error 属性を使用すると、wlserver Ant タスクの出力が書き込まれるファイルと標準エラーが書き込まれるファイルの名前を指定できます。標準 java Ant タスクの属性の詳細については、Apache Ant サイトの「Java」を参照してください。
wlserver Ant タスクを使用するには、次の手順に従います。
Windows NT では、WL_HOME\server\bin ディレクトリにある setWLSEnv.cmd コマンドを実行します。WL_HOME は、インストールされている WebLogic Server の最上位ディレクトリです。
UNIX では、WL_HOME/server/bin ディレクトリにある setWLSEnv.sh コマンドを実行します。WL_HOME は、インストールされている WebLogic Server の最上位ディレクトリです。
注意 : wlserver タスクは、WebLogic Server に付属しているバージョンの Ant であらかじめ定義されています。独自にインストールした Ant でこのタスクを使用する場合は、ビルド ファイルに次のタスク定義を追加します。
<taskdef name="wlserver" classname="weblogic.ant.taskdefs.management.WLServer"/>
wlserver タスクの呼び出しを追加します。wlserver の属性とデフォルトの動作については、「wlserver Ant タスク リファレンス」を参照してください。prompt> ant
以下に、すべてのデフォルト値を使用してカレント ディレクトリ内のサーバを起動する、最小限の wlserver ターゲットを示します。
<target name="wlserver-default">
<wlserver/>
</target>
次のターゲットは、指定された接続パラメータ、およびユーザ名とパスワードの組み合わせを使用して、既存の動作中サーバに接続します。
<target name="connect-server">
<wlserver host="127.0.0.1" port="7001" username="weblogic" password="weblogic" action="connect"/>
</target>
次のターゲットは、config サブディレクトリにコンフィグレーションされた WebLogic Server インスタンスを起動します。
<target name="start-server">
<wlserver dir="./config" host="127.0.0.1" port="7001" action="start"/>
</target>
次のターゲットは、空のディレクトリに新しい単一サーバ ドメインを作成し、ドメインのサーバ インスタンスを起動します。
<target name="new-server">
<delete dir="./tmp"/>
<mkdir dir="./tmp"/>
<wlserver dir="./tmp" host="127.0.0.1" port="7001"
generateConfig="true" username="weblogic" password="weblogic" action="start"/>
</target>
次の表では、wlserver Ant タスクの属性について説明します。
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
以下の節では、wlconfig Ant タスクを使用して WebLogic Server ドメインをコンフィグレーションする方法について説明します。
wlconfig Ant タスクを使用すると、動作中の管理サーバ インスタンス上で MBean の作成、クエリ、変更を行うことで、WebLogic Server ドメインをコンフィグレーションできます。特に、wlconfig では以下のことを実行できます。
警告 : wlconfig Ant タスクは、互換性 MBean サーバの MBean に対してのみ機能します。この Ant タスクは WebLogic Server 9.0 以降では非推奨になりました。
警告 : wlconfig Ant タスクでは、非推奨になった BEA 独自の API (weblogic.management.MBeanHome) を使用して WebLogic MBean にアクセスします。この動作は、WebLogic Server バージョン 8.1 から変更されていません。MBean の検索には、標準の JMX インタフェース (javax.management.MBeanServerConnection) は使用されません。
警告 : つまり、wlconfig を使用してアクセスできる MBean は、『WebLogic Server MBean リファレンス』に非推奨になった MBean としてリストされている MBean のみということになります。
注意 : wlconfig タスクは、WebLogic Server に付属しているバージョンの Ant であらかじめ定義されています。独自にインストールした Ant でこのタスクを使用する場合は、ビルド ファイルに次のタスク定義を追加します。
<taskdef name="wlconfig" classname="weblogic.ant.taskdefs.management.WLConfig"/>
<target name="doconfig">
<wlconfig url="t3://localhost:7001" username="weblogic"
password="weblogic">
</target>
以下の節では、wlconfig Ant タスクを使用するためのサンプル Ant ビルド スクリプトを示します。
この例では、wlserver を使用して新しいドメインを作成し、wlconfig を使用してさまざまなドメイン コンフィグレーション タスクを実行する、単一の build.xml ファイルを示します。コンフィグレーション タスクでは、Avitek Medical Records サンプル アプリケーションで必要なドメイン リソースを設定します。
<target name="medrec.config">
<mkdir dir="config"/>
<wlserver username="a" password="a" servername="MedRecServer"
domainname="medrec" dir="config" host="localhost" port="7000"
generateconfig="true"/>
次に、新しく作成したサーバにアクセスすることで、wlconfig タスクを開始します。
<wlconfig url="t3://localhost:7000" username="a" password="a">
wlconfig タスクの内部で、query 要素はサーバ MBean オブジェクト名を取得するクエリを実行し、この MBean を ${medrecserver} Ant プロパティに格納します。
<query domain="medrec" type="Server" name="MedRecServer"
property="medrecserver"/>
create 要素を使用してドメインに新しい JDBC 接続プールを作成し、オブジェクト名を ${medrecpool} Ant プロパティに格納します。create 操作内にネストされた set 要素は、新しく作成した MBean の属性を設定します。上記のクエリで設定された ${medrecserver} Ant プロパティを使用して、新しいプールをサーバに割り当てます。
<create type="JDBCConnectionPool" name="MedRecPool"
property="medrecpool">
<set attribute="CapacityIncrement" value="1"/>
<set attribute="DriverName"
value="com.pointbase.jdbc.jdbcUniversalDriver"/>
<set attribute="InitialCapacity" value="1"/>
<set attribute="MaxCapacity" value="10"/>
<set attribute="Password" value="MedRec"/>
<set attribute="Properties" value="user=MedRec"/>
<set attribute="RefreshMinutes" value="0"/>
<set attribute="ShrinkPeriodMinutes" value="15"/>
<set attribute="ShrinkingEnabled" value="true"/>
<set attribute="TestConnectionsOnRelease" value="false"/>
<set attribute="TestConnectionsOnReserve" value="false"/>
<set attribute="URL"
value="jdbc:pointbase:server://localhost/demo"/>
<set attribute="Targets" value="${medrecserver}"/>
</create>
次に、上記で作成された JDBC 接続プールを使用して JDBC TX DataSource を作成します。
<create type="JDBCTxDataSource" name="Medical Records Tx DataSource">
<set attribute="JNDIName" value="MedRecTxDataSource"/>
<set attribute="PoolName" value="MedRecPool"/>
<set attribute="Targets" value="${medrecserver}"/>
</create>
ネストされた set 要素を使用して新しい JMS 接続ファクトリを作成します。
<create type="JMSConnectionFactory" name="Queue">
<set attribute="JNDIName" value="jms/QueueConnectionFactory"/>
<set attribute="XAServerEnabled" value="true"/>
<set attribute="Targets" value="${medrecserver}"/>
</create>
MedRecPool を使用して新しい JMS JDBC ストアを作成します。
<create type="JMSJDBCStore" name="MedRecJDBCStore"
property="medrecjdbcstore">
<set attribute="ConnectionPool" value="${medrecpool}"/>
<set attribute="PrefixName" value="MedRec"/>
</create>
新しい JMS サーバを作成する際に、ネストされた create 要素を使用して、JMS サーバの子である JMS キューを作成します。
<create type="JMSServer" name="MedRecJMSServer">
<set attribute="Store" value="${medrecjdbcstore}"/>
<set attribute="Targets" value="${medrecserver}"/>
<create type="JMSQueue" name="Registration Queue">
<set attribute="JNDIName" value="jms/REGISTRATION_MDB_QUEUE"/>
</create>
</create>
<create type="MailSession" name="Medical Records Mail Session">
<set attribute="JNDIName" value="mail/MedRecMailSession"/>
<set attribute="Properties"
value="mail.user=joe;mail.host=mail.mycompany.com"/>
<set attribute="Targets" value="${medrecserver}"/>
</create>
<create type="StartupClass" name="StartBrowser">
<set attribute="Arguments" value="port=${listenport}"/>
<set attribute="ClassName"
value="com.bea.medrec.startup.StartBrowser"/>
<set attribute="FailureIsFatal" value="false"/>
<set attribute="Notes" value="Automatically starts a browser on server boot."/>
<set attribute="Targets" value="${medrecserver}"/>
</create>
最後に、WebServer MBean を取得し、ネストされた set 要素を使用してログ ファイル名を設定します。
<query domain="medrec" type="WebServer" name="MedRecServer">
<set attribute="LogFileName" value="logs/access.log"/>
</query>
</wlconfig>
</target>
query 要素の内部にネストされる場合、その query 要素では MBean 名を指定する必要はありません。
<target name="queryDelete">
<wlconfig url="${adminurl}" username="${user}" password="${pass}"
failonerror="false">
<query query="${wlsdomain}:Name=MyNewServer2,*"
property="deleteQuery">
<delete/>
</query>
</wlconfig>
</target>
set 要素では、1 つの属性値を Ant プロパティに格納されている複数のオブジェクト名に設定できます。たとえば、次のターゲットは、2 つのサーバのオブジェクト名を異なる Ant プロパティに格納し、その後、それらのプロパティを使用して両方のサーバを新しい JDBC 接続プールの Targets 属性に割り当てます。
<target name="multipleJDBCTargets">
<wlconfig url="${adminurl}" username="${user}" password="${pass}">
<query domain="mydomain" type="Server" name="MyServer"
property="myserver"/>
<query domain="mydomain" type="Server" name="OtherServer"
property="otherserver"/>
<create type="JDBCConnectionPool" name="sqlpool" property="sqlpool">
<set attribute="CapacityIncrement" value="1"/>
[.....]
<set attribute="Targets" value="${myserver};${otherserver}"/>
</create>
</wlconfig>
</target>
以下の節では、wlconfig で使用可能な属性と要素について説明します。
次の表では、wlconfig Ant タスクの主な属性について説明します。
|
|
|||
|
|
|||
|
|
|||
|
|
wlconfig には、コンフィグレーション オプションを指定するためにネストできる要素もあります。
create 要素は、WebLogic Server ドメインで新しい MBean を作成します。wlconfig タスクには create 要素をいくつでも指定できます。
create 要素には、ネストされた set 要素をいくつでも指定できます。この要素では、新しく作成される MBean の属性を設定します。create 要素にはネストされた create 要素を追加することもできます。この要素は子 MBean を作成します。
|
|
delete 要素は、WebLogic Server ドメインから既存の MBean を削除します。delete 要素には属性が 1 つあります。
set 要素は、指定された MBean、新しく作成された MBean、またはクエリの一部として取得された MBean に対して、MBean 属性を設定します。set 要素は、wlconfig タスクの直接の子として、または create 要素や query 要素の内部にネストして指定することができます。
|
|
|||
|
|
|||
|
|
get 要素は、WebLogic Server ドメインの MBean から属性値を取得します。wlconfig タスクには get 要素をいくつでも指定できます。
query 要素は検索パターンに一致する MBean を見つけます。
query 要素では、以下のネストされた子要素を使用できます。
set - 結果セット内のすべての MBean に対して set 操作を実行します。get - 結果セット内のすべての MBean に対して get 操作を実行します。create - 結果セット内の各 MBean が、新しい MBean の親として使用されます。delete - 結果セット内のすべての MBean に対して delete 操作を実行します。invoke - 結果セット内で一致する MBean をすべて呼び出します。wlconfig タスクには、ネストされた query 要素をいくつでも指定できます。
|
|
invoke 要素は、1 つまたは複数の MBean の管理操作を呼び出します。WebLogic Server MBean の場合、通常このコマンドを使用して、ほとんどの WebLogic Server MBean が備えている getAttribute と setAttribute 以外の操作を呼び出します。
|
|
|