Jacob:

In your post, it says (in part):

"A lock space is an internal object that is used
by other objects to hold object and record locks"

OS/400 and IBM i (nee i5/OS) use many "internal object types" (also known as MI object types) internally. These are normally not directly visible or accessible to users or programs running "above the MI" layer (that is, outside of the SLIC kernel), where normal OS/400 applications run.

Many common OS/400 object types, such as a *FILE, are actually composed of several internal MI objects "under the covers" ... for example, a database physical file is made up of: one or more space objects, a cursor, a data space (one per member), a data space index, etc.

_*Further Research*_
Opening the document:

http://publib.boulder.ibm.com/infocenter/iseries/V5R4/topic/apis/wm.pdf

and searching for "lock space identifier", it appears that you can get the "lock space identifier" for the current job from the "Retrieve Job Locks" (QWCRJBLK) API, and then use that value with these other APIs..

Since these "work management" APIs are publicly available and documented, you could open a PMR (a service request) to request additional documentation on how to use certain APIs, specifically asking for clarification of the "Lock space identifier" parameter on the APIs (QTRXRLSA, QTRXRLSL, QTRXRLRL), if you want to try to get still more information about this topic. (Who knows how IBM will respond to such a request.)

_*SUMMARY*_
Normally, you should not need to know such details. (That is why they are called "internal" objects.)

Also, I think the ATCHTCS MI instruction is "blocked" -- not available to normal "user state" programs, but can only be issued by "system state" programs (that are part of the operating system).

I do not think you will find very much more information about this specific internal MI object, at least, outside the halls of IBM Rochester Labs.

All the best,

Mark S. Waterbury

> On 6/1/2012 9:51 PM, Jacob Smallwood wrote:
Does anyone know where I might find information on how lock spaces
work? According to the help text, ALCOBJ SCOPE(*LCKSPC) will scope the
lock "to the lock space associated with the current thread. If no lock
space is attached, the lock is scoped to the job." I've done some
research and all the references I've found to lock spaces are quite
terse. Technical document 332075326 "Lock Spaces and Job Statuses LSPA
and LSPW" says that "A lock space is an internal object that is used
by other objects to hold object and record locks" and "It is called a
transaction control structure (IBM TCS) at the machine interface.
There is an Attach Transaction Control Structure (ATCHTCS) instruction
that can be used to associate the TCS with the thread." I've also
found a couple APIs that take a lock space identifier and return
information about it, but I can't find anywhere that actually says:

* How and when a lock space is created
* How and when a lock space is attached to a thread (other than that
it's done with the ATCHTCS instruction)
* How I would find a lock space identifier to actually pass to those APIs

I don't need this information for anything in particular, I'm just curious.

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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

This mailing list archive is Copyright 1997-2024 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.