EnsLib.File.InboundAdapter
class EnsLib.File.InboundAdapter extends Ens.InboundAdapter, EnsLib.File.Common
Finds files in a FilePath directory and submits all that match a FileSpec wildcard to an associated BusinessService for processingProperty Inventory
- AppendTimestamp
- ArchivePath
- Charset
- ConfirmComplete
- DeleteFromServer
- FileAccessTimeout
- FilePath
- FileSpec
- SemaphoreSpec
- SubdirectoryLevels
- VMSLatestVersionOnly
- WorkPath
Method Inventory
Parameters
Properties
If this value is empty or 0, no timestamp will be appended. If it is 1, then the standard timestamped filename specification template '%f_%Q' will be used.
Any other value will be used directly as a timestamped filename specification template.
Note that the AppendTimestamp option must be used to avoid name collisions in the archive directory if the same filename will be retrieved repeatedly.
Native - the default character encoding of the installed locale of the InterSystems IRIS server
latin1 - the ISO Latin1 8-bit encoding
ISO-8859-1 - the ISO Latin1 8-bit encoding
UTF-8 - the Unicode 8-bit encoding
Unicode - the Unicode 16-bit encoding (Little-Endian)
UnicodeBig - the Unicode 16-bit encoding (Big-Endian)
@<ttable> - <ttable> means a raw InterSystems character translation table name. A prefix of '@' means to use the named table.
This option alone may not be sufficient when the source application is sluggish. If the OS reports the same size for the file for a duration of the FileAccessTimeout value then InterSystems IRIS will consider the file complete.
- 'Rename' means keep trying to read more data for a file until the OS allows us to rename it. If WorkPath or ArchivePath is different from FilePath, this option is implied because the file must be moved which is equivalent to renaming. This option may not be effective because it is common for an OS to allow InterSystems IRIS to rename a file even while another application has the file open and is still writing more data into it.
- 'Readable' means if we consider the file complete if we are simply able to open it in Read mode. Depending on the OS and the details of the process that puts the file in the FilePath directory where we find it, this may be enough although in many cases it isn't.
- 'Writable' means if we consider the file complete if we are able to open it in Write mode (as a test - we generally don't intend to write to it.). This may be enough depending on the OS and the details of the process that puts the file in the FilePath directory where we find it.
If not deleted, the adapter will ignore files already processed until something else deletes them.
Note 1: If this setting is false an attempt will be made to delete file when the IRIS message is purged.
Note 2: If a WorkPath is specified this setting is ignored and the file is moved to the work path.
The Default is empty which means process files when the Confirm Complete requirement is met.
If specified the files matching File Spec will not be processed until a corresponding semaphore file has been detected in the same directory.
The semaphore sepcification can be a wildcard filename pairing of target=semaphore filename e.g.
ABC*.TXT=ABC*.SEM which means do not process any files found that match ABC*.TXT unless a corresponding ABC*.SEM exists for each one.
Multiple pairings are separated by ;
*.TXT=*.SEM;*.DAT=*.READY
The target pattern is case sensitive and the semaphore pattern case sensitivity will be OS dependent
e.g. *.TXT=*.SEM will only be applied to target files found ending with capitalized .TXT but the OS may not differentiate between *.SEM and *.sem
If a singleton is specified e.g. *.SEM or READY.SEM then that is taken as the semaphore pattern for all files. The following are equivalent:
*.SEM *=*.SEM
If no wildcard is used in the semaphore pattern then the semaphore pattern is taken as the file name and will be used for the one polling interval.
If such a semaphore file appears during the middle of a polling interval it will not be used until the start of polling interval.
This is to prevent deletion of the semaphore file before all relevant files are processed.
If a semaphore pattern is specified and a file found based on File Spec does not have a semaphore pattern match then the file will not be processed unless an * is specified as the last semaphore pattern.
The same semaphore check is carried out at all subdirectory levels.
Confirm Complete setting is still applied but if a semaphore file is specified then you can consider changing Confirm Complete setting to None
If a File Spec of * is specified along with a semaphore file then the semaphore file will not be processed by the Adapter as a target file but only as a semaphore file.
Semaphore files are deleted after all target files found during the polling interval are processed and those target files are marked for deletion.
This setting is useful when the same filename is used for repeated file submissions.
Note: This setting takes precedence over DeleteFromServer and the file is moved from the source directory to this directory if DeleteFromServer is false.
Methods
Inherited Members
Inherited Properties
- %CredentialsObj
- %WarnedLatest
- %logTransfers
- BusinessHost
- CallInterval
- Credentials
- KeepaliveInterval
- RegistryID
Inherited Methods
- %AddToSaveSet()
- %ClassIsLatestVersion()
- %ClassName()
- %ConstructClone()
- %DispatchClassMethod()
- %DispatchGetModified()
- %DispatchGetProperty()
- %DispatchMethod()
- %DispatchSetModified()
- %DispatchSetMultidimProperty()
- %DispatchSetProperty()
- %Extends()
- %GetParameter()
- %IsA()
- %IsModified()
- %New()
- %NormalizeObject()
- %ObjectModified()
- %OriginalNamespace()
- %PackageName()
- %RemoveFromSaveSet()
- %SerializeObject()
- %SetModified()
- %ValidateObject()
- AssignOneSetting()
- ClearAllAppData()
- ClearRuntimeAppData()
- ClearStaticAppData()
- CorrespondingSemaphoreExists()
- CreateTimestamp()
- CredentialsSet()
- DeepListClose()
- DeepListExecute()
- DeepListFetch()
- EnumerateSettingsClose()
- EnumerateSettingsExecute()
- EnumerateSettingsFetch()
- FileLikePattern()
- FileListClose()
- FileListExecute()
- FileListFetch()
- GenerateSemaphoreFilename()
- GetSettings()
- LinkFileStream()
- NormalizeDirectory()
- OnKeepalive()
- OnTearDown()
- SemaphoreFileExists()
- fixPath()