Joined: 27 May 2005 Posts: 12 Topics: 1 Location: China
Posted: Fri Aug 05, 2005 1:56 am Post subject: 93 VSAM resource not available
I got a problem when access VSAM by Alternate Key. Pls refer my job log
Y:S111114203004203008888 (Alternate Key)
1:S111114203004203008888 READ NEXT FIRST
1:00 (FILE-STATUS)
1: (VSAM RETURN CODE)
2:0000 000001001 READ NEXT AGAIN (NOT EQUAL QUIT)
2:02
2:
Y:0000000000000000000001
1:0000000000000000000001 READ NEXT FIRST
1:02 DUPLICATES
1:
2:0000000000000000000001 RAED NEXT AGAIN
2:93 ERROR WITH 93
2:
I am confused that why it will return 93? Anyone could give idea? _________________ Ron Yang
Joined: 26 Nov 2002 Posts: 12359 Topics: 75 Location: San Jose
Posted: Fri Aug 05, 2005 5:57 am Post subject:
Rony&ruby,
The error code is due to the cluster or its alternate index was in-use by another job or user. If are you are positive that no one else is using the cluster except your job , then check if you have any third party tools like BMC,IOPLUS.. which force LSR(Local Shared Resources) buffering. You need to get in touch with your sys progs and exclude your program from AIX optimization.
Hope this helps...
Cheers
kolusu _________________ Kolusu - DFSORT Development Team (IBM)
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
Joined: 27 May 2005 Posts: 12 Topics: 1 Location: China
Posted: Sat Aug 06, 2005 1:00 am Post subject:
Hi, Kolusu:
Thanks very much! It's helpful. I used STARTOOL to edit the VSAM and exited , then runned a job, I used STARTOOL to verify the END OF FILE, it returned VSAM RETURN CODE = 168, seemed been locked.
The VSAM is used by my job only. Maybe my job holded it? Stranger.
My program logic is:
File A -SEQ (contain the value of VSAM ALT-KEY)
File B -VSAM (defined AIX: NOUNIQUEKEY, SPEED, NOREUSE)
OPEN I-O FILE B.
OPEN INPUT FILE A.
READ FILE A UNTIL EOF-FILEA
START FILE-B BY ALT-KEY
IF FOUND
READ FILE-B NEXT RECORD UNTIL EOF OR DIFFERENT ALT-KEY FOUND
REWRITE FILE-B-RECORD
END-IF
-- File B contained ALT-KEY VALUE 0001, 0002, 0003, S111 ...
-- When I gave FILE A as
..... 0002 (ALT-KEY VALUE)
..... 0002
..... 0002
..... 0001
..... 0001
My job is OK.
-- When I gave FILE A as
..... 0002 (ALT-KEY VALUE)
..... 0002
..... 0002
..... 0001
..... 0001
..... 0002 (same as the first 3 records)
My job return FILE-STATUS = 93, when Read Next the 6th alt-key value, of course START before the 6th read next returned 00 file-status.
It is regret that I can not sort FILE-A as requirement.
So I confused that why it can not read 0002 after read 0001?
Joined: 27 May 2005 Posts: 12 Topics: 1 Location: China
Posted: Sun Aug 07, 2005 7:53 pm Post subject:
Hi, Kolusu:
Thanks. I tried to create a same structure VSAM on another Catalog.
The program runned OK for each cases. And I the prev VSAM return code for 93 is Reg-15 = 08, Func-code = 00, Error-code = 20, that means the current record had been locked.
Is there any method to get the info about the AIX optimization? Then I will info our sys progs to handle it. Thanks very much. Waiting your reply. _________________ Ron Yang
Joined: 27 May 2005 Posts: 12 Topics: 1 Location: China
Posted: Wed Aug 10, 2005 4:58 am Post subject:
Hi, Kolusu:
I found the reason for my problem.
Program was going to OPEN I-O the vsam, and START , READ NEXT ever records.
But it would not update every record after read. I changed my program REWRITE record every time, thus 93 never happened.
Yet, I am still confused by what happened, my VSAM shareopt = 2,3. That means the record of VSAM can be read by mutiple requests and write by 1 request at the monment, am I right? If yes, it should be read again, why return 93 for not available.
Btw, what I got in VSAM RETURN CODE : REG-15 = 08, FUNC-CODE =00, ERROR-CODE = 20.
Joined: 26 Nov 2002 Posts: 12359 Topics: 75 Location: San Jose
Posted: Wed Aug 10, 2005 10:01 am Post subject:
rony&ruby,
Code:
SHAREOPTIONS(crossregion[ crosssystem]
You had 2,3
A crossregion option 2 specifies that the data set can be accessed by any number of users for read processing and it can also be accessed by one user for write processing. With this option, VSAM ensures write integrity by obtaining exclusive control for a control interval when it is to be updated. If a user desires read integrity, it is that user's responsibility to use the ENQ and DEQ macros appropriately to provide read integrity for the data the program obtains.
A crosssystem option 3 specifies that the data set can be fully shared. With this option, each user is responsible for maintaining both read and write integrity for the data that user's program accesses.
Hope this helps...
Cheers
Kolusu _________________ Kolusu - DFSORT Development Team (IBM)
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum