6

現在、クライアントごとにコピーをデプロイするWebアプリケーションがあります。現在のデプロイメント戦略は、インスタンスごとに一意の名前のjdbc接続プールを作成することです。つまり、jdbc/clientと言います。このように指定されています...

< Context path="/"
        reloadable="true"
        docBase="\home\client\ROOT"
        debug="5" >
        < Resource name="jdbc/client"
                auth="Container"
                type="javax.sql.DataSource"
                maxActive="100"
                maxIdle="30"
                validationQuery="SELECT 1"
                testWhileIdle="true"
                timeBetweenEvictionRunsMillis="300000"
                numTestsPerEvictionRun="6"
                minEvictableIdleTimeMillis="1800000"
                maxWait="10000"
                username="user"
                password="pass"
                driverClassName="com.mysql.jdbc.Driver"
                url="jdbc:mysql://databaseserver:3306/client ?zeroDateTimeBehavior=convertToNull&amp;jdbcCompliantTruncation=false"/>
< /Context>

問題は、一意の名前の代わりに接続プールがデプロイされたすべてのインスタンスでjdbc / databaseと呼ばれるように標準化した場合、データベースが交差する可能性があるか、つまり、ある顧客が別の顧客のデータベースにあるか、またはこれらがローカライズされているかです。特定のデプロイされたインスタンス?

考え?ありがとう、スコット

4

4 に答える 4

5

いいえ。データソース名のスコープは1つのTomcatインスタンスです。

顧客ごとに個別のTomcatプロセスを開始する場合、重要なのはデータソースの構成方法であり、Tomcatが呼び出すものではありません。各データソースが異なるデータベースを使用するように構成されている限り、クロストークは発生しません。

于 2009-08-27T15:38:47.410 に答える
3

これは、各クライアントにアプリケーションをどのようにデプロイするかによって異なります。

  1. 各クライアントが独自のTomcatインストールを取得する場合(それらは異なるCATALINA_HOMEを持っています)、それが交差する可能性はありません。
  2. それらがすべて同じインストールを使用しているが、Tomcatで異なるホストとして実行されている場合は、すべてのホストで共有されるconf/context.xmlでデータソースを定義しないようにする必要があります。
  3. すべてのクライアントが同じTomcatインスタンスを共有し、それらが単に異なるWebアプリである場合は、さらに注意が必要です。META-INF/context.xmlまたはWEB-INF/web.xmlのいずれかでデータソースを定義する必要があります。さらに分離するには、dbcp.jarを各アプリケーションのWEB-INF / libにコピーして、アプリケーションが独自のDBCPインスタンスを使用するようにする必要があります。
于 2009-08-28T05:48:03.797 に答える
1

DataSourceアプリケーションのデプロイメント用にコンテキスト内でJNDIリソースを定義している場合、同じアプリケーションの複数のコピーを同じTomcatインスタンスで実行し、同じJNDI名を使用して異なるデータベースにアクセスすることもできると思います。各アプリケーションインスタンスがTomcatの異なるインスタンスで完全に実行されている場合、あるインスタンスが別のインスタンスに指定されたデータベースを参照する方法は確かにありません。

于 2009-08-27T16:07:16.867 に答える
0

データソース名のスコープが1つのTomcatインスタンスであり、単一のtomcatインスタンスに複数のデータソースを含めることができるため、データベースが交差する可能性はありません。データソースが異なる限り、データベースが交差する可能性はありません。 ....。

于 2009-09-02T21:23:43.983 に答える