首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

邮件服务器

技术前沿 | Qmail | IMail | MDaemon | Exchange | Domino | 其它 | Foxmail | James | Kerio | JavaMail | WinMail | Sendmail | Postfix | Winwebmail | Merak | CMailServer | 邮件与开发 | 金笛 |
首页 > 邮件服务器 > Lotus Domino > Lotus Notes/Domino R7 中 AutoSave 全攻略 > 正文

Lotus Notes/Domino R7 中 AutoSave 全攻略

出处:IBM 作者:Alaa Mahmoud, 时间:2007-3-14 19:33:31
想了解 AutoSave 的详细信息以查看我们是如何设计的,以及如何启用并使用它吗?如果愿意,请继续阅读本文!本文假设您是一位有经验的 Notes 用户。有关 Notes 7.0 中所有功能的详细信息,请参阅developerWorks: Lotus文章“ Lotus Notes and Domino Designer 7.0 中的新特性”。
 
级别: 中级
Alaa Mahmoud, 软件工程师 , IBM ,2005 年 9 月 20日
糟糕,由于计算机出现故障,最近几个小时的工作全部丢失了!如果没有考虑到不断保存文档,简直太糟糕了。现在不用担心了,这都要感谢 Lotus Notes/Domino 7 中所引入的 AutoSave 新功能。

当经过了数小时的输入、格式排版、校对检查,正在对即将提交给经理的报告做最后的修改时,突然,您的计算机死机了或者发生其他意外事件,导致所有的工作全部丢失,那该怎么办?这时,您可能才想起来“噢,天啊,我忘记保存文档了!”然后,您会问自己(这时是凌晨两点,您一定是独自一人在工作,否则还可以与他人交谈!),“我是从头开始写报告呢,还是应该开始重新找工作?”如果类似这样的事情发生在您身上,您可能会希望有一个保护天使,能随时保存您的工作,这样当发生意外事故时,还可以找到该工作文档。
AutoSave 就是那个保护天使!它是 Notes 7.0 中所引入的众多非常棒的功能之一。启用 AutoSave 后,Notes 文档会被保存(按照用户设置的计时器事件进行保存)到本地数据库中。这样,如果 Notes 或计算机由于某种原因崩溃了,会为您最近的工作保留一个副本,以便恢复。
想了解 AutoSave 的详细信息以查看我们是如何设计的,以及如何启用并使用它吗?如果愿意,请继续阅读本文!本文假设您是一位有经验的 Notes 用户。
 
设计 AutoSave
当开始开发 AutoSave 时,我们有如下预期目标:
..用户必须能够在其指定的固定时间间隔自动保存文档。
..当由于某种原因导致 Notes 客户机发生故障,重新启动后,用户必须能恢复已经保存过的文档。
AutoSave 必须安全加密,以便所有用户信息都是加密的。
AutoSave 必须快速完成,并且必须避免任何其他的服务器活动。
..用户必须能够打开或关闭 AutoSave 功能,如由管理员通过策略对其进行控制。
 
一个典型场景
当开始设计 AutoSave时,假想有这样一个场景:您正在愉快地对某个文档进行操作,这时发生了一件意想不到的事情,导致您所做的工作都丢失了。这时该怎么办?

您可能会想到多种解决办法。例如,在工作过程中可以启动一个计时器,并不断地保存文档。我们很快发现这个解决方案有很多问题。首先,如果有 1000 个用户都选择将他们的 AutoSave 时间间隔设置为 1 分钟,并且他们每分钟都需要访问服务器,这时该怎么办?这会造成性能急剧下降,并且服务器响应时间会加长。其次,如果没有对文档进行操作,并且文档处于“半完成”状态,您不想任何人查看该文档时该怎么办?如果只有写权限而没有删除权限该怎么办?如果数据库具有验证代码,这些代码要求在保存文档之前,各个字段都必须填写完整,并且如果还未填写完整就试图保存文档会产生各种错误,该怎么办?如果表单在 Post Save 或 Query Save 事件中具有向其他事件发送电子邮件的代码,告诉它们已经可以对文档进行检查了,该怎么办?如果……该怎么办?您一定知道答案了。您可能会猜测到,我们没有这么做。另一种想法类似于第一个,但是对该文档做了一个“无提示”保存(一种不会引发任何事件的保存方法),将其保存到本地加密数据库中了。当出现故障,用户重新启动 Notes 客户机后,检查该数据库中是否有可用文档。如果有,向用户显示这些文档,由用户决定是否要恢复。这就是我们所采取的方法,它确实有效!
 
采用这种方法,可以通过使用本地数据库来避免操作服务器。我们还提供了一个安全的解决方案(加密数据库)防止出现错误,或在保存的同时发送电子邮件(因为没有引发任何事件),并且您可以完全自由决定是否要恢复正在工作的文档。
使用 AutoSave
使用 AutoSave 包括下列操作:
..在客户机上启用 AutoSave
..在表单中启用 AutoSavAutoSave
..通常的 AutoSave 操作
..恢复自动保存过的文档
下列部分详细解释了这些活动。
 
在客户机上启用 AutoSave
安装 Notes 7.0 时,默认情况下, AutoSave 未被启用。未启用的原因是因为用户可能不知道当他们第一次看到 AutoSave处于运行状态时会出现什么情况。而且,有些用户使用的机器可能速度比较慢,在这样的机器上,“自动保存”大型文档可能需要占用很长时间。因此,如果想激活 AutoSave,必须通过 User Preferences 对话框中的一个新选项来启用它(参见图 1):
图 1. User Preferences 对话框
我们添加了一个复选框以启用 /禁用 AutoSave,以及一个用于设置时间间隔的字段。时间间隔可以是 1 分钟到999 分钟之间的任何值。这些 AutoSave 用户惯用选项与客户机的 Notes.ini 文件中的三个变量相对应。下表显示
了这些选项所对应的 Notes.ini 变量:
Notes.ini 设置 用户惯用选项设置
AUTO_SAVE_ENABLE = n当设为 1 时,AutoSave 被启用。当设为 0 时,AutoSave 被禁用
AUTO_SAVE_INTERVAL = <mins>设置自动保存时间间隔
AUTO_SAVE_USER,<Abbreviated User Name>=<Database name relative to the data dir>解决命名冲突(参见本文后面的解释)
 
在表单中启用 AutoSave
正如前面所提到的,无提示保存不会引发任何事件。使用无提示保存进行 AutoSave 的原因是想确保 AutoSave 是一个“无缝”操作 ——启用它之后,忘记有关它的一切操作,直到发生意外情况,然后它开始起作用,告诉您有一个或多个可以恢复的文档。如果文档未完成,引发这样的事件会产生错误(在某些情况下通常这样)。这些事件还会发送电子邮件,并且会导致意想不到的结果。因此,自动保存文档时,不引发这些事件。这时,您可能要问,如果表单要依靠这些事件,该怎么办?答案很简单,它不会起作用的!要解决这个问题,我们添加了一个新的 Form Properties ,用于确定表单能否被自动保存。这样就可以允许模板开发人员或应用程序设计人员对他们的应用程序进行测试并查看它能否被安全地自动保存和恢复。如果可以安全地自动保存和恢复,他们可以打开 Form Properties 信息框,转到第一个附签,选择 Allow AutoSave 复选框(参见图 2):
 
图 2. Allow AutoSave 选项
只有由表单创建的且选中了 Allow AutoSave 的文档能被自动保存。这是确保文档被自动保存后能被恢复的惟一方法。很多 Notes/Domino应用程序在它们的 Save 和 Post Save 事件中都有代码,这些事件会创建字段,或执行在加载时检查的验证。因为在自动保存文档时无法执行这些事件,所以这些事件都不会发生,并且自动保存后的文档也将会处于“坏的”状态。这将导致恢复后无法加载文档。
 
如果应用程序没有在保存事件上写入任何字段,并且它要依靠这些字段,那么可能需要在 Query Open事件中添加代码,将那些字段设为默认值。甚至可以通过查找一个名为 $AutoSaveRecovered的字段仅对恢复后的文档做一些特殊处理。该字段将仅可用于恢复后的文档,直到 Post Open 事件在那之后被删除。通过编程对单个文档禁用 AutoSave 的另一种方法是添加字段 $DontAutosave。该字段会防止对文档进行自动保存。如果删除了 $DontAutosave,则文档可以重新被自动保存。
注意:在 Notes/Domino 7.0 中,启用了 AutoSave 的惟一模板表单是 Memo表单。
 
通常的 AutoSave 操作
现在既在 Notes 客户机上又在表单中启用了 AutoSave,可以开始准备回滚。打开一个文档后开始输入,会启动一个计时器,等待所设置的要通过的时间间隔。仅当对文档进行修改时才会启动计时器,这样当仅对文档进行查看
时,可以防止磁盘活动。间隔时间过去后, AutoSave 执行一次无提示保存,而不会引发任何事件(正如前面所提到的)。本地磁盘上 AutoSave数据库中出现的被保存文档的副本包括几个附加字段,这些字段有助于 AutoSave 在出现故障时恢复该
文档。这些字段如下所示:
 
