ODK Aggregate Setup Error

We are setting up our Aggregate server on Tomcat for field testing and eventual fielding and have run into an error. Help much appreciated deciphering the error, as the team here is stuck!

The tech specs are:
v8.5.24 Tomcat
Microsoft SQL Server 2016
Java version 8
ODK Aggregate 1.4.15

Everything appeared successful in following the Tomcat Install directions, but when we clicked on ODKAggregate in Tomcat, the message received was:

FAIL - Application at context path [/ODKAggregate] could not be started

We have tried simply redoing from start (to no avail). We also tried searching through previous iterations of this error message, but it wasn't clear what the issue was in our case (at least to my less technical self...).

Hopefully the logs tomcat8-stderr.2018-01-14.txt (95.9 KB)
and screenshots:

If anyone can point us to a solution that would be much appreciated! Thank you!

Aggregate is having problem connecting to the database. JDBC stands for Java Database Connectivity.

Caused by: org.opendatakit.common.persistence.exception.ODKDatastoreException: org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (This driver is not configured for integrated authentication. ClientConnectionId:913806f3-a612-4e26-8f21-75eda73f9795)

Can you connect to the database using the same credentials you gave aggregate during setup? Also did the database script generated during the installer setup process get run?

1 Like

Thanks for this insight and helping us along!

To answer your questions, yes, we can connect to the database with the user for setting up ODK aggregate.

When the database script was run, there was a problem. We had to modify the part of GRANT SELECT, VIEW DEFINITION, CREATE TABLE ON OBJECT::[odk_prod] TO [itsector\odk_prod] to GRANT SELECT, VIEW DEFINITION, CREATE TABLE TO [itsector\odk_prod]

Hopefully this provides some insight into the underlying problem/what went wrong. Any help on how to fix/what to try next much appreciated.

Thank you!

Best,
Caroline

Hello Elmps2018 when i've this kind of problem I've directely puted the WAR file in the tomcat bin repository

C:\apache-tomcat-9.0.0.M26-windows-x64\apache-tomcat-9.0.0.M26\webapps

After I've restarted tomcat it works fine.

Youc can even here how this Sir fixed his problem.
Thanks

1 Like

Unfortunately, I am not as familiar with MS SQL Server as Mitch Sundt (@Mitch_S) who has since retired.

Maybe @linl33 or @Jeff_Beorse who have worked with the MS SQL Server more than I have will know.

If not, we may need to setup a call to do some more information gathering in a short amount of time on the state of the machine to try to resolve the issue.

1 Like

Not sure this is going to be super helpful, because like @W_Brunette, I'm unfamiliar with the MS SQL Server option. I took a quick look at the docs, and they say...

For Microsoft SQL Server or Azure SQL Server, you should configure these with UTF-8 character sets and to use Windows authentication. When using Windows authentication, the user under which the webserver executes must be granted permissions to access the SQL Server instance. The install wizard for ODK Aggregate will produce a Readme.html file that contains additional information on how to complete the configuration of the database and webserver service.

Just to make sure we are operating from the same assumptions, did you deviate from the above instructions or the instructions in the readme that was genreated?

1 Like

Dear Yaw and Waylon,

Thanks for following up on this and the suggestions! The only deviation I am aware of is the modification of the database script mentioned previously in terms of the location(?) of the object.

I think what we will try next is just doing the same setup with MySQL instead, since the directions for that seem more detailed. We will try that this morning and let you know how it goes, fingers crossed. If we're still having problems we can then at least try to set up a call (thanks for the offer!!) with a more familiar server.

Hi Caroline,

I agree with @W_Brunette that Sync Endpoint is having trouble establishing connection with the SQL Server. The exception in the log file

java.lang.UnsatisfiedLinkError: no sqljdbc_auth in java.library.path

shows that you haven't installed the files necessary for establishing a JDBC connection to a SQL Server using Windows Integrated Authentication. You can download an installer for the missing files here. After downloading the installer, you will need to run the installer on the server that you plan to run Sync Endpoint, not the server hosting the SQL Server instance.

