项目经验:在调用LotusScript Arrayunique 函数时会导致Domino 服务器或Notes 客户端宕机
来源:互联网 发布:淘宝客pid三段什么意思 编辑:程序博客网 时间:2024/06/03 16:30
这周有个项目出现的问题:就是DOMINO在毫无症状的情况下突然死机,排查了几天总算找到了问题所在。由于这类错误隐藏在LS中,所以很难查到。希望各位Coding时注意。
环境:(产品,平台,机型,软件版本,等)
产品:Lotus Notes/Domino
平台:Windows
软件版本:6.5-7.2
问题描述:
当原数组超出一定数量的元素时,调用Arrayunique 函数会导致Domino服务器或Notes客户端宕机。在一个具体客户的实例中,原数组包含4085个元素,并被定义为Variant类型的变量。在7.02以上版本虽然不会造成DOMINO宕机,但会造成HTTP请求进程无法结束,使服务器CPU始终为100%
具体代码实例:
Dim crashvar As Variant
Dim testsize As Integer
Dim i As Integer
testsize=4086
Redim crashvar(testsize)
For i = 1 To testsize
crashvar(i)="a"
Next
crashvar = Arrayunique(crashvar)
在NSD中,导致宕机的线程以下面的条目开头:
nnotes.LSsThread::ArrayAllocCopy
nnotes.LSsMathOp::Assignment
解决办法:将数组定义为一个相对独特的类型,而不是Variant类型。
例如:
Dim crashvar() As String
Dim testsize As Integer
Dim i As Integer
Dim x As Variant
testsize = 4086
Redim crashvar(testSize)
For i = 0 To testsize
crashvar(i)="a"
Next
x = Arrayunique(crashvar)
建议:在开发中出于性能,内存消耗上考虑,尽量少使用或不要使用数组以及Variant数据类型。(不要使用动态数组,因为在小数据范围内不会造成数据溢出,但在大数据范围内可能会达到数组上限。)
- 项目经验:在调用LotusScript Arrayunique 函数时会导致Domino 服务器或Notes 客户端宕机
- 重新配置Domino服务器、Notes客户端
- 强制横屏的App,iPhone项目在调用拍照或相册功能时会崩掉
- Domino 服务器宕机在 OSCheckYieldTimer 上
- Domino服务器notes.ini实用参数-转载
- LotusScript Notes类库
- PHP 在用header或session时会遇到的 在调用之前有输出的问题。
- 利用notes客户端将 excel 倒入 domino数据库
- 利用notes客户端将 domino数据导出到excel
- Lotus Notes/domino事件、属性、函数和命令
- Lotus Notes/domino事件、属性、函数和命令
- Lotus Notes/domino事件、属性、函数和命令
- 多个 Chronos 服务器任务实例导致 Domino 服务器挂起
- DDM 在 Lotus Notes/Domino 8 中的新功能
- Notes/Domino 在 W32 上异常终止疑难解答
- [项目经验]在debug版编译加入/GZ选项后可发现构造函数中调用虚函数错误
- 深入Notes本质-Notes和Domino服务器体系结构(目录1)
- 深入Notes本质-Notes和Domino服务器体系结构(目录2)
- 如何组建工作室
- 如何调用DLL中的类
- 27.5.3 出错显示页面(err.apsx.cs)
- 转
- HTML DOM -奇怪的childNodes
- 项目经验:在调用LotusScript Arrayunique 函数时会导致Domino 服务器或Notes 客户端宕机
- 27.5.4 测试功能
- Oracle的日期函数
- 27.6 开发实例-订单签名
- 27.6.1 签名页面前台(Sign.aspx)
- 什么是NetBPM?
- nodeType 属性
- 27.6.2 签名页面后台(Sign.aspx.cs)
- R0LLER与应用系统的整合