IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

HALDB; UNABLE TO OPEN DATA SET WITH DDNAME DMBBS1BA I,31


IBM Mainframe Forums -> IMS DB/DC
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Richard Duggan

New User


Joined: 14 Apr 2010
Posts: 9
Location: Hartford, CT. USA

PostPosted: Wed Dec 28, 2011 12:58 am
Reply with quote

IMS 10.1
I am loading a HISAM DB (Procopt = L) with a user load program. Have del/def'd the datasets with reuse option and the correct key & record size for the DBD [see below]. I init. the DB with DFSURPR0.
I get a DFS0730I UNABLE TO OPEN DATA SET WITH DDNAME DMBBS1BA FOR REASON I,31. The DDNAME points to the secondary index DB dataset.
IBM's explanation: An attempt was made to open a VSAM data set associated with a PCB, which has a processing option other than L, and the data set is empty.

1.) I do not see why IMS is trying to open the secondary Index DB in the load step.

2.) I do not see why the dataset can not be opened.

Below is the secondary Index DBD:

Code:
DBD   NAME=DMBBS100,ACCESS=PSINDEX                     
SEGM  NAME=AYS1ROOT,BYTES=15,PARENT=0                   
FIELD NAME=(IDCLEMSX,SEQ,U),BYTES=15,START=1           
LCHILD NAME=(AYAUROOT,DMBBAU00),INDEX=IDCLEMCS,PTR=SNGL,
      RKSIZE=5                                         

Below is the IDCAMs control cards for the dataset:
Code:

DEFINE CLUSTER (NAME(DMV.IMS.DMBBAU00.DMBBS1BA.P50.A00002)       -
                 INDEXED KEYS(15,34)                             -
                 REUSE                                           -
                 RECSZ(50, 50)                                   -
                 SHR(3 3)                                        -
                 SPEED)                                          -
          DATA (NAME(DMV.IMS.DMBBAU00.DMBBS1BA.P50.A00002.DATA)  -
                 CISZ(04096)                                     -
                 CYL(00001 00001))                               -
         INDEX (NAME(DMV.IMS.DMBBAU00.DMBBS1BA.P50.A00002.INDEX) -
                 CISZ(02048)                                     -
                 CYL(00001 00001))                                 

At the same time I also receive the abend error:
DFS0840I INDEX ERROR DMBBS1B NI 12N on the same secondary index.

IBM's explanation:
Either a data set could not be opened or there was a duplicate
segment in a unique secondary index. If a data set could not be
opened, the message is preceded by a DFS0730I message . . .

I have eliminated the possibility of a duplicate entry.
Back to top
View user's profile Send private message
PeterHolland

Global Moderator


Joined: 27 Oct 2009
Posts: 2481
Location: Netherlands, Amstelveen

PostPosted: Wed Dec 28, 2011 5:04 pm
Reply with quote

Using DFSPREC0 to build index for HALDB, if VSAM REUSE is
specified (rather than Delete/Define) it is possible to get
MSGDFS0730I I,31 I31 saying the dataset is empty, but not load
mode. For DFSPREC0 this is an expected condition, and should
be handled without a msg by reissuing open with ACBRST set.

So issue a Delete/Define for the index dataset.

Maybe this will help.
Back to top
View user's profile Send private message
Richard Duggan

New User


Joined: 14 Apr 2010
Posts: 9
Location: Hartford, CT. USA

PostPosted: Wed Dec 28, 2011 7:47 pm
Reply with quote

I said in my post that I am loading a HISAM database. That was WRONG, it is a PHIDAM database. Thanks for the quick reply from Peter, I am looking at it.
Back to top
View user's profile Send private message
Richard Duggan

New User


Joined: 14 Apr 2010
Posts: 9
Location: Hartford, CT. USA

PostPosted: Sat Dec 31, 2011 1:28 am
Reply with quote

I have found the answer to my problems. With a User Load program HALDB is inserting records into the primary and any seconday indexes with every insert of a data record. [Not true of non-HALDB loads, secondary indexes are not updated.] Thus the secondary index dataset open fails because it has not been initialized. Partions are not initialized by DFSURPR0 unless the PINIT flag is set on. I could set the PINIT flag on, but chose to switch to DFSUPNT0 and the DFSOVRDS input with INITALL.

This sounds like a lot of extra work, but it isn't. Annually we have to unload the data, merge/update with a very large amount of data, and then reload. We prefer to do a del/def of the DB datasets rather than load over the existing data (reuse).
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Sat Dec 31, 2011 11:15 am
Reply with quote

Good to hear you found the answer - thank you for letting us know icon_smile.gif

d
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> IMS DB/DC

 


Similar Topics
Topic Forum Replies
No new posts Data set Rec-Cnt and Byte-Cnt Testing & Performance 2
No new posts SCOPE PENDING option -check data DB2 2
No new posts Check data with Exception Table DB2 0
No new posts Calling an Open C library function in... CICS 1
No new posts JCL EXEC PARM data in C Java & MQSeries 2
Search our Forums:

Back to Top