This is an automated email from the ASF dual-hosted git repository.
shenlin pushed a commit to branch feat/runtime-manager
in repository https://gitbox.apache.org/repos/asf/rocketmq-eventbridge.git
The following commit(s) were added to refs/heads/feat/runtime-manager by this
push:
new 81f7bc3 feat:watch the cluster and worker.
81f7bc3 is described below
commit 81f7bc3ae92115039bffb1f8cf9671ed5073b56a
Author: 2011shenlin <[email protected]>
AuthorDate: Sun Nov 26 19:31:43 2023 +0800
feat:watch the cluster and worker.
---
adapter/persistence/pom.xml | 5 +
.../mybatis/mapper/EventClusterMapper.java} | 10 +-
.../repository/MybatisClusterRepository.java} | 25 +-
.../worker/mybatis/mapper/EventWorkerMapper.java} | 21 +-
.../repository/MybatisWorkerRepository.java | 54 ++
.../resources/db/migration/V10__init_cluster.sql | 30 +
.../resources/db/migration/V11__init_worker.sql | 32 +
.../main/resources/mybatis/EventClusterMapper.xml | 52 ++
.../main/resources/mybatis/EventWorkerMapper.xml | 63 ++
adapter/pom.xml | 1 +
.../adapter/runtime/manager/cluster/Cluster.java | 7 +-
.../runtime/manager/cluster/ClusterService.java | 10 +-
.../manager/repository/ClusterRepository.java | 2 +-
.../manager/repository/WorkerRepository.java | 4 +-
.../runtime/manager/scale/ClusterWorkerScale.java | 2 +
.../runtime/manager/watch/WatchCluster.java | 48 +-
.../adapter/runtime/manager/watch/WatchWorker.java | 37 +-
.../adapter/runtime/manager/worker/Worker.java | 12 +-
.../runtime/manager/worker/WorkerService.java | 20 +-
pom.xml | 10 +-
rocketmq_eventbridge.mv.db | Bin 81920 -> 81920 bytes
rocketmq_eventbridge.trace.db | 657 +++------------------
scan.py | 0
start/pom.xml | 13 +-
.../rocketmq/eventbridge/demo/DefaultDemo.java | 6 +-
25 files changed, 467 insertions(+), 654 deletions(-)
diff --git a/adapter/persistence/pom.xml b/adapter/persistence/pom.xml
index eac0c8e..b206a1d 100644
--- a/adapter/persistence/pom.xml
+++ b/adapter/persistence/pom.xml
@@ -71,6 +71,11 @@
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-tools</artifactId>
</dependency>
+ <dependency>
+
<artifactId>rocketmq-eventbridge-adapter-runtime-manager</artifactId>
+ <groupId>org.apache.rocketmq</groupId>
+ <version>1.0.0</version>
+ </dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
diff --git
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/ClusterRepository.java
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/cluster/mybatis/mapper/EventClusterMapper.java
similarity index 79%
copy from
adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/ClusterRepository.java
copy to
adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/cluster/mybatis/mapper/EventClusterMapper.java
index 38c1c58..ea62dc5 100644
---
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/ClusterRepository.java
+++
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/cluster/mybatis/mapper/EventClusterMapper.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.rocketmq.eventbridge.adapter.runtime.manager.repository;
+package
org.apache.rocketmq.eventbridge.adapter.persistence.cluster.mybatis.mapper;
import java.util.List;
+import org.apache.ibatis.annotations.Param;
import org.apache.rocketmq.eventbridge.adapter.runtime.manager.cluster.Cluster;
-public interface ClusterRepository {
-
+public interface EventClusterMapper {
List<Cluster> listCluster();
- boolean updateCluster(Cluster cluster);
-}
+ int updateCluster(@Param("id") int id, @Param("md5") String md5);
+}
\ No newline at end of file
diff --git
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/ClusterRepository.java
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/cluster/mybatis/repository/MybatisClusterRepository.java
similarity index 51%
copy from
adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/ClusterRepository.java
copy to
adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/cluster/mybatis/repository/MybatisClusterRepository.java
index 38c1c58..19ad2da 100644
---
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/ClusterRepository.java
+++
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/cluster/mybatis/repository/MybatisClusterRepository.java
@@ -15,14 +15,29 @@
* limitations under the License.
*/
-package org.apache.rocketmq.eventbridge.adapter.runtime.manager.repository;
+package
org.apache.rocketmq.eventbridge.adapter.persistence.cluster.mybatis.repository;
import java.util.List;
+import
org.apache.rocketmq.eventbridge.adapter.persistence.cluster.mybatis.mapper.EventClusterMapper;
import org.apache.rocketmq.eventbridge.adapter.runtime.manager.cluster.Cluster;
+import
org.apache.rocketmq.eventbridge.adapter.runtime.manager.repository.ClusterRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
-public interface ClusterRepository {
+@Repository
+public class MybatisClusterRepository implements ClusterRepository {
- List<Cluster> listCluster();
+ @Autowired
+ EventClusterMapper eventClusterMapper;
- boolean updateCluster(Cluster cluster);
-}
+ @Override public List<Cluster> listCluster() {
+ List<Cluster> clusterDOList = eventClusterMapper.listCluster();
+ return clusterDOList;
+ }
+
+ @Override
+ public boolean updateCluster(int clusterId, String md5) {
+ return eventClusterMapper.updateCluster(clusterId,md5)==1;
+ }
+
+}
\ No newline at end of file
diff --git
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/WorkerRepository.java
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/worker/mybatis/mapper/EventWorkerMapper.java
similarity index 62%
copy from
adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/WorkerRepository.java
copy to
adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/worker/mybatis/mapper/EventWorkerMapper.java
index c35fefb..d7a27d7 100644
---
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/WorkerRepository.java
+++
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/worker/mybatis/mapper/EventWorkerMapper.java
@@ -15,21 +15,18 @@
* limitations under the License.
*/
-package org.apache.rocketmq.eventbridge.adapter.runtime.manager.repository;
+package
org.apache.rocketmq.eventbridge.adapter.persistence.worker.mybatis.mapper;
import java.util.List;
+import org.apache.ibatis.annotations.Param;
import org.apache.rocketmq.eventbridge.adapter.runtime.manager.worker.Worker;
-public interface WorkerRepository {
+public interface EventWorkerMapper {
+ List<Worker> listWorkersByCluster(@Param("clusterId") int clusterId);
- List<Worker> listWorkers(int clusterId);
+ List<Worker> listWorkers();
- boolean createWorker(Worker worker);
-
- boolean updateWorker(Worker worker);
-
- boolean deleteWorker(int workerId);
-
- boolean deleteWorkers(int clusterId);
-
-}
+ int createWorker(@Param("id") String id, @Param("clusterId") int
clusterId, @Param("name") String name,
+ @Param("image") String image, @Param("resources") String resources,
@Param("config") String config,
+ @Param("status") String status, @Param("md5") String md5);
+}
\ No newline at end of file
diff --git
a/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/worker/mybatis/repository/MybatisWorkerRepository.java
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/worker/mybatis/repository/MybatisWorkerRepository.java
new file mode 100644
index 0000000..4c4a2ee
--- /dev/null
+++
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/worker/mybatis/repository/MybatisWorkerRepository.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package
org.apache.rocketmq.eventbridge.adapter.persistence.worker.mybatis.repository;
+
+import java.util.List;
+import
org.apache.rocketmq.eventbridge.adapter.persistence.worker.mybatis.mapper.EventWorkerMapper;
+import
org.apache.rocketmq.eventbridge.adapter.runtime.manager.repository.WorkerRepository;
+import org.apache.rocketmq.eventbridge.adapter.runtime.manager.worker.Worker;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
+
+@Repository public class MybatisWorkerRepository implements WorkerRepository {
+
+ @Autowired EventWorkerMapper eventWorkerMapper;
+
+ @Override public List<Worker> listWorkersByCluster(int clusterId) {
+ return eventWorkerMapper.listWorkersByCluster(clusterId);
+ }
+
+ @Override public List<Worker> listWorkers() {
+ return eventWorkerMapper.listWorkers();
+ }
+
+ @Override public boolean createWorker(Worker worker) {
+ return eventWorkerMapper.createWorker(worker.getId(),
worker.getClusterId(), worker.getName(), worker.getImage(),
worker.getResources(), worker.getConfig(), worker.getStatus(), worker.getMd5())
== 1;
+ }
+
+ @Override public boolean updateWorker(Worker worker) {
+ return false;
+ }
+
+ @Override public boolean deleteWorker(int workerId) {
+ return false;
+ }
+
+ @Override public boolean deleteWorkers(int clusterId) {
+ return false;
+ }
+}
\ No newline at end of file
diff --git
a/adapter/persistence/src/main/resources/db/migration/V10__init_cluster.sql
b/adapter/persistence/src/main/resources/db/migration/V10__init_cluster.sql
new file mode 100644
index 0000000..216b98b
--- /dev/null
+++ b/adapter/persistence/src/main/resources/db/migration/V10__init_cluster.sql
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+CREATE TABLE IF NOT EXISTS `event_cluster` (
+ `id` int(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'cluster id',
+ `name` varchar(128) DEFAULT NULL COMMENT 'cluster name',
+ `resources` varchar(1024) DEFAULT NULL COMMENT 'the spec of worker on
cluster',
+ `replica` int(11) DEFAULT '2' COMMENT 'the replica of cluster',
+ `image` varchar(1024) DEFAULT NULL COMMENT 'the image of cluster',
+ `md5` varchar(4096) DEFAULT NULL,
+ `gmt_create` datetime DEFAULT NULL COMMENT 'create time',
+ `gmt_modify` datetime DEFAULT NULL COMMENT 'modify time',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `event_cluster_index_unique_name` (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8
+;
\ No newline at end of file
diff --git
a/adapter/persistence/src/main/resources/db/migration/V11__init_worker.sql
b/adapter/persistence/src/main/resources/db/migration/V11__init_worker.sql
new file mode 100644
index 0000000..49c9a43
--- /dev/null
+++ b/adapter/persistence/src/main/resources/db/migration/V11__init_worker.sql
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+CREATE TABLE `event_worker` (
+ `id` varchar(128) NOT NULL,
+ `cluster_id` varchar(128) DEFAULT NULL COMMENT 'the cluster id of worker',
+ `name` varchar(128) DEFAULT NULL COMMENT 'worker name',
+ `image` varchar(1024) DEFAULT NULL COMMENT 'the image of cluster',
+ `resources` varchar(1024) DEFAULT NULL COMMENT 'the spec of worker',
+ `config` text DEFAULT NULL COMMENT 'the config of worker',
+ `status` varchar(128) DEFAULT NULL COMMENT 'Worker name',
+ `gmt_create` datetime DEFAULT NULL COMMENT 'create time',
+ `gmt_modify` datetime DEFAULT NULL COMMENT 'modify time',
+ `md5` varchar(128) DEFAULT NULL COMMENT 'worker config md5',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `connect_worker_name_index`(`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8
+;
diff --git
a/adapter/persistence/src/main/resources/mybatis/EventClusterMapper.xml
b/adapter/persistence/src/main/resources/mybatis/EventClusterMapper.xml
new file mode 100644
index 0000000..77b816c
--- /dev/null
+++ b/adapter/persistence/src/main/resources/mybatis/EventClusterMapper.xml
@@ -0,0 +1,52 @@
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
contributor
+ license agreements. See the NOTICE file distributed with this work for
additional
+ information regarding copyright ownership. The ASF licenses this file to
+ You under the Apache License, Version 2.0 (the "License"); you may not
use
+ this file except in compliance with the License. You may obtain a copy
of
+ the License at http://www.apache.org/licenses/LICENSE-2.0 Unless
required
+ by applicable law or agreed to in writing, software distributed under
the
+ License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS
+ OF ANY KIND, either express or implied. See the License for the specific
+ language governing permissions and limitations under the License. -->
+
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper
namespace="org.apache.rocketmq.eventbridge.adapter.persistence.cluster.mybatis.mapper.EventClusterMapper">
+
+ <sql id="TABLE_NAME">
+ event_cluster
+ </sql>
+
+ <sql id="COLUMN_LIST">
+ id,name,resources,replica,image,md5,gmt_create,gmt_modify
+ </sql>
+ <resultMap id="resultMap"
type="org.apache.rocketmq.eventbridge.adapter.runtime.manager.cluster.Cluster">
+ <result property="id" column="id"/>
+ <result property="name" column="name"/>
+ <result property="resources" column="resources"/>
+ <result property="replica" column="replica"/>
+ <result property="image" column="image"/>
+ <result property="md5" column="md5"/>
+ <result property="gmtCreate" column="gmt_create"/>
+ <result property="gmtModify" column="gmt_modify"/>
+ </resultMap>
+
+ <select id="listCluster" resultMap="resultMap">
+ SELECT
+ <include refid="COLUMN_LIST"/>
+ FROM
+ <include refid="TABLE_NAME"/>
+ </select>
+
+
+ <update id="updateCluster" parameterType="java.util.Map">
+ UPDATE
+ <include refid="TABLE_NAME"/>
+ <set>
+ gmt_modify = now()
+ <if test="md5 != null">
+ ,md5= #{md5}
+ </if>
+ </set>
+ WHERE id = #{id}
+ </update>
+</mapper>
\ No newline at end of file
diff --git
a/adapter/persistence/src/main/resources/mybatis/EventWorkerMapper.xml
b/adapter/persistence/src/main/resources/mybatis/EventWorkerMapper.xml
new file mode 100644
index 0000000..730df31
--- /dev/null
+++ b/adapter/persistence/src/main/resources/mybatis/EventWorkerMapper.xml
@@ -0,0 +1,63 @@
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
contributor
+ license agreements. See the NOTICE file distributed with this work for
additional
+ information regarding copyright ownership. The ASF licenses this file to
+ You under the Apache License, Version 2.0 (the "License"); you may not
use
+ this file except in compliance with the License. You may obtain a copy
of
+ the License at http://www.apache.org/licenses/LICENSE-2.0 Unless
required
+ by applicable law or agreed to in writing, software distributed under
the
+ License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS
+ OF ANY KIND, either express or implied. See the License for the specific
+ language governing permissions and limitations under the License. -->
+
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper
namespace="org.apache.rocketmq.eventbridge.adapter.persistence.worker.mybatis.mapper.EventWorkerMapper">
+
+ <sql id="TABLE_NAME">
+ event_worker
+ </sql>
+
+ <sql id="COLUMN_LIST">
+
id,cluster_id,name,image,resources,config,status,md5,gmt_create,gmt_modify
+ </sql>
+
+
+ <resultMap id="resultMap"
type="org.apache.rocketmq.eventbridge.adapter.runtime.manager.worker.Worker">
+ <result property="id" column="id"/>
+ <result property="clusterId" column="cluster_id"/>
+ <result property="name" column="name"/>
+ <result property="image" column="image"/>
+ <result property="resources" column="resources"/>
+ <result property="config" column="config"/>
+ <result property="status" column="status"/>
+ <result property="md5" column="md5"/>
+ <result property="gmtCreate" column="gmt_create"/>
+ <result property="gmtModify" column="gmt_modify"/>
+ </resultMap>
+
+ <select id="listWorkersByCluster" resultMap="resultMap">
+ SELECT
+ <include refid="COLUMN_LIST"/>
+ FROM
+ <include refid="TABLE_NAME"/>
+ WHERE cluster_id = #{clusterId}
+ </select>
+
+ <select id="listWorkers" resultMap="resultMap">
+ SELECT
+ <include refid="COLUMN_LIST"/>
+ FROM
+ <include refid="TABLE_NAME"/>
+ </select>
+
+
+ <insert id="createWorker" parameterType="java.util.Map">
+ INSERT INTO
+ <include refid="TABLE_NAME"/>
+ (
+ <include refid="COLUMN_LIST"/>
+ )
+ VALUES
+
(#{id},#{clusterId},#{name},#{image},#{resources},#{config},#{status},#{md5},now(),now())
+ </insert>
+
+</mapper>
\ No newline at end of file
diff --git a/adapter/pom.xml b/adapter/pom.xml
index dc61d42..010492c 100644
--- a/adapter/pom.xml
+++ b/adapter/pom.xml
@@ -28,6 +28,7 @@
<module>runtime</module>
<module>storage</module>
<module>benchmark</module>
+ <module>runtime-manager</module>
</modules>
</project>
\ No newline at end of file
diff --git
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/cluster/Cluster.java
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/cluster/Cluster.java
index 2e0cb83..340aeee 100644
---
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/cluster/Cluster.java
+++
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/cluster/Cluster.java
@@ -28,9 +28,8 @@ public class Cluster {
private String name;
private String resources;
private int replica;
- private String currentImageId;
- private String expectImageId;
+ private String image;
private String md5;
- private Date ctime;
- private Date mtime;
+ private Date gmtCreate;
+ private Date gmtModify;
}
\ No newline at end of file
diff --git
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/cluster/ClusterService.java
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/cluster/ClusterService.java
index 4e51c3b..7ac59ca 100644
---
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/cluster/ClusterService.java
+++
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/cluster/ClusterService.java
@@ -21,9 +21,13 @@ import com.google.common.base.Strings;
import java.util.List;
import org.apache.commons.codec.digest.DigestUtils;
import
org.apache.rocketmq.eventbridge.adapter.runtime.manager.repository.ClusterRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+@Service
public class ClusterService {
+ @Autowired
private ClusterRepository clusterRepository;
public boolean createCluster() {
@@ -43,7 +47,7 @@ public class ClusterService {
}
public String calMD5(Cluster cluster) {
- String str = cluster.getName() + cluster.getResources() +
cluster.getReplica() + cluster.getExpectImageId();
+ String str = cluster.getName() + cluster.getResources() +
cluster.getReplica() + cluster.getImage();
return DigestUtils.md5Hex(str);
}
@@ -56,8 +60,8 @@ public class ClusterService {
}
}
- public boolean refreshMD5(Cluster cluster) {
- return true;
+ public boolean refreshMD5(int clusterId, String md5) {
+ return clusterRepository.updateCluster(clusterId, md5);
}
public int calLoad(Cluster cluster) {
diff --git
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/ClusterRepository.java
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/ClusterRepository.java
index 38c1c58..9ef88bb 100644
---
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/ClusterRepository.java
+++
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/ClusterRepository.java
@@ -24,5 +24,5 @@ public interface ClusterRepository {
List<Cluster> listCluster();
- boolean updateCluster(Cluster cluster);
+ boolean updateCluster(int clusterId, String md5);
}
diff --git
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/WorkerRepository.java
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/WorkerRepository.java
index c35fefb..0ecb786 100644
---
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/WorkerRepository.java
+++
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/repository/WorkerRepository.java
@@ -22,7 +22,9 @@ import
org.apache.rocketmq.eventbridge.adapter.runtime.manager.worker.Worker;
public interface WorkerRepository {
- List<Worker> listWorkers(int clusterId);
+ List<Worker> listWorkersByCluster(int clusterId);
+
+ List<Worker> listWorkers();
boolean createWorker(Worker worker);
diff --git
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/scale/ClusterWorkerScale.java
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/scale/ClusterWorkerScale.java
index 1b48daf..be22fa0 100644
---
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/scale/ClusterWorkerScale.java
+++
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/scale/ClusterWorkerScale.java
@@ -25,7 +25,9 @@ import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.eventbridge.adapter.runtime.manager.cluster.Cluster;
import
org.apache.rocketmq.eventbridge.adapter.runtime.manager.cluster.ClusterService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+@Service
public class ClusterWorkerScale {
@Autowired
ClusterService clusterService;
diff --git
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/watch/WatchCluster.java
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/watch/WatchCluster.java
index bd77c83..bbe270e 100644
---
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/watch/WatchCluster.java
+++
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/watch/WatchCluster.java
@@ -17,46 +17,72 @@
package org.apache.rocketmq.eventbridge.adapter.runtime.manager.watch;
+import com.google.common.base.Strings;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
+import java.util.stream.IntStream;
+import javax.annotation.PostConstruct;
+import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.eventbridge.adapter.runtime.manager.cluster.Cluster;
import
org.apache.rocketmq.eventbridge.adapter.runtime.manager.cluster.ClusterService;
+import org.apache.rocketmq.eventbridge.adapter.runtime.manager.worker.Worker;
import
org.apache.rocketmq.eventbridge.adapter.runtime.manager.worker.WorkerService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+@Service
+@Slf4j
public class WatchCluster {
@Autowired
ClusterService clusterService;
+ @Autowired
+ WorkerService workerService;
+
private final ScheduledExecutorService scheduledExecutorService =
Executors.newSingleThreadScheduledExecutor(
new ThreadFactoryImpl(WatchCluster.class.getSimpleName()));
+ public WatchCluster(ClusterService clusterService) {
+ this.clusterService = clusterService;
+ }
+
+ @PostConstruct
public void start() {
this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
- List<Cluster> clusters = clusterService.listCluster();
- clusters.forEach(cluster -> {
- if (!clusterService.isFinalState(cluster)) {
- watchTheClusterReplica(cluster);
- watchTheClusterImageId(cluster);
- watchTheClusterResources(cluster);
- clusterService.refreshMD5(cluster);
- }
+ try {
+ List<Cluster> clusters = clusterService.listCluster();
+ clusters.forEach(cluster -> {
+ String md5 = clusterService.calMD5(cluster);
+ if (!Strings.isNullOrEmpty(md5) &&
!md5.equals(cluster.getMd5())) {
+ watchTheClusterReplica(cluster);
+ watchTheClusterImageId(cluster);
+ watchTheClusterResources(cluster);
+ clusterService.refreshMD5(cluster.getId(), md5);
+ }
- });
+ });
+ } catch (Throwable e) {
+ log.error("WatchCluster failed.", e);
+ }
}
- }, 3, 60, TimeUnit.SECONDS);
+ }, 3, 5, TimeUnit.SECONDS);
}
@Transactional
private void watchTheClusterReplica(Cluster cluster) {
-
+ List<Worker> workers =
workerService.listWorkersByCluster(cluster.getId());
+ if (workers != null && cluster.getReplica() > workers.size()) {
+ IntStream.range(workers.size(),
cluster.getReplica()).forEach(value -> {
+ workerService.createWorker(cluster.getId(), "worker-" + value,
cluster.getImage(), cluster.getResources(), null, null);
+ });
+ }
}
@Transactional
diff --git
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/watch/WatchWorker.java
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/watch/WatchWorker.java
index c7c2dc8..c00a694 100644
---
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/watch/WatchWorker.java
+++
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/watch/WatchWorker.java
@@ -24,39 +24,50 @@ import java.util.Map;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
+import javax.annotation.PostConstruct;
+import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.ThreadFactoryImpl;
import
org.apache.rocketmq.eventbridge.adapter.runtime.manager.repository.WorkerInstanceRepository;
import org.apache.rocketmq.eventbridge.adapter.runtime.manager.worker.Worker;
import
org.apache.rocketmq.eventbridge.adapter.runtime.manager.worker.WorkerResource;
import
org.apache.rocketmq.eventbridge.adapter.runtime.manager.worker.WorkerService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+@Service
+@Slf4j
public class WatchWorker {
@Autowired
WorkerService workerService;
- @Autowired
- WorkerInstanceRepository workerInstanceRepository;
+// @Autowired
+// WorkerInstanceRepository workerInstanceRepository;
private final ScheduledExecutorService scheduledExecutorService =
Executors.newSingleThreadScheduledExecutor(
new ThreadFactoryImpl(WatchWorker.class.getSimpleName()));
+ @PostConstruct
public void start() {
this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
- List<Worker> workers = workerService.listWorkers();
- workers.forEach(worker -> {
- if (!workerService.isFinalState(worker)) {
- Map<String, Object> environments = new
Gson().fromJson(worker.getConfig(), new TypeToken<Map<String, Object>>() {
- }.getType());
- WorkerResource workerResource = new
Gson().fromJson(worker.getResources(), WorkerResource.class);
-
workerInstanceRepository.applyWorkerInstance(worker.getName(),
worker.getImageTag(), workerResource, environments);
- workerService.refreshMD5(worker);
- }
+ try {
+ List<Worker> workers = workerService.listWorkers();
+ workers.forEach(worker -> {
+ if (!workerService.isFinalState(worker)) {
+ Map<String, Object> environments = new
Gson().fromJson(worker.getConfig(), new TypeToken<Map<String, Object>>() {
+ }.getType());
+// WorkerResource workerResource = new
Gson().fromJson(worker.getResources(), WorkerResource.class);
+ log.info("applyWorkerInstance, workerName: {},
workerImageTag: {}, workerResource: {}, environments: {}", worker.getName(),
worker.getImage(), worker.getResources(), new Gson().toJson(environments));
+//
workerInstanceRepository.applyWorkerInstance(worker.getName(),
worker.getImageTag(), workerResource, environments);
+ workerService.refreshMD5(worker);
+ }
- });
+ });
+ } catch (Throwable e) {
+ log.error("WatchWorker failed.", e);
+ }
}
- }, 3, 60, TimeUnit.SECONDS);
+ }, 3, 5, TimeUnit.SECONDS);
}
}
\ No newline at end of file
diff --git
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/worker/Worker.java
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/worker/Worker.java
index 96aba43..e47e4aa 100644
---
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/worker/Worker.java
+++
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/worker/Worker.java
@@ -18,20 +18,22 @@
package org.apache.rocketmq.eventbridge.adapter.runtime.manager.worker;
import java.util.Date;
+import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(of = {"name"})
@Data
+@Builder
public class Worker {
- private int id;
- private String clusterId;
+ private String id;
+ private int clusterId;
private String name;
- private String imageTag;
+ private String image;
private String resources;
private String config;
private String status;
- private Date ctime;
- private Date mtime;
private String md5;
+ private Date gmtCreate;
+ private Date gmtModify;
}
\ No newline at end of file
diff --git
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/worker/WorkerService.java
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/worker/WorkerService.java
index 5709c62..d1d4eb9 100644
---
a/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/worker/WorkerService.java
+++
b/adapter/runtime-manager/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/manager/worker/WorkerService.java
@@ -18,19 +18,31 @@
package org.apache.rocketmq.eventbridge.adapter.runtime.manager.worker;
import java.util.List;
+import java.util.UUID;
+import
org.apache.rocketmq.eventbridge.adapter.runtime.manager.repository.WorkerRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
-public class WorkerService {
+@Service public class WorkerService {
- private boolean createWorker() {
- return true;
+ @Autowired private WorkerRepository workerRepository;
+
+ public boolean createWorker(int clusterId, String workerName, String
image, String resources, String config,
+ String status) {
+ Worker worker =
Worker.builder().id(UUID.randomUUID().toString()).clusterId(clusterId).name(workerName).image(image).resources(resources).config(config).status(status).build();
+ return workerRepository.createWorker(worker);
}
private boolean applyTasksToWorker() {
return true;
}
+ public List<Worker> listWorkersByCluster(int clusterId) {
+ return workerRepository.listWorkersByCluster(clusterId);
+ }
+
public List<Worker> listWorkers() {
- return null;
+ return workerRepository.listWorkers();
}
public boolean isFinalState(Worker worker) {
diff --git a/pom.xml b/pom.xml
index f3d1bcb..41ee0f3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -151,11 +151,11 @@
<artifactId>rocketmq-eventbridge-infrastructure</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.rocketmq</groupId>
- <artifactId>rocketmq-test-demo</artifactId>
- <version>${project.version}</version>
- </dependency>
+<!-- <dependency>-->
+<!-- <groupId>org.apache.rocketmq</groupId>-->
+<!-- <artifactId>rocketmq-test-demo</artifactId>-->
+<!-- <version>${project.version}</version>-->
+<!-- </dependency>-->
<!-- Framework -->
<dependency>
diff --git a/rocketmq_eventbridge.mv.db b/rocketmq_eventbridge.mv.db
index e5daf95..1a098df 100644
Binary files a/rocketmq_eventbridge.mv.db and b/rocketmq_eventbridge.mv.db
differ
diff --git a/rocketmq_eventbridge.trace.db b/rocketmq_eventbridge.trace.db
index 8db537c..bcce0ee 100644
--- a/rocketmq_eventbridge.trace.db
+++ b/rocketmq_eventbridge.trace.db
@@ -1,4 +1,4 @@
-2023-06-12 15:47:31 jdbc[3]: exception
+2023-11-26 18:41:02 jdbc[3]: exception
org.h2.jdbc.JdbcSQLException: Table "EVENT_TARGET_RUNNER" not found; SQL
statement:
SELECT
@@ -10,584 +10,85 @@ SELECT
WHERE
id>=0 [42102-197]
-2023-06-25 10:24:37 jdbc[13370]: exception
-2023-08-13 15:17:19 jdbc[18]: exception
-org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic
closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-197]
+2023-11-26 18:42:05 jdbc[8]: exception
+org.h2.jdbc.JdbcSQLException: Cannot parse "TIMESTAMP" constant ; SQL
statement:
+INSERT INTO
"PUBLIC"."EVENT_CLUSTER"("ID","NAME","RESOURCES","REPLICA","IMAGE","MD5","GMT_CREATE","GMT_MODIFY")VALUES(?,?,?,?,?,?,?,?)
-- (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8) [22007-197]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.message.DbException.get(DbException.java:144)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502)
- at org.h2.jdbc.JdbcConnection.createStatement(JdbcConnection.java:217)
- at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:153)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:172)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:148)
- at
com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
- at
org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:151)
- at
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
- at
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
- at
org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
- at
org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
- at
org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
- at
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
- at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
- at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
- at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
- at com.sun.proxy.$Proxy81.selectList(Unknown Source)
- at
org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
- at
org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
- at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
- at
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
- at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
- at com.sun.proxy.$Proxy92.listEventTargetRunners(Unknown Source)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository.listEventTargetRunners(MybatisEventTargetRunnerRepository.java:77)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$FastClassBySpringCGLIB$$d4e0cf7.invoke(<generated>)
- at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
- at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
- at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
- at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$EnhancerBySpringCGLIB$$ae71ebee.listEventTargetRunners(<generated>)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.getLatestTargetRunnerConfig(TargetRunnerConfigOnDBObserver.java:62)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.AbstractTargetRunnerConfigObserver.diff(AbstractTargetRunnerConfigObserver.java:110)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.lambda$addListen$0(TargetRunnerConfigOnDBObserver.java:82)
- at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
- at
java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
- at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
- at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+ at org.h2.message.DbException.get(DbException.java:168)
+ at org.h2.value.ValueTimestamp.parse(ValueTimestamp.java:147)
+ at org.h2.value.Value.convertTo(Value.java:1071)
+ at org.h2.table.Column.convert(Column.java:177)
+ at org.h2.command.dml.Insert.insertRows(Insert.java:166)
+ at org.h2.command.dml.Insert.update(Insert.java:134)
+ at org.h2.command.CommandContainer.update(CommandContainer.java:102)
+ at org.h2.command.Command.executeUpdate(Command.java:261)
+ at
org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:199)
+ at
org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:153)
+ at org.h2.result.UpdatableRow.insertRow(UpdatableRow.java:321)
+ at org.h2.jdbc.JdbcResultSet.insertRow(JdbcResultSet.java:2994)
+ at org.h2.server.web.WebApp.editResult(WebApp.java:1082)
+ at org.h2.server.web.WebApp.process(WebApp.java:227)
+ at org.h2.server.web.WebApp.processRequest(WebApp.java:170)
+ at org.h2.server.web.WebThread.process(WebThread.java:134)
+ at org.h2.server.web.WebThread.run(WebThread.java:90)
at java.lang.Thread.run(Thread.java:748)
-2023-08-13 15:17:19 jdbc[19]: exception
-org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic
closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-197]
+Caused by: java.lang.StringIndexOutOfBoundsException: String index out of
range: 0
+ at java.lang.String.charAt(String.java:658)
+ at org.h2.util.DateTimeUtils.parseDateValue(DateTimeUtils.java:337)
+ at org.h2.util.DateTimeUtils.parseTimestamp(DateTimeUtils.java:460)
+ at org.h2.value.ValueTimestamp.parse(ValueTimestamp.java:145)
+ ... 16 more
+2023-11-26 18:42:05 jdbc[8]: exception
+org.h2.jdbc.JdbcSQLException: Cannot parse "TIMESTAMP" constant ; SQL
statement:
+INSERT INTO
"PUBLIC"."EVENT_CLUSTER"("ID","NAME","RESOURCES","REPLICA","IMAGE","MD5","GMT_CREATE","GMT_MODIFY")VALUES(?,?,?,?,?,?,?,?)
-- (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8) [22007-197]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.message.DbException.get(DbException.java:144)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502)
- at org.h2.jdbc.JdbcConnection.createStatement(JdbcConnection.java:217)
- at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:153)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:172)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:148)
- at
com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
- at
org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:151)
- at
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
- at
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
- at
org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
- at
org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
- at
org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
- at
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
- at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
- at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
- at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
- at com.sun.proxy.$Proxy81.selectList(Unknown Source)
- at
org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
- at
org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
- at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
- at
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
- at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
- at com.sun.proxy.$Proxy92.listEventTargetRunners(Unknown Source)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository.listEventTargetRunners(MybatisEventTargetRunnerRepository.java:77)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$FastClassBySpringCGLIB$$d4e0cf7.invoke(<generated>)
- at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
- at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
- at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
- at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$EnhancerBySpringCGLIB$$ae71ebee.listEventTargetRunners(<generated>)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.getLatestTargetRunnerConfig(TargetRunnerConfigOnDBObserver.java:62)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.AbstractTargetRunnerConfigObserver.diff(AbstractTargetRunnerConfigObserver.java:110)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.lambda$addListen$0(TargetRunnerConfigOnDBObserver.java:82)
- at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
- at
java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
- at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
- at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at java.lang.Thread.run(Thread.java:748)
-2023-08-13 15:17:19 jdbc[20]: exception
-org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic
closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-197]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.message.DbException.get(DbException.java:144)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502)
- at org.h2.jdbc.JdbcConnection.createStatement(JdbcConnection.java:217)
- at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:153)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:172)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:148)
- at
com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
- at
org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:151)
- at
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
- at
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
- at
org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
- at
org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
- at
org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
- at
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
- at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
- at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
- at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
- at com.sun.proxy.$Proxy81.selectList(Unknown Source)
- at
org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
- at
org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
- at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
- at
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
- at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
- at com.sun.proxy.$Proxy92.listEventTargetRunners(Unknown Source)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository.listEventTargetRunners(MybatisEventTargetRunnerRepository.java:77)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$FastClassBySpringCGLIB$$d4e0cf7.invoke(<generated>)
- at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
- at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
- at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
- at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$EnhancerBySpringCGLIB$$ae71ebee.listEventTargetRunners(<generated>)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.getLatestTargetRunnerConfig(TargetRunnerConfigOnDBObserver.java:62)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.AbstractTargetRunnerConfigObserver.diff(AbstractTargetRunnerConfigObserver.java:110)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.lambda$addListen$0(TargetRunnerConfigOnDBObserver.java:82)
- at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
- at
java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
- at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
- at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at java.lang.Thread.run(Thread.java:748)
-2023-08-13 15:17:19 jdbc[21]: exception
-org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic
closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-197]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.message.DbException.get(DbException.java:144)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502)
- at org.h2.jdbc.JdbcConnection.createStatement(JdbcConnection.java:217)
- at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:153)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:172)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:148)
- at
com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
- at
org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:151)
- at
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
- at
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
- at
org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
- at
org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
- at
org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
- at
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
- at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
- at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
- at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
- at com.sun.proxy.$Proxy81.selectList(Unknown Source)
- at
org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
- at
org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
- at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
- at
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
- at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
- at com.sun.proxy.$Proxy92.listEventTargetRunners(Unknown Source)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository.listEventTargetRunners(MybatisEventTargetRunnerRepository.java:77)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$FastClassBySpringCGLIB$$d4e0cf7.invoke(<generated>)
- at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
- at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
- at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
- at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$EnhancerBySpringCGLIB$$ae71ebee.listEventTargetRunners(<generated>)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.getLatestTargetRunnerConfig(TargetRunnerConfigOnDBObserver.java:62)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.AbstractTargetRunnerConfigObserver.diff(AbstractTargetRunnerConfigObserver.java:110)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.lambda$addListen$0(TargetRunnerConfigOnDBObserver.java:82)
- at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
- at
java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
- at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
- at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at java.lang.Thread.run(Thread.java:748)
-2023-08-13 15:17:19 jdbc[22]: exception
-org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic
closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-197]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.message.DbException.get(DbException.java:144)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502)
- at org.h2.jdbc.JdbcConnection.createStatement(JdbcConnection.java:217)
- at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:153)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:172)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:148)
- at
com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
- at
org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:151)
- at
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
- at
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
- at
org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
- at
org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
- at
org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
- at
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
- at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
- at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
- at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
- at com.sun.proxy.$Proxy81.selectList(Unknown Source)
- at
org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
- at
org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
- at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
- at
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
- at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
- at com.sun.proxy.$Proxy92.listEventTargetRunners(Unknown Source)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository.listEventTargetRunners(MybatisEventTargetRunnerRepository.java:77)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$FastClassBySpringCGLIB$$d4e0cf7.invoke(<generated>)
- at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
- at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
- at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
- at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$EnhancerBySpringCGLIB$$ae71ebee.listEventTargetRunners(<generated>)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.getLatestTargetRunnerConfig(TargetRunnerConfigOnDBObserver.java:62)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.AbstractTargetRunnerConfigObserver.diff(AbstractTargetRunnerConfigObserver.java:110)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.lambda$addListen$0(TargetRunnerConfigOnDBObserver.java:82)
- at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
- at
java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
- at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
- at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at java.lang.Thread.run(Thread.java:748)
-2023-08-15 20:23:33 jdbc[3413]: exception
-org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic
closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-197]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.message.DbException.get(DbException.java:144)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502)
- at org.h2.jdbc.JdbcConnection.createStatement(JdbcConnection.java:217)
- at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:153)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:172)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:148)
- at
com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
- at
org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:151)
- at
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
- at
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
- at
org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
- at
org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
- at
org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
- at
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
- at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
- at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
- at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
- at com.sun.proxy.$Proxy81.selectList(Unknown Source)
- at
org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
- at
org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
- at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
- at
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
- at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
- at com.sun.proxy.$Proxy92.listEventTargetRunners(Unknown Source)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository.listEventTargetRunners(MybatisEventTargetRunnerRepository.java:77)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$FastClassBySpringCGLIB$$d4e0cf7.invoke(<generated>)
- at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
- at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
- at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
- at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$EnhancerBySpringCGLIB$$ed257c41.listEventTargetRunners(<generated>)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.getLatestTargetRunnerConfig(TargetRunnerConfigOnDBObserver.java:62)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.AbstractTargetRunnerConfigObserver.diff(AbstractTargetRunnerConfigObserver.java:110)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.lambda$addListen$0(TargetRunnerConfigOnDBObserver.java:82)
- at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
- at
java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
- at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
- at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at java.lang.Thread.run(Thread.java:748)
-2023-08-15 20:23:33 jdbc[3414]: exception
-org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic
closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-197]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.message.DbException.get(DbException.java:144)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502)
- at org.h2.jdbc.JdbcConnection.createStatement(JdbcConnection.java:217)
- at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:153)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:172)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:148)
- at
com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
- at
org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:151)
- at
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
- at
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
- at
org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
- at
org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
- at
org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
- at
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
- at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
- at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
- at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
- at com.sun.proxy.$Proxy81.selectList(Unknown Source)
- at
org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
- at
org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
- at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
- at
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
- at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
- at com.sun.proxy.$Proxy92.listEventTargetRunners(Unknown Source)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository.listEventTargetRunners(MybatisEventTargetRunnerRepository.java:77)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$FastClassBySpringCGLIB$$d4e0cf7.invoke(<generated>)
- at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
- at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
- at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
- at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$EnhancerBySpringCGLIB$$ed257c41.listEventTargetRunners(<generated>)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.getLatestTargetRunnerConfig(TargetRunnerConfigOnDBObserver.java:62)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.AbstractTargetRunnerConfigObserver.diff(AbstractTargetRunnerConfigObserver.java:110)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.lambda$addListen$0(TargetRunnerConfigOnDBObserver.java:82)
- at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
- at
java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
- at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
- at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at java.lang.Thread.run(Thread.java:748)
-2023-08-15 20:23:33 jdbc[3415]: exception
-org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic
closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-197]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.message.DbException.get(DbException.java:144)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502)
- at org.h2.jdbc.JdbcConnection.createStatement(JdbcConnection.java:217)
- at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:153)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:172)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:148)
- at
com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
- at
org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:151)
- at
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
- at
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
- at
org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
- at
org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
- at
org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
- at
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
- at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
- at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
- at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
- at com.sun.proxy.$Proxy81.selectList(Unknown Source)
- at
org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
- at
org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
- at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
- at
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
- at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
- at com.sun.proxy.$Proxy92.listEventTargetRunners(Unknown Source)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository.listEventTargetRunners(MybatisEventTargetRunnerRepository.java:77)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$FastClassBySpringCGLIB$$d4e0cf7.invoke(<generated>)
- at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
- at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
- at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
- at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$EnhancerBySpringCGLIB$$ed257c41.listEventTargetRunners(<generated>)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.getLatestTargetRunnerConfig(TargetRunnerConfigOnDBObserver.java:62)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.AbstractTargetRunnerConfigObserver.diff(AbstractTargetRunnerConfigObserver.java:110)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.lambda$addListen$0(TargetRunnerConfigOnDBObserver.java:82)
- at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
- at
java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
- at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
- at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at java.lang.Thread.run(Thread.java:748)
-2023-08-15 20:23:33 jdbc[3416]: exception
-org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic
closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-197]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.message.DbException.get(DbException.java:144)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502)
- at org.h2.jdbc.JdbcConnection.createStatement(JdbcConnection.java:217)
- at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:153)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:172)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:148)
- at
com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
- at
org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:151)
- at
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
- at
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
- at
org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
- at
org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
- at
org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
- at
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
- at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
- at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
- at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
- at com.sun.proxy.$Proxy81.selectList(Unknown Source)
- at
org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
- at
org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
- at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
- at
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
- at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
- at com.sun.proxy.$Proxy92.listEventTargetRunners(Unknown Source)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository.listEventTargetRunners(MybatisEventTargetRunnerRepository.java:77)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$FastClassBySpringCGLIB$$d4e0cf7.invoke(<generated>)
- at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
- at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
- at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
- at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$EnhancerBySpringCGLIB$$ed257c41.listEventTargetRunners(<generated>)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.getLatestTargetRunnerConfig(TargetRunnerConfigOnDBObserver.java:62)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.AbstractTargetRunnerConfigObserver.diff(AbstractTargetRunnerConfigObserver.java:110)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.lambda$addListen$0(TargetRunnerConfigOnDBObserver.java:82)
- at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
- at
java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
- at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
- at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at java.lang.Thread.run(Thread.java:748)
-2023-08-15 20:23:33 jdbc[3417]: exception
-org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic
closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-197]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.message.DbException.get(DbException.java:144)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526)
- at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502)
- at org.h2.jdbc.JdbcConnection.createStatement(JdbcConnection.java:217)
- at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:153)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:172)
- at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:148)
- at
com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
- at
org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:151)
- at
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
- at
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
- at
org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
- at
org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
- at
org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
- at
org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
- at
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
- at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
- at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
- at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
- at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
- at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
- at com.sun.proxy.$Proxy81.selectList(Unknown Source)
- at
org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
- at
org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
- at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
- at
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
- at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
- at com.sun.proxy.$Proxy92.listEventTargetRunners(Unknown Source)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository.listEventTargetRunners(MybatisEventTargetRunnerRepository.java:77)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$FastClassBySpringCGLIB$$d4e0cf7.invoke(<generated>)
- at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
- at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
- at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
- at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
- at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
- at
org.apache.rocketmq.eventbridge.adapter.persistence.target.mybatis.repository.MybatisEventTargetRunnerRepository$$EnhancerBySpringCGLIB$$ed257c41.listEventTargetRunners(<generated>)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.getLatestTargetRunnerConfig(TargetRunnerConfigOnDBObserver.java:62)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.AbstractTargetRunnerConfigObserver.diff(AbstractTargetRunnerConfigObserver.java:110)
- at
org.apache.rocketmq.eventbridge.adapter.runtime.service.TargetRunnerConfigOnDBObserver.lambda$addListen$0(TargetRunnerConfigOnDBObserver.java:82)
- at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
- at
java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
- at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
- at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
- at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+ at org.h2.message.DbException.get(DbException.java:168)
+ at org.h2.value.ValueTimestamp.parse(ValueTimestamp.java:147)
+ at org.h2.value.Value.convertTo(Value.java:1071)
+ at org.h2.table.Column.convert(Column.java:177)
+ at org.h2.command.dml.Insert.insertRows(Insert.java:166)
+ at org.h2.command.dml.Insert.update(Insert.java:134)
+ at org.h2.command.CommandContainer.update(CommandContainer.java:102)
+ at org.h2.command.Command.executeUpdate(Command.java:261)
+ at
org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:199)
+ at
org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:153)
+ at org.h2.result.UpdatableRow.insertRow(UpdatableRow.java:321)
+ at org.h2.jdbc.JdbcResultSet.insertRow(JdbcResultSet.java:2994)
+ at org.h2.server.web.WebApp.editResult(WebApp.java:1082)
+ at org.h2.server.web.WebApp.process(WebApp.java:227)
+ at org.h2.server.web.WebApp.processRequest(WebApp.java:170)
+ at org.h2.server.web.WebThread.process(WebThread.java:134)
+ at org.h2.server.web.WebThread.run(WebThread.java:90)
at java.lang.Thread.run(Thread.java:748)
+Caused by: java.lang.StringIndexOutOfBoundsException: String index out of
range: 0
+ at java.lang.String.charAt(String.java:658)
+ at org.h2.util.DateTimeUtils.parseDateValue(DateTimeUtils.java:337)
+ at org.h2.util.DateTimeUtils.parseTimestamp(DateTimeUtils.java:460)
+ at org.h2.value.ValueTimestamp.parse(ValueTimestamp.java:145)
+ ... 16 more
+2023-11-26 18:44:29 jdbc[8]: exception
+org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "SELECT * FROM
EVENT_CLUSTER
+
+
+
+
+ INSERT INTO[*]
""EVENT_CLUSTER""(""ID"",""NAME"",""RESOURCES"",""REPLICA"",""IMAGE"",""MD5"",""GMT_CREATE"",""GMT_MODIFY"")VALUES(1,'demo','{\""cpu\"":
0.2,\""memory\"":0.5}',3,'registry.cn-beijing.cr.aliyuncs.com/eventbridge:20231115195431f55971','env=key',NOW(),NOW())
"; SQL statement:
+SELECT * FROM EVENT_CLUSTER
+
+
+
+
+ INSERT INTO
"EVENT_CLUSTER"("ID","NAME","RESOURCES","REPLICA","IMAGE","MD5","GMT_CREATE","GMT_MODIFY")VALUES(1,'demo','{\"cpu\":
0.2,\"memory\":0.5}',3,'registry.cn-beijing.cr.aliyuncs.com/eventbridge:20231115195431f55971','env=key',now(),now())
[42000-197]
+2023-11-26 18:44:55 jdbc[8]: exception
+org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "SELECT * FROM
EVENT_CLUSTER
+
+
+
+
+ INSERT INTO
""EVENT_CLUSTER""(""ID"",""NAME"",""RESOURCES"",""REPLICA"",""IMAGE"",""MD5"",""GMT_CREATE"",""GMT_MODIFY"")VALUES(1,'demo','test,3,'registry.cn-beijing.cr.aliyuncs.com/eventbridge:20231115195431f55971','env=key[*]',now(),now());";
SQL statement:
+SELECT * FROM EVENT_CLUSTER
+
+
+
+
+ INSERT INTO
"EVENT_CLUSTER"("ID","NAME","RESOURCES","REPLICA","IMAGE","MD5","GMT_CREATE","GMT_MODIFY")VALUES(1,'demo','test,3,'registry.cn-beijing.cr.aliyuncs.com/eventbridge:20231115195431f55971','env=key',now(),now());
[42000-197]
diff --git a/scan.py b/scan.py
deleted file mode 100644
index e69de29..0000000
diff --git a/start/pom.xml b/start/pom.xml
index e1e1995..bfed07f 100644
--- a/start/pom.xml
+++ b/start/pom.xml
@@ -54,10 +54,10 @@
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-eventbridge-infrastructure</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.rocketmq</groupId>
- <artifactId>rocketmq-test-demo</artifactId>
- </dependency>
+<!-- <dependency>-->
+<!-- <groupId>org.apache.rocketmq</groupId>-->
+<!-- <artifactId>rocketmq-test-demo</artifactId>-->
+<!-- </dependency>-->
<!-- Framework -->
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -68,6 +68,11 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+
<artifactId>rocketmq-eventbridge-adapter-runtime-manager</artifactId>
+ <groupId>org.apache.rocketmq</groupId>
+ <version>1.0.0</version>
+ </dependency>
<!--Tools -->
<dependency>
<groupId>com.google.code.gson</groupId>
diff --git
a/test/demo/src/main/java/org/apache/rocketmq/eventbridge/demo/DefaultDemo.java
b/test/demo/src/main/java/org/apache/rocketmq/eventbridge/demo/DefaultDemo.java
index ce71c7a..bab366f 100644
---
a/test/demo/src/main/java/org/apache/rocketmq/eventbridge/demo/DefaultDemo.java
+++
b/test/demo/src/main/java/org/apache/rocketmq/eventbridge/demo/DefaultDemo.java
@@ -60,9 +60,9 @@ public class DefaultDemo {
@PostConstruct
public void initDemo() {
log.info("init demo");
- initEventBus();
- initEventRule();
- intEventTarget();
+// initEventBus();
+// initEventRule();
+// intEventTarget();
}