You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ca...@apache.org on 2022/11/30 10:36:47 UTC

[iotdb] branch rel/1.0 updated: [To rel/1.0] [IOTDB-5047] Fix iotdb.jmx.port missing from data-env.sh (#8240)

This is an automated email from the ASF dual-hosted git repository.

caogaofei pushed a commit to branch rel/1.0
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/rel/1.0 by this push:
     new 8553d9e08d [To rel/1.0] [IOTDB-5047] Fix iotdb.jmx.port missing from data-env.sh (#8240)
8553d9e08d is described below

commit 8553d9e08d76efc19f9e78dd0380fef1b1bd329d
Author: Itami Sho <42...@users.noreply.github.com>
AuthorDate: Wed Nov 30 18:36:39 2022 +0800

    [To rel/1.0] [IOTDB-5047] Fix iotdb.jmx.port missing from data-env.sh (#8240)
---
 .../src/assembly/resources/conf/confignode-env.bat |  2 ++
 .../src/assembly/resources/conf/confignode-env.sh  |  2 +-
 .../confignode/service/ConfigNodeCommandLine.java  |  3 +-
 .../apache/iotdb/commons/conf/IoTDBConstant.java   |  8 +++--
 .../iotdb/commons/service/StartupChecks.java       | 42 ++++++++++++++--------
 .../src/assembly/resources/conf/datanode-env.bat   |  2 ++
 server/src/assembly/resources/conf/datanode-env.sh |  2 +-
 .../java/org/apache/iotdb/db/service/DataNode.java |  2 +-
 .../java/org/apache/iotdb/db/service/IoTDB.java    |  2 +-
 .../java/org/apache/iotdb/db/service/NewIoTDB.java |  2 +-
 10 files changed, 44 insertions(+), 23 deletions(-)

diff --git a/confignode/src/assembly/resources/conf/confignode-env.bat b/confignode/src/assembly/resources/conf/confignode-env.bat
index 17365c7bc1..a165d5d19d 100644
--- a/confignode/src/assembly/resources/conf/confignode-env.bat
+++ b/confignode/src/assembly/resources/conf/confignode-env.bat
@@ -43,6 +43,8 @@ if %JMX_LOCAL% == "false" (
   echo "setting local JMX..."
 )
 
+set CONFIGNODE_JMX_OPTS=%CONFIGNODE_JMX_OPTS% -Diotdb.jmx.local=%JMX_LOCAL%
+
 for /f %%b in ('wmic cpu get numberofcores ^| findstr "[0-9]"') do (
 	set system_cpu_cores=%%b
 )
diff --git a/confignode/src/assembly/resources/conf/confignode-env.sh b/confignode/src/assembly/resources/conf/confignode-env.sh
index dd806b6307..a3de78e376 100644
--- a/confignode/src/assembly/resources/conf/confignode-env.sh
+++ b/confignode/src/assembly/resources/conf/confignode-env.sh
@@ -263,7 +263,7 @@ else
   echo "setting local JMX..."
 fi
 
-
+CONFIGNODE_JMX_OPTS="$CONFIGNODE_JMX_OPTS -Diotdb.jmx.local=$JMX_LOCAL"
 CONFIGNODE_JMX_OPTS="$CONFIGNODE_JMX_OPTS -Xms${HEAP_NEWSIZE}"
 CONFIGNODE_JMX_OPTS="$CONFIGNODE_JMX_OPTS -Xmx${MAX_HEAP_SIZE}"
 CONFIGNODE_JMX_OPTS="$CONFIGNODE_JMX_OPTS -XX:MaxDirectMemorySize=${MAX_DIRECT_MEMORY_SIZE}"
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNodeCommandLine.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNodeCommandLine.java
index ea97f5fc9b..76423ec104 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNodeCommandLine.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNodeCommandLine.java
@@ -20,6 +20,7 @@ package org.apache.iotdb.confignode.service;
 
 import org.apache.iotdb.common.rpc.thrift.TConfigNodeLocation;
 import org.apache.iotdb.commons.ServerCommandLine;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.exception.BadNodeUrlException;
 import org.apache.iotdb.commons.exception.ConfigurationException;
 import org.apache.iotdb.commons.exception.StartupException;
@@ -69,7 +70,7 @@ public class ConfigNodeCommandLine extends ServerCommandLine {
     if (MODE_START.equals(mode)) {
       try {
         // Startup environment check
-        StartupChecks checks = new StartupChecks().withDefaultTest();
+        StartupChecks checks = new StartupChecks(IoTDBConstant.CN_ROLE).withDefaultTest();
         checks.verify();
         // Do ConfigNode startup checks
         ConfigNodeStartupCheck.getInstance().startUpCheck();
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java b/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
index 00d8a48eaa..2e58d01d60 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
@@ -47,9 +47,12 @@ public class IoTDBConstant {
 
   public static final String BUILD_INFO;
 
-  public static final String ENV_FILE_NAME = "datanode-env";
+  public static final String DN_ENV_FILE_NAME = "datanode-env";
+  public static final String CN_ENV_FILE_NAME = "confignode-env";
   public static final String IOTDB_CONF = "IOTDB_CONF";
   public static final String GLOBAL_DB_NAME = "IoTDB";
+  public static final String CN_ROLE = "confignode";
+  public static final String DN_ROLE = "datanode";
 
   public static final String DN_RPC_ADDRESS = "dn_rpc_address";
   public static final String DN_RPC_PORT = "dn_rpc_port";
@@ -80,7 +83,8 @@ public class IoTDBConstant {
   public static final String SLOW_SQL_LOGGER_NAME = "SLOW_SQL";
   public static final String COMPACTION_LOGGER_NAME = "COMPACTION";
 
-  public static final String IOTDB_JMX_PORT = "iotdb.jmx.port";
+  public static final String IOTDB_JMX_LOCAL = "iotdb.jmx.local";
+  public static final String IOTDB_JMX_PORT = "com.sun.management.jmxremote.port";
 
   public static final String IOTDB_PACKAGE = "org.apache.iotdb.service";
   public static final String IOTDB_THREADPOOL_PACKAGE = "org.apache.iotdb.threadpool";
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/service/StartupChecks.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/StartupChecks.java
index 1000531b5d..17c898a47d 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/service/StartupChecks.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/StartupChecks.java
@@ -31,19 +31,6 @@ import java.util.List;
 public class StartupChecks {
 
   private static final Logger logger = LoggerFactory.getLogger(StartupChecks.class);
-  public static final StartupCheck checkJMXPort =
-      () -> {
-        String jmxPort = System.getProperty(IoTDBConstant.IOTDB_JMX_PORT);
-        if (jmxPort == null) {
-          logger.warn(
-              "{} missing from {}.sh(Unix or OS X, if you use Windows," + " check conf/{}.bat)",
-              IoTDBConstant.IOTDB_JMX_PORT,
-              IoTDBConstant.ENV_FILE_NAME,
-              IoTDBConstant.ENV_FILE_NAME);
-        } else {
-          logger.info("JMX is enabled to receive remote connection on port {}", jmxPort);
-        }
-      };
   public static final StartupCheck checkJDK =
       () -> {
         int version = JVMCommonUtils.getJdkVersion();
@@ -59,11 +46,36 @@ public class StartupChecks {
   private final List<StartupCheck> preChecks = new ArrayList<>();
   private final List<StartupCheck> defaultTests = new ArrayList<>();
 
-  public StartupChecks() {
-    defaultTests.add(checkJMXPort);
+  public StartupChecks(String nodeRole) {
+    defaultTests.add(() -> checkJMXPort(nodeRole));
     defaultTests.add(checkJDK);
   }
 
+  private void checkJMXPort(String nodeRole) {
+    Boolean jmxLocal = Boolean.valueOf(System.getProperty(IoTDBConstant.IOTDB_JMX_LOCAL));
+    String jmxPort = System.getProperty(IoTDBConstant.IOTDB_JMX_PORT);
+
+    if (jmxLocal) {
+      logger.info("Start JMX locally.");
+      return;
+    }
+
+    if (jmxPort == null) {
+      String filename =
+          nodeRole.equals(IoTDBConstant.DN_ROLE)
+              ? IoTDBConstant.DN_ENV_FILE_NAME
+              : IoTDBConstant.CN_ENV_FILE_NAME;
+      logger.warn(
+          "{} missing from {}.sh(Unix or OS X, if you use Windows," + " check conf/{}.bat)",
+          IoTDBConstant.IOTDB_JMX_PORT,
+          filename,
+          filename);
+    } else {
+      logger.info(
+          "Start JMX remotely: JMX is enabled to receive remote connection on port {}", jmxPort);
+    }
+  }
+
   public StartupChecks withDefaultTest() {
     preChecks.addAll(defaultTests);
     return this;
diff --git a/server/src/assembly/resources/conf/datanode-env.bat b/server/src/assembly/resources/conf/datanode-env.bat
index fb480412e0..d29a18116e 100644
--- a/server/src/assembly/resources/conf/datanode-env.bat
+++ b/server/src/assembly/resources/conf/datanode-env.bat
@@ -43,6 +43,8 @@ if %JMX_LOCAL% == "false" (
   echo "setting local JMX..."
 )
 
+set IOTDB_JMX_OPTS=%IOTDB_JMX_OPTS% -Diotdb.jmx.local=%JMX_LOCAL%
+
 for /f %%b in ('wmic cpu get numberofcores ^| findstr "[0-9]"') do (
 	set system_cpu_cores=%%b
 )
diff --git a/server/src/assembly/resources/conf/datanode-env.sh b/server/src/assembly/resources/conf/datanode-env.sh
index a2cfe1dbef..a79086612c 100755
--- a/server/src/assembly/resources/conf/datanode-env.sh
+++ b/server/src/assembly/resources/conf/datanode-env.sh
@@ -263,7 +263,7 @@ else
   echo "setting local JMX..."
 fi
 
-
+IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Diotdb.jmx.local=$JMX_LOCAL"
 IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Xms${HEAP_NEWSIZE}"
 IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Xmx${MAX_HEAP_SIZE}"
 IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -XX:MaxDirectMemorySize=${MAX_DIRECT_MEMORY_SIZE}"
diff --git a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
index ce010a7939..5bb1a9b474 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
@@ -191,7 +191,7 @@ public class DataNode implements DataNodeMBean {
   /** Prepare cluster IoTDB-DataNode */
   private void prepareDataNode() throws StartupException {
     // check iotdb server first
-    StartupChecks checks = new StartupChecks().withDefaultTest();
+    StartupChecks checks = new StartupChecks(IoTDBConstant.DN_ROLE).withDefaultTest();
     checks.verify();
 
     // Register services
diff --git a/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java b/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
index f1e700fe23..cd895c0ff1 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
@@ -94,7 +94,7 @@ public class IoTDB implements IoTDBMBean {
 
   public void active() {
     processPid();
-    StartupChecks checks = new StartupChecks().withDefaultTest();
+    StartupChecks checks = new StartupChecks(IoTDBConstant.DN_ROLE).withDefaultTest();
     try {
       checks.verify();
     } catch (StartupException e) {
diff --git a/server/src/main/java/org/apache/iotdb/db/service/NewIoTDB.java b/server/src/main/java/org/apache/iotdb/db/service/NewIoTDB.java
index 182b043449..6abd0d6bd7 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/NewIoTDB.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/NewIoTDB.java
@@ -87,7 +87,7 @@ public class NewIoTDB implements NewIoTDBMBean {
 
   public void active(boolean isTesting) {
     processPid();
-    StartupChecks checks = new StartupChecks().withDefaultTest();
+    StartupChecks checks = new StartupChecks(IoTDBConstant.DN_ROLE).withDefaultTest();
     try {
       checks.verify();
     } catch (StartupException e) {