Release Notes for Oracle Insurance Gateway Patch 4.25.1.0.8

This document contains the release notes for Oracle Insurance Gateway Patch 4.25.1.0.8.

Version compatibility: Oracle Insurance Gateway Release 4.25.1.x is only compatible with other Oracle Health Insurance applications release version 4.25.1.x unless explicitly stated otherwise.
In accordance with the OHI error correction policy (Document 1494031.1 on My Oracle Support), error correction support will be provided for this release and the previous two releases.

Enhancements

ID Summary Patch

NXT-31594

JET: Save user preferences for table displays

This enhancement enables you to save your table column selections and column widths on supported pages. After you adjust a table, select Save Preferences to save your settings for that page.

Where it applies

  • System- or floorplan-driven pages that use following templates when the flexColumn property is true (Note: Default setting is true):

    • View/Edit List

    • Search Object Table

Supported pages and tables

  • Product Definition

    • Product Service Definition table in products and across products page

  • Claims

    • Draft provider pricing clause table within worksheet and across worksheet page

    • Fee Schedule lines

    • Provider Pricing Clause

    • Claim lines table within claims page

  • Common

    • Reference Sheets

NXT-33697

UI: European date/number formatting for English Language

With this enhancement, support is added to keep the UI in English language while using European date and number formats (e.g., dd/MM/yyyy and 1.234.567,00), when user sets 'en‑EU' in the existing ohi.ui.default.locale system property. If the property is not set, date and number formats continue to follow the user’s selected locale (language + region), with no change in behaviour.

Additional Upgrade Steps

Post-Deploy Phase

Explicitly close writers and readers in dynamic logic (optional)

A problem was identified where memory was not being properly freed after using writers in dynamic logic to create data files in Object Storage. When many files were created over time, this unused memory built up and could eventually cause the application to run out of memory and fail.

The memory cleanup process has been improved to ensure that memory and related resources are fully released whenever the writer is closed. By default, the system closes writers at the end of a dynamic logic transaction automatically thereby releasing the memory. However, in case multiple writers are opened within a single dynamic logic, memory exhaustion could still happen at runtime if the number of writers become large.

It is therefore recommended to close readers and writers explicitly in dynamic logic as a best practice. Please investigate if explicit closure of readers and writers is implemented in the dynamic logics. This is not a mandatory update but a recommendation.

The documentation has been updated with examples of explicit closure of reader and writers. See Transformation Dynamic Logic chapter in the Developer Guide.

Upgrade Steps for Installation

To perform the upgrade, perform the following steps:

  1. Perform any pre-upgrade steps.

  2. Stop all the managed nodes running the existing version of the application.

  3. Perform any pre-undeploy steps.

  4. Undeploy the existing version of the application.

  5. Back up the database.

  6. Perform any post-undeploy steps.

  7. Unpack the release bundle into a directory that we refer to as OHI_ROOT from now on.

  8. Change Installation Configuration: In <OHI_ROOT>/util/install, make a copy of ohi_install.cfg.template and name it ohi_install.cfg.

  9. Edit ohi_install.cfg to contain your specific database connection data and other configuration settings. The settings are explained in the file itself.

  10. Make sure NO connections are present to the database using the OHI_xxx_USER account (where xxx is the abbreviation of the application)

  11. Run the Upgrade script:

    1. Open a command window and browse to <OHI_ROOT>/util/install.

    2. Run the upgrade by executing ./ohi-update.sh .

  12. Make the required changes to the ohi properties file

  13. Perform any post-upgrade steps

  14. Start WebLogic application server

  15. Deploy the Application

  16. Perform any post-deploy steps

Configuration Properties

Ref Action Description

OIG-4860

Added

ohi.object.storage.connect.timeout.millis

Timeout in milliseconds to establish connection with OCI object storage service.

OIG-4860

Added

ohi.object.storage.read.timeout.millis

Time to wait between reads of data bytes from OCI object storage service

Web Services

This section intentionally left blank.

Data Conversion

This section intentionally left blank.

Dynamic Logic

This section intentionally left blank.

UI Changes

This section intentionally left blank.

Breaking Changes

This section intentionally left blank.

Access Restrictions

This section intentionally left blank.

Bug Fixes

BugDB SR Internal Summary

39267275

4-0002125064

OIG-4953

Resources cannot be searched when code starts with %255%

Description:

POST search API requests were failing with an IntrusionDetectionException when the query contained specific special patterns. These legitimate input param were incorrectly identified as potential intrusion attempts, resulting in search failures.

