Sollten Sie Datenbankverbindungseigenschaften in server.xml oder context.xml einrichten?

Ich versuche, die Datenbankverbindungseigenschaften mit JNDI für eine Spring-Webanwendung einzurichten.

Ich betrachte zwei Ansätze wie folgt:

Ansatz 1:

In Ihrer Spring-Konfiguration haben Sie möglicherweise Folgendes:

<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/facs"/>

Dann sollten Sie in Ihrer webapp /META-INF/context.xml-Datei auch etwas Ähnliches haben:

<?xml version='1.0' encoding='utf-8'?>

<!-- antiResourceLocking="true" -->
<Context path="/podd-apn"
         reloadable="true"
         cachingAllowed="false"
         antiResourceLocking="true"
         >

  <Resource name="jdbc/facs"              
            type="javax.sql.DataSource" username="${database.username}" password="${database.password}"
            driverClassName="org.postgresql.Driver" 
            url="${database.url}"
            maxActive="8" maxIdle="4"
            global="jdbc/facs" 
            />


</Context>

Und in deiner web.xml solltest du etwas wie:

<!-- JNDI -->
  <resource-ref>
    <description>FACs Datasource</description>
    <res-ref-name>jdbc/facs</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref> 


Ansatz 2:

Richten Sie im Spring-Kontext wie folgt ein:

<jee:jndi-lookup id="dbDataSource"
   jndi-name="jdbc/DatabaseName"
   expected-type="javax.sql.DataSource" />

Sie können die JNDI-Ressource in Tomcats server.xml folgendermaßen deklarieren:

<GlobalNamingResources>
  <Resource name="jdbc/DatabaseName" auth="Container" type="javax.sql.DataSource"
              username="dbUsername" password="dbPasswd"
              url="jdbc:postgresql://localhost/dbname"
              driverClassName="org.postgresql.Driver"
              initialSize="5" maxWait="5000"
              maxActive="120" maxIdle="5"
              validationQuery="select 1"
              poolPreparedStatements="true"/>
</GlobalNamingResources/>

Verweisen Sie wie folgt auf die JNDI-Ressource aus Tomcats web context.xml:

<ResourceLink name="jdbc/DatabaseName"
   global="jdbc/DatabaseName"
   type="javax.sql.DataSource"/>


Meine Frage ist, wo ist der beste Ort, um Datenbankeigenschaften zu behalten? Sollen sie hineingelegt werden?server.xml odercontext.xml?

Auch wenn ich 2 Datenbanken habe, sollte ich zwei Configs verwenden?

Ist es außerdem empfehlenswert, sie direkt in server.xml oder context.xml zu platzieren? Oder muss ich über die Tomcat Manager-GUI-Konsole konfigurieren?

Vielen Dank!

Antworten auf die Frage(5)

Ihre Antwort auf die Frage