·不延期型:到达时就能立即被服务完全处理好的请求(如,WFPOpen、WFPRegister和大多数WFPGetInfo调用)。
·延期型: 到达时可能无法被服务完全处理好的请求,这种情况主要是由于这些请求需要硬件和/或操作员交互(如,WFPExecute和一些WFPGetInfo调用)。
·锁定型:WFPLock调用。
独立设备锁定方式:
服务状态:UNLOCKED(未锁定)服务未被任何一个引用程序锁定
·不延期请求在到达时处理。不延期型请求立即处理
·延期请求被安排在延期队列中,按照FIFO(先进先出顺序)处理。延期型进入延期队列按先进先出处理
·WFPLock请求到达时:
·锁定请求被安排在锁定队列中。锁定请求被安排在锁定队列中,服务被该请求所在应用程序锁定。
·服务状态变为LOCK_PENDING。
如有需要合作联系以下地址: https://blog.csdn.net/u011602666/article/details/39232991
第29页
CWA 15748-1:2008
服务状态:LOCK_PENDING(锁定挂起)服务被某一应用程序请求锁定。则锁定之前先处理延期队列中的所有请求,然后处理锁定队列,按某种方式同意锁定请求。
·延期队列中在锁定挂起请求之前到达的所有请求都按FIFO(先进先出顺序)处理;所有请求都处理完后,处理锁定队列。注意,根据服务/设备的性质,锁定请求可能被以FIFO(先进先出)方式或其他方式同意,例如,在操作员作出诸如按下操作台按钮等操作时。
·如果同意了锁定请求:
·服务状态变为LOCKED。
·来自同一“所有者”的任何其他被挂起的锁定请求均获得同意。(如果请求来自同一工作站,并且具有相同的应用程序句柄和服务句柄,即视为来自同一所有者。)同一HAPP则视为同一所有者(同一应用程序)
服务状态:LOCKED(锁定)
·达到的请求(除了锁定请求外)按如下方式处理:
·不延期请求在到达时处理。不延期型请求立即处理
·非WFPExecute请求的延期请求被安排在延期队列中。
·来自的锁定的所有者的WFPExecute请求被安排在延期队列中。
·不是来自锁定的所有者的WFPExecute请求被驳回(并返回WFS_ERR_LOCKED错误代码)。来自锁定所有者的延期请求被安排在延期队列中,非锁定所有者(应用程序)的延期请求则被驳回。即服务被锁定之后,所有应用程序的非延期请求立即处理,但是只有锁定服务的应用程序的延期请求才能被安排在延期队列中处理。
·来自的锁定的所有者的WFPUnlock和WFPClose请求被安排在延期队列中。(注意,对被锁定服务的关闭请求将按照解锁然后关闭的方式处理。)
·不是来自锁定的所有者的WFPUnlock和WFPClose请求将作为非延期请求处理,即,在到达时处理。
·延期队列按照FIFO(先进先出顺序)处理。
·WFPLock请求到达时:
·如果该请求来自锁定的所有者,则同意该请求。
·如果该请求不是来自锁定的所有者,则将其安排在锁定队列中,并向锁定的所有者发送WFS_SYSE_LOCK_REQUESTED事件。
·在WFPUnlock或WFPClose请求在延期队列中被处理,或者服务和锁定的所有者间的连接丢失的情况下:
·如果锁定队列不为空,服务状态变为LOCK_PENDING(锁定挂起)。
·如果锁定队列为空,服务状态变为UNLOCKED(解锁)
锁定队列:当服务没有被锁定,有应用程序请求锁定则在处理完延期队列中的请求后立即锁定。
当服务被锁定,有应用程序 请求锁定则该应用程序的锁定请求被安排在锁定队列中,并向锁定服务应用程序发锁定请求,当锁定应用程序解锁服务后,则按先进先出或其他方式同意锁定队列中的锁定请求。
复合设备
在金融服务业中,复合设备的使用非常常见。本文主要研究以下三种类型的复合设备:
·共享一个实体设备外壳(也可能是共享其他属性)但功能完全相互独立的两个或两个以上的独立逻辑设备。
·功能上以某种方式相互依赖的两个或两个以上的不同逻辑设备,如,使用同一个打印头机构的日志打印机和存折打印机。
·仅是同一个物理设备的不同逻辑关系的两个或两个以上逻辑设备,如视作两个独立的逻辑设备(一台文档打印机和一台存折打印机)进行管理的一台打印机。
复合设备AB,A被锁定,则B进入保留状态 ,此时锁定所有者请求锁定B时则立即进入锁定,但其他应用程序请求锁定B时则进入锁定队列等待,当AB都被某应用程序锁定时,只有当AB同时解锁,其他应用程序的锁定请求才能被同意。比如AB都被锁定,B被解锁,A则进入保留状态。