Skip to content

Fix experimental implementation of LOBs #36

@rrobetti

Description

@rrobetti

Currently, all LOB objects like BLOBs and Binary Streams are being hydrated before transferring, which means that the full data is brought into memory before transmission, this is due to the fact that MySQL and DB2 required this approach due to their aggressive closing of LOBs when the cursor moves to the next row and also to the fact that there were intermittent errors happening with LOBs in the CI builds Previously recorded in #31.

This issue is to experiment with the streaming implementation that was previously in place which would separate the byte arrays in blocks of 1KB for transmission, create a heavenly concurrent test with LOBs that simulate the issues from issue 31 consistently. Root cause it, fix it and put back the streamed approach in the code for databases that support it, at this point are believed to support it Postgres (only Binary Stream for BYTEA type), MySQL, MariaDB and Oracle. As mentioned before SQL Server and DB2 would possibly still rely on hidrated LOBs due to their approach to the same.

AC: all CI tests pass consistently.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestojp-jdbc-driverIssues related to OJP JDBC Driver moduleojp-serverIssues related to OJP Server Module

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions