Skip to main content
Pentaho Documentation

Prepare Web Application Servers

Overview

Explains how to prepare the Tomcat and JBoss app servers.

Image of the BA Manual installation steps.

After you have completed the tasks in the Specify Connections step, you must determine whether your web application server must be configured before the BA Server is deployed on it.

Tomcat: No additional configuration is required. Proceed to the Start BA Server step.

JBoss: If you have installed the JBoss web application server, you must manually complete several configuration tasks.

Increase the Amount of Time JBoss Allows for BA Server Deployment

By default, JBoss allows up to one minute for a web application to be deployed. If the web application is not deployed within that timeframe, an error occurs.

Because the BA Server deployment requires more than one minute, manually edit the standalone.xml file to increase the deployment time.

  1. Use a text editor to open the <your jboss installation directory>/standalone/configuration/standalone.xml file.
  2. Find the <deployment-scanner> tag, add the deployment-timeout attribute, then set the attribute equal to 120. Note that if you are installing the BA Server on a VM, you might want to increase the deployment-timeout attribute's value to give the BA Server more time to deploy. <deployment-scanner scan-interval="5000" relative-to="jboss.server.base.dir" path="deployments" scan-enabled="true" deployment-timeout="120"/>
  3. Save and close the file.

Disable the JBoss RESTEasy Scan

To load pentaho REST services correctly, the RESTEasy scan in JBoss must be disabled. These instructions explain how to do this.

  1. Use a zip extraction utility such as 7-Zip, Winzip, or Archive to view the contents of the <your jboss installation directory>/standalone/deployments/pentaho.war file. Do not unzip the pentaho.war file, just view its contents.
  2. Navigate to the WEB-INF directory in the pentaho.war file and open the web.xml file in a text editor.
  3. At the end of the <context-param> tags, add this code.
    <context-param>
                 <param-name>resteasy.scan</param-name>
                 <param-value>false</param-value>
            </context-param>
            <context-param>
                 <param-name>resteasy.scan.resources</param-name>
                 <param-value>false</param-value>
            </context-param>
            <context-param>
                 <param-name>resteasy.scan.providers</param-name>
                 <param-value>false</param-value>
    </context-param>
  4. In the web.xml file, change the BA Server fully qualified URL. To learn how, read the Change the BA Server Fully Qualified URL instructions.
  5. Save the changes and close the file.
  6. The zip extraction utility that you used might show a prompt that asks whether you would like to update the file in the pentaho.war archive. If this happens, confirm that you would like to do this.

Set the Location of the pentaho-solutions Directory

To deploy JBoss correctly, Pentaho recommends that you define the location of the Pentaho solutions directory in the web.xml file. These instructions explain how to do this.

  1. If you have not done so already, use a zip extraction utility such as 7-Zip, Winzip, or Archive to view the contents of the jboss/standalone/deployments/pentaho.war file. Do not unzip the pentaho.war file, just view its contents.
  2. Navigate to the WEB-INF directory in the pentaho.war file and open the web.xml file in a text editor.
  3. Locate the following <context-param> tags.
    <context-param>
          <param-name>solution-path</param-name>
          <param-value></param-value>
     </context-param>
  4. Set the paramater value of the solution-path to the pentaho-solutions path. An example of the code is below.
    <context-param>
         <param-name>solution-path</param-name>
         <param-value>/home/pentaho/server/biserver-ee/pentaho-solutions</param-value>
     </context-param>
  5. Save the changes and close the file.

Increase JBoss Default Memory Settings

Before you deploy the BA Server, modify the JBoss startup script to match the BA Server's memory resource requirements. If this step is not performed, the BA Server will not start.

  1. Use a text editor to open the standalone configuration file. The file you open depends on your operating system.
    • Microsoft Windows: <your jboss installation directory>/bin/standalone-conf.bat
    • Linux: <your jboss installation directory>/bin/standalone.conf
  2. Change the following code from -Xms1303m -Xmx1303m -XX:MaxPermSize=256m to this:
    -Xms4096m -Xmx6144m -XX:MaxPermSize=256m
  3. Save the changes and close the file.

