Data Sweeper Service

The Data Sweeper service is a system service that corrects discovered entity relationship issues within the database that might cause performance problems and unnecessary database expansion.

The following table provides an overview of the Data Sweeper service:

System name Data Sweeper Service
Graphical Process Modeler (GPM) categories System Services
Description The Data Sweeper service is an optionally scheduled system service that cleans up data that is not in use and not cleaned by other system cleanup processes due to lack of any continued associations to the data.
Business usage The Data Sweeper service is a system service that corrects discovered entity relationship issues within the database that could cause performance problems and unnecessary database expansion.
Usage examples Based on the optional parameters and dataSweeper.properties file settings, you have set, Data Sweeper service cleans up the data potentially left from data disassociations from the following tables:
  • EDIINT
  • Correlations
  • Document Clones
  • Document Life Span
  • GUID
  • Performance Engine Stats
  • Workflow Context
  • Workflow ID
Note: The Data Sweeper command line option (datasweeper.cmd or datasweeper.sh) also cleans Data_Table/TRANS_DATA on the recommendation of the Sterling Customer Support.
Preconfigured? Yes. DataSweeper.
Requires third party files? No
Platform availability The following platforms are supported:
  • HP-UX
  • IBM AIX
  • IBM iSeries (OS/400)
  • Microsoft Windows 2000
  • RedHat AS
  • Sun Solaris
  • United Linux
Related services None
Note: The Data Sweeper service references the dataSweeper.properties file in the <SIInstallDir>/properties directory.
Application requirements None
Initiates business processes? Data Sweeper service is a system service that runs a business process. You can run DataSweeper.sh or DataSweeper.cmd from the command line.
Invocation The Data Sweeper service is not for use in customer business processes but you may use it in a system business process.
Business process context considerations None
Returned status values
  • Success
  • Failure
Restrictions To run -dataTableScanSweeper command line option, ensure that the Application is shut down, and the database is running. Use the dataTableScanSweeper option only if Customer Support advises you to run it.
Note: Data Sweeper service starts MySQL if it is already not running.
Persistence level The default persistence level is Full. You can set the persistence to a lower level if logging is not required.
Testing considerations Data Sweeper service writes to the noapp log file.

Configuring the Data Sweeper Service

There are no configurable parameters. All options must be set in the BPML, at the command line, or in the properties file. At run time, the command line or BPML will override the properties file settings in the case of a conflict.

Business Process Example

The following example business process illustrates using the Data Sweeper service:

<process name="Schedule_DataSweeper"> 
      <rule name="obtainLock"> 
          <condition>controlLock ='true' </condition> 
      </rule> 
      <sequence> 
      <assign to='controlLock'>false</assign> 
      <operation name="SetLock"> 
         <participant name="SystemLockService"/> 
         <output message="Xout"> 
           <assign to="LOCK_KEY">DataSweeper</assign> 
           <assign to="DURATION">86400000</assign> 
 	  <assign to="CLEAR_ON_START_UP">true</assign> 
           <assign to="." from="*"></assign> 
         </output> 
         <input message="Xin"> 
           <assign to="." from="*"></assign> 
         </input> 
       </operation> 
       <assign to='controlLock'>true</assign> 
       <operation name="Service"> 
          <participant name="DataSweeper"/> 
          <output message="Xout"> 
            <assign to="batchSize">5000</assign> 
            <assign to="autocorrect">TRUE</assign> 
            <assign to="maxIterations">1000</assign> 
            <assign to="sweeperTimeout">1080000</assign> 
            <assign to="sweeperTimeoutThreshold">36000000</assign> 
            <assign to="." from="*"></assign> 
          </output> 
          <input message="Xin"> 
             <assign to="." from="*"></assign> 
          </input> 
       </operation> 
    <operation name="unLock"> 
      <participant name="SystemLockService"/> 
      <output message="Xout"> 
        <assign to="ACTION">unlock</assign> 
        <assign to="LOCK_KEY">DataSweeper</assign> 
        <assign to="." from="*"></assign> 
      </output> 
      <input message="Xin"> 
        <assign to="." from="*"></assign> 
      </input> 
    </operation> 
   <onFault> 
     <sequence name="LockFaild"> 
       <choice> 
         <select> 
           <case ref="obtainLock" activity="proceedWithLocking"/> 
           <case ref="obtainLock" negative="true" activity="stopWithoutLocking"/> 
         </select> 
         <sequence name="proceedWithLocking"> 
           <operation> 
             <participant name="SystemLockService"/> 
             <output message="Xout"> 
               <assign to="ACTION">unlock</assign> 
               <assign to="LOCK_KEY">DataSweeper</assign> 
               <assign to="." from="*"></assign> 
             </output> 
             <input message="Xin"> 
               <assign to="." from="*"></assign> 
             </input> 
           </operation> 
         </sequence> 
         <sequence name="stopWithoutLocking"> 
           <assign to="Document/Msg" append="true">Failed to obtain a lock.!
           </assign> 
         </sequence> 
       </choice> 
       <assign to="Document/Status" append="true">Failed!</assign> 
       <assign to="Document/Msg" append="true">DataSweeper failed!</assign> 
       <assign to="Document/CurrentHost" append="true">loki</assign> 
       <assign to="Document/CurrentPort" append="true">53000</assign> 
       <assign to="Document/DetailMsg" from="/ProcessData/StatusRpt/text()" 
append="true"></assign> 
      <operation name="SMTP Send"> 
          <participant name="SMTP_SEND_ADAPTER"/> 
          <output message="SMTP_SEND_ADAPTERInputMessage"> 
            <assign 
to="xport-smtp-mailfrom">alert_email_recipient@yournet.com</assign> 
            <assign to="xport-smtp-mailhost">yourmailhost.local</assign> 
            <assign to="xport-smtp-mailport">25</assign> 
            <assign to="xport-smtp-mailto">alert_email_recipient@yournet.com
            </assign> 
            <assign to="xport-smtp-mailsubject">Automated Event Notification - 
DataSweeper Failed</assign> 
            <assign to="PrimaryDocument" from="DOMToDoc(Document)/@*"></assign> 
            <assign to="." from="*"></assign> 
          </output> 
         <input message="inmsg"> 
           <assign to="." from="*"></assign> 
         </input> 
       </operation> 
     </sequence> 
   </onFault> 
      </sequence> 
     </process>