The Limitations of Type 4 JDBC Drivers
Despite many of the industry changes that have taken place since 1998, Type 4 JDBC driver architecture has not changed. As a result, modern data-driven Java applications that use Type 4 JDBC drivers can suffer any number of limitations.
Type 4 Limitations Include:
- Slow or Inconsistent Performance
The response time and data throughput performance of many Type 4 drivers is poor or inconsistent, particularly when deployed into certain runtime environments (e.g. different JVMs) or with modern data access models (e.g. ORM and app servers).
- Unavailable or Inaccessible Functionality
Enabling or tuning critical functionality with many Type 4 JDBC drivers requires access to JDBC code, which is not available to applications deployed with ORM frameworks or in app servers. New database or driver functionality is not available across all supported JVMs or environments.
- Poor Resource Efficiency
Most Type 4 JDBC drivers use excessive amounts of CPU and memory resources during data access and tuning options, if available are inaccessible or limited. This leads to applications that require significant CPU resources and have an disproportionately large memory footprint.
- Application Deployment Restrictions
Most Type 4 JDBC drivers require multiple JAR files to support different JVMs or database versions. They also typically require the deployment of platform-dependent DLLs or shared libraries to support certain driver or database functionality, limiting what environments they can be deployed to.
- Proprietary Implementation
The use of proprietary code with many Type 4 JDBC drivers is required for applications to leverage features such as BLOBs and CLOBs, high availability, and XA. As more and more data sources must be accessed from a single application, the amount of application code, and potential for bugs, increases significantly.
Many of the most common Type 4 JDBC drivers exhibit most, if not all, of these limitations. Java architects and Java developers should review this checklist to evaluate the critical applications that depend on these drivers to see if they can benefit from Type 5 JDBC drivers.