The exceptions from the Microsoft JDBC driver are not always accurate so the problem might be unrelated to missing files. You should also make sure that your SQL Server credentials are entered correctly and in the right format. If it's possible could you post your jdbc.properties (located in $CATALINA_HOME/webapps/ODKAggregate/WEB-INF/lib/odk-settings-latest.jar)?

Best,
Li

2 Likes

Dear Li,

Thanks for the additional suggestion! This morning we tried MySQL, which sort of worked (the documentation wasn't quite accurate, I filed a ticket: https://github.com/opendatakit/opendatakit/issues/1366
)

MySQL worked in the sense that we got a blank aggregate set up just fine. However, when we reset the app server to put up our tables, the three largest wouldn't go. They have less than the max number of columns, but maybe are still too large? If anyone knows any settings to change in MySQL that might address this, that would be great.

We will also try @linl33 suggestion--thanks for identifying the missing files. Is this something else that should be in the documentation (or did we just miss it somewhere?). We may loop back to Microsoft SQL to try these if we can't get MySQL to fit our giant survey. And there's always PostgreSQL still to try!

Thank you thank you thank you for all the help.

1 Like

The Sync Endpoint logs from your new setup could help us better diagnose what's the problem with the the larger tables.

There are instruction on installing those files on our instructions but maybe they are not very clear.

Best,
Li

1 Like

Dear Li,

Thanks for the follow up! So to clarify, we are installing Aggregate, not Sync Endpoint--so no Sync Endpoint logs...

The problem with MySQL was definitely the table size, since it took our smaller tables fine and not our larger ones. Although that's noted in the documentation as a potential issue with very large forms/stopping at 4000 columns, we did not expect it to be a problem with our tables, which are much less than that, but it rejected one that was merely 171 variables.

We do have the JDBC driver installed, as it turns out, so that error may (as you note) be something else. We are going to try PostgreSQL tomorrow morning, but if that doesn't work, we will loop back to Microsoft SQL and look into the jdbc.properties.

Thanks again for all the help and suggestions, hopefully one will eventually fully take!

2 Likes

Hi Caroline,

If I recall correctly PostgreSQL doesn't have the same size restrictions that MySQL does. I don't have much experience with MySQL but 171 does seem a bit low for those issues; that's strange. I have hosted pretty large tables in PostreSQL without issue. If I remember correctly I had a Scan form that had 60 variables, which Scan would have converted to 180 or so columns. Hopefully that treats you better.

Regards,
Jeff

1 Like

Dear All,

I do believe we have succeeded! PostgreSQL worked (and fit our giant tables...). We have tested a few syncs even, all so far so good.

Thank you thank you thank you for all the help and suggestions. Very much appreciated!

Best,
Caroline

1 Like

Hey ODKers,

I have an almost similar problem. Due the the growing size of ODK forms I am transitioning to Postgres (I wonder why its so hard to setup in Centos/Redhat Linux). I have setup Aggregate but there is one little problem. See tomcat log below;

