Lotus Notes 连接器 运行 IIOP 连接后来自副本的代理
Lotus Notes Connector run the agent from replica after IIOP connection
我确实有以下情况:
"ScheduledJobs.nsf"
与代理"Worker"
"ScheduledJobs.nsf"
在三个 domino 服务器上复制:DominoServer1
、DominoServer2
、DominoServer3
- 使用
Lotus Notes Connector
无法通过 IIOP
与 DominoServer1
上的 Notes 数据库 "ScheduledJobs.nsf"
建立连接。此连接是静态配置的。
- 因为存在与 Notes 数据库的连接,所以我能够 运行 Notes 数据库
"ScheduledJobs.nsf"
上 DominoServer1
上 Javascript
上的代理 "Worker"
.
我想做的是:
有时,视情况而定,我想运行 Agent "Worker" 从副本。例如,我想 运行 代理 "Worker" 在 DominoServer2
或 DominoServer3
.
问题:
由于通过 IIOP
连接到 Notes 数据库是静态的,我总是连接到 DominoServer1
上的数据库 "ScheduledJobs.nsf"
。
问题:
在副本上的这个 IIOP
连接之后,我可以 运行 代理 "Worker"
吗?
已编辑
我的代码 "RunWorkerOn2"
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
您可以间接执行此操作。
在包含 "Worker" 的 ScheduledJobs 数据库中,添加两个新代理:"RunWorkerOn2" 和 "RunWorkerOn3"。
在RunWorkerOn2代理的代码中,添加代码在DominoServer2上打开ScheduledJobs.nsf并使用NotesDatabase.GetAgent("Worker")。然后调用 NotesAgent.RunOnServer 到 Dominoserver2 上的 运行 Worker。
同样,在RunWorkerOn3代理的代码中,在DominoServer3上打开ScheduledJobs.nsf,使用NotesDatabas.GetAgent("Worker")。然后调用 NotesAgent.RunOnserver 到 DominoServer3 上的 运行 Worker。
这样一来,您的连接器仍然连接到 DominoServer1,并且它 运行 在 DominoServer1 上进行所有代理,但这些代理又会 运行 DominoServer2 和 DominoServer3 上的代理。
我确实有以下情况:
"ScheduledJobs.nsf"
与代理"Worker"
"ScheduledJobs.nsf"
在三个 domino 服务器上复制:DominoServer1
、DominoServer2
、DominoServer3
- 使用
Lotus Notes Connector
无法通过IIOP
与DominoServer1
上的 Notes 数据库"ScheduledJobs.nsf"
建立连接。此连接是静态配置的。 - 因为存在与 Notes 数据库的连接,所以我能够 运行 Notes 数据库
"ScheduledJobs.nsf"
上DominoServer1
上Javascript
上的代理"Worker"
.
我想做的是:
有时,视情况而定,我想运行 Agent "Worker" 从副本。例如,我想 运行 代理 "Worker" 在 DominoServer2
或 DominoServer3
.
问题:
由于通过 IIOP
连接到 Notes 数据库是静态的,我总是连接到 DominoServer1
上的数据库 "ScheduledJobs.nsf"
。
问题:
在副本上的这个 IIOP
连接之后,我可以 运行 代理 "Worker"
吗?
已编辑
我的代码 "RunWorkerOn2"
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
您可以间接执行此操作。
在包含 "Worker" 的 ScheduledJobs 数据库中,添加两个新代理:"RunWorkerOn2" 和 "RunWorkerOn3"。
在RunWorkerOn2代理的代码中,添加代码在DominoServer2上打开ScheduledJobs.nsf并使用NotesDatabase.GetAgent("Worker")。然后调用 NotesAgent.RunOnServer 到 Dominoserver2 上的 运行 Worker。
同样,在RunWorkerOn3代理的代码中,在DominoServer3上打开ScheduledJobs.nsf,使用NotesDatabas.GetAgent("Worker")。然后调用 NotesAgent.RunOnserver 到 DominoServer3 上的 运行 Worker。
这样一来,您的连接器仍然连接到 DominoServer1,并且它 运行 在 DominoServer1 上进行所有代理,但这些代理又会 运行 DominoServer2 和 DominoServer3 上的代理。