Add JBoss Logging

You can add Pentaho application level logging to the JBoss logging subsystem. This is an optional step.

  1. In the pentaho.war, go to the WEB-INF directory and open the jboss-deployment-structure.xml file.
  2. Under the <deployment> tag add this code.
    <exclusions>
        <module name="org.apache.log4j"/>
    </exclusions>
  3. Save and close the file, then exit from pentaho.war.
  4. Open the standalone.xml file in the <your jboss directory>/standalone/configuration directory.
  5. Under the </extensions> tag add this code.
     <system-properties>
          <property name="org.jboss.as.logging.per-deployment" value="false"/>
      </system-properties>
  6. Find the <console-handler ...> or <file-handler ...> sections and add the following two handlers.
    <console-handler name="PENTAHOCONSOLE">
    <level name="ALL"/>
    </console-handler>
       <file-handler name="PENTAHOFILE">
        <file relative-to="jboss.server.log.dir" path="pentaho.log"/>
        <append value="false"/>
    </file-handler>
  7. Under the file handlers section, there is a section containing <logger> tags. Configure the <root-logger> handler to use these handlers.
    <handler name="PENTAHOCONSOLE"/>
    <handler name="PENTAHOFILE"/>
  8. Add the following loggers above <root-logger>.
    <logger category="org.hybernate" use-parent-handlers="false">
        <level name="ERROR"/>
            <handlers>
                <handler name="PENTAHOFILE"/>
                <handler name="PENTAHOCONSOLE"/>
            </handlers>
    </logger>
    <logger category="net.sf.ehcache" use-parent-handlers="false">
        <level name="ERROR"/>
            <handlers>
                <handler name="PENTAHOFILE"/>
                <handler name="PENTAHOCONSOLE"/>
            </handlers>
       </logger>
    <logger category="org.quartz" use-parent-handlers="false">
        <level name="ERROR"/>
            <handlers>
                <handler name="PENTAHOFILE"/>
                <handler name="PENTAHOCONSOLE"/>
    </handlers>
    </logger>
        <logger category="org.springframework" use-parent-handlers="false">
        <level name="ERROR"/>
            <handlers>
                <handler name="PENTAHOFILE"/>
                <handler name="PENTAHOCONSOLE"/>
            </handlers>
    </logger>
    <logger category="org.springframework.security" use-parent-handlers="false">
        <level name="ERROR"/>
        <handlers>
            <handler name="PENTAHOFILE"/>
            <handler name="PENTAHOCONSOLE"/>
        </handlers>
    </logger>
    <logger category="org.pentaho" use-parent-handlers="false">
        <level name="ERROR"/>
        <handlers>
            <handler name="PENTAHOFILE"/>
            <handler name="PENTAHOCONSOLE"/>
        </handlers>
    </logger>
    <logger category="com.pentaho" use-parent-handlers="false">
        <level name="ERROR"/>
        <handlers>
            <handler name="PENTAHOFILE"/>
            <handler name="PENTAHOCONSOLE"/>
        </handlers>
    </logger>
    <logger category="org.jfree.JCommon" use-parent-handlers="false">
        <level name="ERROR"/>
        <handlers>
            <handler name="PENTAHOFILE"/>
            <handler name="PENTAHOCONSOLE"/>
        </handlers>
    </logger>
    <logger category="org.apache.jackrabbit.core.security.authentication.AbstractLoginModule" use-parent-handlers="false">
        <level name="ERROR"/>
        <handlers>
            <handler name="PENTAHOFILE"/>
            <handler name="PENTAHOCONSOLE"/>
        </handlers>
    </logger>
    <logger category="RepositoryImportLog" use-parent-handlers="false">
        <level name="INFO"/>
        <handlers>
            <handler name="PENTAHOFILE"/>
            <handler name="PENTAHOCONSOLE"/>
        </handlers>
    </logger>
  9. Save and close the file.