I was playing with Records Management today and experimenting with holds. I had uploading a document to the Unclassified Records folder and had put a hold on it. MOSS allows you to get a report of all the holds that are currently in place and I wanted to look at that. Instead of getting a fancy Excel report I got an error that said there were no holds and that the Holds Processing job only runs once a day and I should contact my administrator. I had news for them, I was the administrator and I was stumped. I fired up Central Admin to see the job definition and see when the Holds Processing job would run next. A mere seven hour wait was all I had. This would never do. One of my frustrations with Timer Jobs is that there is no way in Central Administration to trigger them manually. I can see their definitions, and I can see what happened the last time they ran, but I can't make them run now. I dropped out to a Command Prompt to consult my old friend, STSADM. It never steers me wrong. I didn't know exactly what I was looking for, but I knew it was in STSADM. As I'll commonly do I piped the output of STSADM without any parameters through FIND and look for keywords. I tried "hold" first. It looked like this:
Jackpot! Setholdschedule looked promising. Next I ran it with the –help parameter to see what I can do with this little beauty. Here's what I got:
"recurrence string"? "RECURRENCE STRING"? What the hell is a recurrence string? And why wasn't STSADM throwing me a bone here and providing some kind of example? I hit my favorite Internet search engine and searched for "recurrence string." Nothing obvious. Then "sharepoint recurrence string." Again, not much help. Next I looked in the WSS SDK. I found all kinds of references to scheduling, the SPSchedule object and all the great things it can do, but no actual examples of a recurrence string. I had too much invested in this, I wasn't given up. Plus I had only burned through about 30 minutes of the seven hours until the Hold Processing job ran. I had a long wait ahead of me. I decided to see how many other STSADM operations needed the dreaded recurrence schedule with a hope for more to search on and to see if someone had slipped up and actually put a definition of what a recurrence schedule was. Eight operations had "schedule" in the name, seven were set schedule type operations. I did a –help on "getsitedirectoryscanschedule," no help. A –help on "setbulkworkflowtaskprocessingschedule" gave me the dreaded "recurrence string" again. I finally struck gold with "setcontentdeploymentjobschedule." It didn't use "recurrence string", it actually gave examples of what it wanted. What a great idea! Here's what it showed me:
Now THAT's what I call a recurrence string! While it's not called that in the help, that's exactly what we're looking at. I plugged "daily at 16:05" in and sat back to watch the magic. Sure enough, a couple of minutes later the Holds Processing job ran and my report showed up. STSADM saves the day again.