Results 1 to 3 of 3

Thread: Error 14294 - Can't create Publication

  1. #1
    Join Date
    Oct 2002
    Posts
    21

    Error 14294 - Can't create Publication

    When running the create publication wizard, I get:

    "Error 14294 - Supply either @Job_id or @Job_Name to identify the job"

    I had pubs & subs set up, but things were erroring, so I tried deleting everything and wanted to start from scratch, but the last step in the wizard gets me stuck.

    Is it ok to clear the tables in the Distribution database that have info from earlier attempts at setting things up ?

    Is there a way to delete the distribution database & really start from scratch ?

  2. #2
    Join Date
    Sep 2002
    Posts
    169
    I am also experiencing this using developer edition. I have not given investigation of the problem much time as yet - I think that there is a bug in one of the sprocs SQL is using

  3. #3
    Join Date
    Oct 2002
    Posts
    21

    14294 error solution

    I found some info that it’s trying to update the Distribution Cleanup job. I had foolishly deleted it, but was able to script it from another server. Here's my script below that might work for you. Replace "MYDATABASE" with your database name



    +++++++++++++++++++


    BEGIN TRANSACTION
    DECLARE @JobID BINARY(16)
    DECLARE @ReturnCode INT
    SELECT @ReturnCode = 0
    IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'REPL-Distribution Cleanup') < 1
    EXECUTE msdb.dbo.sp_add_category @name = N'REPL-Distribution Cleanup'

    -- Delete the job with the same name (if it exists)
    SELECT @JobID = job_id
    FROM msdb.dbo.sysjobs
    WHERE (name = N'Distribution clean up: distribution')
    IF (@JobID IS NOT NULL)
    BEGIN
    -- Check if the job is a multi-server job
    IF (EXISTS (SELECT *
    FROM msdb.dbo.sysjobservers
    WHERE (job_id = @JobID) AND (server_id <> 0)))
    BEGIN
    -- There is, so abort the script
    RAISERROR (N'Unable to import job ''Distribution clean up: distribution'' since there is already a multi-server job with this name.', 16, 1)
    GOTO QuitWithRollback
    END
    ELSE
    -- Delete the [local] job
    EXECUTE msdb.dbo.sp_delete_job @job_name = N'Distribution clean up: distribution'
    SELECT @JobID = NULL
    END

    BEGIN

    -- Add the job
    EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'Distribution clean up: distribution', @owner_login_name = N'sa', @description = N'Removes replicated transactions from the distribution database.', @category_name = N'REPL-Distribution Cleanup', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 0, @delete_level= 0
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    -- Add the job steps
    EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'Run agent.', @command = N'EXEC dbo.sp_MSdistribution_cleanup @min_distretention = 0, @max_distretention = 72', @database_name = N'distribution', @server = N'MYDATABASE', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 0, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1

    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    -- Add the job schedules
    EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'Replication agent schedule.', @enabled = 1, @freq_type = 4, @active_start_date = 20030515, @active_start_time = 500, @freq_interval = 1, @freq_subday_type = 4, @freq_subday_interval = 10, @freq_relative_interval = 1, @freq_recurrence_factor = 0, @active_end_date = 99991231, @active_end_time = 459
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    -- Add the Target Servers
    EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)'
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    END
    COMMIT TRANSACTION
    GOTO EndSave
    QuitWithRollback:
    IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
    EndSave:

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •