远程调用
在进行远程调用时,createsession 签名的第一个参数是非空字符串。第一个参数通常用来标识 domino 服务器所在的计算机。例如:
session s = notesfactory.createsession("myhost.east.acme.com")
或者
session s = notesfactory.createsession("myhost.east.acme.com:63148")
第二个示例指定了端口号,这样就无需在 myhost.east.acme.com 上运行 domino web 服务器。
要从应用程序或者 servlet 执行远程调用,客户机计算机的类路径中必须包含 ncso.jar。ncso.jar 包含 lotus.domino 包、lotus.domino.cso 包、lotus.domino.corba 包以及 orb 类,orb 类包含用于远程类的实现代码。对于已安装的 domino designer 和 domino 服务器软件,ncso.jar 位于 domino 数据目录下的 dominojava 子目录中。对于没有安装 domino 软件的计算机,必须从安装该软件的计算机上复制归档文件。
类路径必须包含归档文件,例如:
set classpath := %classpath%;c:lotusdominodatadominojavancso.jar
编码
编码比较简单。远程调用不使用 notesthread。只需使用主机名称和(可选)端口号进行 createsession 调用即可。
不使用线程时,模板将如下所示:
import lotus.domino.*;
public class myclass
{
public static void main(string argv[])
{
try
{
string host = "myhost.east.acme.com:63148";
session s = notesfactory.createsession(host);
// operational code goes here
}
catch(exception e)
{
e.printstacktrace();
}
}
}
下列模板将使用线程:
import lotus.domino.*;
public class myclass implements runnable
{
public static void main(string argv[])
{
myclass t = new myclass();
thread nt = new thread((runnable)t);
nt.start();
}
public void run()
{
try
{
string host = "myhost.east.acme.com:63148";
session s = notesfactory.createsession(host);
// operational code goes here
}
catch(exception e)
{
e.printstacktrace();
}
}
}
管理
远程访问还需要设置 domino 服务器和进行 tcp/ip 连接。安装服务器的计算机必须能够通过 tcp/ip 进行访问。在计算机的网络设置中,需要检查 tcp/ip 属性中的主机和域名的 dns 配置。必须能够用 internet 名称从客户机计算机 ping 到服务器计算机。例如,如果 domino 服务器的主机名称是 myhost,那么域名将是 east.acme.co:

下列命令应该得到客户机计算机的有效响应:
> ping myhost.east.acme.com
在服务器 domino directory(names.nsf)的 server 文档 bsiscs 选项卡的“fully qualified internet host name”字段中,必须显示主机和域。通常,安装服务器安装时已设置了主机名,例如:

如前面的编码示例所示,internet 名称是 createsession 主机的(第一个)参数。也可以使用服务器的 ip 地址。例如,如果 myhost.east.acme.com 的 ip 地址是 9.95.73.30,那么下列任何一个调用都有效:
session s = notesfactory.createsession("myhost.east.acme.com:63148")
或者
session s = notesfactory.createsession("9.95.73.30:63148")
必须运行服务器上的 diiop(domino iiop)任务。http 任务可能也需要运行,这取决于如何获取 ior。检查 domino directory 中 server 文档。转至 ports 选项卡,然后转向 internet ports 选项卡。查看 web 选项卡(用于 http)并找到 diiop 选项卡。这些部分有用于指定端口号以及启用/禁用端口的字段。通常,http 的端口号是 80,diiop 的端口号是 63148。下列屏幕显示了 diiop 选项卡:

如果访问数据库时不知道文件名称(例如,要使用 dbdirectory.getfirstdatabase),那么必须允许通过网络浏览文件名。转至 internet protocols 选项卡、hhtp 选项卡和 r5 basics 选项卡。然后将“allow http clients to browse databases”设为 yes。

要在服务器上启动 http 和 diiop 任务,需要确保这些任务在 notes.ini 文件 servertasks 变量的任务列表中,如果正确配置了 server 文档该文件,那么这些任务应该包含在任务列表中。notes.ini 文件应该包含类似于下面的行:
servertasks=update,replica,router,amgr, adminp,calconn,sched,diiop,http,ldap
从运行的服务器,可以在控制台中输入下列命令来加载任务:
> load http > load diiop
可以在控制台用 tell 命令停止任务:
> tell http quit > tell diiop quit
可以刷新 diiop 任务:
> tell diiop refresh
可以重新启动 http 任务:
> tell http restart
闽公网安备 35060202000074号