Freigeben über


REPLICATION: My distribution agent generates a dump when replicating with my Oracle Subscriber

PROBLEM:

I have a SQL Server 2005 replicating with an Oracle 11 subscriber.

After installing the OLEDB driver for Oracle 11, a minidump is created every time the distributor tries to connect to Oracle: Distrib.exe crashes with STACK_OVERFLOW exception. 

The issue occurs while initializing the subscriber therefore as soon as it tries to connect to Oracle.

In addition to the information mentioned above, I also get the following error when i execute a query against the linked server to Oracle:

SELECT <all column names> FROM [xxxxx]..[xxxxxx].[MSREPL7]

Msg 7356, Level 16, State 1, Line 1
The OLE DB provider "OraOLEDB.Oracle" for linked server "xxxxx" supplied inconsistent metadata for a column.
The column "column_name" (compile-time ordinal 1) of object ""xxxxxx"."MSREPL7"" was reported to have a "LENGTH" of 128 at compile time and 256 at run time.

CAUSE:

This is caused by the fact that the distrib.exe stack size is 256 KB - hence the stack overflow.

WORKAROUND / SOLUTION:

Only known supported solution is to upgrade to SQL Server 2008: SQL Server 2008's distrib stack is 1 MB.