DB 연결정보 변환
This commit is contained in:
+4
-1
@@ -80,7 +80,10 @@ dependencies {
|
|||||||
|
|
||||||
implementation group: 'org.apache.velocity', name: 'velocity-engine-core', version: '2.3'
|
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'
|
implementation 'net.bytebuddy:byte-buddy:1.14.5'
|
||||||
|
|
||||||
|
|||||||
@@ -33,21 +33,21 @@ public class PortalConfigGatewayDatasource {
|
|||||||
dataSource.setMaxPoolSize(10);
|
dataSource.setMaxPoolSize(10);
|
||||||
dataSource.setMaxIdleTime(60); // seconds
|
dataSource.setMaxIdleTime(60); // seconds
|
||||||
dataSource.setBorrowConnectionTimeout(30); // seconds
|
dataSource.setBorrowConnectionTimeout(30); // seconds
|
||||||
dataSource.setTestQuery("SELECT 1");
|
dataSource.setTestQuery("SELECT 1 FROM DUAL");
|
||||||
dataSource.setMaintenanceInterval(60);
|
dataSource.setMaintenanceInterval(60);
|
||||||
dataSource.setXaDataSourceClassName("com.mysql.cj.jdbc.MysqlXADataSource");
|
dataSource.setXaDataSourceClassName("oracle.jdbc.xa.client.OracleXADataSource");
|
||||||
|
|
||||||
Properties xaProperties = new Properties();
|
Properties xaProperties = new Properties();
|
||||||
xaProperties.setProperty("serverName", gatewayDataSourceProperties.getServerName());
|
String url = String.format("jdbc:oracle:thin:@//%s:%d/%s",
|
||||||
xaProperties.setProperty("portNumber", String.valueOf(gatewayDataSourceProperties.getPortNumber()));
|
gatewayDataSourceProperties.getServerName(), // HOST
|
||||||
xaProperties.setProperty("databaseName", gatewayDataSourceProperties.getDatabaseName());
|
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("user", gatewayDataSourceProperties.getUsername());
|
||||||
xaProperties.setProperty("password", gatewayDataSourceProperties.getPassword());
|
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);
|
dataSource.setXaProperties(xaProperties);
|
||||||
return dataSource;
|
return dataSource;
|
||||||
}
|
}
|
||||||
@@ -58,7 +58,7 @@ public class PortalConfigGatewayDatasource {
|
|||||||
@Qualifier("gatewayDataSource") DataSource dataSource) {
|
@Qualifier("gatewayDataSource") DataSource dataSource) {
|
||||||
HashMap<String, Object> properties = new HashMap<>();
|
HashMap<String, Object> properties = new HashMap<>();
|
||||||
//public interface AvailableSettings extends org.hibernate.jpa.AvailableSettings 참고
|
//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.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.transaction.jta.platform", "org.hibernate.engine.transaction.jta.platform.internal.AtomikosJtaPlatform");
|
||||||
properties.put("hibernate.physical_naming_strategy", "com.eactive.apim.portal.common.entity.CustomPhysicalNamingStrategy");
|
properties.put("hibernate.physical_naming_strategy", "com.eactive.apim.portal.common.entity.CustomPhysicalNamingStrategy");
|
||||||
|
|||||||
@@ -62,13 +62,6 @@ public class PortalConfigPortalDatasource {
|
|||||||
@Primary
|
@Primary
|
||||||
@Bean
|
@Bean
|
||||||
public DataSource portalDataSource() {
|
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();
|
AtomikosDataSourceBean dataSource = new AtomikosDataSourceBean();
|
||||||
dataSource.setBeanName("portalDataSource");
|
dataSource.setBeanName("portalDataSource");
|
||||||
dataSource.setUniqueResourceName("portalDataSource");
|
dataSource.setUniqueResourceName("portalDataSource");
|
||||||
@@ -76,20 +69,20 @@ public class PortalConfigPortalDatasource {
|
|||||||
dataSource.setMaxPoolSize(10);
|
dataSource.setMaxPoolSize(10);
|
||||||
dataSource.setMaxIdleTime(60); // seconds
|
dataSource.setMaxIdleTime(60); // seconds
|
||||||
dataSource.setBorrowConnectionTimeout(30); // seconds
|
dataSource.setBorrowConnectionTimeout(30); // seconds
|
||||||
dataSource.setTestQuery("SELECT 1");
|
dataSource.setTestQuery("SELECT 1 FROM DUAL");
|
||||||
dataSource.setMaintenanceInterval(60);
|
dataSource.setMaintenanceInterval(60);
|
||||||
dataSource.setXaDataSourceClassName("com.mysql.cj.jdbc.MysqlXADataSource");
|
dataSource.setXaDataSourceClassName("oracle.jdbc.xa.client.OracleXADataSource");
|
||||||
|
|
||||||
Properties xaProperties = new Properties();
|
Properties xaProperties = new Properties();
|
||||||
xaProperties.setProperty("serverName", emsDatasourceProperties.getServerName());
|
String url = String.format("jdbc:oracle:thin:@//%s:%d/%s",
|
||||||
xaProperties.setProperty("portNumber", String.valueOf(emsDatasourceProperties.getPortNumber()));
|
emsDatasourceProperties.getServerName(), // HOST
|
||||||
xaProperties.setProperty("databaseName", emsDatasourceProperties.getDatabaseName());
|
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("user", emsDatasourceProperties.getUsername());
|
||||||
xaProperties.setProperty("password", emsDatasourceProperties.getPassword());
|
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);
|
dataSource.setXaProperties(xaProperties);
|
||||||
return dataSource;
|
return dataSource;
|
||||||
@@ -107,7 +100,7 @@ public class PortalConfigPortalDatasource {
|
|||||||
properties.put("hibernate.connection.autocommit", "false");
|
properties.put("hibernate.connection.autocommit", "false");
|
||||||
properties.put("hibernate.connection.handling_mode", "DELAYED_ACQUISITION_AND_RELEASE_AFTER_TRANSACTION");
|
properties.put("hibernate.connection.handling_mode", "DELAYED_ACQUISITION_AND_RELEASE_AFTER_TRANSACTION");
|
||||||
properties.put("hibernate.connection.provider_disables_autocommit", "true");
|
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.format_sql", "true");
|
||||||
properties.put("hibernate.physical_naming_strategy", "com.eactive.apim.portal.common.entity.CustomPhysicalNamingStrategy");
|
properties.put("hibernate.physical_naming_strategy", "com.eactive.apim.portal.common.entity.CustomPhysicalNamingStrategy");
|
||||||
properties.put("hibernate.show_sql", "true");
|
properties.put("hibernate.show_sql", "true");
|
||||||
@@ -120,7 +113,7 @@ public class PortalConfigPortalDatasource {
|
|||||||
// Envers properties org.hibernate.envers.configuration.EnversSettings 참고
|
// 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_strategy", "org.hibernate.envers.strategy.internal.ValidityAuditStrategy");
|
||||||
properties.put("org.hibernate.envers.audit_table_suffix", "_AUD");
|
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.global_with_modified_flag", "true");
|
||||||
properties.put("org.hibernate.envers.revision_field_name", "REVISION");
|
properties.put("org.hibernate.envers.revision_field_name", "REVISION");
|
||||||
properties.put("org.hibernate.envers.revision_type_field_name", "REVISION_TYPE");
|
properties.put("org.hibernate.envers.revision_type_field_name", "REVISION_TYPE");
|
||||||
|
|||||||
Reference in New Issue
Block a user