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

Actual space occupied by a VB file


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Aaru

Senior Member


Joined: 03 Jul 2007
Posts: 1287
Location: Chennai, India

PostPosted: Thu Jul 05, 2007 11:40 am
Reply with quote

I have a variable block file with record length 6000 with 1 record.
But only 700 bytes of data is populated in the record.

In our shop to store 1 GB data for a month in DASD the approximate cost is 3.35$. So to calculate the cost should i take 6000 or 700 into account?
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Thu Jul 05, 2007 2:32 pm
Reply with quote

You have to cost the actual space allocated rather than used, because if it is allocated then no one else can use it.
Back to top
View user's profile Send private message
Aaru

Senior Member


Joined: 03 Jul 2007
Posts: 1287
Location: Chennai, India

PostPosted: Thu Jul 05, 2007 2:53 pm
Reply with quote

thanks expat !

just to confirm , i will have use 6000 and not 700 for my calculations.
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Thu Jul 05, 2007 10:09 pm
Reply with quote

No, 6000 bytes or 700 bytes will consume 1 track of DASD.

1 track of DASD = 56Kb.
Back to top
View user's profile Send private message
Douglas Wilder

Active User


Joined: 28 Nov 2006
Posts: 305
Location: Deerfield IL

PostPosted: Fri Jul 06, 2007 1:13 am
Reply with quote

Your fine of 1 VB record would be 700 bytes plus the block length plus record length or 708 bytes. The amount of space it takes depends on how the space is allocated and the device it is stored on. On disk it will be a minimum of 1 track. But if the space is allocated in Cyls it would be a minimum of 1 Cyl (1 cyl = 15 tracks on many disk drives). But if you allocate in multiple tracks or cyls and do not RLSE the space used by this dataset may be more. SPACE=(CYL,(10,20)) would use 10 cyls where SPACE=(TRK,(1000,100),RLSE) would only take 1 track.
Back to top
View user's profile Send private message
Aaru

Senior Member


Joined: 03 Jul 2007
Posts: 1287
Location: Chennai, India

PostPosted: Fri Jul 06, 2007 8:30 am
Reply with quote

Quote:
No, 6000 bytes or 700 bytes will consume 1 track of DASD.


So shd i consider the space occupied as 1 track for my calculations.

The cost is calculated based on the no of bytes occupied in DASD. For a month, for storing 1GB (tracks are not considered here)of data in DASD the total cost is 3.35$.

This is how i have planned to calculate the cost involved in storing my dataset

Record length in bytes 6000
Total bytes occupied (1*6000) in bytes [1 - no of record in the file]
In GB (GB equivalent of 6000 bytes) = Y GB


As per CCC, DASD 1 Gigabyte Month $3.00
hence for Y GB = XX$

my ques here is to whether to use 6000 or 700 while calculating the cost !
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: Fri Jul 06, 2007 8:55 am
Reply with quote

Hello,

We cannot help you with that. As you learned earlier the smallest amount of dasd for your allocation will be at least 1 track of dasd.

Quote:
my ques here is to whether to use 6000 or 700 while calculating the cost !

Neither 6000 nor 700 will be taken - see previous info.

If you do not want to use that (56k) figure, you will need to talk with the people in your organization who allocate costs to find what your cost allocation rule should be.
Back to top
View user's profile Send private message
Aaru

Senior Member


Joined: 03 Jul 2007
Posts: 1287
Location: Chennai, India

PostPosted: Fri Jul 06, 2007 9:22 am
Reply with quote

Thanks dick for the details.
Back to top
View user's profile Send private message
Aaru

Senior Member


Joined: 03 Jul 2007
Posts: 1287
Location: Chennai, India

PostPosted: Fri Jul 06, 2007 8:39 pm
Reply with quote

What if there are 10000 records in a VB file of RECL 6000 and the average bbytes populated in every record is 700?
Back to top
View user's profile Send private message
mmwife

Super Moderator


Joined: 30 May 2003
Posts: 1592

PostPosted: Fri Jul 06, 2007 8:54 pm
Reply with quote

It will depend on the blksize you specified and whether or not you specified AWO for the file in the creating pgm.
Back to top
View user's profile Send private message
Aaru

Senior Member


Joined: 03 Jul 2007
Posts: 1287
Location: Chennai, India

PostPosted: Sat Jul 07, 2007 11:02 am
Reply with quote

the compiler option is AWO.

Let me put the ques clearly.

I have got a VB PS file with the foll attributes

Organization . . . : PS
Record format . . . : VB
Record length . . . : 6004
Block size . . . . : 27998

The total no of records is 10000. On an average each record occupies only 700 bytes. In our shop to store 1 GB data for a month in DASD the approximate cost is 3.35$. So to calculate the cost for storing this PS on DASD should i take 6000 or 700 into account?