字段名称说明

字段名称 说明
$AutoSaveDataBase文档所驻留的数据库的名称
$AutoSaveDocTitle文档标题
$AutoSaveNoteID文档的注释 ID
$AutoSaveOrgDocRL用于打开文档的资源链接
$AutoSaveServer数据库副本所驻留的服务器名称
$AutoSaveTime文档的最后修改事件

启动自动保存后,状态栏上将显示下列信息: Autosaving document : <document title>...

AutoSave 操作完成后,状态栏上将显示另一则消息(参见图 3):
AutoSave complete : <document title>...
图 3. AutoSave 消息

看到 AutoSave 完成后,您的数据即被保存,并可以在 Notes 发生故障后再次启动 Notes 时恢复。这意味着将在该本地数据库中保存有大量的文档吗?不会很多!保存文档、删除文档或用电子邮件发送之后,会删除自动保存副本以节省 AutoSave数据库空间。这样还使得只查看最想要恢复的文档更加简便。这时,您已经涉及到了故障事件,因为 AutoSave会定期(最好是在故障发生之前不久)保存该文档。但是如果正在编辑文档(屏幕闪烁、光标停滞、蓝色框闪烁,等等)时怀疑发生了意外,该怎么办?在这些情况下,可以随时
强制执行 AutoSave。要实现这一点,请转到 File 菜单,选择 AutoSave,然后单击 AutoSave Now。这将强制立即执行 AutoSave。
恢复自动保存过的文档
下面是发生故障后重新启动 Notes 客户机时会发生的事件的顺序。在客户机启动时,通过身份验证后,将检查 AutoSave数据库中是否有文档。如果有,将提示您指定是否要恢复未保存的工作(参见图 4)。
图 4. Unsaved Work 对话框

如果选择 Yes,会提示您指定想还原哪个未保存的文档。然后将看到一个类似于图 5 的对话框,上面列出了可以恢复的所有文档,并提供了几个恢复选项:
 
选项说明 
选项 说明
Recover 恢复所选文档并将其从列表中删除
Recover All恢复所有文档,不对每个文档都进行提示,如果没有错误,将关闭对话框
Delete从本地 AutoSave 数据库中删除该文档,并且不对原始文档做任何更改
Delete All 从本地 AutoSave 数据库中删除所有文档,并且不对原始文档做任何更改


图 5. Recover Unsaved Documents 窗口

Recover Unsaved Documents 窗口中的字段显示了下列信息:文档被自动保存的时间、原始数据库的路径名 /文件名以及数据库所驻留的服务器的名称。
如果无法访问原始 Notes 数据库的任何副本,则无法恢复文档,因此只是保留注释原来的样子,稍后再重新尝试恢复。如果自上次 AutoSave以来文档被修改,我们会通知您自最后一次崩溃时原始文档被修改,会让您选择是覆盖原始文档还是保留新文档。如果选择恢复文档,将在 Notes 中打开文档,并提示选择是放弃更改或保存更改。但是在恢复后, AutoSave 将不会帮您自动保存文档。
AutoSave以来文档被修改,我们会通知您自最后一次崩溃时原始文档被修改,会让您选择是覆盖原始文档还是保留新文档。如果选择恢复文档,将在 Notes 中打开文档,并提示选择是放弃更改或保存更改。
但是在恢复后, AutoSave 将不会帮您自动保存文档。
 
AutoSave 数据库
我们最初将 AutoSave 设计为使用从 Autosave.ntf 创建的单一数据库 (Autosave.nsf)。该数据库被加密了。但是,最终遇到了一个潜在问题。在早期的测试过程中,发现在很多 Notes/Domino环境中,多数用户使用相同的Notes Data 目录,并且每个用户具有一个单独的 Location 文档。默认情况下, AutoSave.nsf 位于用户的 Data 目录下并被加密(使用中等加密)。因此当第一个用户创建第一个 AutoSave数据库时,将用该用户的密钥对其进行加密。因此,其他用户无法使用该数据库,这样对他们来说 AutoSave 将被禁用。为避免发生这种情况,我们决定使用类似于用于命名邮件文件的命名约定来创建 AutoSave 数据库。要实现这一点,可以在数据库名称的开头附上 as_ at。例如,对于 Alaa Mahmoud,AutoSave 数据库名称为 as_Amahmoud.nsf。如果已经存在具有该名称的数据库,则将 1 附加到该名称上,重新检查,如果名称仍然存在,则附加 2,直到具有惟一的 AutoSave 数据库名称。
 