WARNING: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hierarchicalRoleRelationships' defined in ServletContext resource [/WEB-INF/applicationContext-security.xml]: Invocation of init method failed; nested exception is org.opendatakit.common.persistence.exception.ODKDatastoreException: org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
May 16, 2019 7:43:57 PM org.springframework.scheduling.concurrent.ExecutorConfigurationSupport shutdown
INFO: Shutting down ExecutorService 'task_scheduler'
May 16, 2019 7:43:57 PM org.springframework.web.context.ContextLoader initWebApplicationContext
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hierarchicalRoleRelationships' defined in ServletContext resource [/WEB-INF/applicationContext-security.xml]: Invocation of init method failed; nested exception is org.opendatakit.common.persistence.exception.ODKDatastoreException: org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1583)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:754)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4770)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5236)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1377)
at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:694)
at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:218)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:348)
at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:52)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.opendatakit.common.persistence.exception.ODKDatastoreException: org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
at org.opendatakit.common.persistence.engine.pgres.DatastoreImpl.assertRelation(DatastoreImpl.java:500)
at org.opendatakit.common.security.spring.GrantedAuthorityHierarchyTable.assertRelation(GrantedAuthorityHierarchyTable.java:72)
at org.opendatakit.common.security.spring.GrantedAuthorityHierarchyTable.getEntireGrantedAuthorityHierarchy(GrantedAuthorityHierarchyTable.java:141)
at org.opendatakit.common.security.spring.RoleHierarchyImpl.buildRolesReachableInOneStepMap(RoleHierarchyImpl.java:461)
at org.opendatakit.common.security.spring.RoleHierarchyImpl.refreshReachableGrantedAuthorities(RoleHierarchyImpl.java:281)
at org.opendatakit.common.security.spring.RoleHierarchyImpl.afterPropertiesSet(RoleHierarchyImpl.java:137)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1642)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1579)
... 50 more
Caused by: org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:252)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)
at org.opendatakit.common.persistence.engine.pgres.DatastoreImpl.assertRelation(DatastoreImpl.java:356)
... 57 more
Caused by: java.sql.SQLException: Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2294)
at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2039)
at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1533)
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:211)
... 59 more
Caused by: java.sql.SQLException: validationQuery didn't return a row
at org.apache.commons.dbcp2.PoolableConnection.validate(PoolableConnection.java:303)
at org.apache.commons.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:357)
at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2307)
at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2290)
... 62 more

May 16, 2019 7:43:57 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hierarchicalRoleRelationships' defined in ServletContext resource [/WEB-INF/applicationContext-security.xml]: Invocation of init method failed; nested exception is org.opendatakit.common.persistence.exception.ODKDatastoreException: org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1583)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:754)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4770)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5236)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1377)
at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:694)
at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:218)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:348)
at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:52)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.opendatakit.common.persistence.exception.ODKDatastoreException: org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
at org.opendatakit.common.persistence.engine.pgres.DatastoreImpl.assertRelation(DatastoreImpl.java:500)
at org.opendatakit.common.security.spring.GrantedAuthorityHierarchyTable.assertRelation(GrantedAuthorityHierarchyTable.java:72)
at org.opendatakit.common.security.spring.GrantedAuthorityHierarchyTable.getEntireGrantedAuthorityHierarchy(GrantedAuthorityHierarchyTable.java:141)
at org.opendatakit.common.security.spring.RoleHierarchyImpl.buildRolesReachableInOneStepMap(RoleHierarchyImpl.java:461)
at org.opendatakit.common.security.spring.RoleHierarchyImpl.refreshReachableGrantedAuthorities(RoleHierarchyImpl.java:281)
at org.opendatakit.common.security.spring.RoleHierarchyImpl.afterPropertiesSet(RoleHierarchyImpl.java:137)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1642)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1579)
... 50 more
Caused by: org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:252)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)
at org.opendatakit.common.persistence.engine.pgres.DatastoreImpl.assertRelation(DatastoreImpl.java:356)
... 57 more
Caused by: java.sql.SQLException: Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2294)
at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2039)
at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1533)
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:211)
... 59 more
Caused by: java.sql.SQLException: validationQuery didn't return a row
at org.apache.commons.dbcp2.PoolableConnection.validate(PoolableConnection.java:303)
at org.apache.commons.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:357)
at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2307)
at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2290)
... 62 more

16-May-2019 19:43:57.842 SEVERE [https-jsse-nio-8446-exec-3] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
16-May-2019 19:43:57.864 SEVERE [https-jsse-nio-8446-exec-3] org.apache.catalina.core.StandardContext.startInternal Context [/ODKAggregate] startup failed due to previous errors
May 16, 2019 7:43:57 PM org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
16-May-2019 19:43:57.903 WARNING [https-jsse-nio-8446-exec-3] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ODKAggregate] registered the JDBC driver [org.postgresql.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

Please let me know what may not be working right.

Paul Macharia

A post was split to a new topic: Connecting SQL JDBC