|
Yes, except they are not formatted. A data area usually holds one type of data (string, number, boolean, ...) and at times the system helps make sure you put correct data in a data area. You get no help with user space. It is just a big byte array. David Wall AS/400 Toolbox for Java "Eyers, Daniel" <daniel.eyers@hon To: "'java400-l@midrange.com'" <java400-l@midrange.com> eywell.com> cc: Sent by: Subject: RE: User Space java400-l-admin@m idrange.com 01/24/2002 09:07 AM Please respond to java400-l Are user spaces like very large Data Areas? dan -----Original Message----- From: Dave Wall [mailto:dawall@us.ibm.com] Sent: Wednesday, January 23, 2002 9:34 AM To: java400-l@midrange.com Subject: Re: User Space A user space is simply a chunk of iSeries storage. The length is established when the space is created, up to 16 meg. It is named just like other iSeries objects and goes in a library. They are created by programs. They are persistent and can be saved like other iSeries objects. They are accessed via an offset/length strategy (read/write x bytes starting at offset y). You can create as many as you want. The Toolbox has a UserSpace class to help Java programs access user space objects. A simple program is AS400 sys = new AS400("mySystem.myCompany.com"); // Create a user space object. UserSpace US = new UserSpace(sys, "/QSYS.LIB/MYLIB.LIB/MYSPACE.USRSPC"); // Use the create method to create the user space on // the AS/400. US.create(10240, // The initial size is 10K true, // Replace if the user space already exists " ", // No extended attribute (byte) 0x00, // The initial value is a null "Created by a Java program", // The description of the user space "*USE"); // Public has use authority to the user space // Use the write method to write bytes to the user space at offset 0. US.write("Write this string to the user space.", 0); User Space objects are often used by iSeries APIs. When a lot of data is returned to the caller the API often puts the data in a user space. Another common use of user spaces is in program to program communication when the data is too big to fit in a data queue. In that case the data queue is used to notify the target program that there is something to do, but the user space contains the data. The data queue entry may contain the user space name, data offset, length, etc. One important Toolbox UserSpace consideration -- the UserSpace classes internally uses other Toolbox objects to access the space. By default it uses the IFSFile family of classes (via the stream file server) to access the space. The IFSFile classes cannot access data in QTemp, and hold a lock on the space until the object is closed. This is the best behavior is some cases so a implementation using ProgramCall (via the program call server) also exists. The ProgramCall implementation can access spaces in QTemp and holds a lock on the space only during a method call, but it is slower than IFS access. To get the ProgramCall implementation use UserSpace.setMustUseProgramCall(true); David Wall AS/400 Toolbox for Java "Richards, Etienne (CAP, PTL)" To: "'java400-l@midrange.com'" <java400-l@midrange.com> <Etienne.Richards@ cc: penske.com> Subject: User Space Sent by: java400-l-admin@mi drange.com 01/23/2002 07:09 AM Please respond to java400-l All, Can someone please tell me more about a user space. How would you read or write to a user space? How do I know if I have a user space and what is it called? Can you access a user space from the Toolbox? Etienne _______________________________________________ This is the Java Programming on and around the iSeries / AS400 (JAVA400-L) mailing list To post a message email: JAVA400-L@midrange.com To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/cgi-bin/listinfo/java400-l or email: JAVA400-L-request@midrange.com Before posting, please take a moment to review the archives at http://archive.midrange.com/java400-l. _______________________________________________ This is the Java Programming on and around the iSeries / AS400 (JAVA400-L) mailing list To post a message email: JAVA400-L@midrange.com To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/cgi-bin/listinfo/java400-l or email: JAVA400-L-request@midrange.com Before posting, please take a moment to review the archives at http://archive.midrange.com/java400-l. _______________________________________________ This is the Java Programming on and around the iSeries / AS400 (JAVA400-L) mailing list To post a message email: JAVA400-L@midrange.com To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/cgi-bin/listinfo/java400-l or email: JAVA400-L-request@midrange.com Before posting, please take a moment to review the archives at http://archive.midrange.com/java400-l.
As an Amazon Associate we earn from qualifying purchases.
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.