作业需要一个目标之前分配目标,这样在用目标是不用再等,可保证完成所需功能,这叫目标的分配。
可用ALCOBJ命令预先分配目标,用DLCOBJ解除分配
目标是根据要他们做什么来分配的(读或者修改)和他们是否可以共享。文件和成员总是以*SHRRD来分配。而数据用规定所状态来分配锁的级别。
锁状态标志使用的目标已是否可共享。
有下列五个锁状态:
1. *EXCL(排他)
目标对请求他的作业保留排他使用。其他作业不可使用它。
2.*EXCLRD(排他但允许读)
目标已分配给请求他的作业,但是别的作业可以读他
3. *SHRUP(共享更新)
目标对其他作业共享读或更新。即另外的用户可对同一目标请求共享读锁状态或共享修改锁状态
4.*SHRNUP(共享不更新)
5 *SHRRD(共享更新)
1)怎样看文件中记录有没有被一些作业锁住,用cl命令:
DSPRCDLCK FILE(your_file)
2)怎样看文件有没有被一些作业锁住,用cl命令
WRKOBJLCK OBJ(your_file) OBJTYPE(*FILE) MBR(*ALL)
3) 文件被打开,就被锁住了,其他作业不能删除修改这个文件。
4)文件在 F 表中定义为允许更新类型,缺省读纪录,记录就会被锁住,如果不希望锁住记录,需要增加N标识
5)更新纪录,记录就被解锁
6)读下一个记录,解锁旧纪录,锁住新纪录
7)unlock 后面虽然跟的是文件名,其实开的是纪录锁,不是文件锁。
8)一个作业只能解自己加上去的锁,不能解开其他作业的锁,除非杀了其他作业。
9)关闭文件,或者作业结束,就自动解开了文件锁。
10)文件关闭了,记录锁也就自动解开了。