Javascript LotusNotes连接器在IIOP连接后从副本运行代理
我确实有以下情况:Javascript LotusNotes连接器在IIOP连接后从副本运行代理,javascript,lotus-notes,lotus-domino,lotusscript,lotus,Javascript,Lotus Notes,Lotus Domino,Lotusscript,Lotus,我确实有以下情况: “ScheduledJobs.nsf”与代理“Worker” “ScheduledJobs.nsf”在三台domino服务器上复制:DominoServer1,DominoServer2,DominoServer3 使用Lotus Notes连接器我可以通过IIOP与DominoServer 1上的Notes数据库ScheduledJobs.nsf“建立连接。此连接是静态配置的 因为有到Notes数据库的连接,所以我能够在Notes数据库上运行代理“Worker”“Sche
与代理“ScheduledJobs.nsf”
“Worker”
在三台domino服务器上复制:“ScheduledJobs.nsf”
,DominoServer1
,DominoServer2
DominoServer3
- 使用
我可以通过Lotus Notes连接器
与IIOP
上的Notes数据库DominoServer 1
建立连接。此连接是静态配置的ScheduledJobs.nsf“
- 因为有到Notes数据库的连接,所以我能够在Notes数据库上运行代理
“ScheduledJobs.nsf”在“Worker”
DominoServer1上运行
Javascript
DominoServer2
或DominoServer3
上运行代理“Worker”
问题:
由于通过IIOP
与Notes数据库的连接是静态的,因此我始终连接到DominoServer1
上的数据库“ScheduledJobs.nsf”
问题:
在复制副本上进行此IIOP
连接之后,我是否能够运行代理“Worker”
已编辑 我的“RunWorkerNo2”代码
你可以独立地做这件事 在包含“Worker”的ScheduledJobs数据库中,添加两个新代理:“runworkerno2”和“runworkerno3” 在RunWorkerO2代理的代码中,添加代码以打开DominoServer2上的ScheduledJobs.nsf,并使用NotesDatabase.GetAgent(“Worker”)。然后调用NotesAgent.RunOnServer在Dominoserver2上运行Worker 类似地,在RunWorkerNo3代理的代码中,在DominoServer3上打开ScheduledJobs.nsf并使用NotesDatabas.GetAgent(“Worker”)。然后调用NotesAgent.RunOnserver在DominoServer3上运行Worker
这样,您的连接器仍然连接到DominoServer1,并且它在DominoServer1上运行所有的AGAENG,但这些代理将依次在DominoServer2和DominoServer3上运行代理。您需要连接到另一台服务器。@umeli是否可以连接到另一台服务器并打开相同的数据库以在“远程”DominoServer上运行代理?不幸的是,我没有实现它。太好了-这可以工作,我会测试它。非常感谢。但有一个问题:我的连接器正在写一个notes文档,其中包含一些重要信息,代理必须阅读这些信息并处理这些信息。假设我的连接器在DominoServer1上创建了一个notes文档,但是代理必须在DominoServer2上运行-我必须等到notes文档复制到DominoServer2后才能运行代理“RunWorkerO2”?答案是您不必等待。您可以重新编码Worker以始终在DominoServer1而不是当前服务器上查找文档。为了使其工作,您必须更改DominoServer1上的安全设置。这称为可信服务器设置。关于它的信息在这里。您需要在DominoServer1服务器文档的该字段中输入DominoServer2和DominoServer3。这告诉Dominoserver1让其他服务器验证代理签名。谢谢,受信任的服务器设置已经设置好了。但是,在DominoServer1上查找特定文档的Worker代码会是什么样子呢?在启动任何代理之前,我可以将noteID移交给代理。我是否必须将RunWorkerNo2代码末尾的noteID移交给Worker Agent,这会使代码开头始终连接到DominoServer1?顺便说一句,请注意,如果我运行上述代码(请参阅我问题中的my)在控制台中存在以下错误:DIIOP服务器:代理“RunOnServer2”错误:此数据库对象已作为D:\..(db的路径)…\ScheduledJobs.nsf打开
Dim agent As NotesAgent
Dim sess As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim item As NotesItem
Set db = sess.CurrentDatabase
Set agent = sess.CurrentAgent
Call db.Open( "DominoServer2/ORGANIZATION", "ScheduledJobs.nsf" )
Set agent = db.GetAgent("Worker")
// Reason why im using 'run' insted of RunOnServer:
// https://www-01.ibm.com/support/docview.wss?uid=swg1LO42549
If agent.Run() = 0 Then
Print "SUCCESS"
Else
Print "FAILED"
End If