【问题标题】:Sql Server CE 3.5 Merge Replication Synchronise is HangingSql Server CE 3.5 合并复制同步挂起
【发布时间】:2010-09-21 15:44:00
【问题描述】:

我正在使用 SQL Server 2005 CE 框架 3.5 并尝试在我的手持设备和我的 SQL Server 之间使用合并复制。当我运行代码进行同步时,它似乎永远存在,而当我在代码中放置断点时,它永远不会超过对 S​​ynchronize() 的调用。

如果我查看 sql server 中的复制监视器,它会显示订阅不再同步并且不显示任何错误。因此,我假设这意味着同步已完成。

http://server/virtualdirectory/sqlcesa35.dll?diag 没有报告任何问题。

这是我第一次尝试任何手持式开发,所以我可能做了一些愚蠢的事情。但是,SQL Server 似乎报告同步成功。

任何帮助都将不胜感激,因为我已经为此花费了很长时间!

这是我的代码。

const string DatabasePath = @"SD Card\mydb.sdf";
var repl = new SqlCeReplication
               {
                   ConnectionManager = true,
                   InternetUrl = @"http://server/virtualdirectory/sqlcesa35.dll",
                   Publisher = @"servername",
                   PublisherDatabase = @"databasename",
                   PublisherSecurityMode = SecurityType.DBAuthentication,
                   PublisherLogin = @"username",
                   PublisherPassword = @"password",
                   Publication = @"publicationname",
                   Subscriber = @"PPC",
                   SubscriberConnectionString = "Data Source=" + DatabasePath
               };
try
{
    Cursor.Current = Cursors.WaitCursor;
    if (!File.Exists(DatabasePath))
    {
        repl.AddSubscription(AddOption.CreateDatabase);
    }
    repl.Synchronize();
    MessageBox.Show("Successfully synchronised");
}
catch (SqlCeException e)
{
    DisplaySqlCeErrors(e.Errors, e);
}
finally
{
    repl.Dispose();
    Cursor.Current = Cursors.Default;
}

【问题讨论】:

    标签: sql-server sql-server-2005 replication handhelddevice


    【解决方案1】:

    您可以做的另一件事来加速同步操作是在您的 PDA 的主程序内存中指定一个 db 文件路径(而不是在您的示例中的 SD 卡上)。您应该会看到速度提高了 4 倍(这意味着同步可能只需要现在的 25%)。

    如果您的 PDA 上的主程序内存不足,您可以在 Synchronize 调用后使用 System.IO.File.Move() 将文件移动到 SD 卡。我知道这似乎有点奇怪,但是同步到程序内存并复制到 SD 卡比直接同步到 SD 卡要快得多。

    【讨论】:

      【解决方案2】:

      我后来发现将数据复制到物理磁盘需要很长时间。 sql server虽然复制完成了,但还是在将数据复制到sd卡中。

      我通过减少要复制的表的数量来确定这一点,并且我得到了更直接的响应(另外一个错误,但与此问题无关)。

      还是谢谢:)

      【讨论】:

        猜你喜欢
        • 2010-12-30
        • 1970-01-01
        • 2011-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多