I clone jobs on the same server a lot, as I have a lot of very similar jobs and use cloning to create a template for the new job. I have version 8.2.4 and haven't found task IDs getting overwritten - but I DO find that references to the tasks or to variables based on task IDs (such as task output) don't get their IDs updated or get left unspecified. So, when I'm cloning a job to create a new one, I have to go through each task and ensure that all of its references are correct. It still is better in most cases than creating from scratch, as I ensure that I don't forget anything.
Also, when pushing to a new server I have followed a previous suggestion by another user to use the same IDs on all of the servers. I never create new jobs, tasks, or other objects directly on my VAL or PROD server, only on the DEV server and then I copy it to the new server along with all of its dependencies, when I am ready to promote it. That is the only way to ensure that all of the dependency references stay intact from one server to the next.
I do like the idea of having VisualCron notify of an ID crash before copying.
I currently do all of my promotions by exporting settings and merging the settings files, because I never know what I'm going to get when I do it through the GUI -- but I'm not sure if I recommend that to others. It's a lot of work, because the exported settings files contain a lot of unimportant (for merging) information, as the runtime information such as last and next run times, output values, etc, are mixed together with the job, task, notification, condition, etc. object definition information. I use Beyond Compare 4 to do the diff and merging, and I have a custom rule in Beyond Compare that ignores result values, stdout and stderr values, most scheduling information, and a few other noncritical things - and calls an XSLT stylesheet transformation that I have created, which sorts the major elements by ID and sorts the most critical pieces of information to the top within the major elements. Beyond Compare 4 includes an option to use a Patience diff, which does a far better job of aligning these settings files than any other alignment strategy I have seen. Combining all of these tools together, I am able to do my diff and merge, check the settings files into my revision control, and then import the merged settings into the server I'm promoting to, overwriting everything that is there. It takes me a half a day to get source and target server settings exported and checked into revision control as snapshots (documenting any changes in my commit message), do my merge, check in the merged settings (again with commit message documenting what is being promoted), import the merged settings to the target server, and confirm that I didn't break anything in the process, so I generally wait until several jobs and their dependencies are ready for promotion and do them all at once. Hopefully, I don't find any changes in the target server that need to be ported back to the source server, or the whole day is pretty much shot.
Without Beyond Compare, it would be impossible to do things this way, and with BC4 and the Patience Diff, it takes about half as long to do the diff and merge part and is far less error prone than with BC3.
Rebeccah
Edited by user
2018-05-11T18:39:27Z
|
Reason: typo