OpenMRS Deployment can't create runtime properties

Hi,

I’ve been trying to deploy OpenMRS Platform 2.2.0 (WAR for enterprise), and the tomcat8-stdout. log file contains the error listed below.

I have installed MySQL 5.6.45, and Tomcat 8.5.47. The Tomcat is running under Local Service Account. Please note that I had previously installed the reference app couple of weeks ago without any problem; but I used XAMMP. During this install, I noticed it created OpnnMRS folder in the myuser\AppData folder. This time around, I’m trying to keep the install simple by downloading MySQL and Tomcat independently; but there’s nothing in the AppData folder. As a result, OpenMRS Initial setups is not working. So, I might be missing some steps.

Any help would be very helpful

Thanks Ahsan

WARN - OpenmrsUtil.getRuntimePropertiesFilePathName(2080) |2019-11-09 22:00:14,703| Unable to find a runtime properties file at C:\Program Files\Apache Software Foundation\Tomcat 8.5\openmrs-runtime.properties WARN - OpenmrsUtil.getRuntimePropertiesFilePathName(2080) |2019-11-09 22:00:14,736| Unable to find a runtime properties file at C:\Program Files\Apache Software Foundation\Tomcat 8.5\openmrs-runtime.properties INFO - Listener.contextInitialized(173) |2019-11-09 22:00:14,738| Using runtime properties file: C:\windows\ServiceProfiles\LocalService\Application Data\OpenMRS\openmrs-runtime.properties ERROR - MarkerIgnoringBase.error(161) |2019-11-09 22:00:19,315| Failed to obtain JDBC connection java.lang.RuntimeException: Error occurred while trying to get the updates needed for the database. Unable to get a connection to the database. Please check your openmrs runtime properties file and make sure you have the correct connection.username and connection.password set at org.openmrs.util.DatabaseUpdater.getUnrunDatabaseChanges(DatabaseUpdater.java:630) at org.openmrs.util.DatabaseUpdater.getUnrunDatabaseChanges(DatabaseUpdater.java:587) at org.openmrs.util.DatabaseUpdater.updatesRequired(DatabaseUpdater.java:252) at org.openmrs.web.Listener.setupNeeded(Listener.java:217) at org.openmrs.web.Listener.contextInitialized(Listener.java:179) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4699) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5165) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:970) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492) at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1634) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown Source) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source) at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1557) at org.apache.catalina.manager.HTMLManagerServlet.upload(HTMLManagerServlet.java:289) at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:207) at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 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:645) 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:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) 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:810) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.Exception: Unable to get a connection to the database. Please check your openmrs runtime properties file and make sure you have the correct connection.username and connection.password set at org.openmrs.util.DatabaseUpdater.getLiquibase(DatabaseUpdater.java:361) at org.openmrs.util.DatabaseUpdater.getUnrunDatabaseChanges(DatabaseUpdater.java:615) … 55 more Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) at com.mysql.jdbc.Util.getInstance(Util.java:408) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861) at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2094) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2019) at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:776) at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at org.openmrs.util.DatabaseUpdater.getConnection(DatabaseUpdater.java:423) at org.openmrs.util.DatabaseUpdater.getLiquibase(DatabaseUpdater.java:358) … 56 more Caused by: java.sql.SQLException: Access denied for user ‘openmrs_user’@‘localhost’ (using password: YES) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:873) at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1710) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226) at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2188) at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2035) … 70 more WARN - OpenmrsUtil.getRuntimePropertiesFilePathName(2080) |2019-11-09 22:00:19,693| Unable to find a runtime properties file at C:\Program Files\Apache Software Foundation\Tomcat 8.5\openmrs-runtime.properties

@ahsanalam can you please paste your logs in pastebin ??

Have you made sure your mysql instance is running ?? or else have you put in the right credentials that youve set in your mysql ??

MySQL is running. I’m following the instruction located here https://wiki.openmrs.org/display/docs/Installing+OpenMRS.

Do I need to setup Tomcat with MySQL admin user/password?

Thanks Ahsan

Yes and you should create the database and point out to that db during the installation :slightly_smiling_face:

Currently we dont have an init replica which get access to root level in order to create a user and a db during the installation process in our deployment setup

Then perhaps, the instructions here (https://wiki.openmrs.org/display/docs/Installing+OpenMRS) need to get updated to reflect the requirement For Tomcat. Can you tell me where to add the MySQL user info in Tomcat?

I figured the solution for the issue I was having. Tomcat installation by default installs Manager App; but not the Host Manager App. When I install Host Manager App, OpenMRS gets deployed and Application data folder gets created.

This allows me to launch initial setup. I don’t have to pre-create any database and provide access.

Thanks Ahsan