最近用到了GroupWise,BaiDu了一下,基本没有中文资料,所以只有看英文文档,顺便把看到的东西记录下来,以备以后使用.
*****PostOffice的信息存储
1.PostOffice数据库
PostOffice数据库(wphost.db)包括了所有PostOffice管理的信息,包括PostOffice地址薄(Address Book)的Copy,在GW系统中,这些信息是一个用户向另一个用户发送消息时必须的.
2.消息仓库
GW的消息由以下几个部分组成:
(1)消息头:消息头包含了地址信息,包括发送人地址、接收人地址、消息优先级、身份级别和链接消息体的指针
(2)消息体:消息体包含了经过编码格式化后的消息文本和一个包含发送人和接收人用户IDs的分发列表
(3)文件附件(可选):附加到消息的附件可以是任何文件类型
消息仓库包含用于存储信息的目录和数据库,所有PostOffice的成员会共享消息仓库,因此,不管有多少PostOffice的成员收到消息,只有一条消息和他的附件的副本会保存在仓库中,这使得系统在消息处理,运行速度和存储空间方面更有效率。
用户数据库:
每个PostOffice的成员都有一个私人的数据库(UserXXX.db),他代表了这个用户的邮箱。这个数据库包括:消息头信息、指向所有消息的指针、个人组信息、个人地址薄信息和用户定义的规则。当另外一个PostOffice的成员向本地PostOffice的一个或多个成员共享了一个文件夹,一个存放共享信息的数据库(puXXXXX.db)也同时被建立,并以信息共享者的名字命名,UserXXX.db和puXXX.db都被保存在PostOffice的OfUser目录下
消息数据库:
没个PostOffice的成员都被强行指定了一个用于保存消息的消息体部分数据的消息数据库(msgnn.db),多个用户会共享一个单独的消息数据库,一个PostOffice能够有25个消息数据库,消息数据库保存在ofmsg文件夹下。
本地用户外发的消息保存在本地数据库中,从其他PostOffice接收到的消息会保存在相应的发送者的数据库中,因此不管有多少PostOffice的成员发送了消息,但只有一个消息的副本被保存在PostOffice中。
附件目录:
附件目录包含存放文件附件,消息文本和超过2KB的分发列表的子目录,超过2KB的条目保存成文件比保存成数据库记录更高效,消息数据库会保存指向这些条目的指针
守护数据库:
守护数据库(ngwguard.db)是PostOffice中
- User databases (userxxx.db)
- Message databases (msgnn.db)
- Prime user databases (puxxxxx.db)
- Library databases (dmsh.db and dmxxnn01-ff.db)
这些数据库的reference ,守护数据库存储了所有数据库之间的通用信息,从而排除了信息副本的使用,子数据库的参照信息都保存在守护数据库中的好处如下:
(1) 单点引用:守护数据库为每个PostOffice保存信息,而不是把字典信息保存到多字典库中,数据只保存一次
(2)提升性能:守护数据库中的信息被提取后,会被写入到缓存中,后续的请求会使用缓存中已存在的信息,这样比磁盘存取速度快
(3) 跟踪附件和文档:当附件或者文档失去了到他的消息或容器的指针,守护数据库用于重新定位这些文件的来源。
(4)Groupwise远程控制:当用户开始运行GroupWise Remote,远程工作组就会在他的本地建立一个守护数据库用于存储信息,就如同远程登录用户在自己系统中的Postoffice中操作一样。
守护数据库对GW至关重要,因此POA有自动备份和回滚机制来保护它,POA维护了一个称为ngwguard.fbk. 的副本,当 ngwguard.db 改动后,POA同时在一个称为 ngwguard.rfl的回滚事务日志文件中记录事务信息,ngwguard.dc 是构建守护数据库和他的子数据库的结构化魔板,也叫做字典文件,他包含schema 扩展信息,如:管理员定义的字段,数据类型和记录索引,如果这个文件丢失,PostOffice就不能再创建其他的数据库了。
PostOffice的MTA输出队列
MTA输出队列在每个PostOffice的post_office\wpcsout目录中,post_office\wpscout\ofs 子文件夹是在本地PostOffice中存放POA分发到用户邮箱的用户消息的地方,MTA post_office\wpscout\ads 子文件夹是MTA保存指引POA的admin线程更新PostOffice数据库(wphost.db)的管理信息的地方,如果MTA有一个到PostOffice的事先写好的或者UNC连接,则MTA直接将用户消息写入输出队列中:要求写入Postoffice。如果MTA与Postoffice建立了TCP/IP连接,则MTA通过TCP/IP网路传送用户消息,随后POA作为MTA的代理把消息存入MTA输出队列中,所以MTA不需要写入PostOffice.
POA 输入队列:
POA输入队列在每个postoffice中都是 post_office\wpscout 文件夹,这和MTA的输出队列一样,post_office\wpscout\ofs 子文件夹是POA 提取MTA存放在这得用户消息和更新本地消息仓库的地方,以便用户能收到消息, post_office\wpscout\ads是POA管理线程提取MTA保存在这里管理性消息和更新Postoffice数据库(wphost.db)的地方
POA输出队列:POA输出队列所在的文件夹(post_office\wpcsin) 为MTA保存用户消
息,以便MTA能够把消息传输到其他域或PostOffice MTA输入队列:
MTA输入队列与PoA输出队列一样都在(post_office\wpcsin)中,MTA输入队列抓取POA输出队列保存在这里的用户信息,以便传送到其他域或PostOffice,对于域和postoffice之间的UNC连接,MTA需要对他Postoffice中的输入输出队列有读/写访问权限,如果是TCP/IP连接则不需要任何存取权限,因为消息通过Tcp/IP的方式传送到(远程)MTA
Libraries是可选的,具体参考 原文 http://www.novell.com/documentation/gw65/index.html?page=/documentation/gw65/gw65_admin/data/huden0jh.html