On 03-Nov-2014 10:16 -0600, David Gibbs wrote:

Any suggestions on how to create an exclusive lock on an IFS file?

I need to ensure a process, running on a PC, is the only one running
at a time ... to do this I want to create a lock on a known IFS file.

Currently I'm looking at using this code to make the lock.

IFSRandomAccessFile lockFile = new IFSRandomAccessFile(as400, LOCKFILE, "rw");

IFSKey lockKey = lockFile.lock(0L, 10L);

If the lock operation on the lockFile thows an ExtendedIOException,
I know I can't get the lock.

Are there any better approaches?

I would think more appropriate, including the optional fourth argument [int shareOption] for the open request, using the value of SHARE_NONE; i.e. preventing an open by any other process\thread irrespective that other thread properly implementing the keyed-locking scheme.? I have never used the IFSKey class, but I infer that is the equivalent of a Space Location Lock (SLL) for which all accesses must be participants in the scheme, else anyone not participating might not /see/ the lock and be allowed to operate against [access] the file and data.?

Also, I am unsure of the default for the optional fifth argument [int existenceOption] for the open request, but possibly the value OPEN_OR_FAIL is desirable if the semaphore is implemented as a "lock on *a known* IFS file" [emphasis mine].?

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.