【问题标题】:Invalid UniversalID when document has been copied复制文档时 UniversalID 无效
【发布时间】:2014-02-07 05:30:07
【问题描述】:

我有一个奇怪的问题:我想访问不同数据库(同一服务器)中的文档。我的方法与此处讨论的方法非常接近:http://www-10.lotus.com/ldd/nd85forum.nsf/DateAllFlatWeb/517ef6249d5b9fa6852575cc00503786?OpenDocument

我在源数据库中只有 3 个文档。 2个是直接创建的,一个是从另一个数据库复制的(这些只是测试文档)。我们有一个通用视图,它列出视图中的条目,以如下形式计算链接:

http://localhost/database.nsf/xpMBK.xsp?action=openDocument&db=dominotest%2Ftest%2Fulcbs%21%21projects%2FFKIE%2FEinsMuB.nsf&view=AMBKEinsAll&documentId=781F14A98A699548C1257C3200316BAC

如您所见,我们在当前数据库中使用 Xpage,并放置指向 Xpage 以将文档打开到源数据库的参数(符号是 server!!database 这里),一个视图(这是我要返回),最后是源文档的unid。

现在奇怪的是: 我无法打开复制的文档,收到了

NotesException: Invalid universal id
lotus.domino.local.Database.getDocumentByUNID(Unknown Source)

错误。 更好的是:如果我复制一个在同一个数据库(当前数据库)中工作的文档,这个文档也不能再打开了! 这是什么,你能给我一个提示来解决这个问题吗?

提前致谢!

【问题讨论】:

  • db 参数是否正确?通常它应该是databaseName。你在使用 ignoreRequestsParams 吗?

标签: xpages lotus-notes


【解决方案1】:

如果“复制”是指手动复制并粘贴到目标数据库或通过copyToDatabase() 以编程方式复制,则文档的新副本将被分配一个新的 UNID;不能保证与原始版本具有相同的 UNID(并且,根据我的经验,它很少保留原始版本)。如果您以编程方式复制文档,请务必在之后检查其新的 UNID,并在 URL 计算中使用该 ID。

【讨论】:

    【解决方案2】:

    过去我遇到过与此非常相似的问题,结果证明我没有打开我以为我正在打开的 NSF 文件。我使用的是NotesDatabase.OpenByReplicaID,服务器上有两个数据库副本,具有不同的文档集。在这种情况下,Notes 可以选择两个副本之一——您无法控制它。实际打开的副本包含一些与我试图访问的 UNID 相对应的文档,但其中一些确实不存在,因此 getDocumentByUNID() 方法在抛出“无效的通用 ID”错误时是正确的。这真的非常难以调试。

    在我弄清楚并从服务器中删除第二个副本之后,我做的第一件事(在测试并确认问题消失后)是编写一个代理来扫描服务器以查找重复的副本 ID。

    【讨论】:

      【解决方案3】:

      Domino 数据库中的 UNID:S 通过 copyToDatabase 复制到数据库时是这样完成的。 UNID 的一部分来自数据库,一部分是文档唯一的。因此,如果您将文档从一个数据库复制到另一个数据库,则该文档每次都可能获得相同的 unid。如果唯一组合在数据库中没有具有该组合的有效文档,则该文档每次都会获得相同的 UNID。在其他情况下,文档将获得一个新的 ID。

      更多信息可以在这里找到 UNID and copytodatabase

      【讨论】:

        【解决方案4】:

        谢谢你们的想法! 但我完全错了#facepalm 问题是:一位同事编写了一个 bean 来访问另一个数据库,我没有注意到配置文档指向另一个服务器上的副本,所以当我在本地服务器上的数据库中复制文档时,很明显xpage 找不到复制的 - 因为它位于另一台机器上。 还是谢谢你:)

        【讨论】:

          猜你喜欢
          • 2015-05-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-02-13
          • 2010-09-29
          • 2018-03-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多