1

I am getting a very strange error message at one of our client sites and I am having very little luck trying to figure out what is going on.

Hr=80040154 ERR:OpenDB failed getting pub version 28627

That is the error message that is from the Merge Agent (IIS) logs. From what I can tell, it is a COM error not being able to load a specific COM object, but I don't know which one. From that, I think this client might not have something installed, but I don't know what that something.

Does any one have any thoughts about what might not be installed? Any other ideas on how to troubleshoot this?

Thanks.

Bryan
  • 2,775
  • 3
  • 28
  • 40

2 Answers2

0

This error could be related to permissions: Did you configure a snapshot share and give the IUSER_Machine name rights to Read and List Files and Folders?

You could restart the synchronization with verbose history logging as described here: How to enable replication agents for logging to output files in SQL Server.

Check these:

  • Ensure your subscription database is not timing out on auto-grow.
  • Make sure there is enough space to apply the snapshot on the subscriber
Mitch Wheat
  • 295,962
  • 43
  • 465
  • 541
  • As a troubleshooting step we have Everyone with full permissions to that snapshot share (both NTFS and file share permissions). We can give the logging thing a shot. Thanks for the suggestion. From what I can tell, nothing is ever getting to SQL Server. It seems to me like the merge agent can't talk to SQL Server at all. I should have said this before, but just to be clear, the merge agent and SQL Server are both running on the same machine. – Bryan Jul 19 '10 at 14:51
  • That logging did not help. Is there any way to look at the sqlcesa35.dll and see which COM objects it is trying to use? – Bryan Jul 19 '10 at 21:30
0

It turns out that there was a DLL that wasn't registered. It was sqloledb.dll (C:\Program Files\Common Files\System\Ole DB). I found this by using the ?diag on the merge agent.

http:////sqlcesa35.dll?diag

That page shows a nice summary of the versions of DLLs that it is using and such. When I did that at the client's site, it showed "unknown" for the version of that DLL. Running regsvr32 on the DLL allowed sqlcesa35.dll to see it and the diag page showed a version number.

Bryan
  • 2,775
  • 3
  • 28
  • 40