· Jun 11, 2020

Inbound File Adapter - Check Complete - File Locks


I want to deploy Iris Interoperability Production in multiple containers . The production has File Services that process files from EFS location. All the files being processed by multiple containers are in the same directory. The standard Adapter class does not have Check Complete option to lock a file so that other containers File Services looking in the same file path cannot process the same file.

I updated the Inbound File Adapter class to offer another Check Complete option LOCK that will lock the file until it is processed and archived.

Has anybody else encountered conflicts when multiple containers process files from one directory?

Does anybody else think InterSystems should update the Inbound File Adapter class to support this requirement?

Discussion (2)2
Log in or sign up to continue

Hi Oliver,

Is your intent to have multiple productions in containers trying to pull the same types of files from the same directory to split the load? It sounds like you're not able to pull from different file paths, but would setting different FileSpecs be an option?

Perhaps setting different WorkPaths would be helpful, so that the file service(s) will move the file to another directory while processing.

Another possibility would be to have one production with a file service with a pool size >1 that routes to the various other productions.

Good morning Vic,

Yes, we want to be able to have multiple productions in containers pulling files from one location. I do not want to use different FileSpecs, because if one container goes away because of scaling down or error, I want the remaining container to continue processing.

I agree that work path helps, because when one container processes the file, it is moved to work path, and not visible to others monitoring the file path.

When we tested the file lock option with two containers processing 56 files, it appeared to avoid collisions. The other option appears to be more complex especially with variable number of containers.