Description:
The Engine on DOMAIN takes very long time to execute the replication Job. The mdb databse is installed on SQL Server 2008.
In Engine logs we can see lines like this:
Replicatio|bcp.cpp | |000000|INFO | bcp::init bulk_server (<servername>) bulk_user (ca_itrm). Replicatio|ResContext |ResContext|000000|INFO | Allocated context [ic] 0D2EE860 Replicatio|CDb |bcp.cpp |000456|DETAIL| resolver ResSetContext OK Replicatio|bcp.cpp | |000000|INFO | SQLDriverConnectA -1 Replicatio|bcp.cpp | |000000|ERROR | SQLDriverConnect -1 Replicatio|bcp.cpp | |000000|INFO | bcp::HandleDiagnosticsPrint SQLSTATE IM002 Native Error Code 0 [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
This means the 'bulk server' could not been initialized. So all replications tasks must execute one record at a time. This is greatly slowing down the replication process.
Solution:
msqlbcp.dll is used by engine to initialize the bulk server. This DLL is using the "SQL Native Client" driver (%windir%\system32\sqlncli.dll) in order to connect to the SQL Server to perform bulk transfers.
Unfortunately, This driver does not exist by default within SQL Server 2008 installations; It was replaced by "SQL Server Native Client 10.0" (%windir%\system32\sqlncli10.dll) which is not currently looked for or used by the product.
The solution is to install the SQL native Client 2005 on the Domain Manager.
This client can be found at following url:
http://www.microsoft.com/download/en/details.aspx?id=24793
Download and install 'sqlncli.msi' if Windows is x32 (32 bit) and sqlncli_x64.msi if on an x64 build of Windows.
NOTE: This can be applied in addition to the SQL 2008 client tools which should already be installed on the computer at a minimum.