i have aldready posted the way am planning to calculate the cost. But am not sure whther to use 700 or 6004 for my calculations!
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Sat Jul 07, 2007 11:20 am
Reply with quote

As previously stated, the amount of DASD allocated is the charge criteria, not the amount actually used.
Back to top
View user's profile Send private message
Aaru

Senior Member


Joined: 03 Jul 2007
Posts: 1287
Location: Chennai, India

PostPosted: Sat Jul 07, 2007 11:50 am
Reply with quote

Sorry for posting agn on this topic!

s I agree , the actual bytes used is 700 and not 6004.

Please mention as whether shd i use 700 or 6004 for my calculations?
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Sat Jul 07, 2007 1:48 pm
Reply with quote

Do a 3.4 against your dataset, and this will show you how many units of allocation have been made by your dataset. This can be in blocks, tracks, cylinders, Kb or Mb.

This is the exact amount of space that is being ALLOCATED by your dataset. This may not be the amount that is actually being used by your dataset, but we do not care about charging for the number of bytes used, but the number that have been allocated.

Once the space has been allocated it is unavailable to any other user / project / charge code, except for the one that has allocated that dataset. This is the criteria for charging DASD space.

Example - I have allocated 100 cylinders for my dataset, but use 3 cylinders. 97 cylinders are empty and unused. I will be charged for 100 cylinders because that is the amount of DASD resource that I have taken out of the DASD pool, irrespective of how much of that allocation that I actually use.
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 Jul 07, 2007 2:48 pm
Reply with quote

Hello,

Quote:
Please mention as whether shd i use 700 or 6004 for my calculations?
I believe the correct answer is neither and should stay neither.

It sounds very much like your organization has based their charge-back algorithm on windows or unix file allocations where actual bytes of data is often used. On most mainframes, it is the amount of dasd reserved/allocated that is charged for. If a file only has 1 50 byte record, but has allocated 50 cylinders, the charge is for 50 cylinders as they are no longer available for any other use. All 50 cylinders are in use and are charged for.

It is similar to renting a bus for a family trip - suppose there are 50 seats on the bus, but there are only 4 people in the family. You pay for the whole bus even though most of the seats will be empty. While you are renting the bus, no one else can use it. If you decide that it is too costly to have the bus you might trade it in for a small van. Then you reduce your charge from the bus rate to the van rate. In both cases there are 4 seats used, but you pay for the size of the vehicle, not the riders. So it typically goes for mainframe dasd.
Back to top
View user's profile Send private message
Aaru

Senior Member


Joined: 03 Jul 2007
Posts: 1287
Location: Chennai, India

PostPosted: Sat Jul 07, 2007 9:02 pm
Reply with quote

Excellent!

thanks expat and dick for such a lucid explanation !
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: Sun Jul 08, 2007 7:48 am
Reply with quote

You're welcome icon_smile.gif

Hope it is more clear. If questions come up, we're here.

d
Back to top
View user's profile Send private message
Aaru

Senior Member


Joined: 03 Jul 2007
Posts: 1287
Location: Chennai, India

PostPosted: Mon Jul 09, 2007 11:52 am
Reply with quote

I have got one more ques on this topic.


Organization . . . : PS
Record format . . . : VB
Record length . . . : 6004
Block size . . . . : 27998
1st extent cylinders: 2
Secondary cylinders : 200


Current Allocation
Allocated cylinders : 6
Allocated extents . : 2


Current Utilization
Used cylinders . . : 6
Used extents . . . : 2


I noted down the attributes of many VB datasets and found that the the current allocation is equal to the current utlization for all the VB datasets. This clearly states that allocated space for these datasets have been used. I am very clear in this.

Let me compare a FB file and a VB file with LRECL 6004. Say there are 100 records in both these files. The average bytes occupied by the records in a VB files is 1000. As per my understanding the Current allocation ( Allocated cylinders/Allocated extents) of FB > ( Allocated cylinders/Allocated extents) of VB even though
the record length is same.
oops and i guess that is the advantage of VB compared to an FB ( getting to know my basics) Let me know if am wrong.

If am rite, then i would calculate the cost based on the current allocation.
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Mon Jul 09, 2007 12:52 pm
Reply with quote

With an FB file, the record length is always the LRECL, every record is the same length.

With VB, the LRECL is the MAXIMUM length that the record can be, and in many cases is less
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 -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts FTP VB File from Mainframe retaining ... JCL & VSAM 1
No new posts Extract the file name from another fi... DFSORT/ICETOOL 6
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts Replace each space in cobol string wi... COBOL Programming 3
No new posts Extracting Variable decimal numbers f... DFSORT/ICETOOL 17
Search our Forums:

Back to Top