This article contains installation information for Microsoft
Content Management Server (MCMS) 2002 Service Pack 2
(SP2).
For more information about how
to obtain the Content Management Server 2002 service packs, click the following
article number to view the article in the Microsoft Knowledge Base:
906142
(http://support.microsoft.com/kb/906142/
)
How to obtain the latest Content Management Server 2002 service pack
This service pack updates installations of MCMS 2002 Service Pack
1a (SP1a). MSCMS 2002 SP2 includes several software updates that were released
during the last two years. Also, MCMS 2002 SP2 includes support for the
Microsoft .NET Framework 2.0, for Microsoft Visual Studio 2005, for Microsoft
SQL Server 2005, and for 64-bit processing.
MCMS 2002 SP2 does not
install new features. MSCMS 2002 SP2 only updates features that you have
installed together with MCMS 2002 SP1a. For example, if you have not installed
the Developer Tools feature, MSCMS 2002 SP2 will not install this feature for
you. However, if you have installed the Developer Tools feature in the MSCM
2002 SP1a site, MSCM 2002 SP2 will update this feature so that it works with
Visual Studio 2005.
If you have not installed the Developer Tools
feature, or if you have installed MCSM 2002 SP2 without the Developer Tools
feature, you must follow these steps before you can use the Developer Tools
feature:
If you have previously installed MCSM 2002 SP2, uninstall
it.
Make sure that you have Microsoft Visual Studio .NET 2003
or Microsoft Visual Studio .NET 2002 installed.
In Add/Remove Programs, click
Microsoft Content Management Server SP1a, and then click
Change/Remove.
Note Make sure that you have the MCMS 2002 SP1a CD or other SP1a
installation media available.
Select Repair, and then click
Next.
In the list of features that you can add, select
Developer Tools, and then click Next.
Complete the installation process for the Developer Tools feature.
When you have finished installing the Developer Tools
feature, install MCMS 2002 SP2.
MCMS 2002 Visual Studio projects are now Visual Web Developer
projects in Visual Studio 2005. When you upgrade a MCMS 2002 project in Visual
Studio .NET 2003 to Visual Studio 2005, the Visual C# or Visual Basic project
becomes a Web site project. This change affects MCMS 2002 in the following
ways:
MCMS 2002 projects now support both Visual C# and Visual
Basic pages in the site.
MCMS 2002 only supports the Local IIS type
of Web site project. The File-based type, the Remote
IIS type, and the FTP type are not
supported.
Because MCMS projects are now Visual Web Developer projects in
Visual Studio 2005, you should build MCMS 2002 projects by using the
Build Web site option instead of the Build
Solution option on the Build menu. If you build MCMS
2002 projects by using the Build Solution option, you may
notice many squiggly red underlines that indicates syntax errors in the source
view of the MCMS 2002 Templates.
Note These underlines do not indicate actual syntax
errors.
The wizards for MCMS 2002 Web sites in Visual Studio 2005 use
the new wizard template framework. This framework provides more flexibility
when you use and access the templates. There are two types of templates,
Project Templates and Item Templates. Visual Studio 2005 has its own installed
templates. However, you can specify where you want your custom templates to be
located. You can do this by using the Options menu in Visual
Studio 2005.
Click Tools, and then click
Options.
Expand Projects and Solutions, and then
click General.
By default, the template locations point to My
Documents. Change the location in the Visual Studio user
project templates location box and in the Visual Studio user
item templates location box. Type any path that you want on the
computer.
Note If you use a file share, many developers can share the same
templates.
Click OK.
In Visual Studio 2005, the Flow layout is the default layout in
Design view. In earlier versions of Visual Studio .NET, the Grid layout is the
default layout. To use absolute positioning when you add MCMS 2002 placeholder
controls in Design view, follow these steps:
Click Layout, click
Position, and then click Auto Position
Options.
In the form, click to select the Change Positioning
to the following for controls added using the Toolbox, paste, or drag and
drop check box.
If you run the .NET Framework 2.0 and the .NET Framework
1.x side by side, make sure that you register the
correct version of Microsoft ASP.NET for your Web applications. To register
ASP.NET in Microsoft Internet Information Services (IIS), follow these steps.
The .NET Framework 1.x
Click Start, click Run,
type cmd, and then click OK.
If you use Microsoft SQL Server utilities to transfer your MCMS
2002 database from Microsoft SQL Server 2000 to SQL Server 2005 after you
install MCMS 2002 SP2, you must run the following script on the SQL Server 2005
MCMS 2002 database:
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'CreateBackgroundProcessingJob')
BEGIN
PRINT 'Dropping Procedure CreateBackgroundProcessingJob'
DROP Procedure dbo.CreateBackgroundProcessingJob
END
GO
PRINT 'Creating Procedure CreateBackgroundProcessingJob'
GO
CREATE Procedure dbo.CreateBackgroundProcessingJob
(
@databaseName sysname
,@jobName sysname
)
AS
/**
* This stored procedure is used to create a job to perform the background
* processing. The DCA runs this stored procedure for every database when
* the database is created or upgraded.
*
* @param @databaseName Name of the database to create the job for
* @param @jobName out Name of the job created
*
* @return 0 - Success
* 1 - Failure
* 100 - The job already exists
*/
begin
set nocount on
declare @tranCount int
,@jobId uniqueidentifier
,@outputFileName nvarchar(250)
,@jobStepCommand nvarchar(512)
,@new_job_created tinyint
--localizable strings
declare @localized_string_InvalidInputParameter as nvarchar(128)
set @localized_string_InvalidInputParameter = N'Invalid input parameter'
declare @localized_string_JobDescription as nvarchar(128)
set @localized_string_JobDescription = N'Purge expired information from MCMS tables'
declare @localized_string_JobStep_ExpiredPages as nvarchar(128)
set @localized_string_JobStep_ExpiredPages = N'Process expired pages'
declare @localized_string_JobStep_DanglingPages as nvarchar(128)
set @localized_string_JobStep_DanglingPages = N'Purge content for deleted pages'
declare @localized_string_JobStep_GalleryBasedResources as nvarchar(128)
set @localized_string_JobStep_GalleryBasedResources = N'Update gallery based resources'
declare @localized_string_JobStep_DanglingBLOBs as nvarchar(128)
set @localized_string_JobStep_DanglingBLOBs = N'Purge data for deleted resources'
declare @localized_string_JobStep_DanglingACL as nvarchar(128)
set @localized_string_JobStep_DanglingACL = N'Purge deleted rights groups from container ACLs'
declare @localized_string_JobAlreadyExists as nvarchar(128)
set @localized_string_JobAlreadyExists = N'The job already exists'
--validate input
if isnull(@databaseName, '') = '' or isnull(@jobName, '') = ''
begin
raiserror(@localized_string_InvalidInputParameter, 15, 1)
return (1)
end
--the job Name is the database Name prepended with 'BGP-'
--set @jobName = cast('BGP-' + @databaseName as sysname)
--check whether we have to create a category for BGP jobs
IF not exists (select 1
from msdb.dbo.syscategories
where (category_class = 1 /*local*/)
and (name = 'MCMS Background Processing'))
begin
exec msdb.dbo.sp_add_category @class = 'JOB'
,@Type = 'LOCAL'
,@Name = 'MCMS Background Processing'
if @@error <> 0 return (1) --failure
end
set @new_job_created = 0
--start a new transaction if the caller has not started one
set @tranCount = @@trancount
if @tranCount > 0
save tran CreateBGPJob_tran
else
begin tran CreateBGPJob_tran
--if the job already exists for this database, clear up all job steps
if exists (select 1
from msdb.dbo.sysjobs_view
where name = @jobName
and originating_server = lower(CONVERT(NVARCHAR(30), SERVERPROPERTY('ServerName'))))
begin
declare @stepcount int
select @jobId = job_id
from msdb.dbo.sysjobs_view
where name = @jobName
and originating_server = lower(CONVERT(NVARCHAR(30), SERVERPROPERTY('ServerName')))
select @stepcount = count(*)
from msdb.dbo.sysjobsteps
where job_id = @jobId
while @stepcount > 0
begin
exec msdb.dbo.sp_delete_jobstep @job_name = @jobName, @step_id = @stepcount
if @@error <> 0 return (1) --failure
set @stepcount = @stepcount -1
end
end
else
begin
--create a new job
exec msdb.dbo.sp_add_job @job_name = @jobName
,@enabled = 1
,@description = @localized_string_JobDescription
,@category_name = 'MCMS Background Processing'
,@job_id = @jobId output
if @@error <> 0 goto errorhandler
set @new_job_created = 1
end
set @outputFileName = '[SQLDIR]\JOBS\BGP-' + @databaseName + '-[STRTDT]-[STRTTM].log'
--process expired pages
exec msdb.dbo.sp_add_jobstep @job_id = @jobId
,@step_name = @localized_string_JobStep_ExpiredPages
,@subsystem = 'TSQL'
,@command = 'exec bgp_ProcessExpiredNodes'
,@on_success_action = 3
,@on_fail_action = 3
,@database_name = @databaseName
,@output_file_name = @outputFileName
,@flags = 2
if @@error <> 0 goto errorhandler
--gallery based resources
exec msdb.dbo.sp_add_jobstep @job_id = @jobId
,@step_name = @localized_string_JobStep_DanglingPages
,@subsystem = 'TSQL'
,@command = 'exec bgp_DeleteDanglingPages'
,@on_success_action = 3
,@on_fail_action = 3
,@database_name = @databaseName
,@output_file_name = @outputFileName
,@flags = 2
if @@error <> 0 goto errorhandler
--gallery based resources
exec msdb.dbo.sp_add_jobstep @job_id = @jobId
,@step_name = @localized_string_JobStep_GalleryBasedResources
,@subsystem = 'TSQL'
,@command = 'exec bgp_UpdateGalleryBasedResources'
,@on_success_action = 3
,@on_fail_action = 3
,@database_name = @databaseName
,@output_file_name = @outputFileName
,@flags = 2
if @@error <> 0 goto errorhandler
--dangling ACLs
exec msdb.dbo.sp_add_jobstep @job_id = @jobId
,@step_name = @localized_string_JobStep_DanglingACL
,@subsystem = 'TSQL'
,@command = 'exec bgp_DeleteDanglingACL'
,@on_success_action = 3
,@on_fail_action = 3
,@database_name = @databaseName
,@output_file_name = @outputFileName
,@flags = 2
if @@error <> 0 goto errorhandler
--dangling BLOBs
exec msdb.dbo.sp_add_jobstep @job_id = @jobId
,@step_name = @localized_string_JobStep_DanglingBLOBs
,@subsystem = 'TSQL'
,@command = 'exec bgp_DeleteDanglingBLOBs'
,@on_success_action = 1
,@on_fail_action = 2
,@database_name = @databaseName
,@output_file_name = @outputFileName
,@flags = 2
if @@error <> 0 goto errorhandler
--set the second job step as the start step because, by default, we do not
--process expired postings
exec msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 2
if @new_job_created > 0
begin
--set the schedule
exec msdb.dbo.sp_add_jobschedule @job_id = @jobId
,@Name = 'MCMS Background Processing Default'
,@enabled = 1
,@freq_type = 4
,@freq_interval = 1
,@active_start_time = 10000
if @@error <> 0 goto errorhandler
--notify the SQL Server Agent
exec msdb.dbo.sp_add_jobserver @job_id = @jobId
,@server_name = N'(local)'
if @@error <> 0 goto errorhandler
end
--commit if we started our own transaction
if @tranCount = 0
commit tran CreateBGPJob_tran
return(0)
errorhandler:
if @@trancount > 0
rollback tran CreateBGPJob_tran
return(1)
end
GO
GRANT EXEC ON dbo.CreateBackgroundProcessingJob TO CMSSystem
GO