Domino开发及系统性能优化
如何提高Domino服务器性能
如何提高Domino服务器性能如何提高Domino服务器性能通过性能监测和分析,您可以知道服务器的运行状况,即在当前的工作负载下服务器是否出色运行。
正如网络中的瓶颈一样,它可以帮助您找到服务器配置中的限制因素。
通过下面十个步骤,您可以最大限度地提高Domino服务器的性能:(一)了解您的配置Domino管理员应该知道所支持的服务器的配置。
任何一个服务器的主要元件有内存、CPU、磁盘(包括逻辑的和物理的),其它元件诸如在线缓冲内存以及磁盘控制器的数量等,也是比较重要的。
下面是一些附加的注意事项,可以使您避免发生配置相关的问题:1)使用尽可能快的磁盘(例如10,000 RPMs)。
2)在软件RAID上使用硬件RAID,这样速度更快,并且可以减少CPU的负载。
3)一个充足的磁盘子系统可以减少内存需求,因为较少的临时I/O来占用内存。
4)对于Windows NT平台,整理磁盘碎片能充分提高性能。
建议每周整理磁盘碎片一次。
5)确保服务器即使是在最大负载时,也至少有4MB内存可用(10 到20MB 更好)。
要注意的是,平台的缓存策略有可能会起阻碍作用。
6)标准的服务器配置对于Domino服务器不一定是最优的,重要的事情是足够的磁盘和控制器。
您可以使用硬件销售商的NotesBench基准数据作为指导。
(二)通过物理磁盘来分配I/O通常物理的和逻辑的磁盘结构是人们经常忽略的系统资源,是最经常过载使用的。
在很多Domino服务器上提高性能的最好办法是通过不同的物理磁盘来分配I/O。
理想的情况是,将下面与I/O相关的文件放在不同的物理磁盘上:1)不同平台的页面文件2)您的NSF文件3)Domino R5 事务日志如果您能将它们放在不同的控制器上,那是最好的。
这个方法是通过在总线、控制器、端口和磁盘上分发负载来提高I/O吞吐量。
因此,最好是使用几个小磁盘,而不是一个容量大的磁盘。
特别地,您将R5 事务日志与其它磁盘活动隔离地越开,您的服务器性能就越好。
Domino各版本比较分析
Lotus Domino 各版本特点介绍Lotus Domino作为协同办公的基础平台,在协同办公领域一直处于主导地位。
Domino产品线在IBM公司的大力推动下已发展至最新的R8.5的版本。
以下分别对R5至R8.5的特点进行介绍。
1、Lotus Domino各版本特点介绍1.1Lotus Domino R5Lotus Domino R5是实现web编程的重要里程碑式的版本,但也是面向web编程的第一代系统,在编程脚本支持、服务器性能支持等方面存在很多有待完善的功能弱点。
1.2Lotus Domino R6Domino R6是在2002年10月开发完成的,相比于Domino R5,它具有以下优势:●表现得最好――Domino 5 和Domino 6 的比较表明了Domino 6 在所有类别中表现得最好。
●使用现有服务器支持更多用户――每用户的CPU 需求减少了23% 之多,使得服务器能够满足更多用户的需要。
●提高消息传送速度――网络压缩能够减少34% 至52% 的网络流量,使得消息传送更快速。
●节省数据存储空间――数据压缩把消息尺寸减小了45% 至65%,从而节省宝贵的存储空间,并且支持更快速的备份。
1●支持更快速的消息更新――流式复制对消息更新的复制速度提高了36%至45%。
●使管理员的工作更容易――更好的监控和管理工具提高了管理员的生产率。
●更快地传输数据――通过结合使用附件压缩、网络压缩和流模式复制,数据传输速度最大可提高50%。
●能够提高客户满意度――通过高达30% 的响应时间改善来实现。
●更好地利用服务器――支持相同服务器上的多种版本或者分区,以及支持多种语言,从而能够支持服务器合并。
●保持用户在线时间更长――自动重启和恢复功能提高了服务器可用性。
●帮助平衡工作负载――使用从活动趋势分析和Tivoli analyzer 获得的统计数据来实现。
1.3Lotus Domino R7Domino R7.x于2005年9月份正式发布。
在DOMINO下开发JAVA
4.补充: JAVA远程调用DOMINO和 做SSO时DOMINO特殊环境的说明
包,Notes.jar用来访问本地服务器,而 NCSO.jar用访问远程服务器的其它 CORBA/IIOP代码。 • Domino默认是通过names库登录验证的。 不支持j2ee的filter,但可支持C的。 Domino 支持轻量级第三方认证标准LtpaToken 。
• 可以使用DOMINO和Eclipse管理和运行Java
程序 ,在notes.ini添加 JavaEnableDebug=1 JavaDebugOptions=transport=dt_socket,s erver=y,suspend=n,address=8000,再用 Eclipse要调用远程调试便可,如数据不是 很复杂我们一般采用直接输出IO调试。
• DOMINO内置了JVM。可以利用JAVA在
2. 怎么在DOMINO下开发JAVA程序 2.1在DOMINO下开发代理
• 在某个库的共享代码新建一个代理,然后
在运行那一行选择JAVA。 • 代理都继承AgentBase这个类。首先得 session,再通对session得到代理上下文 (AgentContext)、库、视图等等。
Servlet开发,因此必须使用第三方IDE或 SUN命行JDK开发Servlet代码。 • 在Domino数据目录下创servlets.properties 文件,示例:
• Servlet程序存放的位置的配置和其它配置
在internate协议的domino web 引擎,如图:
3.在DOMINO下调试JAVA程序
• DOMINO提供了两个访问domino对象的jar
2.2在DOMINO下开发WEBSERVICE
LotusNotesDomino7应用程序性能:第2部分:优化数据库视图-电脑资料
LotusNotesDomino7应用程序性能:第2部分:优化数据库视图-电脑资料在“Lotus Notes/Domino 7 应用程序性能,第 1 部分” 中,我们探讨了如何通过有效地使用数据库属性和文档集合而改善Lotus Notes/Domino 7 应用程序的性能,。
在第 2 部分中,我们将解释如何构建高性能的视图。
与第 1 部分中一样,本文也提供了许多代码片段,您可以重用和加以修改,从而满足自己的需要。
通过很多年对应用程序性能问题的分析,我们发现问题和解决方案都经常涉及到视图。
通常,视图索引就是问题。
本文解释这如何会发生,以及您可以采取什么措施来诊断和解决这种类型的问题。
但是过去几年里出现得更频繁的是另一种类型的视图性能问题。
这涉及到显示读者访问受控文档(reader access controlled document)的视图。
这些视图中出现的性能问题通常与索引无关,所以我们要花点时间来分别讨论这些问题。
本文假设您是一位有经验的 Notes/Domino 应用程序开发人员。
理解视图索引(Update 任务)在诊断涉及视图索引的性能问题之前,您必须知道的第一件事是,索引过程是如何工作的。
索引一般由Update 任务来完成,该任务每15 分钟在Domino 服务器上运行一次。
技术上说,可以调整这个间隔,但是这涉及到重命名文件,所以实际上很少这么做。
当Update 任务运行时,它查找服务器上每个在Update 任务最近一次运行之后进行了修改的数据库。
然后它会刷新这些数据库中的视图。
根据我们的经验,假定刷新生产环境中生产数据库中的一个普通视图要花大约 100 毫秒是合理的。
要问的逻辑问题是,“什么标志着视图需要更新?” 每当下面任何一种情况出现时,视图就需要更新:副本发送一个文档修改到数据库。
用户保存或删除一个文档(并退出数据库)。
路由器传递一个文档。
在如何确定视图是否需要更新方面,Update 任务非常灵活。
Domino开发要点编码语言以及代码优化分析
Domino开发要点编码语言以及代码优化分析3. 开发要点编码语言以及代码优化分析3.1 编码语言的选择在具体的开发过程中,根据需求性质,DOMINO可以有多种编码语言的选择。
主要有公式、lotusscript、java、javascript语言,比较起来,特别简单的功能和逻辑,用公式实现比较快;复杂的功能和逻辑,用lotusscript比较快。
java语言可以实现多线程,完全面向对象,处理大量文档时,如果程序利用到多线程,比不能利用多线程的lotusscript快。
另外针对于底层开发,LOTUS还有专门的Toolkits支持:按Lotus产品系列来分,Lotus提供下列产品的工具包: Notes/Domino 、Sametime 、QuickPlace 、Discovery Server 、Other。
其中,Notes/Domino和Sametime的工具包比较多,C、C++、Java语言的都有,其他产品的则很少。
从这个角度,也可以看出文档数据处理、协同工作是Lotus系列产品的核心价值所在。
其中,Notes/Domino的工具包有:Lotus C API toolkit Lotus C++ API toolkitLotus Domino Toolkit for Java/CORBA Lotus and Notes Toolkit for COM Lotus Domino Driver for JDBC (简称LDDJ) NotesSQLLotus XML Toolkit(简称DXL) Custom Tag Converion kit(简称DCT)LotusScript Extensions toolkit(简称LSX)在Domino/Notes的Toolkit中,C API的功能最为强大:可以操纵notes数据库中几乎所有的数据对象:数据库及ACL、文档和域、表单、视图和文件夹、代理、可以为Notes客户端的增加附加菜单、可以用来创建附加的Domino服务任务、可以用来扩展Domino/Notes的事件管理。
Domino升级建议IBM官方文件
DominoR5-R7升级建议书(IBM官方文件)1.DominoR5-R7基本升级步骤1.1. 应用测试(Application Testing)●测试内容所有Domino应用,主要做黑盒测试如果定制过pubnames.ntf,需要合并新版本和pubnames.ntf和定制的内容,然后进行测试如果定制过邮箱模板,测试邮箱模板●重点测试Java和C/C++ API程序复杂的表格和排版控制基于R4.5/4.6开发的Web应用通过压力软件测试应用性能●工作结果应用兼容性评估书升级操作计划书(包括回退方案)1.2. 试点(Pilot)参与试点建议试点分两批进行,第一批选择总部,第二批选择3-5个省公司建议包含所有类型的服务器:邮件、应用、SMTP、Hub等建议包含所有应用场景:Cluster、不同时区(如果有海外的服务器)、复制等试点工作重点测试应用测试不同版本并存的兼容性问题总行第一批试点建议作1个月以上的监控,完善升级计划,积累升级经验。
第二批试点为验证性试点,主要验证总行试点方案的完备性,为全行部署做准备。
工作结果升级操作计划书1.3. 全局部署(Production)按照试点升级验证的计划,在全集团范围内迅速实施。
1.4. 建议的升级顺序建议升级顺序:管理客户端->Domino目录-> 服务器端-> 客户端-> 邮件模板更新-> 应用服务器升级顺序:Hub服务器->邮件服务器-> SMTP 服务器-> Web服务器-> OA应用服务器-> 其它服务器2.升级计划考虑到XXX Domino系统服务器和用户数量大,系统架构复杂,为了确保Domino/Notes系统能安全、平滑、稳定地升级到新的版本,最大限度地减少对最终用户的影响,需要制定升级计划、设计升级方案、验证升级方案并进行升级试点和技术培训,以稳妥的方式升级到R7。
本章节覆盖了升级计划的制定及升级到Domino R7需要考虑的问题。
Domino系统管理员的十二项建议
根据许多资深的Domino管理员和咨询人员的经验,我们对Domino系统管理员们提出了一些建议,以帮助他们维护Domino系统的正常运行。
这些建议是针对Domino R5的,而且只涉及到最基本的维护工作,每个系统管理员还需要根据自己系统的特殊要求进行进一步的维护工作。
在提出这些建议之前,必需强调一点:《Domino 5 管理员帮助》应当是所有维护任务的出发点,管理员在进行维护工作之前一定要查阅管理员帮助中相应的主题,以确保操作步骤的正确。
1. 保存验证者ID文件及其口令验证者标识符文件(cert.id及所有组织单元的ID文件)是Domino系统中最重要的的文件。
特别是cert.id,所有其它的ID 文件都是由它创建的。
如果丢失了这个文件或忘记了它的口令,就无法在创建新的服务器和用户了。
因此,从系统建立之初就要注意保存验证者ID文件及其口令。
一定要将它保存在安全的地方并作备份,不要将它放在共享的网络驱动器上;将口令记录下来,但不要将口令告诉无关的人员。
注意不要将口令设为“password”或其它易猜的单词。
2. 定期运行Compact、Fixup和Updall任务Compact、Fixup和Updall任务是服务器自身的维护性任务。
Compact用于释放数据库中的无用空间;Fixup检测无效的文档和损坏的数据库,并尝试修复它们;Updall重建视图索引和全文索引。
这三个任务至少每周要运行一次。
可以按以下步骤设置它们的运行时间。
1). 在Domino管理员客户端中打开要管理的服务器2). 在“配置”标签下,展开“服务器”-“程序”,点击“添加程序”3). 在“基本”标签下,“程序名”中输入任务的名称,即Compact、Fixup或Updall“命令行”中输入所需的命令行选项“运行的服务器”中输入运行此任务的服务器的层次名4). 在“日程安排”标签下,将日程安排设为“启用”,并按需要设置任务启动的时间如果到了Compact、Updall和Fixup所安排的运行时间,而系统正在执行其它任务,这三个任务可能不被执行。
怎样提高Domino 应用性能
• ODBC访问属性“在索引中产生唯一的关键字”为数据库的相 互关联提供唯一的关键字。显著缩小了视图的大小。 – 例如,如果在数据库中只有50个独一无二的类别,这种隐 藏式查找视图将只包括50份文档而不是10,000份。
表单属性
• 只有一种表单属性真正影响应用程序的性能:自动刷新字段。 如果在表单中激活了自动刷新功能,每次从一个字段移动到另 一个字段时,自动刷新功能更新所有先前的字段。这一功能将 影响应用程序的性能。 • 对于包含验证公式的简单表单来说,自动刷新功能几乎不会影 响性能。对于较复杂的表单来说,考虑使用退出事件而不是自 动刷新。
Domino应用设计--性能考虑
• 编码 – 遍历视图:遍历程序和视图配合 – 循环嵌套 • 使用离线功能 – 并非所有的工作都必须立即完成 – 可以将部分任务安排在服务器空闲时 – 后台程序必须被监控,保证可以在规定的时间内做完
Domino应用设计--性能考虑
• 缓存 – 对于B/S应用,考虑缓存策略: • 浏览器缓存 • 一次性缓存 • Domino服务器缓存 – 对于c/s应用 • 本地复本 • 预先格式化好数据 • [CACHE]参数 • Cache.ndk
前台/后台编程
• 前台程序是从应用程序的用户界面(UI)运行的程序, – 例如,从操作菜单手动运行一项代理。 – 这类程序的优势在于易于诊断,因为您可以通过手工测试很 容易地确定程序运行良好和低效率运行。前台程序的性能问 题经常与字段、按钮、代理相关。 后台程序是在后台运行的程序。 – 这包括预定的代理,它不时成为与系统性能相关的故障的来 源。 – 要测试后台程序,审视您的日志是否异常,如完成一项任务 的长时间流逝。如果您正在测试的后台程序是代理,检查代 理日志,查看代理是如何很好地完成其任务的。
domino代码层面优化
7、用LotusScript的GetView,Search和FTSearch的方法代替公式,这样可以至少提高15%的速度。
LotusScript:
1、用For 循环代替Do 循环,因为Do循环会反复的计算条件!
2、在数族元素中循环式用Forall代替for。一元数组会快75%,二元会快50%左右。
17、尽量使用NotesViewEntry和NotesViewEntryCollection。
4、尽量在少量数据的隐藏视图中执行查找公式。在列值中用单个字符串或把数据放在同一列中可以减少试图的数据量。
5、建立搜索视图时把有用的值合并在同一列中,这样可提高多值域的搜索速度。
6、返回值用临时变量,避免出现多余的搜索。在你的公式中有时会用到多次搜索的结果,所以就应该用临时变量代替返回值。
10、尽量少的使用Redim,定义数组前尽可能的定义范围。
11、避免使用拷贝和增加,如:x$=x$+"a",是很费时的。
12、在n维数组循环时,最后的维数应该在最外层循环。如:A[x,y],应该是y在外层循环。
13、比较时用数字代替字符。如:if (Asc(x$) = Asc("A"))代替if (Left$(x$,1) = "A")。
6、用doc.ColumnValues属性比其他获得文档值要快(如:doc.fieldname)。
7、在除法时,用"/"代替"/",用"/"得到浮点数,用"/"得到整数。
8、避免使用Variant类型的数据,因为Variant包含太多的类型和数据。
9、避免使用过多的数组, 去掉不必要的数组。
Domino和J2EE产品对比及部署方式对比
第2章
集中式部署
分布式部署
集团管控
集团管控能力强:
只在总部设有服务器,每个分公司必须访问总部的系统,通过分级授权的方式,分子公司虽然可以具备相对的独立性,但不能脱离集团总部的管控,总部可以对人员、事件,进行有效的跟踪和监控。
另外由于集团所有用户共用同一套系统,各种信息的共享集中、方便,任何单位任何个人都可以通过授权方便地获得相关的信息,集团内部共享效率很高 。
但是,各分子公司会对其特定业务保密性有顾虑。
解决方案:
实现详细的分级授权管理;在系统各模块的权限管理可以按照集团、分子公司、部门、级别、岗位等精细管理;出台具体的制度规范,配合系统自身具有的安全性设计,只要合理设置就能确保安全。
集团管控能力相对较弱:
由于集团总部和分子公司各自使用一套独立的系统,集团总部无法在一套系统中管理到下属单位具体人员或角色的流程,无法像本地一样直接对事件的状态、过程和结果进行跟踪和监控。
解决方案:可以在每个独立系统中都设立集团相关管理人员的帐号,同时集团管理人员可以通过关联系统单点登录到下属各单位访问,这样,集团人员相当于兼职到下属单位办公,能准确获取相关管理信息,加强对下级单位的指导及管控;
业务需求
在一套系统内,如果有业务扩充或者功能需要增加,实现起来比较容易,对比分布式部署方案灵活性更强
系统运维
仅需维护一套系统,采用服务器数量比分散式少,可以减少硬件的故障点,从而减少运维整体的工作量,降低系统管理的繁琐程度。
各分子公司需要各自维护系统,对信息化建设较弱的单位无法承担系统运维工作;
单台设备故障导致的运行风险相对较小
总体成本
仅需购买一套产品;
Domino服务器优化(2023最新版)
Domino服务器优化Domino服务器优化⒈概述⑴目的本文档旨在提供关于Domino服务器优化的详细信息,帮助管理员了解和应用最佳实践来提升服务器性能和可靠性。
⑵适用范围本文档适用于Domino服务器的管理员和系统维护人员。
涵盖了各个方面的服务器优化方法和技巧。
⒉硬件优化⑴硬件需求分析在优化Domino服务器之前,首先需要对硬件进行需求分析,包括处理器、内存、硬盘空间等方面的要求,以确保服务器能够满足业务需求。
⑵硬件升级建议基于需求分析结果,提供硬件升级建议,包括处理器升级、增加内存容量、优化存储等,以提升服务器的性能和稳定性。
⒊服务器配置优化⑴ Domino服务器设置介绍如何通过配置Domino服务器参数来优化性能,如HTTP配置、缓存设置、线程池设置等。
⑵数据库优化提供数据库性能优化建议,包括定期维护、索引优化、视图设计等,以优化数据库访问和响应时间。
⑶安全设置优化介绍如何通过安全设置优化Domino服务器的安全性能,包括访问控制列表、防火墙配置、SSL证书等。
⒋网络优化⑴带宽优化提供网络带宽优化建议,如使用压缩技术、优化网络传输协议等,以提升数据传输速度和效率。
⑵ DNS配置优化介绍如何优化Domino服务器的DNS配置,包括使用CDN、减少DNS查询等,以加快域名解析速度。
⒌性能监控和调优⑴监控工具介绍常用的性能监控工具,如Domino服务器控制台、第三方性能监控工具等,以实时监控服务器的性能指标。
⑵性能调优策略提供性能调优策略,如调整缓存大小、优化邮件路由调度等,以提高服务器的响应速度和吞吐量。
⒍故障排除和日志分析⑴日志级别设置介绍如何设置Domino服务器的日志级别,以及常见的日志错误和警告信息的解读。
⑵故障排除方法提供常见故障排除方法,如定期备份、修复数据库、重启服务等,以快速解决服务器故障。
⒎附件本文档附带以下附件:- 示例配置文件- 数据库维护脚本⒏法律名词及注释- 数据库:指Domino服务器中存储数据的结构化方式,用于管理和组织数据。
基于Domino系统的移动办公系统研发
( 上接 第 2 6 ) 0页
I 选 序号 I 择程
N
l
l
降 刀
上
、 L
刀 架 运 动
- ,
、Y ,
i启 动I
工 台 动(线 作运 划 }
计、一 降次 次数 算下 数 各 和 刀 、 L r 划 位 线 置
降 次 数 和 划 线 次 数 真 空 破 坏
第4 ( 第 18 期 总 2 期)
机 械 管 理 开 发
21年8 02 月
式 , D mn 数据库中的对象访问” 对 oi o 1 。对数据交换 的 方 式 和格 式制 定 出相应 的模 型和规 范 。这些 模型 和接 口规范包括 : 流程类 、 非流程类 、 图形类 、 报表类等。通 过接 口规范和模型的综合运用 , 可以实现各种应用系 统 的移 动化 需 求 。针对 D mn 系统 , 据其 特性 制定 o io 根 特 殊 的 接 口规 范 , 如 D mio 图映 射 规 范 、 o io 例 o n视 D mn 代理调用规范 、 o i 表单整合规范 、 o i 流程提 D mn o D mn o 交 规 范 , 图 1 见 。 4 )系统 安 全性 : 机 访 问 办公 业 务 的 全路 径 , 手 实 现 SL S 安全加密 , 主要通过 以下措施 :1 网络传输安 () 全: 采用 S L S 安全 通道 , 对移 动终 端和 服务 器平 台之 间 采用端到端加密 , 采用防火墙进行隔离 , 并在防火墙上 进行 I地址和端 口过滤 , P 避免信息在整个传输过程 中 可能的泄漏口 ( ) 1 2 应用层的安全 : 。 手机终端绑定: 对手 机号 、I SM卡 I 、 D 手机型号等手机个性化信息进行绑 定, 确保 安全身份识 别。3 采用安全算法 : () 敏感数 据 传输进行加密 : 采用特殊安全算法 , 对敏感数据提供更
Domino服务器优化
Domino服务器优化Domino服务器优化文档范本一、背景介绍在企业中使用Domino服务器时,优化服务器的性能可以提高系统的稳定性和效率。
本文档提供了关于Domino服务器优化的详细指南,以帮助管理员更好地管理和优化服务器。
二、硬件优化1.服务器硬件配置评估1.1 CPU和内存要求1.2 存储需求评估1.3 网络带宽需求评估2.磁盘优化2.1 确保磁盘驱动器速度符合要求2.2 分离数据库和日志文件到不同的磁盘驱动器2.3 定期进行磁盘碎片整理三、Domino服务器配置优化1.Domino服务器设置1.1 确保最新版本的Domino服务器安装1.2 优化Domino服务器配置文件1.3 启用重要性能参数2.任务和调度优化2.1 考虑将CPU密集型任务移至独立服务器 2.2 定期检查和调整任务计划2.3 配置邮件传输设置以提高性能3.Domino服务器安全性优化3.1 配置安全凭证3.2 启用SSL/TLS加密通信3.3 配置访问控制清单(ACL)四、数据库和索引优化1.数据库设计和结构优化1.1 确保适当的文档结构1.2 删除不必要的视图和文档1.3 定期进行数据库维护2.索引优化2.1 创建适当的视图和查询索引2.2 定期重建和压缩索引2.3 避免过多的视图索引五、性能监控和故障排除1.性能监控工具1.1 Domino服务器控制台1.2 Domino维度报告1.3 第三方性能监控工具2.故障排除2.1 使用Domino服务器日志进行故障排除 2.2 分析服务器负载和性能指标2.3 联系IBM支持获取帮助六、文档更新和版本记录添加更新的内容和日期附件:- Domino服务器配置文件样本- 磁盘碎片整理工具法律名词及注释:1.CPU:中央处理器,计算机的主要组成部分之一,负责执行计算机程序的指令。
2.ACL:访问控制清单,用于控制用户对数据库的访问权限的设置。
3.SSL/TLS:安全套接层/传输层安全协议,用于加密网络通信,确保数据的机密性和完整性。
Domino 对未来IT架构的重要性
在Domino上实现应用程序现代化的成本比迁移到其他平台和工具集的高风险、长时间运行的成本低24倍。
从Domino向外迁移可能需要几年的时间,成本不断增加,而且通常不会产生新的核心功能或商业价值。
升级到Domino v12 的成本比迁移或创建混合解决方案要低得多,并且创造可观的新价值:
· 300% 的投资回报率
· 总体拥有成本比竞争对手低25%
· 应用程序开发速度提高了500%
· 开发人员成本降低了40%
不需要使用单独的ERP系统,单独的CRM或者单独的HR系统。
从场景应用程序到工作流再到核心系统,可以解决所有的业务问题,所用的成本只是可比性方法的一小部分。
可以全部在Domino中完成,一个供应商、一个解决方案,一个技术堆栈。
【经管励志】LOTUSDOMINO服务器及其应用系统的高级管理
Lotus Domino/Notes其自身所带的电子系统、基于Domino服务器开发的收发公文处理系统、信息采编与发布系统等具有强大的功能,能够很好地满足工作人员办公自动化的要求。
本人一直负责Domino服务器的建设、维护和应用程序的开发工作,多年的探索与实践感到OA系统的维护包括三个渐进的层次:基本层次—客户端简单故障的排除;中级层次—监控Domino服务器的运行状态、优化系统的运行、Domino服务器的升级;高级层次—OA应用系统的升级、响应用户的需求变化与时修改应用数据库程序代码。
为此培养一个OA高级管理员的目标应该是系统管理员、信息安全员、程序设计人员基本素质的结合。
下面就Lotus Domino服务器与办公自动化系统的维护谈一些体会,希望对OA 系统维护的同仁有借鉴意义。
Domino服务器的监控系统资源的监控包括Domino控制台访问、数据库复制、路由等消息的监控;服务器的硬盘剩余容量监控;Windows操作系统中Notes进程的监控,当某个Notes进程在任务管理器的进程中多次出现时,意示系统的资源不能释放,此时应该重新启动Windows操作系统或Domino服务器系统。
为使OA系统充分利用系统资源,建议不要在OA服务器上再安装其它应用软件。
日志文件监控Domino自身带的系统日志功能比较完善,它记录了关于 Domino 系统的信息,管理员可以从中把握服务器的运行状态,例如:用户的访问时间、数据库是否破坏、Domino系统崩溃的时间与之前相关信息等。
系统管理员应该定期查看此日志以了解系统状态。
当日志文件log.nsf太大时(如几百兆),系统的运行速度受到影响,应该考虑释放其中的无效空间。
具体办法是:关闭Domino服务,在本地新建log.nsf的拷贝,替换原log.nsf后,可以达到释放90%空间的效果。
类似的外出数据库inoc.box,它一直在增长且不能释放无效空间,在Domino服务器运行时就可以压缩此数据库释放资源。
Domino服务器优化
DOMINO、EKP性能优化2010-12-0820101208第一部分DOMINO配置优化第部分第二部分EKP关键数据库优化Domino配置优化代理管理器优化DOMINO web代理优化管理Web服务器上的内存缓存管理Web 服务器上的内存缓存限制用户可使用HTTP POST 命令向服务器发送的数据量禁用记录关注mail.box死信问题代理管理器控制着何时在服务器上运行代理。
代理每次运行都要占用服务器资源。
要控制定时运行和事件触发的代理的运行,可以指定“服务器”文档和notes.ini中设置项。
定制代理运行的时间可以节省服务器资源,也会延迟代理运行的时间。
为代理管理器分配的资源越多,运行其他服务器任务可用的资源就越少。
•DOMINO代理管理器(Agent Manager)有三种代理队列(Agent Manager queue),分别为:•E:符合执行条件的代理队列(eligible)。
S:日程安排代理队列(scheduled) 日程安排代理保存在该队列中,当到了设置的时间时,该代理转到上面的符合执行条件的代理队列•S:日程安排代理队列(scheduled)日程安排代理保存在该队列中,当到了设置的时间时,该代理转到上面的’符合执行条件的代理队列’运行。
•V:事件代理队列(event-triggered) “新邮件到达后”或者“文档被创建或修改之后”触发执行的代理保存在该队列中,该代理先进入“日程安排代理队列”,然后进入“符合执行条件的代理队列”。
•代理触发类型有下属三种:•S, 表示通过日程安排触发.•M, 表示新邮件到达后触发•U, 表示文档被创建或修改时触发.•在控制台输入命令'Tell Amgr Schedule' 可以查看代理的日程安排信息,类似下面的输出信息:•E S 04:03 PM Today agent1 CENTRAL.NSF•S S 05:04 PM Today agent2CENTRAL.NSF•V U agent3 CENTRAL.NSF•例如,agent1 是日程安排类型的代理,已经进入符合执行条件的代理队列,当代理管理器空闲时将立即运行它。
Domino管理以及开发
– HTTP 端口设置
•· Server 文档/端口/Internet 端口
– HTTP 主机及主页的设定
•· Server 文档/Internet 协议/HTTP 协议主页URL
通过HTTP访问Domino Web Server的客户种类
匿名Anonymous
–· 使能匿名访问 –· 设置数据库Anonymous 访问权限
服务器注册
服务器的注册
– 功能位置 – 组织(用户注册在什么组织下) – 基本信息(服务器名称、口令、时间)
文件管理
管理ACL(基本)
压缩
限额 签名(重要)
修复
删除
查看不同类型的数据库
消息处理
查看公共邮箱的状态
– 死信 – 待发信
Байду номын сангаас邮状态
附加服务器的安装和配置
Lotus Notes的应用架构
C/S应用架构
B/S应用架构
CS应用架构
BS应用架构
数据库的基本概念
数据库名
– NSF(Domino存储数据库) – NTF (Domino模板数据库)
数据库的构成
– ACL(Access Control List)访问控制列表 – 设计元素 – 数据内容
ID文件的概念
ID文件内容
ID文件的种类
– 用户ID – 服务器ID – 验证者ID
Domino网络域-主要功能
“第一台”Domino服务器的概念
Domino组织验证者的名称
Domino服务器的名称
Domino网管的名称 Domino网络域的名称
接下来安装Domino…
Domino性能调试..
如果你已经确定在你的Domino服务器上有性能问题,你现在应该做些什么呢?性能问题的一个主要障碍是问题的实质总是难以捉摸的。
系统某个区域的问题的解决有可能取决于一个完全不相关的区域。
因此,在这种情况下,问题真的被解决了吗?即使问题解决了,问题的实质依然很难确定。
所以,可能你仅仅是暂时减轻了症状而已。
由于计算机系统的复杂性,性能的改善或者恶化可能会以一种平稳的方式进行,也可能是突变式。
一个渐变式性能恶化的例子是:当将一些用户添加至一台服务器时,服务器的总体性能逐渐降低。
再举一个突变式性能恶化的例子,修改一个应用程序使得它能够存储和读取更大的notes可能导致NSF缓存超过它的最佳使用率,进而使得磁盘IO访问大量增加,最后导致服务器性能恶化。
在渐变式的变化中,运行过程中的小变化只会对性能造成比较小的影响,而对于突变式,运行过程中一个小的变化经常会对性能产生巨大的影响。
如果有可能,你应该尽量每次只做一个修改,然后密切地监视系统性能的变化情况。
本文不是为了帮助你如何实现性能最优化,而是关注那些服务器性能受系统不利因素影响的问题,这和前者有很大的不同。
我们将一步步地对问题进行分析,包括:问题是什么?记录问题的实质,诊断问题并采取修正操作,最后确定我们采取的修正操作是不是有效的。
定位首先考虑下面这些问题。
1) 问题的现象是什么?问题看起来是什么样的?问题存在的迹象是什么?重点是定义正常的情况。
一个性能问题的存在使得服务器运行不正常。
为什么我们需要明确这些呢?很多次,客户确信Domino服务器有问题,但又不确定正常的运行情况是什么样的。
比如说,解决一个磁盘性能时遇到的网络问题,但是我们怎么知道对于系统来说正常情况是什么样的呢?是10MB/sec正常还是100MB/sec的速度是正常的?在处理性能问题时,我们一定要明确地知道系统的正常状态。
如果我们通过深入调查能够使得性能变好为什么还要做这件事情呢?那是因为必须找出影响系统的一组变量集,一旦我们找到了这些变量,并作出必要的改动,服务器的平衡和正常运行已经恢复。
Domino服务器的优化
Domino服务器的优化
relax
【期刊名称】《家庭电脑世界》
【年(卷),期】2004(000)08X
【摘要】如何最大限度地提高Domino服务器的性能是每个喜爱Lotus的朋友都十分关心的话题。
除了对自己服务器的硬件有一个全面的认识以外,我们还可以通过哪些途径来让它的性能变得更加优异呢?下面.我们就从两个方面来让你的Domino服务器工作得更加出色。
【总页数】1页(P33)
【作者】relax
【作者单位】无
【正文语种】中文
【中图分类】TP393.098
【相关文献】
1.Domino服务器也是Web服务器 [J], 张进萍
2.Domino服务器系统设计 [J], 刘跃
3.Lotus Domino系统从NT服务器到AS/400服务器的移植方法 [J], 郁春江;邓伟;宋芬
4.DominoR5,集成的通讯平台,群件和Web应用服务器(二) [J],
5.从NT Domino服务器到Lotus Domino 向AS/400的移植方法 [J], 郁春江;邓伟;等
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GetNthDocument
• Set db = s.CurrentDatabase • Set dc = db.UnprocessedDocuments • Set doc = dc.GetFirstDocument • Do Until doc Is Nothing • Call DoSomething(doc) • Set doc = dc.GetNextDocument(doc) • Loop
Domino性能的影响因素
ODS升级可节省IO及磁盘空间
从 ODS 43 升级到 ODS 48
• 要在 Domino 8 中将 ODS 43 升级到 ODS 48 格式数据库,请在 Domino 服务器或 IBM(R) Lotus(R) Notes(R) 客户端上的 NOTES.INI 文件中设置 NOTES.INI 文件参数 Create_R8_Databases=1。 当设 置参数 Create_R8_Databases=1 时,将使用 ODS 48 创建新数据 库。使用拷贝样式压缩?钟械?ODS 数据库升级到 ODS 48。使 用以下命令运行拷贝样式压缩: • compact -c <database name> • 注意 现场压缩已发生更改。检测到 ODS 48 之前版本的数据库 时,Domino 不会自动转换成拷贝样式压缩方式来升级数据库。 • ODS 48 在 I/O 方面有潜在的改进,并且文件夹也有优化。 • 恢复一个 ODS 级别 • 要恢复一个 ODS 级别,请使用以下 compact -r 命令: • compact -r <database name>
适当的运行代理
• @if( • @isDocBeingEdited; • @Command([ToolsRunMacro];”Agent”); • ””)
GetNthDocument
• Set db = s.CurrentDatabase • Set dc = db.UnprocessedDocuments • For i = 1 To dc.Count • Set doc = dc.GetNthDocument(i) • Call DoSomething(doc) • Next
Domino开发及系统性能优化
参考资料
• IBM红皮书: • Domino 7 Performance Tuning Best Practices to Get the Most Out of Your Domino Infrastructure(旧的版本,但现在基本通用 旧的版本, 旧的版本 但现在基本通用) • /redpieces/abstra cts/redp4182.html • IBM Lotus Notes and Domino 8 Deployment Guide(主要看 章的 主要看12章的 开发的新功能) 主要看 章的Domino8开发的新功能 开发的新功能 • /abstracts/sg2475 06.html
SELECT pending <= @Today改进方法
• • • • • • • • • • SELECT showInOverdueView = 1 AGENT (runs at midnight .AND. on document create/change) tmpOverdue := @if(pending <= @Today; 1; 0); REM “Select must be in the middle, so we don't fix fields that don't need fixing”; SELECT showInOverdueView != tmpOverdue; FIELD showInOverdueView := tmpOverdue; .OR. AGENT (runs at midnight) set view = db.getView(“OverdueActions”) view.selectionFormula = “SELECT pending <= [30/09/2009]
读者域及作者域
• 在文档权限控制方面对读者域没有更好的 取代方案,但仍可能优化 • 将读者域作为视图中做分类,通过分类筛 选 • 在文档中尽量少的使用读者域(如原有两 个读者域的,改成名称域,使用一个读者 域,且仅在编辑时取名称域的值合并成一 个)
代码优化
• @Formula < LotusScript < Java*
Script Libraries
Q&A• TBiblioteka anks!启用网络数据压缩
提高数据库和 Domino 目录的性能
• 缺省情况下,IBM(R) Lotus(R) Domino(TM) 目录使用两个数据库性能属 性来改善性能。以下 NOTES.INI 设置项能影响数据库和 Domino 目录的 性能。 • NSF_Buffer_Pool_Size • 此 NOTES.INI 设置项用来设置 NSF 缓冲池的大小,NSF 缓冲池是一段 内存空间用于缓冲 NSF和NIF 子系统与磁盘存储之间的 I/O 传输。服务 器分区数、用户数、视图的大小和数目以及数据库的数目,都会影响 缓冲池参数的设置。缺省值(由服务器自动确定)通常足够大,但如 果“数据库统计信息”表指示需要更多内存,请每次为其增大几兆字 节。使用性能监控器可以找到是否较大的值会导致过多页面交换。 (NSF_Buffer_Pool_Size 以字节数设置缓冲池的大小,而 NSF_Buffer_Pool_Size_MB 以兆字节设置缓冲池的大小)。 • NSF_DbCache_Maxentries • 此 NOTES.INI 设置项用来设置数据库高速缓存(如果启用)中存储的 数据库的最大数目。在较短时间间隔内,Domino 最多可存储为此设 置项数目的 1.5 倍的数据库。增大数据库的最大数目可改善性能但需 要更多内存。
@DBColumn, @DBlookup
• Replace: • @DBLookup(“Notes”:”NoCache”; ””; ”(lookup Keywords)”;”Countries”,2) • with: • @GetprofileField(“Keywords”;”Countries”)
@DBColumn, @DBlookup
• When using @DB... in keyword field Choices: • @if(@IsDocBeingEdited; • @DBLookup(“Notes”:”NoCache”; ””; ”(lookup Staff)”;@UserName,2);@ThisValue) • 只有在编辑状态时才计算@DBLookup
优化数据库性能
• • • • • • 设置未读标记选项 启用或禁用未读标记复制 启用或禁用事务记录 允许在数据库中使用更多域 允许软删除 允许数据库设计压缩
数据库属性
视图选择公式
• SELECT FORM = “myForm” • SELECT showInViewPending = 1 • SELECT pending <= @Today * • SELECT @Contains(“Urgent”;Subject) • SELECT ((tom=dick) | (Status = “pending)) & @Contains(“HQ”;Supervisor) | @isResponseDoc & !@isAvailable($Conflict) | @Environment(“Debug”)=”true” & @isMember(“[x]”;@Userroles)
DbSearch FTSearch
• db.Search • db.FTSearch • * 但FTSearch不能做到复杂的综合条件查询, 而且数据库要有全文索引
v.getDocumentByKey (仅适用在大数 据量及多次使用时)
• Set doc = dc.GetFirstDocument • Do Until doc Is Nothing • paraDoc = • vLookup.GetDocumentByKey(doc.Status(0)) • Call doc.Send(False,paraDoc.Supervisor) • Set doc = dc.GetNextDocument(doc) • Loop
v.getDocumentByKey (仅适用在大数 据量及多次使用时)
• • • • • • • • • • • • • • • • Dim vec As NotesViewEntryCollection Dim ve As NotesViewEntry Dim StatusList List As Variant Set vec = vLookup.AllEntries Set ve = vec.GetFirstEntry Do Until ve Is Nothing StatusList(ve.ColumnValues(0)) = _ Split(ve.ColumnValues(0),"|") Set ve = vec.GetNextEntry(ve) Loop Set doc = dc.GetFirstDocument Do Until doc Is Nothing Call doc.Send(False, StatusList(doc.Status(0))) Set doc = dc.GetNextDocument(doc) Loop