IBM Maximo: Cleanup WOGEN table

From Wiki
Revision as of 13:43, 2 August 2023 by Ebasso (talk | contribs) (Criou a página com "WOGEN table data growing exponentially. Is very important to cleanup this table Details here: [https://www.ibm.com/support/pages/wogen-table-data-growing-exponentially WOGE...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

WOGEN table data growing exponentially. Is very important to cleanup this table

Details here: WOGEN table data growing exponentially


Create a Crontask

Automation Script - Definition

1) Navigate to the System Configuration > Platform Configuration > Automation Scripts application. 2) From the Select Action menu, choose the Create > Script option. 3) Populate the fields:

  • Script: MAX_CLEANUP_WOGEN
  • Description: Automation Script to cleanup WOGEN table
  • Script Language: python
  • Log Level: ERROR
  • Source: <put source code below>

4) Click the Create button to create the new script

Automation Script - Source Code

#
# MAX_CLEANUP_WOGEN Automation Script called from a Cron Task
# this script cleanup WOGEN table
#
from java.lang import System
from psdi.server import MXServer
from psdi.util.logging import MXLoggerFactory

mxserver = MXServer.getMXServer()
logger = MXLoggerFactory.getLogger("maximo.maximodev")

def string_to_dict(input_string):
    res_dict = {}
    pairs = input_string.split(',')
    
    for pair in pairs:
        key, value = pair.split('=')
        if value is not None:
            res_dict[key.lower()] = value
    
    return res_dict

# Execute delete statement
def execDelete(days, numrows):
    logger.debug("MAX_CLEANUP_WOGEN - execDelete - start")
    
    sql = 'delete from WOGEN where rundate < (sysdate-' + days + ') and rownum <= ' + numrows
    conKey = mxserver.getSystemUserInfo().getConnectionKey()
    con = mxserver.getDBManager().getConnection(conKey)
    try:
        stmt= con.createStatement()
        stmt.executeUpdate(sql)
        stmt.close()
        con.commit()
    except:
        print('MAX_CLEANUP_WOGEN - execDelete - exception')
    finally:
        mxserver.getDBManager().freeConnection(conKey)


# ======================== main ======================== 
logger.info('MAX_CLEANUP_WOGEN start script -- running')
print('MAX_CLEANUP_WOGEN start script -- running')

# Get the variables from the cron task arguments
days = '1'
numrows = '100'

if arg:
    arg_dict = string_to_dict(arg)
    if 'days' in arg_dict:
        days = arg_dict['days']
    if 'numrows' in arg_dict:
        numrows = arg_dict['numrows']

print('MAX_CLEANUP_WOGEN days = ' + days + '; numrows = ' + numrows )

execDelete(days,numrows)

logger.info('MAX_CLEANUP_WOGEN end script')

Ver também