LogReader fails with error 15517:

2010-02-25 21:16:35.054 Status: 0, code: 20011, text: 'The process could not execute 'sp_replcmds' on 'CHRISSKACER'.'.
2010-02-25 21:16:35.056 The process could not execute 'sp_replcmds' on 'CHRISSKACER'.
2010-02-25 21:16:35.057 Status: 0, code: 15517, text: 'Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission.'.
2010-02-25 21:16:35.058 Status: 0, code: 22037, text: 'The process could not execute 'sp_replcmds' on 'CHRISSKACER'.'.

The SQL Agent was configured to run using 'ChrisSkAcer\Chris'.  In login properties, this account has ���system administrator” rights.  To eliminate JOB properties or SQL Agent authentication  as problem, tried running LogRead.exe from CMD prompt while logged on using the same administrator count.

c>logread.exe -Publisher [CHRISSKACER] -PublisherDB [AdventureWorksLT] -Distributor [CHRISSKACER] -DistributorSecurityMode 1 -continuous

>>same error.

--Connected to Publisher via SSMS and executed LogReader "read" stored proc as 'sa'


>>same error.

--display SQL Server login token (also called Security ID or SID)
select * from sys.login_token


--display dbo token in Published database
USE <Published DatabaseName>

select * from sys.user_token

>> dbo 0xA065CF7E784B9B5FE77C87709C280100

--confirms the DBO SID doesn't match login SID
--Change owner


sp_changedbowner 'ChrisSkAcer\Chris'

>> error login was already user in the database

--The login was a user, but not DBO
--DROP data base USER 'ChrisSkAcer\Chris' and added user back as DBO.

sp_changedbowner 'ChrisSkAcer\Chris'

Verify User SID

Needed to verify the user_token (SID) not matches the login_in SID used to identify the login when user first connects to SQL Server.

select * from sys.user_token

>> dbo 0x5EEC29DAFF38CF043B0FFE4AEB030000

Now the sys.login_token matches sys.user_token.  LogReader connected as DBO and processed commands