The OP originally stated that he had two STC processes that updated the same 
z/Unix file at the same time and wanted to prevent this.  Are two STC's both 
considered z/Unix processes under the same kernel when they are running on the 
same LPAR?  If so, ISTM that locking and unlocking the file around the write 
code will work as a mechanism to prevent simultaneous writes.

But what about two STC's running on different LPAR's in the same sysplex?  Does 
z/Unix file locking work across LPAR's, or only within the same LPAR?

Just curious.

ISTR that simultaneous writes to a common file are classically solved in most 
unix systems by implementing a daemon process that is the only process allowed 
to write to the file, and other processes send messages to the daemon to 
accomplish the write function, like the syslog daemon for system messages.

The new question is whether Java on z/Unix provides access to any file locking 
mechanism at all, as the OP also just said it was a Java application and he 
wants to share the file among tasks of the *same* program.  That would argue 
that using whatever the Java equivalent of the C flockfile function is would be 
the solution to use.

But can z/Unix Java do that?  Or does he have to write a JNI function to be 
called from his z/Unix Java code to implement a file lock?  Or should he just 
implement a third process/task under the same program for the file writes and 
have both of the other tasks just send messages to the write process?

Peter

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf Of 
Walt Farrell
Sent: Friday, April 20, 2012 8:27 AM
To: [email protected]
Subject: Re: USS File Integrity

On Fri, 20 Apr 2012 11:18:45 +0800, David Crayford <[email protected]> wrote:

>Of course, fcntl() can be used to implement byte-range-locking. So in
>theory you could use it to implement
>row-level locking in a dictionary library. ENQ is not that granular.

ENQ is as granular as the application wants to make it, depending on how clever 
the application programmer is at encoding information into the RNAME the 
application will use.

The key point about UNIX files, though, is that all the locking is advisory, 
and controlled by the applications that use the file. If they all implement the 
same locking mechanism (whatever that may be), the locking will work. If they 
don't, it won't work.
--


This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to