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”
  • “ScheduledJobs.nsf”
    在三台domino服务器上复制:
    DominoServer1
    DominoServer2
    DominoServer3
  • 使用
    Lotus Notes连接器
    我可以通过
    IIOP
    DominoServer 1
    上的Notes数据库
    ScheduledJobs.nsf“
    建立连接。此连接是静态配置的
  • 因为有到Notes数据库的连接,所以我能够在Notes数据库上运行代理
    “Worker”
    “ScheduledJobs.nsf”在
    DominoServer1上运行
    Javascript
我想做的是:

有时,根据情况,我希望从副本运行代理“Worker”。例如,我想在
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