2012-03-12 8 views
1

EARを同じGlassfishserver(別の仮想サーバー)に2回展開します。ただし、アプリケーションでは、アプリケーション内で<jta-data-source>タグが設定されたDatabaseconnectionが使用されます。問題は、両方のインスタンスが異なるデータベースを使用する必要があることです。 <jta-data-source> - 展開のタグを設定する方法はありますか?彼らは同じポートで聞くことができないので、Glassfish3:同じ耳、別のデータベース

異なるドメインは、それが動作しない場合

は、その後、私は、正しいポートをマッピングするためにGlassfishの目の前にはApacheを使用しなければならない...、機能しません。 ..

+0

これが可能です。 (asadmin、IDE/Ant、...) –

+0

私はWebインターフェイス(ポート4848)を使用しています。詳細には、仮想サーバーごとのJDBCを変更する方法が必要です。しかし、私はそれを行う方法を見つけていません... – Knox

+0

JDBCリソースはドメイン全体であるため、これはうまくいかないと思います。デプロイメントの前にpersistence.xmlを変更する機会がありますか? –

答えて

2

アプリケーションスコープのリソースを使用する必要があります。 glassfish-resources.xml記述子を耳のMETA-INFに追加するだけです。それは次のようになります。

<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd"> 
<resources> 
    <jdbc-connection-pool name="java:app/my-app-pool" 
          res-type="javax.sql.DataSource" 
          datasource-classname="org.apache.derby.jdbc.ClientDataSource" 
          pool-resize-quantity="1" 
          max-pool-size="5" 
          steady-pool-size="0" 
          statement-timeout-in-seconds="60" > 
     <property name="serverName" value="localhost" /> 
     <property name="portNumber" value="1527" /> 
     <property name="dataBaseName" value="sun-appserv-samples" /> 
     <property name="User" value="APP" /> 
     <property name="Password" value="APP" /> 
     <property name="connectionAttributes" value=";create=true" /> 
     <property name="driverType" value="4" /> 
    </jdbc-connection-pool> 
    <jdbc-resource jndi-name="java:app/jdbc/my-app" pool-name="java:app/my-app-pool"/> 
</resources> 

のGlassFishにあなたの耳を展開した後は、構成内のアプリケーションを見つけることができます。すべてのパラメータを変更できるタブ「リソース」があります。 これで、必要な数のアプリケーションをデプロイすることができ、それらのすべてが異なるパラメータを持つ可能性があります。

「アプリケーションスコープ付きリソースの保護」アプリケーションを再デプロイするオプションがあります。このオプションは、管理UIまたはコマンドラインから利用できます。

redeploy --name myapp --properties preserveAppScopedResources=true myapp.ear 
関連する問題