DB 연결정보 변환

This commit is contained in:
eactive
2025-09-09 10:45:48 +09:00
parent a171ca2e51
commit 0be27b6cc5
3 changed files with 30 additions and 34 deletions
+4 -1
View File
@@ -80,7 +80,10 @@ dependencies {
implementation group: 'org.apache.velocity', name: 'velocity-engine-core', version: '2.3'
runtimeOnly group: 'com.mysql', name: 'mysql-connector-j', version: '8.4.0'
// runtimeOnly group: 'com.mysql', name: 'mysql-connector-j', version: '8.4.0'
// oracle 드라이버 의존성 추가
runtimeOnly 'com.oracle.database.jdbc:ojdbc8:19.20.0.0'
implementation 'net.bytebuddy:byte-buddy:1.14.5'
@@ -33,21 +33,21 @@ public class PortalConfigGatewayDatasource {
dataSource.setMaxPoolSize(10);
dataSource.setMaxIdleTime(60); // seconds
dataSource.setBorrowConnectionTimeout(30); // seconds
dataSource.setTestQuery("SELECT 1");
dataSource.setTestQuery("SELECT 1 FROM DUAL");
dataSource.setMaintenanceInterval(60);
dataSource.setXaDataSourceClassName("com.mysql.cj.jdbc.MysqlXADataSource");
dataSource.setXaDataSourceClassName("oracle.jdbc.xa.client.OracleXADataSource");
Properties xaProperties = new Properties();
xaProperties.setProperty("serverName", gatewayDataSourceProperties.getServerName());
xaProperties.setProperty("portNumber", String.valueOf(gatewayDataSourceProperties.getPortNumber()));
xaProperties.setProperty("databaseName", gatewayDataSourceProperties.getDatabaseName());
String url = String.format("jdbc:oracle:thin:@//%s:%d/%s",
gatewayDataSourceProperties.getServerName(), // HOST
gatewayDataSourceProperties.getPortNumber(), // PORT
gatewayDataSourceProperties.getDatabaseName()); // SERVICE_NAME 또는 SID
// SID를 사용하는 경우: "jdbc:oracle:thin:@host:port:SID"
xaProperties.setProperty("URL", url);
xaProperties.setProperty("user", gatewayDataSourceProperties.getUsername());
xaProperties.setProperty("password", gatewayDataSourceProperties.getPassword());
xaProperties.setProperty("useSSL", "false");
xaProperties.setProperty("autoReconnect", "true");
xaProperties.setProperty("failOverReadOnly", "false");
xaProperties.setProperty("maxReconnects", "3");
xaProperties.setProperty("allowPublicKeyRetrieval", "true");
dataSource.setXaProperties(xaProperties);
return dataSource;
}
@@ -58,7 +58,7 @@ public class PortalConfigGatewayDatasource {
@Qualifier("gatewayDataSource") DataSource dataSource) {
HashMap<String, Object> properties = new HashMap<>();
//public interface AvailableSettings extends org.hibernate.jpa.AvailableSettings 참고
properties.put("hibernate.dialect", "org.hibernate.dialect.MySQL8Dialect");
properties.put("hibernate.dialect", "org.hibernate.dialect.Oracle12cDialect");
properties.put("hibernate.connection.handling_mode", "DELAYED_ACQUISITION_AND_RELEASE_AFTER_TRANSACTION");
properties.put("hibernate.transaction.jta.platform", "org.hibernate.engine.transaction.jta.platform.internal.AtomikosJtaPlatform");
properties.put("hibernate.physical_naming_strategy", "com.eactive.apim.portal.common.entity.CustomPhysicalNamingStrategy");
@@ -62,13 +62,6 @@ public class PortalConfigPortalDatasource {
@Primary
@Bean
public DataSource portalDataSource() {
log.warn("Datasource - portal configuration");
log.warn("serverName : {}", emsDatasourceProperties.getServerName());
log.warn("PortNumber : {}", String.valueOf(emsDatasourceProperties.getPortNumber()));
log.warn("DatabaseName : {}", emsDatasourceProperties.getDatabaseName());
log.warn("Username : {}", emsDatasourceProperties.getUsername());
log.warn("Password : {}", emsDatasourceProperties.getPassword());
AtomikosDataSourceBean dataSource = new AtomikosDataSourceBean();
dataSource.setBeanName("portalDataSource");
dataSource.setUniqueResourceName("portalDataSource");
@@ -76,20 +69,20 @@ public class PortalConfigPortalDatasource {
dataSource.setMaxPoolSize(10);
dataSource.setMaxIdleTime(60); // seconds
dataSource.setBorrowConnectionTimeout(30); // seconds
dataSource.setTestQuery("SELECT 1");
dataSource.setTestQuery("SELECT 1 FROM DUAL");
dataSource.setMaintenanceInterval(60);
dataSource.setXaDataSourceClassName("com.mysql.cj.jdbc.MysqlXADataSource");
dataSource.setXaDataSourceClassName("oracle.jdbc.xa.client.OracleXADataSource");
Properties xaProperties = new Properties();
xaProperties.setProperty("serverName", emsDatasourceProperties.getServerName());
xaProperties.setProperty("portNumber", String.valueOf(emsDatasourceProperties.getPortNumber()));
xaProperties.setProperty("databaseName", emsDatasourceProperties.getDatabaseName());
String url = String.format("jdbc:oracle:thin:@//%s:%d/%s",
emsDatasourceProperties.getServerName(), // HOST
emsDatasourceProperties.getPortNumber(), // PORT
emsDatasourceProperties.getDatabaseName()); // SERVICE_NAME 또는 SID
// SID를 사용하는 경우: "jdbc:oracle:thin:@host:port:SID"
xaProperties.setProperty("URL", url);
xaProperties.setProperty("user", emsDatasourceProperties.getUsername());
xaProperties.setProperty("password", emsDatasourceProperties.getPassword());
xaProperties.setProperty("useSSL", "false");
xaProperties.setProperty("autoReconnect", "true");
xaProperties.setProperty("failOverReadOnly", "false");
xaProperties.setProperty("maxReconnects", "3");
xaProperties.setProperty("allowPublicKeyRetrieval", "true");
dataSource.setXaProperties(xaProperties);
return dataSource;
@@ -107,7 +100,7 @@ public class PortalConfigPortalDatasource {
properties.put("hibernate.connection.autocommit", "false");
properties.put("hibernate.connection.handling_mode", "DELAYED_ACQUISITION_AND_RELEASE_AFTER_TRANSACTION");
properties.put("hibernate.connection.provider_disables_autocommit", "true");
properties.put("hibernate.dialect", "org.hibernate.dialect.MySQL8Dialect");
properties.put("hibernate.dialect", "org.hibernate.dialect.Oracle12cDialect");
properties.put("hibernate.format_sql", "true");
properties.put("hibernate.physical_naming_strategy", "com.eactive.apim.portal.common.entity.CustomPhysicalNamingStrategy");
properties.put("hibernate.show_sql", "true");
@@ -120,7 +113,7 @@ public class PortalConfigPortalDatasource {
// Envers properties org.hibernate.envers.configuration.EnversSettings 참고
properties.put("org.hibernate.envers.audit_strategy", "org.hibernate.envers.strategy.internal.ValidityAuditStrategy");
properties.put("org.hibernate.envers.audit_table_suffix", "_AUD");
properties.put("org.hibernate.envers.default_catalog", "audit");
properties.put("org.hibernate.envers.default_schema", "audit");
properties.put("org.hibernate.envers.global_with_modified_flag", "true");
properties.put("org.hibernate.envers.revision_field_name", "REVISION");
properties.put("org.hibernate.envers.revision_type_field_name", "REVISION_TYPE");