Tomcat - Compartilhar JNDI para várias aplicações

Pessoal, tenho várias aplicações no tomcat que acessam o mesmo banco de dados do postgres. Gostaria de saber como fazer uma configuração única ao invés de ter que colocar várias vezes a configuração de dentro de de cada aplicação. Gostaria de configurar em um único lugar que todas as aplicações tivessem visibilidade. Alguma dica?

Olá Boa tarde!

Prezado eu utilizo o Container para o envio de e-mail, da mesma forma pode ser para o banco, isto esta descrito no help do tomcat

ApplicationContext.xml

    <jee:jndi-lookup id="mailSession" jndi-name="mail/Session" />

    <!-- Configurar e-mail --> 
    <bean id="mailSender"
       class="org.springframework.mail.javamail.JavaMailSenderImpl">
       <property name="session" ref="mailSession" />
    </bean> 

web.xml

<resource-ref>
  <description>
    Recurso referente a uma fabrica para javax.mail.Session, instancia que 
    pode ser utilizada para envio de e-mail preconfigurado em um servidor SMTP.
  </description>
  <res-ref-name>
    mail/Session
  </res-ref-name>
  <res-type>
    javax.mail.Session
  </res-type>
  <res-auth>
    Container
  </res-auth>
</resource-ref>

E agora o principal no server.xml

<!-- Global JNDI resources  
      Documentation at /docs/jndi-resources-howto.html  -->
  <GlobalNamingResources>
  <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users    -->
    <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>

    <!-- JavaMail JNDI Mail Session --> 
    <Resource name="mail/Session"     
       auth="Container" 
       description="Global E-Mail Resource" 
       type="javax.mail.Session"
       mail.user="?????@??????.com"
       mail.password="??????" 
       mail.debug="true"
       mail.smtp.auth="true"
       mail.smtp.host="smtp.??????.com" 
       mail.smtp.port="587" 
       mail.smtp.starttls.enable="false" 
       mail.smtp.user="usuario@??????.com" 
       mail.transport.protocol="smtp" 
       password="???????" 
       username="usuario@?????.com"/>            
                  
  </GlobalNamingResources>

Para o caso do banco vc faz o mesmo veja este link

http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html

<Resource name="jdbc/postgres" auth="Container"
          type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
          url="jdbc:postgresql://localhost:5432/meubanco"
          username="myuser" password="mypasswd" maxActive="20" maxIdle="10" maxWait="-1"/>

o que me deixava confuso ( e ainda deixa ) é que no projeto temos um context.xml no container também temos
a documentação do tomcat explica que existem duas formas
Compartilhada ou seja para toda e qualquer aplicação
Aplicação especifica
no caso da primeira ela não menciona o arquivo ( eu coloquei no server.xlm para enviar os e-mail´s e ta dando certo )
mais sempre faça a configuração do web.xml como descrito

Acabei colocando no context.xml mesmo e funcionou. O problema é que agora fica dando esse abaixo. Pesquisei no google e a maioria dos lugares fala que é problema de conexão que fica aberta, porém se eu mudar de volta para o server.xml o erro não acontece. Se fosse conexão aberta o erro deveria ocorrer em ambas as situações. Muito estranho…

org.postgresql.util.PSQLException: FATAL: sorry, too many clients already

Pessoal, acabei vendo que a opção menos ruim seria colocar o arquivo context.xml em conf/catalina/localhost, porém isso impossibilidade um redeploy sem reiniciar o servidor inteiro. Alguém utiliza o tomcat sem que seja apenas para desenvolvimento local?