View Source

h2. Description

File System Management Service. Specifies the location of file systems in which DICOM objects received from the Store SCP Server are stored. You can also set up rules to delete the most infrequently accessed studies.

h2. Dependencies

!fileSystemMgt.gif!

h2. Attributes

h4. [#Name] {anchor:Name}

The class name of the MBean

h4. [#State] {anchor:State}

The status of the MBean

h4. [#StateString] {anchor:StateString}

The status of the MBean in text form

h4. [#FileSystemGroupID] {anchor:FileSystemGroupID}

Identifier of the file system group managed by this service, specified by property *group* of its MBean name.


h4. [#DefaultRetrieveAETitle] {anchor:DefaultRetrieveAETitle}

Default Retrieve AE Title, which will be associated with new file systems added by operation [#addRWFileSystem].


*Default Value:* {{DCM4CHEE}}


h4. [#DefaultAvailability] {anchor:DefaultAvailability}

Default Availability, which will be associated with new file systems added by operation [#addRWFileSystem].
Enumerated values: "ONLINE", "NEARLINE","OFFLINE", "UNAVAILABLE".


*Default Value:* {{NEARLINE}}


h4. [#DefaultUserInformation] {anchor:DefaultUserInformation}

Default User Information, which will be associated with new file systems added by operation [#addRWFileSystem].

h4. [#DefaultStorageDirectory] {anchor:DefaultStorageDirectory}

Default Storage Directory, used on receive of the first object if no Storage File System was explicit configured byoperation [#addRWFileSystem}. A relative path name is resolved relative to _<archive-install-directory>_{{/server/default/}}.
Use "NONE" to disable auto-configuration to force failure to receive objects, if no Storage File System was explicit configured.

*Default Value:* {{NONE}}


h4. [#CheckStorageFileSystemStatus] {anchor:CheckStorageFileSystemStatus}

Flag indicating if the RW status of the current storage file system is checked before each file storage of objects received by the Storage SCP.

If the update of the status of the file system is only performed by invoking operations [#updateFileSystemStatus] of this service - in particular, if there are no other running dcm4chee applications on other nodes (dcm4chee cluster), and File System records in the database will NOT be updated by executing SQL statements using some dcm4chee external SQL client application - the check can be deactivated to spare the execution of one additional SQL statement for each stored object.

*Default Value:* {{true}}


h4. [#MakeStorageDirectory] {anchor:MakeStorageDirectory}

Create storage directory, if no one exists.

*Default Value:* {{false}}


h4. [#MountFailedCheckFile] {anchor:MountFailedCheckFile}

If the specified file exists, this signals a failed mount.

*Default Value:* {{NO_MOUNT}}


h4. [#MinimumFreeDiskSpace] {anchor:MinimumFreeDiskSpace}

Minimum free disk space. If the free available disk space on the current storage file system falls below this value, the next configured file system becomes the current storage system.
1MB = 1000000 bytes, 1GB = 1000MB.
NONE = disable check for minimal free available disk space.

*Default Value:* {{NONE}}


h4. [#FreeDiskSpaceOnCurrentStorageFileSystem] {anchor:FreeDiskSpaceOnCurrentStorageFileSystem}

Get free available disk space on the current storage file system in bytes.

h4. [#FreeDiskSpaceOnCurrentStorageFileSystemString] {anchor:FreeDiskSpaceOnCurrentStorageFileSystemString}

Get free available disk space on the current storage file system as string.


h4. [#UsableDiskSpaceOnCurrentStorageFileSystem] {anchor:UsableDiskSpaceOnCurrentStorageFileSystem}

Get usable free disk space on the current storage file system, considering the configured value for [#MinimumFreeDiskSpace], by substracting that value from [#FreeDiskSpaceOnCurrentStorageFileSystem], in bytes.


h4. [#UsableDiskSpaceOnCurrentStorageFileSystemString] {anchor:UsableDiskSpaceOnCurrentStorageFileSystemString}

Get usable free disk space on the current storage file system, considering the configured value for [#MinimumFreeDiskSpace], by substracting that value from [#FreeDiskSpaceOnCurrentStorageFileSystem], as string.


h4. [#FreeDiskSpace] {anchor:FreeDiskSpace}

Get free available disk space on writable file systems of the file system group managed my this service.


h4. [#FreeDiskSpaceString] {anchor:FreeDiskSpaceString}

Get free available disk space on writable file systems of the file system group managed my this service as string.


h4. [#UsableDiskSpace] {anchor:UsableDiskSpace}

Get usable free disk space on writable file systems of the file system group managed my this service, considering the configured value for [#MinimumFreeDiskSpace], in bytes.


h4. [#UsableDiskSpaceString] {anchor:UsableDiskSpaceString}

Get usable free disk space on writable file systems of the file system group managed my this service, considering the configured value for [#MinimumFreeDiskSpace], as string.


h4. [#CheckFreeDiskSpaceMinimalInterval] {anchor:CheckFreeDiskSpaceMinimalInterval}

Minimal Interval for checking free available disk space on current storage file system against minimum value specified by
[#MinimumFreeDiskSpace]. The current interval (curInterval) is calculated by multiplication of this value (minInterval) with the ratio of the current free available disk space (curFDS) to the configured [#MinimumFreeDiskSpace] (minFDS), but maximal the value specified by [#CheckFreeDiskSpaceMaximalInterval] (maxInterval):
{noformat}
curInterval = min(minInterval * curFDS/minFDS, maxInterval)
{noformat}

*Format:* ##m (in minutes) | ##s (in seconds).

*Default Value:* {{10s}}


h4. [#CheckFreeDiskSpaceMaximalInterval] {anchor:CheckFreeDiskSpaceMaximalInterval}

Maximal Interval for checking free available disk space on current storage file system against minimum value specified by [#MinimumFreeDiskSpace]. Effective as long the current free available disk space is greater than [#MinimumFreeDiskSpace] multiplied by the ratio of this value and the configured [#CheckFreeDiskSpaceMinimalInterval]. Otherwise the interval will be calculated as described above for attribute [#CheckFreeDiskSpaceMinimalInterval].

*Format:* ##m (in minutes) | ##s (in seconds).

*Default Value:* {{60s}}


h4. [#CheckFreeDiskSpaceRetryInterval] {anchor:CheckFreeDiskSpaceRetryInterval}

Pause check for free available disk space for the specified time interval after no configured file system was found with sufficent (= more than specified by [#MinimumFreeDiskSpace]) available disk space.

*Format:* ##m (in minutes) | ##s (in seconds).

*Default Value:* {{60s}}


h4. [#DeleterThresholds] {anchor:DeleterThresholds}

Defines thresholds dependent on hour of day, for deleting the most infrequently accessed studies which satisfy the configured set of constraints.

*Format:* HOUR:##MB or HOUR:##GB or HOUR:##h
Multiple thresholds with different (start) hour separated by ';'.
NONE = disable deletion of studies on file systems of the file system group managed my this service.

*Example:* 7:1h;19:24h
=> free space for expected data volume received in 24 hours between 7pm and 7am. Between 7am and 7pm only delete studies if the usable free space falls below the expected data volume received in one hour.

*Default Value:* {{NONE}}


h4. [#ExpectedDataVolumePerDay] {anchor:ExpectedDataVolumePerDay}

Expected data volume per day. Used to transform time based deleter thresholds (s. DeleterThresholds) into disk space size to free.

*Default Value:* {{100MB}}


h4. [#AdjustExpectedDataVolumePerDay] {anchor:AdjustExpectedDataVolumePerDay}

Update value of attribute ExpectedDataVolumePerDay at midnight, if data volume received during last 24 hours exceeds its current value.

*Default Value:* {{true}}


h4. [#CurrentDeleterThreshold] {anchor:CurrentDeleterThreshold}

Get current effective deleter threshold in bytes according configured [#DeleterThreshold] and [#ExpectedDataVolumePerDay]. If [#UsableDiskSpace] falls below this value, most infrequently accessed studies which satisfy the configured set of constraints will be deleted on next invocation of operation [#scheduleStudiesForDeletion].


h4. [#DeleteStudyIfNotAccessedFor] {anchor:DeleteStudyIfNotAccessedFor}

Defines when a study not accessed for the specified time will be deleted from file systems of the file system group managed by this service, if it satisfies the configured set of constraints.

*Format:* ##h (in hours) | ##d (in days) | ##w (in weeks) | NEVER
NEVER = deletion of studies is only triggered by running out of disk space.

*Example:* 52w
=> any studies that have not been accessed for 52 weeks or more can be deleted if they satisfies the configured set of constraints.

*Default Value:* {{NEVER}}


h4. [#DeleteStudyOnlyIfNotAccessedFor] {anchor:DeleteStudyOnlyIfNotAccessedFor}

Defines minimal time a study must not be accessed before it becomes a candidate for deletion.

*Format:* ##h (in hours) | ##d (in days) | ##w (in weeks)

*Default Value:* {{1d}}


h4. [#DeleteStudyOnlyIfStorageNotCommited] {anchor:DeleteStudyOnlyIfStorageNotCommited}

Defines if no Storage Commitment request must have been accepted for any instances of a study to become a candidate for deletion from file systems of the file system group managed my this service triggered by running out of disk space or being not accessed longer than configured [#DeleteStudiesNotAccessedFor]. Typically only activated if no other constraint for study deletion is configured.

*Default Value:* {{false}}


h4. [#DeleteStudyOnlyIfExternalRetrievable] {anchor:DeleteStudyOnlyIfExternalRetrievable}

Defines if all instances of a study must be retrievable from an external Application Entity to become a candidate for deletion from file systems of the file system group managed my this service triggered by running out of disk space or being not accessed longer than configured [#DeleteStudiesNotAccessedFor].

*Default Value:* {{false}}


h4. [#InstanceAvailabilityOfExternalRetrievable] {anchor:InstanceAvailabilityOfExternalRetrievable}

Defines assumed Instance Availability of only external retrievable Studies.
Enumerated values: {{ONLINE}}, {{NEARLINE}}, {{AUTO}}.
{{AUTO}} - query Instance Availability from external Retrieve AE..

*Default Value:* {{AUTO}}


h4. [#DeleteStudyOnlyIfCopyOnMedia] {anchor:DeleteStudyOnlyIfCopyOnMedia}

Defines if all instances of a study must be stored on Media to become a candidate for deletion from file systems of the file system group managed my this service triggered by running out of disk space or being not accessed longer than configured [#DeleteStudiesNotAccessedFor].

*Default Value:* {{false}}


h4. [#DeleteStudyOnlyIfCopyOnFileSystemOfFileSystemGroup] {anchor:DeleteStudyOnlyIfCopyOnFileSystemOfFileSystemGroup}

Defines if all instances of a study must be stored on a file system of the specified different file system group to become a candidate for deletion from file systems of the file system group managed my this service triggered by running out of disk space or being not accessed longer than configured [#DeleteStudiesNotAccessedFor].
"NONE" = no such constraint.

*Default Value:* {{NEARLINE_STORAGE}}


h4. [#DeleteStudyOnlyIfCopyArchived] {anchor:DeleteStudyOnlyIfCopyArchived}

Defines if all instances of a study must be stored on a file system of a different file system group with file status: ARCHIVED to become a candidate for deletion from file systems of the file system group managed my this service triggered by running out of disk space or being not accessed longer than configured [#DeleteStudiesNotAccessedFor]. Typically the file system group of the file system holding the archived copy is specified by [#DeleteStudyIfCopyOnFileSystemOfFileSystemGroup].

*Default Value:* {{false}}


h4. [#DeleteStudyOnlyIfCopyOnReadOnlyFileSystem] {anchor:DeleteStudyOnlyIfCopyOnReadOnlyFileSystem}

Defines if all instances of a study must be stored on a read-only file system of a different file system group to become a candidate for deletion from file systems of the file system group managed my this service triggered by running out of disk space or being not accessed longer than configured [#DeleteStudiesNotAccessedFor]. Typically the file system group of the read-only file systems is specified by [#DeleteStudyIfCopyOnFileSystemOfFileSystemGroup].


*Default Value:* {{false}}


h4. [#ScheduleStudiesForDeletionOnSeriesStored] {anchor:ScheduleStudiesForDeletionOnSeriesStored}

Defines if operation [#scheduleStudiesForDeletion] is invoked to schedule deletion of most infrequently accessed studies after storage of a new Series by the Storage SCP Service.

*Default Value:* {{false}}


h4. [#ScheduleStudiesForDeletionInterval] {anchor:ScheduleStudiesForDeletionInterval}

Interval in which operation [#scheduleStudiesForDeletion] is invoked to schedule deletion of most infrequently accessed studies which satisfies the configured set of constraints from writable file systems of the file system group managed my this service, if they were not accessed longer than configured [#DeleteStudiesNotAccessedFor] or if [#UsableDiskSpace] falls below [#CurrentDeleterThreshold].

*Format:* ##s (in seconds), ##m (in minutes), ##h (in hours).
NEVER = do not invoke operation [#scheduleStudiesForDeletion] by timer thread automatically. => If also [#ScheduleStudiesForDeletionOnSeriesStored] is not activated, no studies will be deleted automatically from file systems of the file system group managed my this service.

*Default Value:* {{NEVER}}


h4. [#ScheduleStudiesForDeletionBatchSize] {anchor:ScheduleStudiesForDeletionBatchSize}

Defines maximal number of studies scheduled for deletion in one transaction.

*Default Value:* {{100}}


h4. [#DeleteOrphanedPrivateFilesInterval] {anchor:DeleteOrphanedPrivateFilesInterval}

Interval in which operation [#deleteOrphanedPrivateFiles] is invoked to delete orphaned private files from writable file systems of the file system group managed my this service. Orphaned private files are the result of deleting instances from the web trash folder.

*Format:* ##s (in seconds), ##m (in minutes), ##h (in hours).
NEVER = do not invoke operation [#deleteOrphanedPrivateFiles] automatically => never delete orphaned private files from the file system group managed my this service automatically.

*Default Value:* {{NEVER}}


h4. [#DeleteOrphanedPrivateFilesBatchSize] {anchor:DeleteOrphanedPrivateFilesBatchSize}
Limit the number of orphaned private files that are deleted by one invocation of operation <i>deleteOrphanedPrivateFiles</i>.

*Default Value:* {{1000}}


h4. [#UpdateStudiesBatchSize] {anchor:UpdateStudiesBatchSize}

Defines maximal number of studies fetched from the data base in one transaction by operation [#updateFileSystemAvailability] and [#updateFileSystemRetrieveAETitle] for update of _Availability_ and _RetrieveAETs_ values in Study, Series and Instance records.

*Default Value:* {{1000}}


h4. [#TimerIDScheduleStudiesForDeletion] {anchor:TimerIDScheduleStudiesForDeletion}

Used internally. Do NOT modify.

h4. [#TimerIDDeleteOrphanedPrivateFiles] {anchor:TimerIDDeleteOrphanedPrivateFiles}

Used internally. Do NOT modify.

h4. [#SchedulerServiceName] {anchor:SchedulerServiceName}

Used internally. Do NOT modify.

h4. [#DeleteStudyServiceName] {anchor:DeleteStudyServiceName}

Used internally. Do NOT modify.

h4. [#StoreScpServiceName] {anchor:StoreScpServiceName}

Used internally. Do NOT modify.

h2. Operations


h4. [#create] {anchor:create}

Standard MBean lifecycle method

h4. [#start] {anchor:start}

The start lifecycle operation

h4. [#stop] {anchor:stop}
The stop lifecycle operation

h4. [#destroy] {anchor:destroy}

The destroy lifecycle operation

h4. [#jbossInternalLifecycle] {anchor:jbossInternalLifecycle}

The detyped lifecycle operation (for internal use only)

h4. [#listAllFileSystems] {anchor:listAllFileSystems}

List all configured file systems.

h4. [#listFileSystems] {anchor:listFileSystems}

List all configured file systems associated with the file system group managed my this service.


h4. [#listFileSystemDirectories] {anchor:listFileSystemDirectories}

Return Directory Paths for all configured file systems associated with the file system group managed my this service as array of Files.


h4. [#addRWFileSystem] {anchor:addRWFileSystem}

Add RW file system to the file system group managed my this service. The file system is also linked to existing other file systems of the group.


h4. [#removeFileSystem] {anchor:removeFileSystem}

Remove empty file system from the file system group managed my this service. Will fail, if there are already/still file records associated with the file system.


h4. [#linkFileSystems] {anchor:linkFileSystems}

Link or unlink two file systems of the file system group managed my this service.


h4. [#updateFileSystemStatus] {anchor:updateFileSystemStatus}

Update RW status of the specified file system. If the new file system status is "RW+", which defines the file system as current storage file system, the status of the previous storage file system is set to "RW", to ensure that there is only one file system in one file system group with status "RW+".


h4. [#updateFileSystemAvailability] {anchor:updateFileSystemAvailability}

Update file system availability of the specified file system.


h4. [#updateFileSystemRetrieveAETitle] {anchor:updateFileSystemRetrieveAETitle}

Update Retrieve AE Title associated to the specified file system.


h4. [#selectStorageFileSystem] {anchor:selectStorageFileSystem}

Select Storage File System

h4. [#selectStorageDirectory] {anchor:selectStorageDirectory}

Select Storage File System and return Directory

h4. [#adjustExpectedDataVolumePerDay] {anchor:adjustExpectedDataVolumePerDay}

Update value of attribute [#ExpectedDataVolumePerDay], if data volume received during last 24 hours exceeds its current value.


h4. [#scheduleStudiesForDeletion] {anchor:scheduleStudiesForDeletion}

Schedules deletion of most infrequently accessed studies which satisfies the configured set of constraints from writable file systems of the file system group managed my this service, if they were not accessed longer than configured [#DeleteStudiesNotAccessedFor] or if [#UsableDiskSpace] falls below [#CurrentDeleterThreshold]. Returns the number of studies scheduled for deletion.


h4. [#scheduleStudyForDeletion] {anchor:scheduleStudyForDeletion}

Schedule deletion of study with specified Study Instance UID from writable file systems of the file system group managed by this service, *without* consideration of the configured set of constraints. Returns size of study in bytes scheduled for deletion.


h4. [#deleteOrphanedPrivateFiles] {anchor:deleteOrphanedPrivateFiles}

Delete orphaned private files from writable file systems of the file system group managed my this service. Orphaned file system.


h4. [#selectStorageFileSystem] {anchor:selectStorageFileSystem}

Select Storage File System

h4. [#selectStorageDirectory] {anchor:selectStorageDirectory}

Select Storage File System and return Directory

h4. [#adjustExpectedDataVolumePerDay] {anchor:adjustExpectedDataVolumePerDay}

Update value of attribute [#ExpectedDataVolumePerDay], if data volume received during last 24 hours exceeds its current value.


h4. [#scheduleStudiesForDeletion] {anchor:scheduleStudiesForDeletion}

Schedules deletion of most infrequently accessed studies which satisfies the configured set of constraints from writable file systems of the file system group managed my this service, if they were not accessed longer than configured [#DeleteStudiesNotAccessedFor] or if [#UsableDiskSpace] falls below [#CurrentDeleterThreshold].
Returns the number of studies scheduled for deletion.


h4. [#scheduleStudyForDeletion] {anchor:scheduleStudyForDeletion}

Schedule deletion of study with specified Study Instance UID from writable file systems of the file system group managed by this service, *without* consideration of the configured set of constraints. Returns size of study in bytes scheduled for deletion.


h4. [#deleteOrphanedPrivateFiles] {anchor:deleteOrphanedPrivateFiles}

Delete orphaned private files from writable file systems of the file system group managed my this service. Orphaned private files are the result of deleting instances from the web trash folder. Returns the number of deleted files.