上一页  下一页          目录  索引  定位  词汇表  程序库

快照

“快照”可以对计划流程使用的全部信息进行复制或“快照”,以便计划流程可以对某个时间点的冻结数据进行操作,并在将来的任何时间对该快照进行报告。

快照任务

由“快照”执行的工作可以细分为多个单一任务。某些任务会包括将信息复制到 MRP 表中,例如库存数量、主计划数据、离散任务、采购订单以及重复性计划。其它任务包括从表中删除信息。例如,在 MRP 可以重新装入最新信息之前,需要删除 MRP 离散任务表中的信息。许多任务都独立于另一个任务 -- 您可以在装入离散任务信息的同时装入库存信息。“快照”会启动工作流程以使这些任务并发运行。

在“快照”运行时,会使用所有需要执行的任务填写“快照任务”表。

每项任务都有起始日期和完成日期。那些列的值指明了任务的状态。尚未执行的任务具有空的起始日期和空的完成日期。当前正在处理的任务具有起始日期值,但没有完成日期值。已处理的任务具有起始日期值和完成日期值。“快照”通过查看这些列来确定下一个要处理的任务。

某些任务可能附属于其它任务。例如,在重新插入离散任务的最新值之前,您必须先从 MRP 离散任务表中删除原有值;或者在可以计算当前综合重复性计划的信息之前,必须装入当前重复性计划的信息。在处理其附属任务之前,“快照”可以确保先处理独立任务。

读一致性

某些任务要求对数据库加锁以保证读的一致性。例如,离散任务信息和库存数量要求锁定库存事务处理表以保证读的一致性。假定您具有数量为 100 个单位的子库存,和 25 个单位的离散任务。如果在“快照”读取库存信息与快照读取离散任务信息的时间间隔内,完成了 10 个单位的任务,则“快照”需要保证在 MRP 表中填入数量为 100 个单位的库存和 25 个单位的离散任务,或者数量 110 个单位的库存和 15 个单位的离散任务。由于每项任务均可能是由独立流程进行处理,因此“快照”不能保证同时执行两项任务。这样,通过锁定库存事务处理表,“快照”可以确保读一致性。

每项任务都有一个指明“快照”在完成任务前是否需要锁定表的属性。一旦“快照”获取了表锁,将向那些要求加锁的任务提供最高的优先级,以使锁定表的时间减到最小限度。一旦完成了需要锁定的全部任务,“快照”会释放这些锁定。

建议:在某些情况下,您无须保持读的一致性。例如,如果您为了模拟而运行计划流程,来估计物料需求的中长期趋势,则不必保证读的一致性。因此,您可能需要在“快照加锁表”关闭的情况下运行计划流程,以便不需要限制其它用户进行事务处理。

基于内存的计划引擎

“基于内存的计划引擎”的优点之一就是它无需将用户锁在系统外就可获得所有计划数据的一致状况。计划引擎通过使用称为“将事务处理设为只读”的 Oracle 服务器功能来达到此目的。通过使用此选项,您不必在计划运行的持续期间锁定表。要确保整体一致性,您只需将“快照工作流程”与“基于内存的快照”执行设置事务处理功能的时间同步即可。

在“基于内存的计划引擎”下,您可以获得两种程度的读一致性。将“快照加锁表”字段设置为以强制“快照工作流程”和“基于内存的快照”同时执行设置事务处理功能。加锁表可以提供最高程度的数据一致性,但是在表锁定时您不能执行任何事务处理。如果“快照加锁表”字段设置为,则“快照工作流程”和“基于内存的快照”可以在不同时间执行设置事务处理功能。使用此方法,则可能产生不一致,但机会很小。

锁文件

Oracle 主计划/MRP 和供应链计划管理系统通常使用数据库进行流程间通信。在流程尝试发送一条需要将表锁定的信息时,您不能使用这种技术。在“快照”已获得表锁并需要将此信息传达给“快照工作流程”时就是这样。

“快照”启动“快照工作流程”。然后“快照工作流程”会开始处理不需要数据库锁的任务。一旦“快照”获得了表锁,它就需要将该信息传达给“快照工作流程”。但是,“快照”不能更新数据库表中的列以传达该信息。为了使“快照工作流程”能够读取该信息,“快照”必须提交该信息以释放数据库锁。

“快照”会创建一个称为锁文件的操作系统文件,以传达它能够获得表锁的信息。“快照工作流程”会进行定期检查,以查看是否创建了锁文件。一旦“快照工作流程”检测到锁文件的存在,“快照工作流程”将开始处理那些要求锁定以保证读一致性的任务。

快照配置

您可以配置“快照”,以确定在定义“MRP:快照工作流程”配置文件选项时要启动的“快照工作流程”数。请参阅:配置文件选项

上图说明了在“标准计划引擎”下的“快照流程”逻辑。以下是对此逻辑的详细解释。

上图说明了“快照工作流程”的逻辑。以下是对此逻辑的详细解释。

另请参阅

启动计划流程


         上一页  下一页          目录  索引  定位  词汇表  程序库