The web.xml file provides configuration and deployment information for the Yellowfin application. The Yellowfin web.xml file is located in the directory:
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.
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">
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) |
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 |
Clustering allows Yellowfin to be run on multiple servers off the same database. In order to cluster Yellowfin, the following will need to be added into the web.xml file, with your web services information filled in.
<!-- 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:
Other than increasing hardware capacity, e.g. faster CPU and memory allocation, there are a number of ways that Yellowfin can be performance tuned. For more information on capacity and configuration settings please refer to the server capacity white paper.
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'.
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.
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.
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:
tomcat8w.exe //ES//Yellowfin
If you start the Yellowfin server from the Windows Start Menu, the memory limits are in the startup batch files.
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 |
If you run Yellowfin on Linux/Unix/Mac OSX, the memory limits are in the startup scripts.
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" |