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.