Resolution:

Enhanced the intrusion detection mechanism to correctly handle search query parameters, preventing legitimate requests from being incorrectly flagged

39079862

OIG-4984

Flex Code Base Views are both removed and updated at the same time

Description:

During Base View Generation, the generation of Flex Code Base View is unstable: (1) Concurrent update/remove operations occasionally targeted the same view, raising the Oracle error “table or view does not exist”. This happened intermittently. (2) The generator skipped creating some Flex Code Base Views whenever the Flex Code System code contained lowercase characters.

Resolution:

The update/removal operations are serialized to prevent errors like “table or view does not exist”. Flex Code Base Views are generated for Flex Code Systems with a code containing lowercase characters.

39124748

OIG-5027

Exchange is failing while trying to create with xml fileupload or payload

Description:

When creating an Exchange of Payload type XML, the XML content is present for the POST call sent, which causes the exchange to fail with the error: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.

Resolution:

Fix has been implemented to ensure that XML content is correctly included in the payload for Exchange.

39134622

OIG-5038

Outbound Exchange - Boilerplate code is seen for Build In Progress pop up

Description:

In Outbound exchanges page when user clicks on Build button, boilerplates are seen in Build In Progress pop-up

Resolution:

Boilerplates are translated and value is shown in pop-up

39118343

OIG-5019

Index.html is getting appended to url post login

Description:

index.html is getting appended to url after user logs into the application using custom authentication provider

Resolution:

index.html is not visible in url after user logs into the application using custom authentication provider

39160130

4-0002113383

OIG-5059

Memory exhaustion in Gateway due to dynamic logic creating multiple data files in Object Storage

Description:

A problem was identified where memory was not being properly freed after using writers in dynamic logic to create data files in Object Storage. When many files were created over time, this unused memory built up and could eventually cause the application to run out of memory and fail.

Resolution:

The cleanup process has been improved to ensure that memory and related resources are fully released whenever the writer is closed. By default, the system closes writers at the end of a dynamic logic transaction automatically thereby releasing the memory. However, in case multiple writers are opened within a single dynamic logic, memory exhaustion could still happen at runtime.

It is therefore recommended to close readers and writers explicitly in dynamic logic. Please investigate if explicit closure of readers and writers is implemented in the dynamic logics.

The documentation has been updated with examples of explicit closure of reader and writers. See Transformation Dynamic Logic chapter in the Developer Guide.

39163849

4-0002187135

OIG-5061

Improve resilience for Object Storage file downloads from ohi when long-running data file processing causes HTTP streams to remain open for extended periods, reducing failures from truncated responses.

Description:

File downloads from OCI Object Storage could intermittently fail during long-running reads with truncated-response errors such as ConnectionClosedException (“Premature end of Content-Length delimited message body”). Because OHI ObjectStorageDataFileReader relied on a single InputStream, any mid-transfer interruption caused the CSV reader to receive only a partial payload, resulting in exchange failure. Need implementation to supports retry and byte-range resume for interrupted downloads.

Resolution:

Enhanced Object Storage download handling for scenarios where data files are processed slowly and the HTTP stream remains open for an extended period. Previously, long-running reads could fail with truncated-response errors such as ConnectionClosedException, causing the CSV reader to receive incomplete content and the exchange to fail. The implementation now improves resilience by retrying interrupted downloads and resuming from the last successfully read byte offset, while failing only after 3 consecutive recovery attempts without progress.

38819476

4-0001350333

OIG-4860

Reading large files from object storage fails due to non-configurable read timeout.

Description:

OHI does not provide configurable timeout settings (connection and read timeouts) while reading or streaming files from Object Storage (OS). As a result, file read operations rely on default OCI SDK timeout values, which are not suitable for large files or long-running streaming use cases.

When files are read record-by-record, the read operation may exceed the default socket read timeout, leading to java.net.SocketTimeoutException: Read timed out. This causes long-running processes to fail unexpectedly, even though the connection itself is healthy.

Resolution:

Support for configurable Object Storage timeouts has been added to improve reliability when processing large files and long-running streaming workloads. Two new properties are now available: a. ohi.object.storage.read.timeout.millis b. ohi.object.storage.connect.timeout.millis

Both default to 60,000 ms (60 seconds) and can be increased as needed to prevent read timeouts errors during extended Object Storage operations

Issues that were backported in previous Release / Patch

No backports.