解决命名冲突
使用我们的命名解决方案,名称有时会发生冲突,例如 John Smith、Jane Smith、Jen Smith、Jon Smith 等等。要确保为当前用户获取正确的数据库,为用户创建数据库后,需要在用户的 Notes.ini文件中创建下面一项:
AUTO_SAVE_USER,<Abbreviated User Name>=<Database name relative to the data dir>
例如:
AUTO_SAVE_USER,Alaa Mahmoud/Westford/IBM=as_AMahmoud2.nsf
这将允许事件按下列顺序发生。用户通过特定的 ID启动 Notes。检查 Notes.ini 中是否存在该用户名称的一项。如果存在,则使用该项中的数据库名称。如果那个数据库不存在,将创建一个新数据库(在用户将数据库删除的情况下)。如果用户无权访问该数据库,用户将收到一个错误, AutoSave被禁用。如果找不到具有用户名称的项,我们将基于本节前面所描述的命名约定来创建项和数据库。如果用户切换了 ID,Notes 将关闭所有已经打开的文档。因此,打开自动保存的文档没有问题。
 
使用策略设置 AutoSave 选项
对于想启用或禁用 AutoSave 的管理员(或那些想确保用户具有相同的 AutoSave标准时间间隔的管理员)来说,可以通过策略文档来实现。要实现这一点,请打开 Domino Admin 客户机,选择 File - Open Server。然后输入想要管理的服务器的名称。这将打开服务器上的 Domino Directory。从左侧导航面板中选择 Settings。然后可以选择 Add Settings - Desktop/Setup Setting,或者也可以选择一个现有的 Desktop Settings 文档,单击 Edit
Settings。打开文档后,选择 Preferences - Basics 附签,将出现如图 6 所示的屏幕:
 
图 6. Desktop Settings 屏幕
完成两个与 AutoSave 相关的选项:
 
Enable AutoSave 为用户启用 /禁用 AutoSave 功能。当被禁用时,用户即不能使用 AutoSave。
AutoSave every N minutes 设置 AutoSave 的时间间隔(以分钟为单位)。
 
结束语
在本文中,我们了解到 AutoSave 是一种非常棒的功能。它可以在发生意外的情况下保存工作,该功能可由用户通过 User Preferences进行设置,也可以通过策略由管理员来设置。设计人员在确保他们的表单不依靠不会引发的
任何事件后,需要为他们的表单启用 AutoSave。最后,我们了解到通过使用加密的本地数据库, AutoSave 会快速完成而且很安全。
因此,现在对 Notes 文档进行操作时,如果出现意外故障(多少故障是“不可预料的”?),不用担心 —— AutoSave可以来挽救!
 
关于作者
  Alaa Mahmoud 是一位软件工程师,于 20 世纪 90 年代中期加盟 IBM。他担任 Lotus Notes Core Services 小组和 Editor 小组的技术负责人,从 R5 即开始从事 Notes 方面的工作。Alaa 是一位软件国际化专家,尤其擅长于双语(阿拉伯语和希伯来语)方面。
相关文章 热门文章
  • 现有 IBM Lotus Domino/Notes 邮件模板简介
  • 在 Lotus Notes 中设置邮件定时发送的方法及代理功能介绍
  • IBM Lotus Domino 8.5 服务器管理入门手册
  • IBM Lotus Notes远程栈溢出漏洞
  • 深信服新推出IBM LOTUS网络加速方案
  • 基于Lotus Domino的OA系统中安全机制的研究
  • Lotus Domino 8.5 ID Vault 新功能介绍及体验
  • 理解 IBM Lotus Domino 服务器集群
  • Lotus与Exchange对比评测
  • Lotus Domino与关系数据库的互操作
  • 中化选择Lotus Domino 8.5建基础智慧协作平台
  • 故障诊断:Lotus Domino的挂起和崩溃
  • Domino管理员29个问题
  • Lotus Domino/Notes如何有效防止垃圾邮件
  • 配置Domino服务器
  • Lotus Notes常见问题答疑
  • Lotus Notes安装和使用的常见问题
  • Lotus Notes 的最终用户最需知道的十件事
  • 如何提高Domino服务器性能
  • LOTUS NOTES .INI文件参数设置秘籍
  • Domino 做Internet企业邮局的配置
  • Domino SMTP邮件服务器设置实例
  • 基于Linux平台的Domino Server安装与配置
  • 如何配制Domino for IIS?
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号