生成没有口是心非的序列 xpages

generating sequence without duplicity xpages

我在 xpages 上有一个应用程序需要用户的句柄号,当我有两个用户试图同时保存时,我遇到了重复号的问题。我试过使用 FTSearch 和 UpdateIndex,两者都不可行,因为它们导致 xpage 运行缓慢。我希望其他选项能够在不重复且不影响服务器性能的情况下生成此序列。

这个问题更多地与 Domino 相关,与 XPages 没有什么特别之处。阅读 IBM here 的一些建议并将其作为代理实施。您可以在 PostSave 事件中调用它。

你要承受的东西比较多:

  • 在集群或多副本环境中,只允许一台服务器 授予序列号,是什么让它成为 "single point of failure"
  • 数字序列中的空缺会怎样?他们被允许吗?
  • 在 XPages 中你有比代理更多的选择,考虑使用 servlet 或 RPC 调用

您需要区分:单个服务器还是多个服务器(假设您不使用 Notes 客户端)。

单服务器: 创建一个部署“应用程序托管 bean”的托管 bean。在加载时,该 bean 从按序列降序排列的视图中获取第一个条目。它把那个留在记忆中。内部调用单例的同步函数 getNextNumber() 为您提供所需的值

多台服务器: a) 他们不能“看到”彼此(远程复制):更改您的序列以包含服务器前缀。或者:仅在复制后添加序列号。

b) 他们在 https 上看到对方: 设计在单个服务器上执行相同操作的“应用程序管理的 bean”,只是它们向“主服务器”询问编号。然后,您需要实现一种机制,允许在主机无响应时动态更改主机。某种协商协议。 (集群环境中的常见挑战)。