web.xml
Yellowfin\appserver\webapps\ROOT\WEB-INF
A number of installation-specific settings are stored in web.xml when Yellowfin is installed. These settings are critical to Yellowfin starting and running successfully.
Included JSPs
The <ENTITY> line near the top of the file must correctly specify the Yellowfin path as a URL:<!ENTITY jsps SYSTEM "file:/C:/Program Files/Yellowfin/appserver/webapps/ROOT/WEB-INF/web-jsps.xml">
Or<!ENTITY jsps SYSTEM "file:/usr/Yellowfin/appserver/webapps/ROOT/WEB-INF/web-jsps.xml">
Configuration Database parameters
The connection parameters for the Yellowfin configuration database must be set correctly in web.xml for Yellowfin to function. These settings are within the <servlet> section named InitConnectionPool. The connection parameters are:
JDBCDriverClass | The name of the JDBC Driver class | Required |
JDBCUrl | The JDBC URL to connect to the database | Required |
JDBCUser | The username used to connect | Required |
JDBCPassword | The password used to connect | Required |
JDBCPasswordEncrypted | Whether or not the password in JDBCPassword is encrypted. (true/false) | Optional (Defaults to false) |
JDBCMinCount | The minimum number of connections to open to the database | Required |
JDBCMaxCount | The maximum number of connections to open to the database | Required |
JDBCTimeout | How long a connection may be in use for before being closed (in seconds) | Optional (Defaults to 300) |
PSCacheSize | How many Prepared Statements to cache per connection (maximum). Setting this to zero disables Prepared Statement caching. | Optional (Defaults to 20) |
General Yellowfin startup parameters
There are a number of general startup parameters that affect various parts of Yellowfin. These settings are within the <servlet> section named MIStartup. The parameters are:
ReportCacheSize | Number of result sets to store in the report result cache. | Optional (Defaults to 20) |
ReportCacheMaxAge | The maximum age of result sets in the report result cache (in milliseconds). | Optional (Defaults to 24 hours) |
BIRTPath | The path to the BIRT support files. | Optional |
ScanJarFiles | Whether or not to scan for JDBC drivers at startup (true/false). | Optional (Defaults to true) |
JDBCDrivers | JDBC driver class names to search for at startup, separated by commas. If ScanJarFiles is false, use this to specify the available drivers. | Optional |
PdfExportInitialMemory | Initial memory allocation for the (JavaFX) PDF export process. Under normal circumstances this does not need to be set. | Optional (Defaults to 64mb) |
PdfExportMaximumMemory | Set the maximum memory that the (JavaFX) PDF export process can use. Under normal circumstances this does not need to be set. Restricting the maximum memory of the exporter may prevent large PDFs from exporting. | Optional (Defaults to 25% of the server's RAM) |
TaskSchedulePollingInterval | Define how many seconds between Task Schedule polls. This is the process that determines whether Task Schedules need to run. | Optional (Default is 30 seconds) |
Clustering
<!-- Cluster Management --> <servlet> <servlet-name>ClusterManagement</servlet-name> <servlet-class>com.hof.mi.servlet.ClusterManagement</servlet-class> <init-param> <param-name>ServiceUser</param-name> <param-value>admin@yellowfin.com.au</param-value> </init-param> <init-param> <param-name>ServicePassword</param-name> <param-value>test</param-value> </init-param> <init-param> <param-name>ServiceAddress</param-name> <param-value>/services/AdministrationService</param-value> </init-param> <init-param> <param-name>ServicePort</param-name> <param-value>80</param-value> </init-param> <init-param> <param-name>ClusterHosts</param-name> <param-value> 192.168.4.196 </param-value> </init-param> <load-on-startup>11</load-on-startup> </servlet>
Clustering will make sure that:
- If changes are made to ref codes on one server, all other servers reload their ref codes.
- If a view is changed, the old version will be removed from the cache of all servers.
- If a new licence is uploaded, all servers are updated.
Note: You will need to ensure your licence lists all the required hostnames, which you will have to contact Yellowfin for (sales@yellowfin.bi).
Performance Tuning
Web Server connections
The Tomcat WebServer default and maximum connections can be adjusted to enable more concurrent connections although the default settings should handle up to 100 users.
These parameters can be set in the $INSTALL_DIRECTORY \appserver\webapps\ROOT\WEB-INF\web.xml file.
The context in the file is against the servlet 'InitConnectionPool'.
Yellowfin Database connections
The Yellowfin Application server requires a connection to the Yellowfin database server to access the report repository and meta-data. This connection can be tuned to allow more through-put depending on the number of concurrent users expected in your installation.
The database connection default and maximums can be changed in $INSTALL_DIRECTORY\appserver\webapps\ROOT\WEB-INF\web.xml
file.
The current defaults are 2 (minimum) and 5 (maximum). Amending this connection limit would help performance.
Note: if Yellowfin performance in an issue then changing the connection parameters may assist. However, you will also have to consider your hardware configuration to ensure that it is setup to support the number of concurrent users you have. Please refer to the server capacity white paper for more information.
Java Virtual Machine (JVM) Heap Size
Yellowfin has hard memory limits that are set in configuration files. The application will never allocate more memory once it reaches these limits, even if the server has more free memory. In some cases this can cause errors if Yellowfin needs more memory.
Instructions for increasing the JVM Max Memory depend on how Yellowfin is started.
Windows Service
When the Yellowfin service is first installed, the memory limits are taken from the Yellowfin\appserver\bin\service.bat file. This file can be modified to provide different defaults, but this will only be read when the service is installed. To modify the memory limits for an existing service, follow this process:
- Open the Command Prompt and change to the appserver\bin directory under the Yellowfin installation directory.
- Run the command:
tomcat8w.exe //ES//Yellowfin
This will run the service manager for the Yellowfin service. Go to the "Java" tab, and change the "Initial memory pool" and "Maximum memory pool" values: - Restart the Yellowfin service to pick up the changes.
Windows Start Menu
If you start the Yellowfin server from the Windows Start Menu, the memory limits are in the startup batch files.
- Shut down Yellowfin
- Edit the file Yellowfin\appserver\bin\catalina.bat
Find the section:
rem Memory limits. rem Use these options to set the Java memory limits. rem -Xms128m sets the initial Java heap size to 128Mb rem -Xmx512m sets the maximum Java heap size to 512Mb rem To set memory limits uncomment the following line: rem set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m
- Remove the "rem" from the start of the last line, and change the Xmx option to your desired max memory setting.
- Restart Yellowfin to pick up the changes.
Linux/Unix/Mac OSX
If you run Yellowfin on Linux/Unix/Mac OSX, the memory limits are in the startup scripts.
- Shut down Yellowfin
- Edit the file Yellowfin/appserver/bin/catalina.sh
Find the section:
# Memory limits. # Use these options to set the Java memory limits. # -Xms64m sets the initial Java heap size to 64Mb # -Xmx256m sets the maximum Java heap size to 256Mb #JAVA_OPTS="$JAVA_OPTS -Xms64m -Xmx256m"
- Uncomment the last line, and change the Xmx option to your desired max memory setting.
- Restart Yellowfin to pick up the changes.