Here the two examples we keep in our "model" file. You can use both solutions, but, I'd say getting a new workunit seems better than commit the one that is open (who says you can commit something that another program opened?)
TITLE:How to handle Workunit problems with SFS files] MODEL: /* PIPE STATE fn ft dirid | ... leaves workunit open if the file MODEL: | is found. This then results in: MODEL: | DMSQRQ1157E Work unit already active when atomic request... MODEL: | Solution: commit the workunit. Example MODEL: | 'PIPE LITERAL T T .|STATE ISODATE|CONS' MODEL: | call csl 'DMSCOMM RETC REAS'; say retc reas MODEL: | 'CMDCALL QUERY LIMITS *' /* Would fail without DMSCOMM*/ MODEL: */ MODEL: /* Similar, when a file is open and a workunit is active, some MODEL: | cmds give: DMSQRQ1157E Work unit already active when atomic.. MODEL: | Solution: get a new workunit. Example MODEL: | call csl 'DMSGETWU RETC REAS WID1' /* Get a workunit */ MODEL: | call csl 'DMSPUSWU RETC REAS WID1' /* Start using it */ MODEL: | 'CMDCALL QUERY LIMITS *' MODEL: | call csl 'DMSPOPWU RETC REAS' /* Use prev Wunit */ MODEL: | call csl 'DMSRETWU RETC REAS WID1' /* Delete new Wunit */ MODEL: */ Kris, IBM Belgium, VM customer support "Schuh, Richard" <[EMAIL PROTECTED]> Sent by: The IBM z/VM Operating System <[email protected]> 2006-06-29 21:25 Please respond to The IBM z/VM Operating System To [email protected] cc Subject SFS Question? I have a service machine that is an administrator for one of our file pools. I am trying to get it to clean up the file pool when a userid is deleted from the system. My method is to first, enroll the userid for 0 blocks, then issue a delete user command. I can log on to this machine and enter the commands from the CMS command line and everything works as expected. When I try to do it from the driver EXEC for the machine, I am greeted with: enroll user JDOE sfsa (blocks 0 DMSJEN1157E Work unit already active when atomic request is issued for work unit 1 The delete user fails the same way (different message number, same information). How can I determine what is causing the work unit to be active when I try this? Alternatively, how can I insure that no work unit will be active? Regards, Richard Schuh
