This issue is with 3 servers that are running SQL 2005 SP3 with transactional replication. The "Expired subscription clean up" job is failing with the message "The name myDatabase.sys.sp_MSdrop_expired_subscription' is not a valid identifier. [SQLSTATE 42000] (Error 203). The step failed.". However, it does work on 1 server with transactional and another with merge.
I have looked at the job and it calls "EXEC sys.sp_expired_subscription_cleanup"
This in turn gets a list of publishers, determines the type of replication and then calls dbname.sys.sp_MSdrop_expired_subscription.
I have looked at all publications (working and not working), and they are all the same. We have them all set to subscription does not expire.
I have tried to look for the procedure sys.sp_MSdrop_expired_subscription which should exist in each publicating database, and have not found it anywhere. I have run manually the procedure sys.sp_expired_subscription_cleanup and get the same error on all publicating servers. I have compared the job across all servers to verify it is the same.
So my problem is this - on the servers that the job fails I think this seems to make sense - the procedure doesn't exist. However, on the servers that it does work as a job, I'm not so sure. The procedure sys.sp_MSdrop_expired_subscription doesn't exist, when sys.sp_expired_subscription_cleanup is executed manually it gives an error, however the job reports that it was sucessfull.
For the moment I've disabled the jobs, which is not the solution I prefer but I am at a loss as to why they are failing on one server and not the next.
Am I missing something here ? I would really like to understand why these errors are occurring.
↧
Expired subscription clean up failing with sp_MSdrop_expired_subscription
↧