KNOWLEDGE BASE

Tableau Keeping Database Connections Open


Published: 30 Jun 2017
Last Modified Date: 27 Nov 2018

Issue

When a live database connection is initiated by Tableau, the connection remains open, which can cause database performance issues.

Environment

Tableau Server 
Tableau Desktop

Resolution

Work with your database administrator to close out idle connections from the database side. 

Tableau creates connection objects internally to establish connections to database servers. The settings below affect when Tableau creates connections, and when it allows those connections to become idle, but do not close connections. 

To lower the number of connection objects created, increase the timeout of each connection object with the 'protocolcachelifetime_in_minutes' key.
For example, to set it to 240 minutes: 
  • On the computer running Tableau Server, open a command prompt as an administrator. 
  • Navigate to the Tableau Server bin folder, and enter the following command: 

Versions 2018.1 and older using TabAdmin

tabadmin stop
tabadmin set vizqlserver.protocolcachelifetime_in_minutes 240
tabadmin config
tabadmin start

 

Versions 2018.2 and newer using TSM

tsm stop
tsm configuration set -k vizqlserver.protocolcachelifetime_in_minutes -v 240
tsm pending-changes apply
tsm start

 


 
 
 

Cause

Tableau Server keeps connections open in order to speed workbook load. 

Additional Information

All connections in the cache have a time-since-last-used value. When a protocol is used, its timer is reset. 
When the protocolcachelifetime_in_minutes limit is reached - the time since the connection was last used is greater than the protocol cache lifetime - the connection is marked as eligible to be closed. 

On Tableau Server 10.5 and older versions, we checked for expired connections only when the protocol cache is accessed. Because of this, connections can linger on an idle server. 

Tableau Server 2018.1 and newer versions regularly check the protocol cache for expired connections. 

 

Did this article resolve the issue?