What's New in Zen v17
The release of Zen v17, versions 17.00 and 17.02, offers the following new features and changes:
This document may be updated after the release. Download the latest version from the Actian Electronic Software Distribution (ESD) website or visit docs.actian.com.
Zen AI with Vector Data Engine (17.00)
Zen v17 introduces two new editions: Zen AI Enterprise Server and Zen AI Cloud Server, both of which include the Vector Data Engine. This new Zen database engine supports the Actian VectorAI DB functionality of gRPC access, REST API, and dashboard. For more information, see Zen AI Overview in the VectorAI DB online documentation.
In addition, Zen v17 introduces new SQL functions to support vector data collections. These functions enable the creating and dropping of collections, the inserting, updating, and deleting of data rows in collections, and searching based on vector data characteristics. For details, see Vector Collection Functions in SQL Engine Reference.
Zen (17.02)
The v17 versions of Zen Enterprise Server and Cloud Server, without "AI"in their name, do not include Vector Data Engine.
ADO.NET Support
The Zen v17 ADO.NET SDK offers the following updates:
• Entity Framework Core 10
• .NET 10
• Visual Studio 2026 plugin
• Windows Server 2025 support
For more information, see the Zen Data Providers for ADO.NET online documentation at docs.actian.com and the release notes for ADO.NET Data Providers for .NET Framework and for ADO.NET Core Data Provider and Entity Framework Core Data Provider for .NET Standard, which you can download at the Actian Electronic Software Distribution (ESD) website.
Btrieve 2 Improvements
Zen v17 rolls up all Btrieve 2 API enhancements delivered since Zen v16. The Btrieve 2 API is provided as C and C++ libraries together with SWIG-generated bindings for C#, Go, Java, JavaScript, Perl, PHP, and a prebuilt Python client. The following new enhancements apply to the API generally. Method names are shown in their canonical form. For complete information, see the Btrieve 2 API home page.
Bulk Retrieve Navigation
BtrieveFile gains directional bulk-retrieve navigation, each accepting an optional lock mode:
• BulkRetrieveFirst(index, ...)
• BulkRetrieveLast(index, ...)
• BulkRetrieveNext(comparison, index, key, keyLength, ...)
• BulkRetrievePrevious(comparison, index, key, keyLength, ...)
Bulk Delete Navigation
Matching directional bulk-delete operations on BtrieveFile:
• BulkDeleteFirst(index, ...)
• BulkDeleteLast(index, ...)
• BulkDeleteNext(comparison, index, key, keyLength, ...)
• BulkDeletePrevious(comparison, index, key, keyLength, ...)
Server-Side Field Functions in Bulk Retrieve
BtrieveBulkRetrieveAttributes can now apply per-field transforms:
• AddAbsoluteValueField(dataType, offset, length)
• AddCeilingField(dataType, offset, length)
• AddFloorField(dataType, offset, length)
• AddRoundField(dataType, offset, length, precision)
• AddTruncateField(dataType, offset, length, precision)
Aggregate Functions in Bulk Retrieve
BtrieveBulkRetrieveAttributes adds extrema aggregates over a result set:
• AddMaximumAggregate(dataType, offset, length)
• AddMinimumAggregate(dataType, offset, length)
Reusable Bulk-Create Objects
Reset() was added to BtrieveBulkCreatePayload and BtrieveBulkCreateResult so that an instance can be cleared and reused across successive bulk-create operations rather than reallocated.
New File-Information Time Stamps
BtrieveFileInformation exposes two new values via an extended stat:
• GetLastAttemptedWriteTime() – the file's last attempted write time.
• GetEarliestOpenTransactionTime() – the earliest open transaction time.
Create a File from File Information
BtrieveClient::FileCreate() gains an overload that accepts a BtrieveFileInformation object, in addition to the existing BtrieveFileAttributes/BtrieveIndexAttributes forms. This improvement makes it easier to recreate a file using metadata captured from another file.
Longer Keys
The maximum key length (Btrieve::MAXIMUM_KEY_LENGTH) has increased from 255 to 1024 bytes. Because this value also bounds other API inputs, the higher limit applies to the following:
• Key segment length (BtrieveKeySegment),
• Filter comparison-constant length (BtrieveFilter)
• Maximum document label length
More Extended Filters
The number of filters that you can apply (via AddFilter()) before a GetNextExtended- or GetPreviousExtended-style bulk operation has been raised from 16 to 128, and the out-of-memory error that occurred at the upper bound has been corrected. Exceeding the limit returns Btrieve::STATUS_CODE_FILTER_LIMIT_EXCEEDED.
Conditional (ETag-based) Document and RESTful Writes
Document and BRestful operations now support optimistic-concurrency control via an entity tag:
• BtrieveCollection::DocumentUpdate() and DocumentDelete() add an entityTag parameter.
• BtrieveCollection::DocumentRetrieveEntityTag(int id) returns the current entity tag for a document.
• The BRestful::PUT() and BRestful::DELETE() request builders add an entityTag parameter.
Prebuilt Python Client Version Update
The prebuilt btrievePython client is now built against Python 3.14.
Performance
Network traffic generated by the Btrieve 2 API has been substantially reduced, bringing it close to parity with the classic BTRV Btrieve API for equivalent work. The client now right-sizes the buffers it exchanges with the server – key buffers are sized per operation (and omitted entirely when no key is needed), bulk retrieve/delete return buffers are sized to the requested record count, and document-collection queries transmit only the actual sort-key width. These are transparent runtime improvements: no calling-code changes are required.
Other Improvements
Zen v17 offers selected improvements and fixes, including the following:
• A new virtual column called sys$usage, which returns a update count for use with sys$create and sys$update time stamps to indicate how many times a given record has changed since it was inserted.
• Low-, medium-, and high-level wire encryption keys have been raised to 128, 192, and 256 bits, respectively.
• For SQL query logs, users can now choose a directory other than the default C:\ProgramData\Actian\Zen\Logs.
• The Linux engine is transitioning its logging directory from actianzen/log to actianzen/logs to be more consistent with the Windows engine. In this release, the zen.log and vectorai.log files appear in the logs directory.
Supported Platforms and Deprecated Features
• This release adds support for Windows Server 2025.
• This release drops support for Windows Server 2016.
• For other information about supported platforms, visit communities.actian.com for a list of platforms currently supported by Zen.
• This release drops support for Linux ClientAccess (32-bit client).
• This release drops support for SQL Access for COBOL applications (cobolschemaexec).
History Log and Known Issues List
• An updated Zen history log lists fixed defects and selected enhancements in Zen v17.
• An updated Zen known issues log lists unresolved technical and usage issues, with workarounds when available.
• You can download both of these files, as well as Zen v17 release notes and this What’s New document, at the Actian Electronic Software Distribution (ESD) website.
Documentation
The documentation for this release has been updated to cover new or changed functionality. It has also been revised for clarity, grammar, spelling, and changes to internet addresses and product names.
Last modified date: 09/23/2026