489 lines
19 KiB
XML
489 lines
19 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE mbean PUBLIC
|
|
"-//JBoss//DTD JBOSS XMBEAN 1.1//EN"
|
|
"http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_1.dtd">
|
|
<mbean>
|
|
<description><![CDATA[ File Move Service
|
|
Move files from one file system group (RW) to another RW file system group if usable disk space
|
|
of <i>SourceFileSystemGroup</i> falls below <i>MoveThresholds</i> and configured.
|
|
accessed studies.]]>
|
|
</description>
|
|
<descriptors>
|
|
<persistence persistPolicy="OnUpdate" />
|
|
<persistence-manager
|
|
value="org.jboss.mx.persistence.DelegatingPersistenceManager" />
|
|
</descriptors>
|
|
<class>org.dcm4chex.archive.hsm.FileMoveService</class>
|
|
<constructor>
|
|
<description>The default constructor</description>
|
|
<name>FileMoveService</name>
|
|
</constructor>
|
|
|
|
<!-- Attributes -->
|
|
<attribute access="read-write" getMethod="getSrcFsGroup" setMethod="setSrcFsGroup">
|
|
<description><![CDATA[Source file system group ID or NONE to disable this service.]]>
|
|
</description>
|
|
<name>SourceFileSystemGroupID</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="NONE" />
|
|
</descriptors>
|
|
</attribute>
|
|
<attribute access="read-write" getMethod="getDestFsGroup" setMethod="setDestFsGroup">
|
|
<description><![CDATA[Destination file system group ID.<br/>
|
|
One filesystem of the configured group must be RW (selected via selectStorageFileSystem)<br/>
|
|
Use <file system path>@<file system group> to specify a concrete file system of a FS group.
|
|
In this case the file system can be also RO.]]>
|
|
</description>
|
|
<name>DestinationFileSystemGroupID</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="NONE" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-only" getMethod="getMinFreeDiskSpace" >
|
|
<description><![CDATA[Minimum free disk space on source filesystem group. Used to calculate usable disk space of the file system group.
|
|
1MB = 1000000 bytes, 1GB = 1000MB. Configured in corresponding FilesystemGroup service]]>
|
|
</description>
|
|
<name>MinimumFreeDiskSpaceOnSource</name>
|
|
<type>java.lang.String</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-only" getMethod="getUsableDiskSpace">
|
|
<description><![CDATA[Usable free disk space on source file
|
|
system group, considering the configured value for <i>MinimumFreeDiskSpace</i>, in bytes.]]>
|
|
</description>
|
|
<name>UsableDiskSpaceOnSource</name>
|
|
<type>long</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-only" getMethod="getUsableDiskSpaceString">
|
|
<description><![CDATA[Usable free disk space on source file
|
|
systems group, considering the configured value for <i>MinimumFreeDiskSpace</i>, as string.]]>
|
|
</description>
|
|
<name>UsableDiskSpaceOnSourceString</name>
|
|
<type>java.lang.String</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-only" getMethod="getUsableDiskSpaceStringOnDest">
|
|
<description><![CDATA[Usable free disk space on destination file systems group.]]>
|
|
</description>
|
|
<name>UsableDiskSpaceOnDestinationString</name>
|
|
<type>java.lang.String</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getDeleterThresholds"
|
|
setMethod="setDeleterThresholds">
|
|
<description><![CDATA[Defines 'disc free' thresholds dependent on hour of day, for
|
|
moving the most infrequently accessed studies which satisfy the
|
|
configured set of constraints.
|
|
<p>Format: HOUR:##MB or HOUR:##GB or HOUR:##h, multiple thresholds with
|
|
different (start) hour separated by ';'. NONE = disable move of
|
|
studies on file systems of the configured source file system group.
|
|
<p>E.g.: 7:1h;19:24h => free space for expected data volume received in
|
|
24 hours between 7pm and 7am. Between 7am and 7pm only move studies if
|
|
the usable free space falls below the expected data volume received in
|
|
one hour.]]>
|
|
</description>
|
|
<name>MoveThresholdsOnSource</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="7:1h;19:24h" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-only" getMethod="getExpectedDataVolumePerDay" >
|
|
<description><![CDATA[Expected data volume per day on source file system group. Used to transform
|
|
time based move thresholds (s. MoveThresholds) into disk space size
|
|
to free.]]>
|
|
</description>
|
|
<name>ExpectedDataVolumePerDayOnSource</name>
|
|
<type>java.lang.String</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-only" getMethod="getExpectedDataVolumePerDayBytes">
|
|
<description><![CDATA[Get expected data volume per day on source filesystem group
|
|
in bytes, returned as a long.]]>
|
|
</description>
|
|
<name>ExpectedDataVolumePerDayBytesOnSource</name>
|
|
<type>long</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-only" getMethod="getCurrentDeleterThreshold">
|
|
<description><![CDATA[Get current effective move threshold in bytes
|
|
according configured <i>MoveThreshold</i> and
|
|
<i>ExpectedDataVolumePerDay</i>. If <i>UsableDiskSpaceOnSource</i> falls below
|
|
this value, most infrequently accessed studies which satisfy the
|
|
configured set of constraints will be moved on next invocation of
|
|
operation <i>scheduleStudiesForMove</i>.]]>
|
|
</description>
|
|
<name>CurrentMoveThresholdOnSource</name>
|
|
<type>long</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getDeleteStudyIfNotAccessedFor"
|
|
setMethod="setDeleteStudyIfNotAccessedFor">
|
|
<description><![CDATA[Defines when a study not accessed for the specified
|
|
time can be moved from file systems of configured source file system group
|
|
to a file system of destination file system group, if it satisfies the configured set of constraints.
|
|
<p>Format:
|
|
<br>##h (in hours) | ##d (in days) | ##w (in weeks) | NEVER
|
|
<br>NEVER = move of studies is only triggered by running out of disk
|
|
space.
|
|
<br>Example:
|
|
<br>52w = any studies that have not been accessed for 52 weeks or more
|
|
can be moved if they satisfies the configured set of constraints.]]>
|
|
</description>
|
|
<name>MoveStudyIfNotAccessedFor</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="NEVER" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getDeleteStudyOnlyIfNotAccessedFor"
|
|
setMethod="setDeleteStudyOnlyIfNotAccessedFor">
|
|
<description><![CDATA[Defines minimal time a study must not be accessed
|
|
before it becomes a candidate for move.
|
|
<p>Format:
|
|
<br>##h (in hours) | ##d (in days) | ##w (in weeks)]]>
|
|
</description>
|
|
<name>MoveStudyOnlyIfNotAccessedFor</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="1d" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="isDeleteStudyOnlyIfStorageNotCommited"
|
|
setMethod="setDeleteStudyOnlyIfStorageNotCommited">
|
|
<description><![CDATA[Defines if no Storage Commitment request must have
|
|
been accepted for any instances of a study to become a candidate for
|
|
move triggered by running out of disk space or being not accessed
|
|
longer than configured <i>MoveStudiesNotAccessedFor</i>. Typically only
|
|
activated if no other constraint for study move is configured.]]>
|
|
</description>
|
|
<name>MoveStudyOnlyIfStorageNotCommited</name>
|
|
<type>boolean</type>
|
|
<descriptors>
|
|
<value value="false" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="isDeleteStudyOnlyIfCopyExternalRetrievable"
|
|
setMethod="setDeleteStudyOnlyIfCopyExternalRetrievable">
|
|
<description><![CDATA[Defines if all instances of a study must be
|
|
retrievable from an external Application Entity to become a candidate
|
|
for move triggered by running out of disk space or being not accessed
|
|
longer than configured <i>MoveStudiesNotAccessedFor</i>.]]>
|
|
</description>
|
|
<name>MoveStudyOnlyIfExternalRetrievable</name>
|
|
<type>boolean</type>
|
|
<descriptors>
|
|
<value value="true" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="getInstanceAvailabilityOfExternalRetrievable"
|
|
setMethod="setInstanceAvailabilityOfExternalRetrievable">
|
|
<description><![CDATA[Defines assumed Instance Availability of only
|
|
external retrievable Studies. Enumerated values: ONLINE, NEARLINE, AUTO.
|
|
AUTO - query Instance Availability from external Retrieve AE.]]>
|
|
</description>
|
|
<name>InstanceAvailabilityOfExternalRetrievable</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="AUTO" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="isDeleteStudyOnlyIfCopyOnMedia"
|
|
setMethod="setDeleteStudyOnlyIfCopyOnMedia">
|
|
<description><![CDATA[Defines if all instances of a study must be
|
|
stored on Media to become a candidate for move triggered by running out of
|
|
disk space or being not accessed longer than configured
|
|
<i>MoveStudiesNotAccessedFor</i>.]]>
|
|
</description>
|
|
<name>MoveStudyOnlyIfCopyOnMedia</name>
|
|
<type>boolean</type>
|
|
<descriptors>
|
|
<value value="true" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="getDeleteStudyOnlyIfCopyOnFileSystemOfFileSystemGroup"
|
|
setMethod="setDeleteStudyOnlyIfCopyOnFileSystemOfFileSystemGroup">
|
|
<description><![CDATA[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 move triggered by running out of disk space or
|
|
being not accessed longer than configured <i>MoveStudiesNotAccessedFor</i>.
|
|
"NONE" = no such constraint.]]>
|
|
</description>
|
|
<name>MoveStudyOnlyIfCopyOnFileSystemOfFileSystemGroup</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="NEARLINE_STORAGE" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="isDeleteStudyOnlyIfCopyArchived"
|
|
setMethod="setDeleteStudyOnlyIfCopyArchived">
|
|
<description><![CDATA[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 move triggered by running out of disk
|
|
space or being not accessed longer than configured
|
|
<i>MoveStudiesNotAccessedFor</i>. Typically the file system group of
|
|
the file system holding the archived copy is specified by
|
|
<i>MoveStudyIfCopyOnFileSystemOfFileSystemGroup</i>.]]>
|
|
</description>
|
|
<name>MoveStudyOnlyIfCopyArchived</name>
|
|
<type>boolean</type>
|
|
<descriptors>
|
|
<value value="true" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="isDeleteStudyOnlyIfCopyOnReadOnlyFileSystem"
|
|
setMethod="setDeleteStudyOnlyIfCopyOnReadOnlyFileSystem">
|
|
<description><![CDATA[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 move triggered by running out of disk space or being not
|
|
accessed longer than configured <i>MoveStudiesNotAccessedFor</i>.
|
|
Typically the file system group of the read-only file systems is
|
|
specified by <i>MoveStudyIfCopyOnFileSystemOfFileSystemGroup</i>.]]>
|
|
</description>
|
|
<name>MoveStudyOnlyIfCopyOnReadOnlyFileSystem</name>
|
|
<type>boolean</type>
|
|
<descriptors>
|
|
<value value="true" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="getScheduleStudiesForDeletionInterval"
|
|
setMethod="setScheduleStudiesForDeletionInterval">
|
|
<description><![CDATA[Interval in which operation
|
|
<i>scheduleStudiesForMove</i> is invoked to schedule move of most
|
|
infrequently accessed studies which satisfies the configured set of
|
|
constraints from file systems of the source file system group,
|
|
if they were not accessed longer than configured
|
|
<i>MoveStudiesNotAccessedFor</i> or if <i>UsableDiskSpaceOnSource</i>
|
|
falls below <i>CurrentMoveThreshold</i>.
|
|
<p>Format: ##s (in seconds), ##m (in minutes), ##h (in hours).
|
|
<br>NEVER = do not invoke operation <i>scheduleStudiesForMove</i>
|
|
by timer thread automatically. ]]>
|
|
</description>
|
|
<name>ScheduleStudiesForMoveInterval</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="NEVER" />
|
|
</descriptors>
|
|
</attribute>
|
|
<attribute access="read-only"
|
|
getMethod="isRunningScheduleStudiesForDeletion">
|
|
<description>Current state if ScheduleStudiesForMove task is running. Used to avoid concurrency!
|
|
</description>
|
|
<name>isRunningScheduleStudiesForMove</name>
|
|
<type>boolean</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="getScheduleStudiesForDeletionBatchSize"
|
|
setMethod="setScheduleStudiesForDeletionBatchSize">
|
|
<description><![CDATA[Defines maximal number of studies scheduled for
|
|
move in one transaction.]]>
|
|
</description>
|
|
<name>ScheduleStudiesForMoveBatchSize</name>
|
|
<type>int</type>
|
|
<descriptors>
|
|
<value value="100" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="getRetryIntervalls"
|
|
setMethod="setRetryIntervalls">
|
|
<description><![CDATA[Number and interval of retries made for
|
|
failed Move Requests.
|
|
<br>Format:
|
|
<br>Comma separated list of <i>number</i>x<i>interval</i> pairs.
|
|
<br>The interval can be specified in seconds (##s),
|
|
minutes (##m), hours (##h) or days (##d).
|
|
<br>Example:
|
|
<br>5x1m,10x10m means retry a total of 5 times, one minute
|
|
apart for each retry; then retry a total of 10 times, 10 minutes
|
|
apart for each retry.]]>
|
|
</description>
|
|
<name>RetryIntervals</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="5x1m,12x5m,24x1h,7x1d" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="isKeepSrcFiles" setMethod="setKeepSrcFiles">
|
|
<description>Keep source file (copy instead of move).
|
|
</description>
|
|
<name>KeepSrcFiles</name>
|
|
<type>boolean</type>
|
|
<descriptors>
|
|
<value value="false"/>
|
|
</descriptors>
|
|
</attribute>
|
|
<attribute access="read-write" getMethod="isVerifyCopy" setMethod="setVerifyCopy">
|
|
<description>Verify MD5 sum of copied file.
|
|
</description>
|
|
<name>VerifyCopy</name>
|
|
<type>boolean</type>
|
|
<descriptors>
|
|
<value value="true"/>
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="isKeepMovedFilesOnError" setMethod="setKeepMovedFilesOnError">
|
|
<description>Keep successfully moved files if one or more files failed. (not supported on tar file systems!).
|
|
If disabled the whole Move order is rolled back if one file failed!
|
|
</description>
|
|
<name>KeepMovedFilesOnError</name>
|
|
<type>boolean</type>
|
|
<descriptors>
|
|
<value value="false"/>
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getDestFileStatus" setMethod="setDestFileStatus">
|
|
<description><![CDATA[File status of destination files after move.<br/>
|
|
Suitable stati: DEFAULT, TO_ARCHIVE, ARCHIVED <br/>
|
|
Use '-' to leave file status unchanged.]]>
|
|
</description>
|
|
<name>DestinationFileStatus</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="-" />
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="getBufferSize"
|
|
setMethod="setBufferSize">
|
|
<description>Size of write byte buffer.
|
|
</description>
|
|
<name>BufferSize</name>
|
|
<type>int</type>
|
|
<descriptors>
|
|
<value value="8192"/>
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="getHSMModulServicename"
|
|
setMethod="setHSMModulServicename">
|
|
<description><![CDATA[HSM Module to store tarballs to HSM systems.<br/>
|
|
Use NONE to store files on local filesystem without additional HSM support.<br/>
|
|
Only effective if destination is a tar filesystem!<br/>
|
|
Please ensure with dependencies in deployment descriptor that this service starts after configured HSMModule!<br/>
|
|
]]></description>
|
|
<name>HSMModulServicename</name>
|
|
<type>java.lang.String</type>
|
|
<descriptors>
|
|
<value value="NONE"/>
|
|
</descriptors>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="getTimerIDScheduleStudiesForDeletion"
|
|
setMethod="setTimerIDScheduleStudiesForDeletion">
|
|
<description>Used internally. Do NOT modify. </description>
|
|
<name>TimerIDScheduleStudiesForMove</name>
|
|
<type>java.lang.String</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="getQueueName"
|
|
setMethod="setQueueName">
|
|
<description>Used internally. Do NOT modify.
|
|
</description>
|
|
<name>QueueName</name>
|
|
<type>java.lang.String</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="getFileSystemMgtServiceNamePrefix"
|
|
setMethod="setFileSystemMgtServiceNamePrefix">
|
|
<description>Used internally. Do NOT modify.
|
|
</description>
|
|
<name>FileSystemMgtServiceNamePrefix</name>
|
|
<type>java.lang.String</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-write"
|
|
getMethod="getJmsServiceName"
|
|
setMethod="setJmsServiceName">
|
|
<description>Used internally. Do NOT modify.
|
|
</description>
|
|
<name>JMSServiceName</name>
|
|
<type>javax.management.ObjectName</type>
|
|
</attribute>
|
|
<attribute access="read-write" getMethod="getSchedulerServiceName"
|
|
setMethod="setSchedulerServiceName">
|
|
<description>Used internally. Do NOT modify. </description>
|
|
<name>SchedulerServiceName</name>
|
|
<type>javax.management.ObjectName</type>
|
|
</attribute>
|
|
|
|
<attribute access="read-write" getMethod="getFindScuServiceName"
|
|
setMethod="setFindScuServiceName">
|
|
<description>Used internally. Do NOT modify. </description>
|
|
<name>FindScuServiceName</name>
|
|
<type>javax.management.ObjectName</type>
|
|
</attribute>
|
|
|
|
&defaultAttributes;
|
|
|
|
<!-- Operations -->
|
|
&defaultOperations;
|
|
|
|
<operation impact="ACTION">
|
|
<description><![CDATA[Schedules move of most infrequently accessed
|
|
studies which satisfies the configured set of constraints from writeable
|
|
file systems of the source file system group, if they
|
|
were not accessed longer than configured
|
|
<i>MoveStudiesNotAccessedFor</i> or if <i>UsableDiskSpaceOnSource</i> falls
|
|
below <i>CurrentMoveThreshold</i>.
|
|
Returns the number of studies scheduled for move.]]>
|
|
</description>
|
|
<name>scheduleStudiesForMove</name>
|
|
<return-type>int</return-type>
|
|
</operation>
|
|
|
|
<operation impact="ACTION">
|
|
<description><![CDATA[Schedule move of study with specified Study
|
|
Instance UID <b>without</b> consideration of the configured set of
|
|
constraints. Returns size of study in bytes scheduled for deletion.]]>
|
|
</description>
|
|
<name>scheduleStudyForMove</name>
|
|
<parameter>
|
|
<description>Study Instance UID.
|
|
</description>
|
|
<name>suid</name>
|
|
<type>java.lang.String</type>
|
|
</parameter>
|
|
<return-type>long</return-type>
|
|
</operation>
|
|
|
|
<operation impact="ACTION">
|
|
<description>Show current Move criteria.</description>
|
|
<name>showMoveCriteria</name>
|
|
<return-type>java.lang.String</return-type>
|
|
</operation>
|
|
<!-- Notifications -->
|
|
</mbean>
|