I am trying to set up a Postgres JNDI globally shared connection is running 
running several DSpace webapps.

I have been largely assisted by the official documentation here [0] and 
here [1] as well as DSpace documentation here [2] and discussion on a user 
mailing list for DSpace here [3].

I am running:

CentOS Linux release 7.8.2003
Tomcat 9.0.12
PostgreSQL 9.5.23
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)


   1.  I downloaded postgresql-42.2.18.jar from 
   https://jdbc.postgresql.org/download/postgresql-42.2.18.jar and placed 
   it in /home/lib/dspace/apache-tomcat-9.0.12/lib
   2. In /home/lib/dspace/apache-tomcat-9.0.12/conf/server.xml I added the 
   following Resource
   
   <Resource name="jdbc/dspaceWeb"
                 factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
                 type="javax.sql.DataSource"             
                 auth="Container"
                 username="*****"
                 password="******"
                 driverClassName="org.postgresql.Driver"
                 url="jdbc:postgresql://localhost:5432/dspace"
                 initialSize="5"
                 maxTotal="50"
                 maxIdle="15"
                 minIdle="5" />
   
   There are a couple of issues that confuse me:
   a) the official documentation about JNDI datasource examples [0] says "*This 
   author has not had success here, although others have reported so. 
   Clarification would be appreciated here."  *in the section about 
   Postgres. In other words, we can't be sure this works?
   b) in the official documtation about JDBC connection pool it says that 
   if you want to define a JDBC connection pool in the Apache Container (which 
   I understand to be trying to do) you have to specify the factory attribute 
   and set the value to org.apache.tomcat.jdbc.pool.DataSourceFactory [1]
   
   This is not done in the example (that the author hasn't had success 
   with?) in a)
   3. Created a context.xml in /dspace/webapps/xmlui/META-INF/
   
   <Context docBase="/dspace/webapps/xmlui">
       <ResourceLink name="jdbc/dspace"
                     global="jdbc/dspaceWeb"
                     type="javax.sql.DataSource"
       />
   </Context>


When I start up Tomcat howere. I get this in the log:

INFO [org.springframework.jndi.JndiObjectFactoryBean] JNDI lookup failed - 
returning specified default object instead: 
javax.naming.NameNotFoundException: Name [jdbc/dspace] is not bound in this 
Context. Unable to find [jdbc].

My understanding is that the webapp, DSpace, tried to look for a JNDI 
object in the namespace "jdbc/dspace" and barring that, falls back to 
instantiating it's own DataSource as a bean. See [4]

But I don't understand why the above doesn't work.

Thanks for your time

Sources:
[0] : 
https://tomcat.apache.org/tomcat-9.0-doc/jndi-datasource-examples-howto.html#PostgreSQL
[1] : 
https://tomcat.apache.org/tomcat-9.0-doc/jdbc-pool.html#Inside_the_Apache_Tomcat_Container
[2] :  
https://wiki.lyrasis.org/display/DSDOC6x/Installing+DSpace#InstallingDSpace-Externaldatabaseconnectionpool
[3] : 
http://dspace.2283337.n4.nabble.com/Notes-on-PostgreSQL-connection-pooling-with-a-Tomcat-JNDI-resource-td4687149.html
[4]: 
https://github.com/DSpace/DSpace/blob/dspace-6_x/dspace/config/spring/api/core-hibernate.xml

-- 
All messages to this mailing list should adhere to the DuraSpace Code of 
Conduct: https://duraspace.org/about/policies/code-of-conduct/
--- 
You received this message because you are subscribed to the Google Groups 
"DSpace Technical Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dspace-tech+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dspace-tech/738f0710-f9a9-41ce-bb42-974bddff1a06n%40googlegroups.com.

Reply via email to