What can be done when the TIBCO Data Virtualization (TDV) becomes unresponsive when a query returns large data from Microsoft Access ?

What can be done when the TIBCO Data Virtualization (TDV) becomes unresponsive when a query returns large data from Microsoft Access ?

book

Article ID: KB0076980

calendar_today

Updated On:

Products Versions
TIBCO Data Virtualization 7.0.x and higher

Description

If a query returns a large amount of data from a Microsoft Access (non-ODBC) data source, the TDV server becomes unresponsive. As a result, Studio may freeze up.

Issue/Introduction

What can be done when the TIBCO Data Virtualization (TDV) becomes unresponsive when a query returns large data from Microsoft Access ?

Resolution

This is due to a limitation of the  UCanAccess JDBC driver, which is the driver that the Microsoft Access (non-ODBC) data source uses. The UCanAccess driver is designed to handle small data sets (i.e. small MDB files). If the driver is asked to parse a large MDB file, it consumes a high amount of the JVM Heap memory, causing the server to slow down. In most cases, the TDV server will run out of memory, resulting in the server becoming unresponsive.

Check your cs_server.log to see if it contains the following line:

---------------
Caused by: java.lang.OutOfMemoryError: Java heap space
---------------

If cs_server.log contains this line, it means that the server has run out of memory. Try increasing the size of the JVM Heap using Studio >> Administration >> Configuration >> Server >> Memory >> Java Heap >> Total Available Memory (On Server Restart). A larger JVM Heap will provide more memory for the driver to use.

If an increased JVM Heap size does not resolve the issue, the other options are: 

(1) Create a smaller MDB file.
(2) Consider storing the data in a form other than an MDB file (so that you can switch to a different type of data source).