You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by "adamsaghy (via GitHub)" <gi...@apache.org> on 2023/04/13 15:03:38 UTC

[GitHub] [fineract] adamsaghy commented on a diff in pull request #3120: FINERACT-1913-Initializing-db-connection-pool-at-startup

adamsaghy commented on code in PR #3120:
URL: https://github.com/apache/fineract/pull/3120#discussion_r1165671279


##########
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/service/database/TomcatJdbcDataSourcePerTenantService.java:
##########
@@ -73,4 +83,29 @@ public DataSource retrieveDataSource() {
 
         return actualDataSource;
     }
+
+    @Override
+    public void onApplicationEvent(ContextRefreshedEvent event) {
+        final List<FineractPlatformTenant> allTenants = tenantDetailsService.findAllTenants();
+        for (final FineractPlatformTenant tenant : allTenants) {
+            initializeDataSourceConnection(tenant);
+        }
+    }
+
+    private void initializeDataSourceConnection(FineractPlatformTenant tenant) {
+        log.debug("Initializing database connection for {}", tenant.getName());
+        final FineractPlatformTenantConnection tenantConnection = tenant.getConnection();
+        if (!TENANT_TO_DATA_SOURCE_MAP.containsKey(tenantConnection.getConnectionId())) {
+            DataSource tenantSpecificDataSource = dataSourcePerTenantServiceFactory.createNewDataSourceFor(tenantConnection);
+            try (Connection connection = tenantSpecificDataSource.getConnection()) {
+                String url = connection.getMetaData().getURL();
+                log.debug("Established database connection with URL {}", url);
+            } catch (SQLException e) {
+                log.error("Error while initializing database connection for {}", tenant.getName(), e.getMessage());

Review Comment:
   Do we need to catch it? 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org