From d29fe5b04e96181eea29968cda116a4aedbf2c74 Mon Sep 17 00:00:00 2001 From: mcy Date: Tue, 13 Nov 2018 20:01:20 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../otter/canal/client/adapter/support/ExtensionLoader.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/ExtensionLoader.java b/client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/ExtensionLoader.java index b29bff4a..f1b08727 100644 --- a/client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/ExtensionLoader.java +++ b/client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/ExtensionLoader.java @@ -178,8 +178,6 @@ public class ExtensionLoader { @SuppressWarnings("unchecked") private T createExtension(String name, String key) { - System.out.println("xxxxxxxxxxxxx"); - getExtensionClasses().forEach((k, v) -> logger.info("fffff: " + k + " " + v.getName())); Class clazz = getExtensionClasses().get(name); if (clazz == null) { throw new IllegalStateException("Extension instance(name: " + name + ", class: " + type From 60e5554125b334569fb6df238bb48fb30eddf860 Mon Sep 17 00:00:00 2001 From: mcy Date: Wed, 14 Nov 2018 11:00:55 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9bootstrapServers=E4=B8=BA?= =?UTF-8?q?mqServers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/adapter/support/CanalClientConfig.java | 10 +++++----- .../adapter/launcher/loader/CanalAdapterLoader.java | 4 ++-- .../launcher/src/main/resources/application.yml | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/CanalClientConfig.java b/client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/CanalClientConfig.java index 97a7a426..4a93af3d 100644 --- a/client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/CanalClientConfig.java +++ b/client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/CanalClientConfig.java @@ -17,7 +17,7 @@ public class CanalClientConfig { private String zookeeperHosts; // 集群模式下的zk地址, 如果配置了单机地址则以单机为准!! - private String bootstrapServers; // kafka or rocket mq 地址 + private String mqServers; // kafka or rocket mq 地址 private Boolean flatMessage = true; // 是否已flatMessage模式传输, 只适用于mq模式 @@ -47,12 +47,12 @@ public class CanalClientConfig { this.zookeeperHosts = zookeeperHosts; } - public String getBootstrapServers() { - return bootstrapServers; + public String getMqServers() { + return mqServers; } - public void setBootstrapServers(String bootstrapServers) { - this.bootstrapServers = bootstrapServers; + public void setMqServers(String mqServers) { + this.mqServers = mqServers; } public List getMqTopics() { diff --git a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterLoader.java b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterLoader.java index 77567a87..b60d66f0 100644 --- a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterLoader.java +++ b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterLoader.java @@ -97,7 +97,7 @@ public class CanalAdapterLoader { canalOuterAdapterGroups.add(canalOuterAdapters); if (StringUtils.isBlank(topic.getMqMode()) || "rocketmq".equalsIgnoreCase(topic.getMqMode())) { CanalAdapterRocketMQWorker rocketMQWorker = new CanalAdapterRocketMQWorker(canalClientConfig, - canalClientConfig.getBootstrapServers(), + canalClientConfig.getMqServers(), topic.getTopic(), group.getGroupId(), canalOuterAdapterGroups, @@ -106,7 +106,7 @@ public class CanalAdapterLoader { rocketMQWorker.start(); } else if ("kafka".equalsIgnoreCase(topic.getMqMode())) { CanalAdapterKafkaWorker canalKafkaWorker = new CanalAdapterKafkaWorker(canalClientConfig, - canalClientConfig.getBootstrapServers(), + canalClientConfig.getMqServers(), topic.getTopic(), group.getGroupId(), canalOuterAdapterGroups, diff --git a/client-adapter/launcher/src/main/resources/application.yml b/client-adapter/launcher/src/main/resources/application.yml index 61866595..2943d09c 100644 --- a/client-adapter/launcher/src/main/resources/application.yml +++ b/client-adapter/launcher/src/main/resources/application.yml @@ -14,7 +14,7 @@ spring: canal.conf: canalServerHost: 127.0.0.1:11111 # zookeeperHosts: slave1:2181 -# bootstrapServers: slave1:6667 #or rocketmq +# mqServers: slave1:6667 #or rocketmq # flatMessage: true # srcDataSources: # defaultDS: From c376f0afd298ad7bea97fed0b62f771c386c9082 Mon Sep 17 00:00:00 2001 From: mcy Date: Wed, 14 Nov 2018 11:14:32 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=B8=AD=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20canal.mq.acks=20canal.mq.compressionType?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deployer/src/main/resources/canal.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/deployer/src/main/resources/canal.properties b/deployer/src/main/resources/canal.properties index cf2a225e..86c700f0 100644 --- a/deployer/src/main/resources/canal.properties +++ b/deployer/src/main/resources/canal.properties @@ -108,4 +108,6 @@ canal.mq.lingerMs=1 canal.mq.bufferMemory=33554432 canal.mq.canalBatchSize=50 canal.mq.canalGetTimeout=100 -canal.mq.flatMessage=true \ No newline at end of file +canal.mq.flatMessage=true +#canal.mq.compressionType=none +#canal.mq.acks=all \ No newline at end of file From 68d8aee6c31b03c321aeb69f77fabc519f24379c Mon Sep 17 00:00:00 2001 From: mcy Date: Wed, 14 Nov 2018 11:32:01 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/support/CanalClientConfig.java | 12 ++-- .../loader/CanalAdapterKafkaWorker.java | 2 +- .../launcher/loader/CanalAdapterLoader.java | 2 - .../loader/CanalAdapterRocketMQWorker.java | 2 +- .../launcher/loader/CanalAdapterWorker.java | 2 +- .../src/main/resources/application.yml | 2 + .../otter/canal/deployer/CanalLauncher.java | 57 +++++++++++++------ deployer/src/main/resources/canal.properties | 4 +- 8 files changed, 53 insertions(+), 30 deletions(-) diff --git a/client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/CanalClientConfig.java b/client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/CanalClientConfig.java index 4a93af3d..d2c19448 100644 --- a/client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/CanalClientConfig.java +++ b/client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/CanalClientConfig.java @@ -17,13 +17,13 @@ public class CanalClientConfig { private String zookeeperHosts; // 集群模式下的zk地址, 如果配置了单机地址则以单机为准!! - private String mqServers; // kafka or rocket mq 地址 + private String mqServers; // kafka or rocket mq 地址 private Boolean flatMessage = true; // 是否已flatMessage模式传输, 只适用于mq模式 private Integer batchSize; // 批大小 - private Integer retry; // 重试次数 + private Integer retries; // 重试次数 private Long timeout; // 消费超时时间 @@ -79,12 +79,12 @@ public class CanalClientConfig { this.batchSize = batchSize; } - public Integer getRetry() { - return retry; + public Integer getRetries() { + return retries; } - public void setRetry(Integer retry) { - this.retry = retry; + public void setRetries(Integer retries) { + this.retries = retries; } public Long getTimeout() { diff --git a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterKafkaWorker.java b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterKafkaWorker.java index 045fee37..8bafcf58 100644 --- a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterKafkaWorker.java +++ b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterKafkaWorker.java @@ -45,7 +45,7 @@ public class CanalAdapterKafkaWorker extends AbstractCanalAdapterWorker { while (!running) ; ExecutorService workerExecutor = Executors.newSingleThreadExecutor(); - int retry = canalClientConfig.getRetry() == null ? 1 : canalClientConfig.getRetry(); + int retry = canalClientConfig.getRetries() == null ? 1 : canalClientConfig.getRetries(); long timeout = canalClientConfig.getTimeout() == null ? 30000 : canalClientConfig.getTimeout(); // 默认超时30秒 while (running) { diff --git a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterLoader.java b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterLoader.java index b60d66f0..e2d9bea8 100644 --- a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterLoader.java +++ b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterLoader.java @@ -33,8 +33,6 @@ public class CanalAdapterLoader { private Map canalMQWorker = new HashMap<>(); - private Map outerAdapters = new HashMap<>(); // 配置文件对应adapter - private ExtensionLoader loader; public CanalAdapterLoader(CanalClientConfig canalClientConfig){ diff --git a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterRocketMQWorker.java b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterRocketMQWorker.java index 133e4919..5996ab99 100644 --- a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterRocketMQWorker.java +++ b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterRocketMQWorker.java @@ -43,7 +43,7 @@ public class CanalAdapterRocketMQWorker extends AbstractCanalAdapterWorker { ; ExecutorService workerExecutor = Executors.newSingleThreadExecutor(); - int retry = canalClientConfig.getRetry() == null ? 1 : canalClientConfig.getRetry(); + int retry = canalClientConfig.getRetries() == null ? 1 : canalClientConfig.getRetries(); long timeout = canalClientConfig.getTimeout() == null ? 30000 : canalClientConfig.getTimeout(); // 默认超时30秒 while (running) { diff --git a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterWorker.java b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterWorker.java index 52b4e1af..fabee436 100644 --- a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterWorker.java +++ b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterWorker.java @@ -64,7 +64,7 @@ public class CanalAdapterWorker extends AbstractCanalAdapterWorker { ; // waiting until running == true ExecutorService workerExecutor = Executors.newSingleThreadExecutor(); - int retry = canalClientConfig.getRetry() == null ? 1 : canalClientConfig.getRetry(); + int retry = canalClientConfig.getRetries() == null ? 1 : canalClientConfig.getRetries(); long timeout = canalClientConfig.getTimeout() == null ? 300000 : canalClientConfig.getTimeout(); // 默认超时5分钟 Integer batchSize = canalClientConfig.getBatchSize(); if (batchSize == null) { diff --git a/client-adapter/launcher/src/main/resources/application.yml b/client-adapter/launcher/src/main/resources/application.yml index 2943d09c..697210f7 100644 --- a/client-adapter/launcher/src/main/resources/application.yml +++ b/client-adapter/launcher/src/main/resources/application.yml @@ -16,6 +16,8 @@ canal.conf: # zookeeperHosts: slave1:2181 # mqServers: slave1:6667 #or rocketmq # flatMessage: true + retries: + timeout: # srcDataSources: # defaultDS: # url: jdbc:mysql://127.0.0.1:3306/mytest?useUnicode=true diff --git a/deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalLauncher.java b/deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalLauncher.java index f64e6184..80224380 100644 --- a/deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalLauncher.java +++ b/deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalLauncher.java @@ -85,23 +85,46 @@ public class CanalLauncher { private static MQProperties buildMQPosition(Properties properties) { MQProperties mqProperties = new MQProperties(); - mqProperties.setServers(CanalController.getProperty(properties, CanalConstants.CANAL_MQ_SERVERS)); - mqProperties.setRetries(Integer.valueOf(CanalController.getProperty(properties, - CanalConstants.CANAL_MQ_RETRIES))); - mqProperties.setBatchSize(Integer.valueOf(CanalController.getProperty(properties, - CanalConstants.CANAL_MQ_BATCHSIZE))); - mqProperties.setLingerMs(Integer.valueOf(CanalController.getProperty(properties, - CanalConstants.CANAL_MQ_LINGERMS))); - mqProperties.setBufferMemory(Long.valueOf(CanalController.getProperty(properties, - CanalConstants.CANAL_MQ_BUFFERMEMORY))); - mqProperties.setCanalBatchSize(Integer.valueOf(CanalController.getProperty(properties, - CanalConstants.CANAL_MQ_CANALBATCHSIZE))); - mqProperties.setCanalGetTimeout(Long.valueOf(CanalController.getProperty(properties, - CanalConstants.CANAL_MQ_CANALGETTIMEOUT))); - mqProperties.setFlatMessage(Boolean.valueOf(CanalController.getProperty(properties, - CanalConstants.CANAL_MQ_FLATMESSAGE))); - mqProperties.setCompressionType(CanalController.getProperty(properties,CanalConstants.CANAL_MQ_COMPRESSION_TYPE)); - mqProperties.setAcks(CanalController.getProperty(properties,CanalConstants.CANAL_MQ_ACKS)); + String servers = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_SERVERS); + if (!StringUtils.isEmpty(servers)) { + mqProperties.setServers(servers); + } + String retires = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_RETRIES); + if (!StringUtils.isEmpty(retires)) { + mqProperties.setRetries(Integer.valueOf(retires)); + } + String batchSize = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_BATCHSIZE); + if (!StringUtils.isEmpty(batchSize)) { + mqProperties.setBatchSize(Integer.valueOf(batchSize)); + } + String lingerMs = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_LINGERMS); + if (!StringUtils.isEmpty(lingerMs)) { + mqProperties.setLingerMs(Integer.valueOf(lingerMs)); + } + String bufferMemory = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_BUFFERMEMORY); + if (!StringUtils.isEmpty(bufferMemory)) { + mqProperties.setBufferMemory(Long.valueOf(bufferMemory)); + } + String canalBatchSize = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_CANALBATCHSIZE); + if (!StringUtils.isEmpty(canalBatchSize)) { + mqProperties.setCanalBatchSize(Integer.valueOf(canalBatchSize)); + } + String canalGetTimeout = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_CANALGETTIMEOUT); + if (!StringUtils.isEmpty(canalGetTimeout)) { + mqProperties.setCanalGetTimeout(Long.valueOf(canalGetTimeout)); + } + String flatMessage = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_FLATMESSAGE); + if (!StringUtils.isEmpty(flatMessage)) { + mqProperties.setFlatMessage(Boolean.valueOf(flatMessage)); + } + String compressionType = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_COMPRESSION_TYPE); + if (!StringUtils.isEmpty(compressionType)) { + mqProperties.setCompressionType(compressionType); + } + String acks = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_ACKS); + if (!StringUtils.isEmpty(acks)) { + mqProperties.setAcks(acks); + } return mqProperties; } diff --git a/deployer/src/main/resources/canal.properties b/deployer/src/main/resources/canal.properties index 86c700f0..d555c162 100644 --- a/deployer/src/main/resources/canal.properties +++ b/deployer/src/main/resources/canal.properties @@ -109,5 +109,5 @@ canal.mq.bufferMemory=33554432 canal.mq.canalBatchSize=50 canal.mq.canalGetTimeout=100 canal.mq.flatMessage=true -#canal.mq.compressionType=none -#canal.mq.acks=all \ No newline at end of file +canal.mq.compressionType= +canal.mq.acks= \ No newline at end of file From 31bf92ec8e5a4f909406e3a1d8eb85e0b55b7070 Mon Sep 17 00:00:00 2001 From: mcy Date: Wed, 14 Nov 2018 11:49:22 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../launcher/loader/CanalAdapterKafkaWorker.java | 3 ++- .../launcher/loader/CanalAdapterRocketMQWorker.java | 3 ++- .../adapter/launcher/loader/CanalAdapterWorker.java | 3 ++- .../launcher/src/main/resources/application.yml | 12 ++++++------ 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterKafkaWorker.java b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterKafkaWorker.java index 8bafcf58..b93379a6 100644 --- a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterKafkaWorker.java +++ b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterKafkaWorker.java @@ -45,7 +45,8 @@ public class CanalAdapterKafkaWorker extends AbstractCanalAdapterWorker { while (!running) ; ExecutorService workerExecutor = Executors.newSingleThreadExecutor(); - int retry = canalClientConfig.getRetries() == null ? 1 : canalClientConfig.getRetries(); + int retry = canalClientConfig.getRetries() == null + || canalClientConfig.getRetries() == 0 ? 1 : canalClientConfig.getRetries(); long timeout = canalClientConfig.getTimeout() == null ? 30000 : canalClientConfig.getTimeout(); // 默认超时30秒 while (running) { diff --git a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterRocketMQWorker.java b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterRocketMQWorker.java index 5996ab99..f0ee5abc 100644 --- a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterRocketMQWorker.java +++ b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterRocketMQWorker.java @@ -43,7 +43,8 @@ public class CanalAdapterRocketMQWorker extends AbstractCanalAdapterWorker { ; ExecutorService workerExecutor = Executors.newSingleThreadExecutor(); - int retry = canalClientConfig.getRetries() == null ? 1 : canalClientConfig.getRetries(); + int retry = canalClientConfig.getRetries() == null + || canalClientConfig.getRetries() == 0 ? 1 : canalClientConfig.getRetries(); long timeout = canalClientConfig.getTimeout() == null ? 30000 : canalClientConfig.getTimeout(); // 默认超时30秒 while (running) { diff --git a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterWorker.java b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterWorker.java index fabee436..95e8dd45 100644 --- a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterWorker.java +++ b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/loader/CanalAdapterWorker.java @@ -64,7 +64,8 @@ public class CanalAdapterWorker extends AbstractCanalAdapterWorker { ; // waiting until running == true ExecutorService workerExecutor = Executors.newSingleThreadExecutor(); - int retry = canalClientConfig.getRetries() == null ? 1 : canalClientConfig.getRetries(); + int retry = canalClientConfig.getRetries() == null + || canalClientConfig.getRetries() == 0 ? 1 : canalClientConfig.getRetries(); long timeout = canalClientConfig.getTimeout() == null ? 300000 : canalClientConfig.getTimeout(); // 默认超时5分钟 Integer batchSize = canalClientConfig.getBatchSize(); if (batchSize == null) { diff --git a/client-adapter/launcher/src/main/resources/application.yml b/client-adapter/launcher/src/main/resources/application.yml index 697210f7..c86b43f0 100644 --- a/client-adapter/launcher/src/main/resources/application.yml +++ b/client-adapter/launcher/src/main/resources/application.yml @@ -16,18 +16,18 @@ canal.conf: # zookeeperHosts: slave1:2181 # mqServers: slave1:6667 #or rocketmq # flatMessage: true - retries: + retries: 0 timeout: # srcDataSources: # defaultDS: # url: jdbc:mysql://127.0.0.1:3306/mytest?useUnicode=true # username: root # password: 121212 - canalInstances: - - instance: example - groups: - - outAdapters: - - name: logger +# canalInstances: +# - instance: example +# groups: +# - outAdapters: +# - name: logger # - name: rdb # key: oracle1 # properties: