How to resolve error message : RO269E Sum of column sizes exceeds maximum Row Size by nnn bytes.

Document ID : KB000055046
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

When a table must be altered to increase the size of a row the user must be mindful of the size of the bufferpool associated with the parent tablespace. If the row will increase beyond the size of the bufferpool record size limit then the bufferpool on the tablespace must be changed to accommodate this. This Error message is seen when a tablespace and table are altered to increase the size of the tables' row beyond 32K. The bufferpool on the tablespace has been changed to BP32K size.

Solution:

Increasing the row length of a table is done with an RC/Migrator ALTERATION strategy. The alteration would involve a change to one or more columns in the table. If the row size becomes longer than the original tablespace bufferpool allows then the tablespace must also be altered referencing a bufferpool that accommodates the larger row size. This could for example be to a 32K size bufferpool like BP32K.

Having changed the bufferpool on the tablespace first and then when in the TABLE EDIT RC/Migrator still displays the RO269E error message.

On the screen you will see a message like this:

RO269E Sum of column sizes exceeds maximum Row Size by nnnn bytes.

Example

I have a table which used to be stored on a tablespace with a 4K buffer pool on BP0. I have added a new varchar column to the end of it which effectively increased it's row length beyond the 4K limit.

It used to be this Row Size => 3,769/-279......3,769 bytes long with 279 bytes before it's 4048 byte limit is reached.

After the addition of a 4000 byte varchar column it looks like this: Row Size => 4,048/+3,723.........this tells me that I am 3,723 bytes over the 4K size. RC/Migrator displays this message while in the Table Alter screen.

RO269E Sum of column sizes exceeds maximum Row Size by 3723 bytes.

I have already selected it's tablespace and changed the bufferpool to BP32K. So why do I still get the message?

When RC/Migrator looks at the bufferpool being used by the tablespace it's looking at the last catalog definition. When the Tablespace has been changed to 32K on the edit screen of RC/Migrator it still does not exist as such on the catalog. So when the table is edited it still does not recognise this bufferpool change.

For this reason there is a command available while editing the table called...BUFFERPOOL. Use a "?" on the COMMAND line and see the list of commands. Then use another "?" on the BUFFERPOOL command "S" column and it shows you the help text. Go back to the edit screen and enter "BUFFERPOOL 32K" and it will override the catalog value to allow the edit to be finished by clearing the error message.

When this strategy is analysed the tablespace will have the correct bufferpool and there won't be any problem with the row length of the associated table.