リンクする環境を含む変数の値に基づいてJNDIリソースを選択することはどうしてですか?環境に基づいてJNDIを選択する方法
たとえば、私のドメインには、DEV、QA、STAGEという3つの環境があります。これらの環境のそれぞれに存在するEcommReportingというデータベースがあります。これに対応するために、私のTomcatサーバーのserver.xml
ファイルには、DEV_EcommReporting
、QA_EcommReporting
およびSTAGE_EcommReporting
のエントリがあります。
質問は、私のコードがちょうどEcommReporting
という名前のJNDIリソースを要求することができ、環境名を提供し、これらの2つの詳細に基づいて正しいリソースが返されるということですか?ここで
は今、私は春使用してデータソースBeanを定義しています:
<ResourceLink name="jdbc/EcommReporting"
global="jdbc/QA_EcommReporting"
auth="Container"
type="javax.sql.DataSource" />
:(のみQAバージョンを示す)私のTomcatサーバーののcontext.xmlに続いて
<bean id="EcommReportingDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/EcommReporting"/>
</bean>
を、私はこれを持っています最後に、私のTomcatサーバーのserver.xmlで、JNDIリソースを次のように定義しました。
<Resource name="jdbc/QA_EcommReporting"
global="jdbc/QA_EcommReporting"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://URLHERE.COM:3311/REPORTING"
username="username_here"
password="password_here"
maxActive="100"
maxIdle="20"
minIdle="5"
maxWait="10000"/>
ads
でサーバを起動した場合3つのTomcatインスタンスがあり、異なるJVMの3つのインスタンスで使用されているデータソースにアクセスできるようにしたいのですが、それは必要なのでしょうか? –