To kill a publication

Thanks to being dragged out of bed at some stupid time on Friday to fix a publishing problem, I was reminded of our wonderous wiki post about killing publishes. I thought it might be a good idea to write a post with all the different ways we know of saving yourself and your server.

Sometimes you’ll find a publication locks up, or is taking significantly longer than you would have expected. There are a number of reasons why this could happen, all of which we’ve seen first hand.

  • Publishing to a liveserver database instead of an FTP publication
  • Publishing an entire site instead of one or two pages
  • Publishing a site which uses a lot of Navigation Manager templates
  • Publishing a site that relies upon lots of scripting that needs compiling (e.g. ASP, PHP, ASP.NET)

When a lockup occurs, the resources benig demanded by the CMS are often excessively large, leading to slowdowns in the CMS and/or some functionality becoming unusable. This is often most obvious in smartEdit as you’re accessing the rendering engine more often. When you start to see these things happen you need to try and cancel a publication in a controlled, managed manner. Simply switching off the server can lead to corruption of either the CMS or Liveserver databases. Neither are fun to recover, so these are the five ways we’ve encountered to get you out of your scrape.

There are a few prerequisites to these procedures.  You will need to have access to a fully privileged CMS account, which has full CMS module (especially Server Manager) and project rights assigned. For the final option you will also need access to your database, a DBA and nerves of steel.

Stage 1: Attempt to cancel the Publication from within the CMS project itself

The first step is to attempt to stop the job(s) directly within the offending project, via the SmartTree interface. To do this, follow these steps:-

  1. Log in to the CMS using your Admin account (make sure it has full Server Manager Access), and switch to your proble project, making sure you stay within SmartTree Mode.
  2. Expand the: Start->Administer Publication->Current Jobs node.
  3. With the above node selected, click the: Cancel Running or Paused Jobs link in the action menu.
  4. Click on each individual job in the queue that you wish to cancel (note: this can include jobs waiting to start as well as jobs currently running) and then click the: Cancel Job link in the action menu.

You may have to wait several minutes and close/reopen the node to see any difference.

If there is still no change in job state, you need to proceed with step 2 below.

Stage 2: Attempt to cancel the Publication job via Server Manager

  1. Switch to Server Manager
  2. Expand the Start->Administer RedDot Content Servers->RedDot Content Servers node.
  3. Click the: Edit Asynchronous Processes link in the action menu.
  4. A pop-up “Asynch queue” window will appear listing all the jobs that Reddot is either running, or is about to run.
  5. If any of the applicable jobs still has a red ‘X’ icon (delete job) in the Actions column, click the applicable link. You will be prompted to confirm job deletion.
  6. After answering YES to the previous delete confirmation, the Asynch queue window will be refreshed 
    Async queue showing the "started, will be deleted" icon

    Async queue after a cancellation

    Note the change of icon next to the deleted job on the left hand column, which denotes that the job is either “Started, will be deleted” or: “Paused, will be deleted”. 

  7. Repeat the above process for each applicable running job.

You may have to wait several minutes and close/reopen the node to see any difference.

If there is still no change in job state, you need to proceed with step 3 below.

Stage 3: Attempt to cancel the Publication job by partially locking the CMS project

  1. While still in Server Manager mode, expand the Start->Administer Projects->Projects node.
  2. Locate and select the offending project and then click the: Edit Project Lock link in the Action menu.
  3. In the pop-up dialog that is displayed, set the options as shown below and click [OK]:-
    Locking a project

    Locking a project

     

  4. Wait aprox. 20 minutes then repeat the above steps and unlock the project.
  5. Switch back to the offending project and check the running job list as described in step 1 and step 2 above.

If there is still no change in job state, you need to proceed with step 4 below.

Stage 4: Attempt to cancel the Publication job via a CMS Server Reboot

This one is nice and simple… simply reboot your CMS server. This should only really be tried after the previous three attempts have been tried as it can potentially cause you Liveserver issues if it’s in the middle of a publish. If there is still no change in job state, you need to proceed with step 5 below.

Stage 5: Attempt to cancel the Publication job via a database table update

If you ever get to this stage, you have my sympathies, you’ve probably got people jumping up and down at you by now, or is that just us? ;)

This method of deleting publication jobs should only ever be used when all the above methods have failed to work. It can result in database corruption so extra care and precautions need to be taken. It’s always useful to get someone with lots of SQL Server knowledge to do this. All users should be logged out of the system as well, just for that extra level of precaution.

  1. Switch to Server Manager
  2. Expand the Start->Administer RedDot Content Servers->RedDot Content Servers node.
  3. Click the: Edit Asynchronous Processes link in the action menu.
  4. A pop-up “Asynch queue” window will appear similar to the screen-shot shown in stage 2
  5. Click the text link for each job in a “running”, “Started, will be deleted” or: “Paused, will be deleted” state. This will display information on the particular publication job itself.
  6. Note the job title and Publication ID (i.e. GUID) of each job identified above.
  7. Get your DBA to do the following :-
    a) Take a backup of the: ioAdministration database on the RedDot SQL server
    b) Get them to remove any entries from table: IO_GEN within the database: ioAdministration which match the GUID(s) obtained in step 6 above.
  8. Finally, on completion both the RedDot SQL and CMS servers should be restarted. You may as well get the liveserver box restarted at the same time, just to make sure the initial problem wasn’t a communication issue between servers.

If there is still no change in job state, you need to log an urgent support ticket with RedDot.

Add to Del.cio.us RSS Feed Add to Technorati Favorites Stumble It! Digg It!
    www.sajithmr.com

Leave a Reply