JobId difference when printing to server RRS feed

  • Question

  • I wrote a port monitor that runs on Windows Server.  When a print job comes through it keeps track of the jobID it gets from Windows.  I also write a GUI app that runs on the Client machines that print to the server.  This tracks the jobID too (the jobID comes back as the return code from ::StartDoc()).  These jobIDs have always matched up with the jobIDs that the port monitor sees, so I could match up the print jobs later on and do some reporting. 

    Recently several customers claimed that the jobIDs weren't matching up any more (they had just switched to 2008R2).  Sure enough, they were telling the truth.  I found the thread JobId difference for a shared printer on a Win7 client, which reveals that when when printing to 2008R2, the jobID returned by ::StartDoc() on the client machine is not what you would expect.  It isn't the normal 1, 2, 3, 4, etc, but instead starts at 29999 and counts downward.  

    I understand now that this is due to Client Side Rendering, a new feature in 2008R2.  Apparently the job is first rendered on the client machine and gets it's own jobID.  But there doesn't seem to be any way to get the server's jobID any more from the client machine.  How can they leave Client Side Rendering on and still be able to match up the jobIDs on the Client machine with the jobIDs on the server?  I'm surprised I'm the only one this has affected.


    Monday, June 4, 2012 5:09 PM