What is Volatile Data Sources and how does it work?
Volatile Sources is a configuration setting that tells Yellowfin to check the data source connection before use. This could be launching a report, running a broadcast, loading a dashboard. For each data source that is used, it will first check the connection. If the connection fails it will close that connection and try again (x number of times, after x seconds). It check this by running a simple query against the database 'select 1 from database'. If it returns the result, the connection is tagged as good, if it fails, it continues to retry based on your config settings.
Do I need it?
....maybe. It's important to remember that bad connections should be fixed at the underlying cause, not worked around. We do however understand this can still be useful in cases where the network is a little flaky. Though there are still some important things to note before enabling this:
- Volatile Sources is only used for data sources, so if you have connection problems with the Yellowfin Repository DB, you should look into Verify Sources.
- The Select 1 from database query is only used for the following databases; MySQL, Oracle, SQL Server, Vertica, Postgres.
For other databases, it runs a 'select schema from
- This is only useful in cases where the connection drops and comes back up within the period set for timeout and retries.
- Will only do this for the data source needed. Running a single report, will only check the connection for the data sources needed for that report.
- This can hurt the overall system performance, as it will be running an additional query before ANY attempt to use it. For example if you were to run a report, instead of it going straight to running the Report SQL, it would first have to run the 'Select 1 from database'.
How do I enable and configure it?
If you're at this point, it's expected that you understand how the connection pool works, and that you've determined this will help. To enable volatile data sources, you will need to run three queries directly against your configuration database. As always, any changes made to the Yellowfin DB should be done under the assumption you know what you're doing, and you have a backup to rollback to if mistakes are made.
- First you need to turn it on by inserting the row below into the Yellowfin Configuration DB
INSERT INTO Configuration (iporg, configtypecode, configcode, configdata) VALUES (1, 'SYSTEM', 'VOLATILESOURCES', 'TRUE');
- Then you set how many milliseconds it will give it before timing out and 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');
- Restart Yellowfin for the changes to take affect.
If you have any questions, or running into issues relating to connections, please raise a ticket with our support team.
The Yellowfin Support Team.