blob: 2501a0645c2a5f89b2e70672c830a4370b9a99be [file] [log] [blame]
@REM
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM http://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM
@echo off
@REM set cmd format
powershell -NoProfile -Command "$v=(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').CurrentMajorVersionNumber; if($v -gt 6) { cmd /c 'chcp 65001' }"
title IoTDB ConfigNode
echo ```````````````````````````
echo Starting IoTDB ConfigNode
echo ```````````````````````````
set PATH="%JAVA_HOME%\bin\";%PATH%
set "FULL_VERSION="
set "MAJOR_VERSION="
set "MINOR_VERSION="
for /f tokens^=2-5^ delims^=.-_+^" %%j in ('java -fullversion 2^>^&1') do (
set "FULL_VERSION=%%j-%%k-%%l-%%m"
IF "%%j" == "1" (
set "MAJOR_VERSION=%%k"
set "MINOR_VERSION=%%l"
) else (
set "MAJOR_VERSION=%%j"
set "MINOR_VERSION=%%k"
)
)
set JAVA_VERSION=%MAJOR_VERSION%
@REM we do not check jdk that version less than 1.8 because they are too stale...
IF "%JAVA_VERSION%" == "6" (
echo IoTDB only supports jdk >= 8, please check your java version.
goto finally
)
IF "%JAVA_VERSION%" == "7" (
echo IoTDB only supports jdk >= 8, please check your java version.
goto finally
)
if "%OS%" == "Windows_NT" setlocal
pushd %~dp0..\..
if NOT DEFINED CONFIGNODE_HOME set CONFIGNODE_HOME=%cd%
popd
set CONFIGNODE_CONF=%CONFIGNODE_HOME%\conf
set CONFIGNODE_LOGS=%CONFIGNODE_HOME%\logs
@setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
set is_conf_path=false
for %%i in (%*) do (
IF "%%i" == "-c" (
set is_conf_path=true
) ELSE IF "!is_conf_path!" == "true" (
set is_conf_path=false
set CONFIGNODE_CONF=%%i
)
)
IF EXIST "%CONFIGNODE_CONF%\windows\confignode-env.bat" (
CALL "%CONFIGNODE_CONF%\windows\confignode-env.bat" %1
) ELSE (
echo "Can't find %CONFIGNODE_CONF%\windows\confignode-env.bat"
)
@REM CHECK THE PORT USAGES
@REM SET CONFIG FILE
IF EXIST "%CONFIGNODE_CONF%\iotdb-system.properties" (
set CONFIG_FILE="%CONFIGNODE_CONF%\iotdb-system.properties"
) ELSE IF EXIST "%CONFIGNODE_HOME%\conf\iotdb-system.properties" (
set CONFIG_FILE="%CONFIGNODE_HOME%\conf\iotdb-system.properties"
) ELSE IF EXIST "%CONFIGNODE_CONF%\iotdb-confignode.properties" (
set CONFIG_FILE="%CONFIGNODE_CONF%\iotdb-confignode.properties"
) ELSE IF EXIST "%CONFIGNODE_HOME%\conf\iotdb-confignode.properties" (
set CONFIG_FILE="%CONFIGNODE_HOME%\conf\iotdb-confignode.properties"
) ELSE (
set CONFIG_FILE=
)
IF DEFINED CONFIG_FILE (
for /f "eol=# tokens=2 delims==" %%i in ('findstr /i "^cn_internal_port"
"%CONFIG_FILE%"') do (
set cn_internal_port=%%i
)
for /f "eol=# tokens=2 delims==" %%i in ('findstr /i "^cn_consensus_port"
"%CONFIG_FILE%"') do (
set cn_consensus_port=%%i
)
) ELSE (
echo "Can't find iotdb-system.properties or iotdb-confignode.properties, check the default ports"
set cn_internal_port=10710
set cn_consensus_port=10720
)
echo Check whether the ports are occupied....
set occupied=0
set cn_internal_port_occupied=0
set cn_consensus_port_occupied=0
for /f "tokens=1,3,7 delims=: " %%i in ('netstat /ano') do (
if %%i==TCP (
if %%j==%cn_internal_port% (
if !cn_internal_port_occupied!==0 (
echo The cn_internal_port %cn_internal_port% is already occupied, pid:%%k
set occupied=1
set cn_internal_port_occupied=1
)
) else if %%j==%cn_consensus_port% (
if !cn_consensus_port_occupied!==0 (
echo The cn_consensus_port %cn_consensus_port% is already occupied, pid:%%k
set occupied=1
set cn_consensus_port_occupied=1
)
)
)
)
if %occupied%==1 (
echo There exists occupied port, please change the configuration.
TIMEOUT /T 10 /NOBREAK
exit 0
)
set CONF_PARAMS=-s
if NOT DEFINED MAIN_CLASS set MAIN_CLASS=org.apache.iotdb.confignode.service.ConfigNode
if NOT DEFINED JAVA_HOME goto :err
@REM -----------------------------------------------------------------------------
@REM JVM Opts we'll use in legacy run or installation
set JAVA_OPTS=-ea^
-Dlogback.configurationFile="%CONFIGNODE_CONF%\logback-confignode.xml"^
-DCONFIGNODE_HOME="%CONFIGNODE_HOME%"^
-DCONFIGNODE_CONF="%CONFIGNODE_CONF%"^
-Dsun.jnu.encoding=UTF-8^
-Dfile.encoding=UTF-8
@REM ***** CLASSPATH library setting *****
@REM Ensure that any user defined CLASSPATH variables are not used on startup
if EXIST "%CONFIGNODE_HOME%\lib" (set CLASSPATH="%CONFIGNODE_HOME%\lib\*") else set CLASSPATH="%CONFIGNODE_HOME%\..\lib\*"
set CLASSPATH=%CLASSPATH%;iotdb.ConfigNode
goto okClasspath
:append
set CLASSPATH=%CLASSPATH%;%1
goto :eof
@REM -----------------------------------------------------------------------------
:okClasspath
rem echo CLASSPATH: %CLASSPATH%
@REM SET PARA
@REM Before v0.14, iotdb-server runs in foreground by default
@REM set foreground=0
set foreground=yes
:checkPara
set COMMANSLINE=%*
@REM setlocal ENABLEDELAYEDEXPANSION
:STR_VISTOR
for /f "tokens=1* delims= " %%a in ("%COMMANSLINE%") do (
@REM -----more para-----
for /f "tokens=1* delims==" %%1 in ("%%a") do (
@REM echo 1=%%1 "|||" 2=%%2
if "%%1"=="-v" ( java %JAVA_OPTS% -Dlogback.configurationFile="%CONFIGNODE_CONF%/logback-tool.xml" -cp %CLASSPATH% org.apache.iotdb.db.service.GetVersion & goto finally )
if "%%1"=="-f" ( set foreground=yes)
if "%%1"=="-d" ( set foreground=0)
)
set COMMANSLINE=%%b
goto STR_VISTOR
)
@REM ----------------------------------------------------------------------------
@REM START
:start
if %foreground%==yes (
java %ILLEGAL_ACCESS_PARAMS% %JAVA_OPTS% %CONFIGNODE_HEAP_OPTS% -cp %CLASSPATH% %CONFIGNODE_JMX_OPTS% %MAIN_CLASS% %CONF_PARAMS%
) ELSE (
start javaw %ILLEGAL_ACCESS_PARAMS% %JAVA_OPTS% %CONFIGNODE_HEAP_OPTS% -cp %CLASSPATH% %CONFIGNODE_JMX_OPTS% %MAIN_CLASS% %CONF_PARAMS%
)
goto finally
:err
echo JAVA_HOME environment variable must be set!
pause
:finally
@ENDLOCAL
pause