[improve](jdbc catalog) Add more detailed exception logging to the jdbc catalog (#22930)

This commit is contained in:
zy-kkk
2023-08-21 17:18:24 +08:00
committed by GitHub
parent dcd51c304a
commit c1fb137d17
3 changed files with 15 additions and 1 deletions

View File

@ -130,6 +130,7 @@ public class JdbcExternalCatalog extends ExternalCatalog {
@Override
protected void initLocalObjectsImpl() {
JdbcClientConfig jdbcClientConfig = new JdbcClientConfig()
.setCatalog(this.name)
.setUser(getJdbcUser())
.setPassword(getJdbcPasswd())
.setJdbcUrl(getJdbcUrl())

View File

@ -52,6 +52,7 @@ public abstract class JdbcClient {
private static final int HTTP_TIMEOUT_MS = 10000;
protected static final int JDBC_DATETIME_SCALE = 6;
private String catalog;
protected String dbType;
protected String jdbcUser;
protected URLClassLoader classLoader = null;
@ -93,6 +94,7 @@ public abstract class JdbcClient {
}
protected JdbcClient(JdbcClientConfig jdbcClientConfig) {
this.catalog = jdbcClientConfig.getCatalog();
this.jdbcUser = jdbcClientConfig.getUser();
this.isOnlySpecifiedDatabase = Boolean.parseBoolean(jdbcClientConfig.getOnlySpecifiedDatabase());
this.isLowerCaseTableNames = Boolean.parseBoolean(jdbcClientConfig.getIsLowerCaseTableNames());
@ -160,7 +162,8 @@ public abstract class JdbcClient {
try {
conn = dataSource.getConnection();
} catch (Exception e) {
throw new JdbcClientException("Can not connect to jdbc", e);
throw new JdbcClientException("Can not connect to jdbc due to error: %s, catalog name: %s", e.getMessage(),
this.catalog, e);
}
return conn;
}

View File

@ -21,6 +21,7 @@ package org.apache.doris.datasource.jdbc.client;
import java.util.Map;
public class JdbcClientConfig {
private String catalog;
private String user;
private String password;
private String jdbcUrl;
@ -31,6 +32,15 @@ public class JdbcClientConfig {
private Map<String, Boolean> includeDatabaseMap;
private Map<String, Boolean> excludeDatabaseMap;
public String getCatalog() {
return catalog;
}
public JdbcClientConfig setCatalog(String catalog) {
this.catalog = catalog;
return this;
}
public String getUser() {
return user;
}