1

我们的自定义基础设施监控应用程序监视在生产中运行的预定代理。在 LotusScript 中循环通过数据库和代理来获取它们的状态是没有问题的。

一些数据库设置了提到的属性,所以代理被启用,但不运行。

谁能提供一些线索,如何在 LotusScript 中读取此属性,以便我们的应用程序可以报告此类数据库?

technote中有解决方案,但它声明它只能在 32 位环境中工作(Lotus Notes 客户端只有 32 位,所以就足够了)。不幸的是,我们的应用程序在 x64 Domino 服务器的后台运行。

编辑:开发环境中的测试成功 - technote 中的代码片段在 Windows x64 Domino 上不会崩溃,并且正确报告了标志。

4

3 回答 3

3

来自 technote 的代码适用于 32 位和 64 位 Windows Domino 服务器。

Function agentsDisabled( db As NotesDatabase ) As Boolean
    Dim buffer As ReplicaInfo ' declarations from technote http://www-01.ibm.com/support/docview.wss?uid=swg21380020
    Dim hDB As Long
    Dim fullpath As String
    fullpath = String(1024, " ")
    OSPathNetConstruct 0, db.Server, db.Filepath, fullpath

    NSFDbOpen fullpath, hDB
    NSFDbReplicaInfoGet hDB, buffer
    agentsDisabled = ( buffer.Flags And &H0800) > 0
    NSFDbClose hDB
End Function

没有测试设置标志,我只需要检测它是否设置。

于 2013-09-13T13:42:09.977 回答
1

如果您愿意在 LotusScript 中使用 Lotus Notes C API,那么您可以查看此技术说明

OpenNTF 上还有一个名为Notes Database Properties LotusScript Class的项目,它允许您设置可以通过 Notes 客户端设置的各种其他数据库属性。

于 2013-09-13T10:52:56.667 回答
0

属性主要存储在图标注释中。请参阅此技术说明。看起来您需要在启用/禁用该属性时测试 $Flags 项中的哪些更改。

编辑:您也可以尝试NotesNoteCollection.SelectAllNotes(True)查看是否收到包含此属性的注释。

于 2013-09-13T11:27:17.093 回答