What is Volatile Data Sources?
This is a configuration setting that tells Yellowfin to check all of the data source connections every 30 seconds and, if a connection is bad or closed, to reset that connection.
When do I need it?
As data sources frequently reside on servers physically separate from the primary Yellowfin installation, they can be subject to bad and unstable connections. This will typically be reflected in the yellowfin.log with errors similar to
WARN (JDBCConnection:call) - Error occured when rolling back uncommited changes on connection: java.sql.SQLException: I/O Error: Connection reset
connection exception: connection does not exist
Or within the source.log files with similar correlated errors:
Network error IOException: Connection refused: connect
Connection object is closed
Note that there are many more errors that signify the need for this setting, if you are having problems that you think may be connection related, it will worth enabling Volatile Data Sources.
How Do I enable Volatile Data Sources?
To enable volatile data sources, you will need to run three queries directly against your configuration database. As querying your configuration database has the potential to cause permanent damage to your Yellowfin instance, it is highly recommended that you consult with your DBA to do this, and back up your database prior to making any changes.
This query simply turns on the functionality
INSERT INTO Configuration (iporg, configtypecode, configcode, configdata) VALUES (1, 'SYSTEM', 'VOLATILESOURCES', 'TRUE');
This query sets how many milliseconds the timeout will be before retrying
INSERT INTO Configuration (iporg, configtypecode, configcode, configdata) VALUES (1, 'SYSTEM', 'VOLATILETIMEOUT', '3000');
This query sets the number of times Yellowfin will retry
INSERT INTO Configuration (iporg, configtypecode, configcode, configdata) VALUES (1, 'SYSTEM', 'VOLATILERETRIES', '5');
In order to see the effect of these changes, you need to restart the Yellowfin Tomcat Server.