From 371b7bb9d67d70c1cbf8a9ea4dad37d3f5ab4bee Mon Sep 17 00:00:00 2001 From: John Sanda Date: Sun, 23 Aug 2015 14:55:06 -0400 Subject: [PATCH] [BZ 1208181] use local JMX connection for storage node --- .../main/bundle/cassandra/bin/cassandra.bat | 119 ++++++++++++++++++ .../cassandra/conf/cassandra-jvm.properties | 2 +- 2 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 modules/common/cassandra-ccm/cassandra-ccm-core/src/main/bundle/cassandra/bin/cassandra.bat diff --git a/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/bundle/cassandra/bin/cassandra.bat b/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/bundle/cassandra/bin/cassandra.bat new file mode 100644 index 00000000000..fa8f33a673a --- /dev/null +++ b/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/bundle/cassandra/bin/cassandra.bat @@ -0,0 +1,119 @@ +@REM +@REM Licensed to the Apache Software Foundation (ASF) under one or more +@REM contributor license agreements. See the NOTICE file distributed with +@REM this work for additional information regarding copyright ownership. +@REM The ASF licenses this file to You under the Apache License, Version 2.0 +@REM (the "License"); you may not use this file except in compliance with +@REM 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, software +@REM distributed under the License is distributed on an "AS IS" BASIS, +@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@REM See the License for the specific language governing permissions and +@REM limitations under the License. + +@echo off +if "%OS%" == "Windows_NT" setlocal + +set ARG=%1 +set INSTALL="INSTALL" +set UNINSTALL="UNINSTALL" + +pushd %~dp0.. +if NOT DEFINED CASSANDRA_HOME set CASSANDRA_HOME=%CD% +popd + +if NOT DEFINED CASSANDRA_MAIN set CASSANDRA_MAIN=org.apache.cassandra.service.CassandraDaemon +if NOT DEFINED JAVA_HOME goto :err + +REM ***** JAVA options ***** +set JAVA_OPTS=-ea^ + -javaagent:"%CASSANDRA_HOME%\lib\jamm-0.2.5.jar"^ + -Xms1G^ + -Xmx1G^ + -XX:+HeapDumpOnOutOfMemoryError^ + -XX:+UseParNewGC^ + -XX:+UseConcMarkSweepGC^ + -XX:+CMSParallelRemarkEnabled^ + -XX:SurvivorRatio=8^ + -XX:MaxTenuringThreshold=1^ + -XX:CMSInitiatingOccupancyFraction=75^ + -XX:+UseCMSInitiatingOccupancyOnly^ + -Dlog4j.configuration=log4j-server.properties^ + -Dlog4j.defaultInitOverride=true + -Dcassandra.jmx.local.port=7199 + REM **** JMX REMOTE ACCESS SETTINGS SEE: https://wiki.apache.org/cassandra/JmxSecurity *** + REM -Dcom.sun.management.jmxremote.port=7199^ + REM -Dcom.sun.management.jmxremote.ssl=false^ + REM -Dcom.sun.management.jmxremote.authenticate=true^ + REM -Dcom.sun.management.jmxremote.password.file=C:\jmxremote.password + +REM ***** CLASSPATH library setting ***** + +REM Ensure that any user defined CLASSPATH variables are not used on startup +set CLASSPATH="%CASSANDRA_HOME%\conf" + +REM For each jar in the CASSANDRA_HOME lib directory call append to build the CLASSPATH variable. +for %%i in ("%CASSANDRA_HOME%\lib\*.jar") do call :append "%%i" +goto okClasspath + +:append +set CLASSPATH=%CLASSPATH%;%1 +goto :eof + +:okClasspath +REM Include the build\classes\main directory so it works in development +set CASSANDRA_CLASSPATH=%CLASSPATH%;"%CASSANDRA_HOME%\build\classes\main";"%CASSANDRA_HOME%\build\classes\thrift" +set CASSANDRA_PARAMS=-Dcassandra -Dcassandra-foreground=yes +if /i "%ARG%" == "INSTALL" goto doInstallOperation +if /i "%ARG%" == "UNINSTALL" goto doInstallOperation +goto runDaemon + + +:runDaemon +echo Starting Cassandra Server +"%JAVA_HOME%\bin\java" %JAVA_OPTS% %CASSANDRA_PARAMS% -cp %CASSANDRA_CLASSPATH% "%CASSANDRA_MAIN%" +goto finally + +:doInstallOperation +set SERVICE_JVM="cassandra" +rem location of Prunsrv +set PATH_PRUNSRV=%CASSANDRA_HOME%\bin\daemon\ +set PR_LOGPATH=%PATH_PRUNSRV% + +rem fix up java ops replace ' -' with ' ;-' +set JAVA_OPTS_DELM=%JAVA_OPTS: -=;-% + +rem Allow prunsrv to be overridden +if "%PRUNSRV%" == "" set PRUNSRV=%PATH_PRUNSRV%prunsrv + +echo trying to delete service if it has been created already +"%PRUNSRV%" //DS//%SERVICE_JVM% +rem quit if we're just going to uninstall +if /i "%ARG%" == "UNINSTALL" goto finally + +echo. +echo Installing %SERVICE_JVM%. If you get registry warnings, re-run as an Administrator +"%PRUNSRV%" //IS//%SERVICE_JVM% +echo Setting the parameters for %SERVICE_JVM% +rem set PR_CLASSPATH=%CASSANDRA_CLASSPATH% +"%PRUNSRV%" //US//%SERVICE_JVM% ^ + --Jvm=auto --StdOutput auto --StdError auto ^ + --Classpath=%CASSANDRA_CLASSPATH% ^ + --StartMode=jvm --StartClass=%CASSANDRA_MAIN% --StartMethod=main ^ + --StopMode=jvm --StopClass=%CASSANDRA_MAIN% --StopMethod=stop ^ + ++JvmOptions=%JAVA_OPTS_DELM% ++JvmOptions=-DCassandra ^ + --PidFile pid.txt + +echo Installation of %SERVICE_JVM% is complete +goto finally + +:err +echo JAVA_HOME environment variable must be set! +pause + +:finally + +ENDLOCAL diff --git a/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/bundle/cassandra/conf/cassandra-jvm.properties b/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/bundle/cassandra/conf/cassandra-jvm.properties index a87b1438bab..5bb9a9337f1 100644 --- a/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/bundle/cassandra/conf/cassandra-jvm.properties +++ b/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/bundle/cassandra/conf/cassandra-jvm.properties @@ -110,6 +110,6 @@ GC_TUNING_OPTS="${cms_class_unloading_enabled} ${use_par_new_gc} ${use_concur_ma GC_LOGGING_OPTS="${print_gc_details} ${print_gc_datestamps} ${print_heap_at_gc} ${print_tenuring_distribution} ${print_gc_application_stopped_time} ${print_promotion_failure} ${print_flss_stats} ${gc_log_file}" -JMX_OPTS="-Djava.rmi.server.hostname=localhost -Dcom.sun.management.jmxremote.port=${jmx_port} -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" +JMX_OPTS="-Dcassandra.jmx.local.port=${jmx_port}" JVM_OPTS="${enable_assertions} ${java_agent} ${use_thread_priorities} ${thread_priority_policy} ${HEAP_OPTS} ${GC_TUNING_OPTS} ${GC_LOGGING_OPTS} ${JMX_OPTS} -Djava.net.preferIPv4Stack=true"