One side effect of keeping files open is that a c-treeACE file control block is consumed. If the file is not explicitly closed, these resources are not freed. c-treeACE now automatically closes KEEPOPEN files that are not in use when a file create or open operation finds that no more file control blocks are available. Further, when the number of cache pages in use by a KEEPOPEN file that is not in use drops to zero, an administrative thread closes the file.
The create and open functions now check if file control blocks are consumed. If so, an attempt is made to determine if a KEEPOPEN file is available to close. If so, the file is closed, and the operation is retried. The c-treeACE configuration option KEEPOPEN_CLOSE_RETRY_LIMIT determines the number of times these functions retry the operation before failing. This value defaults to 3.