我们的自定义基础架构监控应用程序监视在生产中运行的预定代理LotusScript中没有问题可以循环访问数据库和代理以获取其状态。
某些数据库已设置提及的属性,因此代理已启用,但不会运行。
任何人都可以提供一些线索,如何在LotusScript中读取此属性,以便我们的应用程序可以报告此类数据库?
technote中有解决方案,但它声明它仅适用于32位环境(Lotus Notes客户端只有32位,因此就足够了)。不幸的是,我们的应用程序在x64 Domino服务器上运行。
编辑:开发环境中的测试成功 - 来自technote的代码片段在Windows x64 Domino上没有崩溃,并且正确报告了标记。
答案 0 :(得分: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
未经过测试设置标志,我只需要检测它是否已设置。
答案 1 :(得分:1)
如果您愿意在LotusScript中使用Lotus Notes C API,那么您可以查看此Technote。
OpenNTF上还有一个名为Notes Database Properties LotusScript Class的项目,它允许您设置可以通过Notes客户端设置的各种其他数据库属性。
答案 2 :(得分:0)
属性主要存储在图标注释中。见technote。看起来您需要在启用/禁用属性时测试$ Flags项目中的更改。
编辑:您还可以尝试NotesNoteCollection.SelectAllNotes(True)
,看看是否收到包含此属性的备注。