It's the DataSource (a thing that can manage + manufacture connections) 
that gets assigned at startup; and the DataSource is the place to implement 
logic to revalidate or create a connection.  You could implement your own 
DataSource to wrap an existing DataSource or to wrap a bare JDBC driver.  
Although DIY will not be as good as HikariCP.

On Friday, February 2, 2018 at 12:47:07 PM UTC-5, Alexander Page wrote:
> Hey Steve,
> Thanks for the response. Given my situation, the amount of third party 
> software I can use is limited or would need approval. So I am hesitant to 
> go down that road.
> Do you now whether or not database connections can be assigned at any 
> point other than during startup when the run() method is called?
> On Thursday, February 1, 2018 at 2:06:10 PM UTC-6, Steve Kradel wrote:
>> Generally, the best bet is to adopt a pooling/validating datasource like 
>> HikariCP.  Not familiar with FCF but it sounds like a vendor-specific 
>> feature that might be supported by the JDBC driver.
>> Managed objects are for startup and cleanup tied to the lifecycle of the 
>> Dropwizard application, not a great fit for a connection pool that can heal 
>> itself without a restart.
>> On Thursday, February 1, 2018 at 2:09:15 PM UTC-5, Alexander Page wrote:
>>> Hey,
>>> *GOAL:* I am trying to allow my microservice to be able to establish a 
>>> new datasource if the current datasource becomes invalid (in the case the 
>>> db fails).
>>> *Option 1:*
>>> The database that my dropwizard microservice is connected supports 
>>> Fast-Connection-Failover (FCF). Currently, I am supporting FCF using JDBC 
>>> in my main app. From what I have read, I do not believe that JDBI has that 
>>> functionality to interface with Oracle Notification Service.  Does anyone 
>>> know if it is possible through JDBI? And can point me to some resources.
>>> *Option 2:*
>>> My other option was to auto reconnect to the datasource upon failure. To 
>>> do this, I thought I would re-establish a datasource connection dynamically 
>>> assuming the datasource has the same configuration as the original.
>>> For example, I was thinking of prior to calling my SQL Query to run a 
>>> validateDatasource() type method that would run a validation query against 
>>> the current datasource connection. If it was successful then all is fine 
>>> and dandy, if not, I would try to build a new DBI until successful.
>>> But I am not sure if it is possible to reassign the datasource outside 
>>> of the dropwizard-app's run() method.
>>> *Option 3:*
>>> I read the documentation about Managed Objects (
>>> I 
>>> was wondering if it would make sense to have my datasource as a manage 
>>> object that I could have a restart method attached to and run that at any 
>>> point. 
>>> Any help or information that'll point me in the right direction is much 
>>> appreciated,
>>> Alexander

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 
For more options, visit

Reply via email to