Domino中的Web服务提供程序会引发CPU并导致信号量锁定状态

时间:2017-02-08 09:44:21

标签: xml web-services http lotus-domino lotusscript

我在Domino中创建了一个简单的Web服务提供程序,它看起来像这样:

Public Class Integration

    Sub New
        Set session = New NotesSession
        Set db = session.CurrentDatabase
    End Sub

    Public Function importA() 
        importA = getData()
    End Function

End Class

我们创建了一个外部Web服务使用者,它使用提供程序中的函数来获取和发送数据。

我的问题是,当发送或接收xml文件(大小约为2mb)时,Domino将cpu压缩到100%,而Domino控制台有时会指示信号量锁定状态。只需加载或发送xml文件大约需要11分钟。

当接收xml文件时,我们将它们作为函数中的字符串参数获取,当发送xml文件时,我们将它们作为字符串从函数发送。

这可能是导致此延迟并锁定多米诺骨牌服务器的原因?

我们在本地局域网中运行并且没有互联网连接问题,Domino服务器并没有忙于执行任何其他任务。

1 个答案:

答案 0 :(得分:1)

您可能需要了解一些指示:

  • Web服务应该发送XML,而不是发送看起来像XML的字符串。您可能希望创建与XML结构匹配的正确WSDL描述。这将加快处理速度。使用SAX编写XML。
  • Verse(和FP8)在Semaphore锁上得到了很大的改进,这可能也有所帮助(改进是为Verse发布的修补程序的一部分,也将在Fp8中)
  • 创建2MB字符串时...是使用字符串连接还是NotesStream。流将是更优选的
  • 最后,您可能想尝试用Java重写代码 - 更好地分析。使用SAX到write the document或使用my helper class

希望有所帮助