Xpages 确定domino服务器是否正在运行(当相应的服务器关闭时,session.getDatabase(..)花费的时间太长)

Xpages 确定domino服务器是否正在运行(当相应的服务器关闭时,session.getDatabase(..)花费的时间太长),xpages,xpages-ssjs,Xpages,Xpages Ssjs,我在不同的服务器上有大约4-5个用户,需要根据日历条目找到空闲时间。直到昨天晚上,该功能还运行得很好,但是,今天我们刚刚解决了一个小问题/bug。其中一台服务器今天离线,SSJS花了大约一分钟(60秒)的时间才弄清楚 是否有这样的选项来验证服务器是否正在运行?我这样问是因为session.getDatabase在这种情况下需要很长时间才能提供任何结果 仅供参考,下面是我验证用户邮件数据库可访问性的代码。当所有服务器都打开时,它工作得非常好,但是,当任何服务器关闭时,等待时间太长 // Set u

我在不同的服务器上有大约4-5个用户,需要根据日历条目找到空闲时间。直到昨天晚上,该功能还运行得很好,但是,今天我们刚刚解决了一个小问题/bug。其中一台服务器今天离线,SSJS花了大约一分钟(60秒)的时间才弄清楚

是否有这样的选项来验证服务器是否正在运行?我这样问是因为session.getDatabase在这种情况下需要很长时间才能提供任何结果

仅供参考,下面是我验证用户邮件数据库可访问性的代码。当所有服务器都打开时,它工作得非常好,但是,当任何服务器关闭时,等待时间太长

// Set up the names

var names = new java.util.Vector();
var inaccessible_calendars = new java.util.Vector();
var infoDoc:NotesDocument= database.getDocumentByUNID(context.getUrlParameter('refId'));
var members:java.util.Vector = infoDoc.getItemValue("members");
names = infoDoc.getItemValue("members");
//var members:java.util.Vector = infoDoc.getItemValue("members");
var membersIterator = members.iterator();
var maildb ="";

while(membersIterator.hasNext()){
var val = membersIterator.next();
var nab:NotesDatabase=session.getDatabase(database.getServer(),"names.nsf")
var nview:NotesView=nab.getView("($NamesFieldLookup)")
var doc:NotesDocument=nview.getDocumentByKey(val,true)
if(doc){
        var email = doc.getItemValueString("MailFile")
        var emailServer = doc.getItemValueString("MailServer")
        doc.recycle()
        nview.recycle()
        nab.recycle()
        maildb=@LowerCase(emailServer)+'!!'+@LowerCase(email)+ '.nsf'
        var emailServerCN = @Name("[CN]",@LowerCase(emailServer));
        var emailDBName =   @LowerCase(email)+ '.nsf';
        emailDBName = emailDBName.replace("\\","\/");
        try{
            if(session.getDatabase(emailServerCN.toString(),emailDBName.toString())==null){
            names.remove(val);
            inaccessible_calendars.add(val);
            }else{
            var emailDB:NotesDatabase = session.getDatabase(emailServerCN.toString(),emailDBName.toString());
            if(!(emailDB.getCurrentAccessLevel()>0)){
                names.remove(val);
                inaccessible_calendars.add(val);
                }
            }
            }catch(err){
                names.remove(val);
                inaccessible_calendars.add(val);
           }
          } else {
         nview.recycle()
         nab.recycle()
         maildb= ""  
        }
}
if(!inaccessible_calendars.isEmpty())
return "Following calendars are not accessible"+inaccessible_calendars.toString()+"*";

任何帮助都将不胜感激

这些数据库在集群中吗?他们会吗?如果是这样的话,那么当您打开它时,就会出现一个“OpenWithFailOver”方法,我忘记了确切的语法。但是,如果数据库不可用,它应该在群集中打开另一个。

好吧,我不这么认为。只是我们的邮件文件分布在3台个人开发服务器上,并试图访问它们。您可以在端口设置中缩短超时时间。您接受多短的响应时间?服务器/网络可能运行缓慢,而不是停机。很抱歉,我只是没有注意到评论。我们预计响应时间最多为5-10秒,到目前为止,在失败之前大约需要一分钟。你能再简单介绍一下你的解决方案吗。