/** * Get JDBC Url for JDBC source, usually it's from the <C>AdaptorConfig</C> passed to constructor. * @return The JDBC Url. */ public String getJdbcUrl() { return dataSource.getUrl(); }
@Override public String getCurrentDBUrl() { DataSource ds = this.jt.getDataSource(); if (ds == null) { return StringUtils.EMPTY; } BasicDataSource bds = (BasicDataSource)ds; return bds.getUrl(); }
@Override public String getHealth() { for (int i = 0; i < isHealthList.size(); i++) { if (!isHealthList.get(i)) { if (i == masterIndex) { /** * 主库不健康 */ return "DOWN:" + getIpFromUrl(dataSourceList.get(i).getUrl()); } else { /** * 从库不健康 */ return "WARN:" + getIpFromUrl(dataSourceList.get(i).getUrl()); } } } return "UP"; }
@Override public void run() { defaultLog.info("check db health."); String sql = "SELECT * FROM config_info_beta WHERE id = 1"; for (int i = 0; i < testJTList.size(); i++) { JdbcTemplate jdbcTemplate = testJTList.get(i); try { jdbcTemplate.query(sql, CONFIG_INFO4BETA_ROW_MAPPER); isHealthList.set(i, Boolean.TRUE); } catch (DataAccessException e) { if (i == masterIndex) { fatalLog.error("[db-error] master db {} down.", getIpFromUrl(dataSourceList.get(i).getUrl())); } else { fatalLog.error("[db-error] slave db {} down.", getIpFromUrl(dataSourceList.get(i).getUrl())); } isHealthList.set(i, Boolean.FALSE); MetricsMonitor.getDbException().increment(); } } } }
@Override public void run() { defaultLog.info("check master db."); boolean isFound = false; int index = -1; for (BasicDataSource ds : dataSourceList) { index++; testMasterJT.setDataSource(ds); testMasterJT.setQueryTimeout(queryTimeout); try { testMasterJT .update("DELETE FROM config_info WHERE data_id='com.alibaba.nacos.testMasterDB'"); if (jt.getDataSource() != ds) { fatalLog.warn("[master-db] {}", ds.getUrl()); } jt.setDataSource(ds); tm.setDataSource(ds); isFound = true; masterIndex = index; break; } catch (DataAccessException e) { // read only e.printStackTrace(); // TODO remove } } if (!isFound) { fatalLog.error("[master-db] master db not found."); MetricsMonitor.getDbException().increment(); } } }
/** * Get JDBC Url for JDBC source, usually it's from the <C>AdaptorConfig</C> passed to constructor. * @return The JDBC Url. */ public String getJdbcUrl() { return dataSource.getUrl(); }
@Override public String getUrl() { return ds.getUrl(); }
@Override public synchronized String getUrl() { return delegate.getUrl(); }
public synchronized String getJdbcUrl() { return super.getUrl(); }
public String getJdbcUrl() { final ReentrantLock l = lock; l.lock(); try { return super.getUrl(); } finally { l.unlock(); } }
@Override public DataSourceInfo getInfo(Object resource) throws Exception { DataSourceInfo dataSourceInfo = null; if (canMap(resource)) { BasicDataSource source = (BasicDataSource) resource; dataSourceInfo = new DataSourceInfo(); dataSourceInfo.setBusyConnections(source.getNumActive()); dataSourceInfo.setEstablishedConnections(source.getNumIdle() + source.getNumActive()); dataSourceInfo.setMaxConnections(source.getMaxActive()); dataSourceInfo.setJdbcUrl(source.getUrl()); dataSourceInfo.setUsername(source.getUsername()); dataSourceInfo.setResettable(false); dataSourceInfo.setType("commons-dbcp"); } return dataSourceInfo; }
/** * Get the JDBC connection {@link #url} property. * * @return the {@link #url} passed to the JDBC driver to establish connections. */ @Managed public synchronized String getUrl() { return super.getUrl(); }
@Override public String getCurrentDBUrl() { DataSource ds = this.jt.getDataSource(); if (ds == null) { return StringUtils.EMPTY; } BasicDataSource bds = (BasicDataSource)ds; return bds.getUrl(); }
@Override public String getHealth() { for (int i = 0; i < isHealthList.size(); i++) { if (!isHealthList.get(i)) { if (i == masterIndex) { /** * 主库不健康 */ return "DOWN:" + getIpFromUrl(dataSourceList.get(i).getUrl()); } else { /** * 从库不健康 */ return "WARN:" + getIpFromUrl(dataSourceList.get(i).getUrl()); } } } return "UP"; }
@ManagedAttribute @Description("The connection URL to be passed to our JDBC driver to establish a connection.") public String getUrl() { return ds.getUrl(); }
public void configure(BasicDataSource dataSource) { String url = dataSource.getUrl(); url = toAbsolutePath(url); dataSource.setUrl(url); }
/** * Obtains the default database connection. * The conneciton comes from the data source which is configured through ch.epfl.gsn.xml file. * @return * @throws SQLException */ public Connection getConnection() throws SQLException { logger.debug("Asking a con. to DB: "+pool.getUrl()+" => busy: "+pool.getNumActive()+", max-size: "+pool.getMaxActive()+", idle: "+pool.getNumIdle()); return pool.getConnection(); }
/** * {@inheritDoc} */ @Override public String toString() { return dataSource.getUsername() + "@" + dataSource.getUrl() + ", numIdle=" + dataSource.getNumIdle() + ", numActive=" + dataSource.getNumActive() + ", maxActive=" + dataSource.getMaxActive(); }
/** * {@inheritDoc} */ @Override public String toString() { return dataSource.getUsername() + "@" + dataSource.getUrl() + ", numIdle=" + dataSource.getNumIdle() + ", numActive=" + dataSource.getNumActive() + ", maxActive=" + dataSource.getMaxActive(); }
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void afterPropertiesSet() { ParameterCheck.mandatory("baseDataSource", baseDataSource); ParameterCheck.mandatory("tenantDataSources", tenantDataSources); String dbUrl = baseDataSource.getUrl(); setTargetDataSources((Map)tenantDataSources); try { // default tenant DataSource defaultTargetDataSource = new TenantBasicDataSource(baseDataSource, dbUrl, -1); tenantDataSources.put(TenantService.DEFAULT_DOMAIN, defaultTargetDataSource); setDefaultTargetDataSource(defaultTargetDataSource); } catch (SQLException se) { throw new RuntimeException(se); } super.afterPropertiesSet(); }