Thanks again Oscar. I did not realize it would retry the connection - I thought it was one try at startup and done. I verified the behavior by starting VPN much later after service startup and it connected.
On Saturday, February 8, 2020 at 3:43:44 PM UTC-6, Oscar Nalin wrote: > > I'm unsure what you mean with retry database availability. With default > connection pool values, the connection pool will keep trying to create > healthy connections to the database until it comes up again. I think this > is what you want. > > Best regards > Oscar Nalin > > Den fre 7 feb. 2020 22:02siraj <[email protected] <javascript:>> skrev: > >> Thanks Oscar --- such an elegant solution - I tried it and it worked as >> expected. >> >> Is there an option to retry DB availability - either automatically or >> through a Task etc? >> >> >> On Friday, February 7, 2020 at 2:41:42 PM UTC-6, Oscar Nalin wrote: >>> >>> You can configure your connection pool to ignore exceptions on creation. >>> There is a property called "ignoreExceptionOnPreLoad" which you can set to >>> "true". Then the application will start even though the database is >>> unavailable. >>> >>> Look under "Database" in the link below: >>> https://www.dropwizard.io/en/stable/manual/configuration.html >>> <https://www.dropwizard.io/en/stable/manual/configuration.html#Database> >>> >>> Best regards >>> Oscar Nalin >>> >>> Den fre 7 feb. 2020 21:22siraj <[email protected]> skrev: >>> >>>> In DW 2, I'm starting a secondary db that relies on a VPN connection. >>>> >>>> Currently if VPN is unavailable DW fails to start with DB exception. >>>> What's the best approach to ignore DB availability and continue startup >>>> and >>>> optionally, try later? >>>> >>>> My run method >>>> @Override >>>> public void run(final AppConfiguration configuration, final >>>> Environment environment) throws Exception { >>>> >>>> final Injector injector = Guice.createInjector(new >>>> ServiceModule()); >>>> >>>> final JdbiFactory jdbiFactory = new JdbiFactory(); >>>> jdbi = jdbiFactory.build(environment, >>>> configuration.getDataSourceFactory(), "sqlserver"); >>>> >>>> environment.jersey().register(injector.getInstance(JumpResource.class)); >>>> } >>>> >>>> >>>> Without VPN: >>>> ERROR [2020-02-07 18:35:48,409] org.apache.tomcat.jdbc.pool. >>>> ConnectionPool: Unable to create initial connections of pool. >>>> ! com.microsoft.sqlserver.jdbc.SQLServerException: The connection to >>>> the host DEVSQL2, named instance sqlserver16 failed. Error: >>>> "java.net.UnknownHostException: >>>> DEVSQL2". Verify the server and instance names and check that no >>>> firewall is blocking UDP traffic to port 1434. For SQL Server 2005 or >>>> later, verify that the SQL Server Browser Service is running on the >>>> host. >>>> ! at com.microsoft.sqlserver.jdbc.SQLServerException. >>>> makeFromDriverError(SQLServerException.java:234) >>>> ! at com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort( >>>> SQLServerConnection.java:5963) >>>> ! at com.microsoft.sqlserver.jdbc.SQLServerConnection. >>>> primaryPermissionCheck(SQLServerConnection.java:2383) >>>> ! at com.microsoft.sqlserver.jdbc.SQLServerConnection.login( >>>> SQLServerConnection.java:2126) >>>> ! at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal( >>>> SQLServerConnection.java:1993) >>>> ! at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect( >>>> SQLServerConnection.java:1164) >>>> ! at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect( >>>> SQLServerDriver.java:760) >>>> ! at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver( >>>> PooledConnection.java:319) >>>> ! at org.apache.tomcat.jdbc.pool.PooledConnection.connect( >>>> PooledConnection.java:212) >>>> ! at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection( >>>> ConnectionPool.java:744) >>>> ! at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection( >>>> ConnectionPool.java:676) >>>> ! at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool. >>>> java:483) >>>> ! at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool. >>>> java:154) >>>> ! at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool( >>>> DataSourceProxy.java:118) >>>> ! at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool( >>>> DataSourceProxy.java:107) >>>> ! at io.dropwizard.db.ManagedPooledDataSource.start( >>>> ManagedPooledDataSource.java:37) >>>> ! at io.dropwizard.lifecycle.JettyManaged.doStart(JettyManaged.java:27) >>>> ! at org.eclipse.jetty.util.component.AbstractLifeCycle.start( >>>> AbstractLifeCycle.java:72) >>>> ! at org.eclipse.jetty.util.component.ContainerLifeCycle.start( >>>> ContainerLifeCycle.java:169) >>>> ! at org.eclipse.jetty.server.Server.start(Server.java:407) >>>> ! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart( >>>> ContainerLifeCycle.java:117) >>>> ! at org.eclipse.jetty.server.handler.AbstractHandler.doStart( >>>> AbstractHandler.java:97) >>>> ! at org.eclipse.jetty.server.Server.doStart(Server.java:371) >>>> ! at org.eclipse.jetty.util.component.AbstractLifeCycle.start( >>>> AbstractLifeCycle.java:72) >>>> ! at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:53) >>>> ! at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java: >>>> 45) >>>> ! at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:87) >>>> ! at io.dropwizard.cli.Cli.run(Cli.java:79) >>>> ! at io.dropwizard.Application.run(Application.java:94) >>>> ! at com.barone.JumpApplication.main(JumpApplication.java:28) >>>> >>>> >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "dropwizard-user" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/dropwizard-user/a2b35316-b89c-4778-8ae6-545214b4c54a%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/dropwizard-user/a2b35316-b89c-4778-8ae6-545214b4c54a%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "dropwizard-user" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/dropwizard-user/d5f2560f-ab32-4d42-9b99-b20ba68cb5c2%40googlegroups.com >> >> <https://groups.google.com/d/msgid/dropwizard-user/d5f2560f-ab32-4d42-9b99-b20ba68cb5c2%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "dropwizard-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/dropwizard-user/0b6ab356-7442-4d70-a896-74d05ffa1a30%40googlegroups.com.
