We need to update some jobs in batch (for example change path in the command field of similar jobs). Is there way to update it automatically directly in the DB. The number of jobs is about 5000.
We are running oracle now and use external cache DB. Which tables and fields should we update and do we have to update both Master and Cache DB or only the Master DB?
Looks like you are on 6x
in 5.3.1 you can use the SACMD command like exe to change various components via the modrule function
what I would recommend is that you extract your target data to excel then use excel to create modrule statments for the target jobs then save to a text file this can then be called by command line to do batch process
you need to jobmst_id (or alias) to identify job (note each environment has diff ID so jobs won't have the same jobmst_id in test as in prd
There are a number of switches and some are case sensitive
sacmd.exe modrule -i ##jobmst_id## -C
call a file with
TEST before you execute
I would refer to the Command line Program Guide.PDF in the documentation, you need to make the connection to the database (5.31) set alias=tesalias from new database alias or the Client Manager (6.x) you do a sacmd -cmdspurl http://clientmanagerservername:8080/api/DSPname -user
sacmd on 6x should be located in the directory you installed client manager #:\...\Tidal\TESCmdLine\ sacmd.exe
Thank you, Marc for the answer. For me it's better to do sql script. I would like to understand how TES works? Logic when we edit some job in Client Manager. Which DB is updated during this operation: Master DB or Cache DB . If both, what is the order in which these DB are updated?
I don't know if direct database updates would be supported, if you do it would be wise to shut off the Master when you are touching the database. I would check with Cisco TAC but my guess from my understanding of the 6x architecture is that you would need to update the client manager cache and it would sync to the master admiral database. Honestly the file method totally works and I have used that exact method mulitple times to update things in bulk (job notes, runbooks, cmd lines, etc) It acts just like a user making a change and is tracked in the Tidal log.
From a pure database perspective you woudl need to isolate your targets and you need to update jobdtl table jobdtl_cmd, jobdtl_params for the jobs you identify by either jobdtl directly or jobmst joined to jobdtl.
It's not possible to update all needed fields in job via CACMD. For example we have to update jobdtl_extinfo (Business object job). It looks like CACMD only can update simple jobs . It has no parameters to update BO jobs at all.