You are viewing the RapidMiner Server documentation for version 8.1 - Check here for latest version
Using JBoss EAP 6.4 GA version
RapidMiner Server is bundled with JBoss EAP Alpha versions due to licensing restrictions. If you have the necessary license to run the JBoss EAP 6.4 GA version then you can also use it to run RapidMiner Server. The following steps are required to use the JBoss EAP 6.4 GA version:
Setting up the application server
RapidMiner Server requires configuration changes to the default JBoss EAP configuration. Normally the RapidMiner Server installer takes care of these changes but because of licensing restrictions the installer is shipped with the JBoss EAP Alpha version. As a result to run RapidMiner Server on a JBoss EAP GA instance you will need to manually perform the necessary configurations. The following sections will guide you step by step how to do so.
JBoss boot modules
Regardless of whether you are running the JBoss EAP under Windows, OS X or Linux the respective bootstrap scripts located in the bin folder need to be modified by adding the jboss-modules jar to the bootstrap class path with the following JVM option: -Xbootclasspath/a:\"$JBOSS_HOME/jboss-modules.jar\"
if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then
# Execute the JVM in the foreground
eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \
\"-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log\" \
\"-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties\" \
-Xbootclasspath/a:\"$JBOSS_HOME/jboss-modules.jar\" \
-jar \""$JBOSS_HOME"/jboss-modules.jar\" \
$MODULE_OPTS \
-mp \""${JBOSS_MODULEPATH}"\" \
-jaxpmodule "javax.xml.jaxp-provider" \
org.jboss.as.standalone \
-Djboss.home.dir=\""$JBOSS_HOME"\" \
-Djboss.server.base.dir=\""$JBOSS_BASE_DIR"\" \
"$SERVER_OPTS"
JBOSS_STATUS=$?
else
# Execute the JVM in the background
eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \
\"-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log\" \
\"-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties\" \
-Xbootclasspath/a:\"$JBOSS_HOME/jboss-modules.jar\" \
-jar \""$JBOSS_HOME"/jboss-modules.jar\" \
$MODULE_OPTS \
-mp \""${JBOSS_MODULEPATH}"\" \
-jaxpmodule "javax.xml.jaxp-provider" \
org.jboss.as.standalone \
-Djboss.home.dir=\""$JBOSS_HOME"\" \
-Djboss.server.base.dir=\""$JBOSS_BASE_DIR"\" \
"$SERVER_OPTS" "&"
JBOSS_PID=$!
:RESTART if x%XLOGGC% == x ( "%JAVA%" %JAVA_OPTS% ^ "-Dorg.jboss.boot.log.file=%JBOSS_LOG_DIR%\server.log" ^ "-Dlogging.configuration=file:%JBOSS_CONFIG_DIR%/logging.properties" ^
-Xbootclasspath/a:"%JBOSS_HOME%\jboss-modules.jar" ^
-jar "%JBOSS_HOME%\jboss-modules.jar" ^ %MODULE_OPTS% ^ -mp "%JBOSS_MODULEPATH%" ^ -jaxpmodule "javax.xml.jaxp-provider" ^ org.jboss.as.standalone ^ "-Djboss.home.dir=%JBOSS_HOME%" ^ %SERVER_OPTS% ) else ( "%JAVA%" -Xloggc:%XLOGGC% %JAVA_OPTS% ^ "-Dorg.jboss.boot.log.file=%JBOSS_LOG_DIR%\server.log" ^ "-Dlogging.configuration=file:%JBOSS_CONFIG_DIR%/logging.properties" ^
-Xbootclasspath/a:"%JBOSS_HOME%\jboss-modules.jar" ^
-jar "%JBOSS_HOME%\jboss-modules.jar" ^ %MODULE_OPTS% ^ -mp "%JBOSS_MODULEPATH%" ^ -jaxpmodule "javax.xml.jaxp-provider" ^ org.jboss.as.standalone ^ "-Djboss.home.dir=%JBOSS_HOME%" ^ %SERVER_OPTS% )
JBoss JVM options configuration
JBoss EAP needs to be started with specific JVM options for RapidMiner Server to work as expected. The java location can be set in the bin/standalone.conf.bat file for Windows platforms or the /bin/standalone.conf file in the case of Linux and OS X platforms while JVM maximum memory can be adjusted by creating the standalone/configuration/max-memory.conf file.
8192M
The expected value in the file is a number followed by letter ‘M’ which signifies the size of memory in MB. In this example the maximum amount of memory that RapidMiner Server may allocate is 8192 MB.
The amount set in the max-memory.conf file MUST be greater than the Xms option specified in /bin/standalone.conf or /bin/standalone.conf.bat depending on your platform.
Change place holder "%%%%%JAVA_LOCATION%%%%%" to the path of your jre/jdk installation and make sure that it’s version is compatible with the RapidMiner Server version you want to install.
## -*- shell-script -*- ######################################################
## ##
## JBoss Bootstrap Script Configuration ##
## ##
##############################################################################
#
# This file is optional; it may be removed if not needed.
#
#
# Specify the maximum file descriptor limit, use "max" or "maximum" to use
# the default, as queried by the system.
#
# Defaults to "maximum"
#
#MAX_FD="maximum"
#
# Specify the profiler configuration file to load.
#
# Default is to not load profiler configuration file.
#
#PROFILER=""
#
# Specify the location of the Java home directory. If set then $JAVA will
# be defined to $JAVA_HOME/bin/java, else $JAVA will be "java".
#
JAVA_HOME="%%%%%JAVA_LOCATION%%%%%"
#
# Specify the exact Java VM executable to use.
#
#JAVA=""
if [ "x$JBOSS_MODULES_SYSTEM_PKGS" = "x" ]; then
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman"
fi
# Uncomment the following line to prevent manipulation of JVM options
# by shell scripts.
#
#PRESERVE_JAVA_OPTS=true
#
# Use Xmx settings file introduced in RapidMiner Server 7.2
#
MAX_MEMORY_CONFIG_FILE="$DIRNAME/../standalone/configuration/max-memory.conf"
if [ -r "$MAX_MEMORY_CONFIG_FILE" ]; then
MAX_MEMORY_CONFIG=$(cat "$MAX_MEMORY_CONFIG_FILE")
else
MAX_MEMORY_CONFIG="2048m"
fi
#
# Specify options to pass to the Java VM.
#
if [ "x$JAVA_OPTS" = "x" ]; then
JAVA_OPTS="-Xms1303m -Xmx$MAX_MEMORY_CONFIG -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true"
JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:MaxGCPauseMillis=50"
JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
JAVA_OPTS="$JAVA_OPTS -Djboss.modules.policy-permissions=true"
JAVA_OPTS="$JAVA_OPTS -Duser.country=US -Duser.language=en"
# Set pooled JNDI connection timeout in milliseconds JAVA_OPTS="$JAVA_OPTS -Dcom.sun.jndi.ldap.connect.pool.timeout=300000"
else
echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS"
fi
# Sample JPDA settings for remote socket debugging
#JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"
# Sample JPDA settings for shared memory debugging
#JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_shmem,server=y,suspend=n,address=jboss"
# Uncomment to not use JBoss Modules lockless mode
#JAVA_OPTS="$JAVA_OPTS -Djboss.modules.lockless=false"
# Uncomment to gather JBoss Modules metrics
#JAVA_OPTS="$JAVA_OPTS -Djboss.modules.metrics=true"
# Uncomment this to run with a security manager enabled
# SECMGR="true"
Change place holder "%%%%%JAVA_LOCATION%%%%%" to the path of your jre/jdk installation and make sure that it’s version is compatible with the RapidMiner Server version you want to install.
rem ### -*- batch file -*- ######################################################
rem # ##
rem # JBoss Bootstrap Script Configuration ##
rem # ##
rem #############################################################################
rem # $Id: run.conf.bat 88820 2009-05-13 15:25:44Z [email protected] $
rem #
rem # This batch file is executed by run.bat to initialize the environment
rem # variables that run.bat uses. It is recommended to use this file to
rem # configure these variables, rather than modifying run.bat itself.
rem #
rem Uncomment the following line to disable manipulation of JAVA_OPTS (JVM parameters)
rem set PRESERVE_JAVA_OPTS=true
rem # removed because when installing RA necessary options are defined; -xrs parameter of service would trigger skip
rem if not "x%JAVA_OPTS%" == "x" (
rem echo "JAVA_OPTS already set in environment; overriding default settings with values: %JAVA_OPTS%"
rem goto JAVA_OPTS_SET
rem )
rem #
rem # Specify the JBoss Profiler configuration file to load.
rem #
rem # Default is to not load a JBoss Profiler configuration file.
rem #
rem set "PROFILER=%JBOSS_HOME%\bin\jboss-profiler.properties"
rem #
rem # Specify the location of the Java home directory (it is recommended that
rem # this always be set). If set, then "%JAVA_HOME%\bin\java" will be used as
rem # the Java VM executable; otherwise, "%JAVA%" will be used (see below).
rem #
set "JAVA_HOME=%%%%%JAVA_LOCATION%%%%%"
rem #
rem # Specify the exact Java VM executable to use - only used if JAVA_HOME is
rem # not set. Default is "java".
rem #
rem set "JAVA=C:\opt\jdk1.6.0_23\bin\java"
rem #
rem # Specify options to pass to the Java VM. Note, there are some additional
rem # options that are always passed by run.bat.
rem #
rem # Use Xmx settings file introduced in RapidMiner Server 7.2
if exist %DIRNAME%\..\standalone\configuration\max-memory.conf (
set /p MAX_MEMORY_CONFIG=<%DIRNAME%\..\standalone\configuration\max-memory.conf
) else (
set MAX_MEMORY_CONFIG=2048m
)
rem # JVM memory allocation pool parameters - modify as appropriate.
set "JAVA_OPTS=%JAVA_OPTS% -Xms1303M -Xmx%MAX_MEMORY_CONFIG% -XX:MaxPermSize=256M"
set "JAVA_OPTS=%JAVA_OPTS% -XX:+UseG1GC -XX:MaxGCPauseMillis=50"
rem # Prefer IPv4
set "JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true"
rem # Set pooled JNDI connection timeout in milliseconds set "JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.jndi.ldap.connect.pool.timeout=300000"
rem # Set the jboss.modules.policy-permissions property to true by default.
set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.policy-permissions=true "
rem # Make Byteman classes visible in all module loaders
rem # This is necessary to inject Byteman rules into AS7 deployments
set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.system.pkgs=org.jboss.byteman"
rem # Set to english logging
set "JAVA_OPTS=%JAVA_OPTS% -Duser.country=US -Duser.language=en"
rem # Sample JPDA settings for remote socket debugging
rem set "JAVA_OPTS=%JAVA_OPTS% -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"
rem # Sample JPDA settings for shared memory debugging
rem set "JAVA_OPTS=%JAVA_OPTS% -agentlib:jdwp=transport=dt_shmem,address=jboss,server=y,suspend=n"
rem # Use JBoss Modules lockless mode
rem set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.lockless=true"
rem # Uncomment this to run with a security manager enabled
rem set "SECMGR=true"
:JAVA_OPTS_SET
JDBC driver configuration
Configure the JDBC driver to allow connection to your repository database. JBoss GA does not come with bundled JDBC drivers so you will need to download the driver and store it to the appropriate location under modules/system/layers/base folder. Depending on the underlying database you are using the full path will differ:
- Microsoft SQL Server: create the
com/mssql/mainsubfolder structure inside the base folder and copy the driver library (for examplesqljdbc4-4.0.jar) into it. - MySQL: create the
com/mysql/mainsubfolder structure inside the base folder and copy the driver library (for examplemysql-connector-java-5.1.31.jar) into it. - Oracle: create the
oracle/mainsubfolder structure inside the base folder and copy the driver library (for exampleojdbc7-12.1.0.1.jar) into it. - PostgreSQL: create the
org/postgresqlsubfolder structure inside the base folder and copy the driver library (for examplepostgresql-42.1.4.jar) into it.
You also need to register the JDBC driver library by creating a module.xml file in the same folder the driver is stored. Depending on the driver and version you will need to modify the name="..." and path="..." attributes.
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com/mssql">
<resources>
<resource-root path="sqljdbc4-4.0.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
</dependencies>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com/mysql">
<resources>
<resource-root path="mysql-connector-java-5.1.31.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
</dependencies>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="oracle">
<resources>
<resource-root path="ojdbc7-12.1.0.1.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="org/postgresql">
<resources>
<resource-root path="postgresql-42.1.4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
Modify JBoss database configuration
Now that JBoss is able to use the JDBC driver you need to add a data source and register the JDBC driver in standalone/configuration/standalone.xml.
The data source describes the connection to the RapidMiner Server repository database while the driver defines the Java class that implements the JDBC driver class. Data source and driver definition may vary depending on the type of database you use.
You need to add the datasource and the driver tags under datasources tag. Also do not forget to change:
- the
<connection-url>...<connection-url>according to your JDBC driver, - the
<driver-class>...</driver-class>and<xa-datasource-class>...</xa-datasource-class>depending on the JDBC driver class, - the
<driver>...</driver>, the<driver name="..." module="...">depending on the JDBC driver library you configured. - within the new
datasourceelement, update thesecurityelement with the correctuser-nameandpassword.
<datasource jta="true" jndi-name="java:/jdbc/RapidAnalyticsDS"
pool-name="RapidAnalyticsDS" enabled="true" use-java-context="false"
use-ccm="true">
<connection-url>jdbc:sqlserver://dbhost:1433;databaseName=dbschema;SelectMethod=cursor;</connection-url>
<driver>sqljdbc4-4.0.jar</driver>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
<prefill>false</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>dbuser</user-name>
<password>dbpassword</password>
</security>
<validation>
<!-- Ensure that a DB outage is detected and Server is able to restore DB connections afterwards again -->
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>5000</background-validation-millis>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"></valid-connection-checker>
</validation>
</datasource>
<drivers>
<driver name="sqljdbc4-4.0.jar" module="com/mysql">
<xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</xa-datasource-class>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
</driver>
</drivers>
<datasource jta="true" jndi-name="java:/jdbc/RapidAnalyticsDS"
pool-name="RapidAnalyticsDS" enabled="true" use-java-context="false"
use-ccm="true">
<connection-url>jdbc:mysql://dbhost:3306/dbschema</connection-url>
<connection-property name="rewriteBatchedStatements">true</connection-property>
<driver>mysql-connector-java-5.1.31.jar</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<min-pool-size>0</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>dbuser</user-name>
<password>dbpassword</password>
</security>
<validation>
<!-- Ensure that a DB outage is detected and Server is able to restore DB connections afterwards again -->
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>5000</background-validation-millis>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"></valid-connection-checker>
</validation>
<statement>
<prepared-statement-cache-size>0</prepared-statement-cache-size>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<drivers>
<driver name="mysql-connector-java-5.1.31.jar" module="com/mysql">
<xa-datasource-class>com.mysql.jdbc.Driver</xa-datasource-class>
<driver-class>com.mysql.jdbc.Driver</driver-class>
</driver>
</drivers>
<datasource jta="true" jndi-name="java:/jdbc/RapidAnalyticsDS"
pool-name="RapidAnalyticsDS" enabled="true" use-java-context="false"
use-ccm="true">
<connection-url>jdbc:oracle:thin:@dbhost:1521:dbschema</connection-url>
<driver>ojdbc7-12.1.0.1.jar</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>dbuser</user-name>
<password>dbpassword</password>
</security>
<validation>
<!-- Ensure that a DB outage is detected and Server is able to restore DB connections afterwards again -->
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>5000</background-validation-millis>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"></valid-connection-checker>
</validation>
</datasource>
<drivers>
<driver name="ojdbc7-12.1.0.1.jar" module="oracle">
<xa-datasource-class>oracle.jdbc.driver.OracleDriver</xa-datasource-class>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
</drivers>
</driver>
<datasource jta="true" jndi-name="java:/jdbc/RapidAnalyticsDS"
pool-name="RapidAnalyticsDS" enabled="true" use-java-context="false"
use-ccm="true">
<connection-url>jdbc:postgresql://dbhost:5432/dbschema</connection-url>
<driver>postgresql-42.1.4.jar</driver>
<security>
<user-name>dbuser</user-name>
<password>dbpassword</password>
</security>
<validation>
<!-- Ensure that a DB outage is detected and Server is able to restore DB connections afterwards again -->
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>5000</background-validation-millis>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"></valid-connection-checker>
</validation>
</datasource>
<drivers>
<driver name="postgresql-42.1.4.jar" module="org/postgresql">
<xa-datasource-class>org.postgresql.Driver</xa-datasource-class>
<driver-class>org.postgresql.Driver</driver-class>
</driver>
</drivers>
Disable Subdeployment Class Loader Isolation
To disable Subdeployment class loader Isolation within an ear file locate the <subsystem xmlns="urn:jboss:domain:ee:1.2"> element within the standalone/configuration/standalone.xml and replace the
<jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement> element with
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>.
Modify JBoss security configuration
The standalone/configuration/standalone.xml file needs to be adjusted with an additional security-domain element with attribute name="RapidAnalyticsEJBDomain" that defines the security domain used by RapidMiner Server for authentication and access control. This element needs to be placed within the security-domains element:
<security-domains>
<security-domain name="other" cache-type="default">
<authentication>
<login-module code="Remoting" flag="optional">
<module-option name="password-stacking" value="useFirstPass"/>
</login-module>
<login-module code="RealmDirect" flag="required">
<module-option name="password-stacking" value="useFirstPass"/>
</login-module>
</authentication>
</security-domain>
<security-domain name="RapidAnalyticsEJBDomain" cache-type="default">
<authorization>
<policy-module code="Delegating" flag="required"/>
</authorization>
</security-domain>
<security-domain name="jboss-web-policy" cache-type="default">
<authorization>
<policy-module code="Delegating" flag="required"/>
</authorization>
</security-domain>
<security-domain name="jboss-ejb-policy" cache-type="default">
<authorization>
<policy-module code="Delegating" flag="required"/>
</authorization>
</security-domain>
<security-domain name="radoop-kerberos" cache-type="default">
<authentication>
<login-module code="com.sun.security.auth.module.Krb5LoginModule" flag="required">
<module-option name="storeKey" value="true"/>
</login-module>
</authentication>
</security-domain>
<!-- "hadoop_default", "Client_simple" and "Client" modules are only necessary if you use Radoop on RM Server, and want to connect to a MapR cluster. -->
<security-domain name="hadoop_default" cache-type="default">
<authentication>
<login-module code="org.apache.hadoop.security.login.GenericOSLoginModule" flag="required">
</login-module>
<login-module code="com.mapr.security.maprsasl.MaprSecurityLoginModule" flag="required">
<module-option name="checkUGI" value="false"/>
</login-module>
<login-module code="org.apache.hadoop.security.login.HadoopLoginModule" flag="required">
<module-option name="principalPriority" value="com.mapr.security.MapRPrincipal"/>
</login-module>
</authentication>
</security-domain>
<security-domain name="Client_simple" cache-type="default">
<authentication>
<login-module code="com.mapr.security.simplesasl.GenericLoginModule" flag="required">
<module-option name="authMech" value="SIMPLE-SECURITY"/>
</login-module>
</authentication>
</security-domain>
<security-domain name="Client" cache-type="default">
<authentication>
<login-module code="com.mapr.security.maprsasl.MaprSecurityLoginModule" flag="required">
<module-option name="checkUGI" value="false"/>
<module-option name="authMech" value="MAPR-SECURITY"/>
<module-option name="debug" value="true"/>
</login-module>
</authentication>
</security-domain>
</security-domains>
In order to enable LDAP authentication you will need to create the local-security.properties and store it in the /standalone/configuration folder. Then follow the steps as explained in Changing LDAP settings guide
JBoss virtual server configuration
RapidMiner Server additionally requires changes to virtual server configuration in standalone/configuration/standalone.xml file. Locate the virtual server subsystem with attribute xmlns="urn:jboss:domain:web:2.2". There be sure to make the following changes:
- change
default-virtual-serverattribute to have the value"ra-host" - add a
virtual-serverelement with the following attributes and its values:name="ra-host",enable-welcome-root="false"anddefault-web-module="ROOT" - inside the
virtual-serverelement create analiaselement with an attributenamewhose value is the host name RapidMiner server will be accessible, for example<alias name="www.rapidminer.com"/>
"%%%%%SERVER_HOST%%%%%" to the address RapidMiner Server should be accessible from.
<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="ra-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<virtual-server name="default-host" enable-welcome-root="false">
<alias name="example.com"/>
</virtual-server>
<virtual-server name="ra-host" enable-welcome-root="false" default-web-module="ROOT">
<alias name="%%%%%SERVER_HOST%%%%%"/>
</virtual-server>
</subsystem>
JBoss interface configuration
The JBoss application server needs to be configured on which address the application as well as the management endpoints of the server should be accessed. To do this the interfaces and <socket-binding-group> elements need to be adapted in the standalone/configuration/standalone.xml configuration file. Specifically:
- adjust the nested
interfaceelements with name attribute valuesmanagement,public,unsecureto contain aninet-addresselement as follows:<inet-address value="${jboss.bind.address.management:%%%%%SERVER_HOST%%%%%}"/>.Be sure to change
%%%%%SERVER_HOST%%%%%placeholder to the address you set previously asaliasname when configuring the virtual server element - add an additional
interfaceelement of which the attributenameisanyand has a nested<any-ipv4-address/>element - locate the
<socket-binding-group>element and change it'sdefault-interfaceattribute value to"any".
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:%%%%%SERVER_HOST%%%%%}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:%%%%%SERVER_HOST%%%%%}"/>
</interface>
<interface name="unsecure">
<inet-address value="${jboss.bind.address.unsecure:%%%%%SERVER_HOST%%%%%}"/>
</interface>
<interface name="any">
<any-ipv4-address/>
</interface>
</interfaces>
Configure the WSDL SOAP address
To configure the soap:address element which the RapidMiner Server WSDL lists you will need to update the
<wsdl-host> element in the standalone/configuration/standalone.xml with the address %%%%%SERVER_HOST%%%%% you set during the JBoss interface configuration step.
Bind RapidMiner Server to a specific address (Optional)
It is possible to bind the Rapidminer Server access to specific address. To do this you need first to configure a virtual server address and assign it to an interface. Once you have completed these steps locate the <socket-binding-group> element in the standalone/configuration/standalone.xml file and change it's default-interface attribute value to "public".
Change the default http port (Optional)
The default port for the http requests directed to RapidMiner Server (currently 8080) can be changed via the standalone/configuration/standalone.xml. Locate the <socket-binding-group> and the nested <socket-binding> element of which the attribute name has "http" value. Change the port attribute accordingly.
JBoss virtual SMTP configuration (Optional)
To be able to send automated e-mails from RadpidMiner Server, the JBoss virtual SMTP configuration needs to be adjusted. This step is optional and can be skipped if you do not require the e-mail functionality of RapidMiner Server.
Locate the mail-session tag within standalone/configuration/standalone.xml and change the following:
- update the
jndi-nameattribute to value"java:/Mail" - add the
debugattribute with value"false" - add the
fromattribute with the value you want to appear as the sender of the e-mail, for example [email protected] - change the nested
smtp-serverelement from empty element tag to an element with start and end tags. Within the element add alogin-nameelement with the attributesnameandpasswordfor the smtp server user that will be used to send the e-mail.
"%%%%%MAIL_SENDER%%%%%" to the email address you want to appear as the sender of the e-mail, and placeholders
%%%%%MAIL_USER%%%%%,%%%%%MAIL_PASSWORD%%%%% to the credentials of the user that will be used to send the e-mail by the smtp server.
<mail-session jndi-name="java:/Mail" debug="false" from="%%%%%MAIL_SENDER%%%%%">
<custom-server name="smtp" outbound-socket-binding-ref="mail-smtp">
<login name="%%%%%MAIL_USER%%%%%" password="%%%%%MAIL_PASSWORD%%%%%"/>
</custom-server>
</mail-session>
"%%%%%MAIL_SENDER%%%%%" to the email address you want to appear as the sender of the e-mail, and placeholders
%%%%%MAIL_USER%%%%%,%%%%%MAIL_PASSWORD%%%%% to the credentials of the user that will be used to send the e-mail by the smtp server.
<mail-session jndi-name="java:/Mail" debug="false" from="%%%%%MAIL_SENDER%%%%%">
<custom-server name="smtp" outbound-socket-binding-ref="mail-smtp">
<login name="%%%%%MAIL_USER%%%%%" password="%%%%%MAIL_PASSWORD%%%%%"/>
<property name="mail.smtp.starttls.enable" value="true"/>
</custom-server>
</mail-session>
"%%%%%MAIL_SENDER%%%%%" to the email address you want to appear as the sender of the e-mail, and placeholders
%%%%%MAIL_USER%%%%%,%%%%%MAIL_PASSWORD%%%%% to the credentials of the user that will be used to send the e-mail by the smtp server.
<mail-session jndi-name="java:/Mail" debug="false" from="%%%%%MAIL_SENDER%%%%%">
<custom-server name="smtp" outbound-socket-binding-ref="mail-smtp">
<login name="%%%%%MAIL_USER%%%%%" password="%%%%%MAIL_PASSWORD%%%%%"/>
<property name="mail.smtp.starttls.enable" value="true"/>
<property name="mail.smtp.starttls.required" value="true"/>
</custom-server>
</mail-session>
"%%%%%MAIL_SENDER%%%%%" to the email address you want to appear as the sender of the e-mail, and placeholders
%%%%%MAIL_USER%%%%%,%%%%%MAIL_PASSWORD%%%%% to the credentials of the user that will be used to send the e-mail by the smtp server.
<mail-session jndi-name="java:/Mail" debug="false" from="%%%%%MAIL_SENDER%%%%%">
<custom-server name="smtp" outbound-socket-binding-ref="mail-smtp">
<login name="%%%%%MAIL_USER%%%%%" password="%%%%%MAIL_PASSWORD%%%%%"/>
<property name="mail.smtp.starttls.enable" value="true"/>
<property name="mail.smtp.starttls.required" value="true"/>
<property name="mail.smtp.ssl.protocols" value="TLSv1.2"/>
<property name="mail.smtp.ssl.ciphersuites" value="TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"/>
<property name="mail.smtp.ssl.checkserveridentity" value="true"/>
</custom-server>
</mail-session>
"%%%%%MAIL_SENDER%%%%%" to the email address you want to appear as the sender of the e-mail, and placeholders
%%%%%MAIL_USER%%%%%,%%%%%MAIL_PASSWORD%%%%% to the credentials of the user that will be used to send the e-mail by the smtp server.
<mail-session jndi-name="java:/Mail" debug="false" from="%%%%%MAIL_SENDER%%%%%">
<custom-server name="smtp" outbound-socket-binding-ref="mail-smtp">
<login name="%%%%%MAIL_USER%%%%%" password="%%%%%MAIL_PASSWORD%%%%%"/>
<property name="mail.smtp.ssl.enable" value="true"/>
<property name="mail.smtp.ssl.protocols" value="TLSv1 TLSv1.1 TLSv1.2"/>
</custom-server>
</mail-session>
"%%%%%MAIL_SENDER%%%%%" to the email address you want to appear as the sender of the e-mail, and placeholders
%%%%%MAIL_USER%%%%%,%%%%%MAIL_PASSWORD%%%%% to the credentials of the user that will be used to send the e-mail by the smtp server.
<mail-session jndi-name="java:/Mail" debug="false" from="%%%%%MAIL_SENDER%%%%%">
<custom-server name="smtp" outbound-socket-binding-ref="mail-smtp">
<login name="%%%%%MAIL_USER%%%%%" password="%%%%%MAIL_PASSWORD%%%%%"/>
<property name="mail.smtp.ssl.enable" value="true"/>
<property name="mail.smtp.ssl.protocols" value="TLSv1.2"/>
<property name="mail.smtp.ssl.ciphersuites" value="TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"/>
<property name="mail.smtp.ssl.checkserveridentity" value="true"/>
</custom-server>
</mail-session>
Deploying the application
Check the Downloading RapidMiner Server section on how you can download the latest RapidMiner Server installer and follow the instructions as described in the Installing the full server package section. After the installation is completed, copy the files from the recently installed RapidMiner Server instance to the JBoss GA version:
$JBossRoot/standalone/configuration/execution.properties$JBossRoot/standalone/deployments/rapidminer-server-*.ear$JBossRoot/standalone/deployments/rapidminer-execution-jobservice-*.war
The next step is to startup RapidMiner Server. After the successful login you may be prompted to take a series of configuration steps and finally to add a RapidMiner Server license. Copy your RapidMiner Server license key and click on Submit. The installation is now completed and the RapidMiner Server home page should be displayed.