Db2 for z/OS and its ecosystem

 View Only

You can still create deprecated objects in Db2 12 at FL 504 or higher

By Paul McWilliams posted Fri June 25, 2021 08:10 PM


Have you heard a rumor that activating function level 504 prevents you from creating any deprecated objects in your Db2 12 environment, such as “classic” non-UTS segmented or partitioned or table spaces, or new tables in simple table spaces? If you are like many of our customers who still have many of these deprecated objects in their Db2 environments, you might be worried about what this change means for you.  

However, the rumor is simply not true!  

APPLCOMPAT controls creation of deprecated objects—not FL 504 

The truth is that activating function level 504 by itself doesn’t change anything about your ability to create deprecated objects. Theses changes apply only when SQL DDL statements run at application compatibility level (APPLCOMPAT) V12R1M504 or higher. That is, you can still create the deprecated objects at any Db2 function level if the DDL statements run with APPLCOMPAT V12R1M503 or lower. You can always control the application compatibility with the APPLCOMPAT bind option or the CURRENT APPLICATION COMPATIBILITY special register. 

Also, if you haven’t yet activated FL 504, all your packages are still bound at APPLCOMPAT V12R1M503 or lower, and you don’t need to rebind any packages at a higher APPLCOMPAT until you’re ready for the applications to start using features of a higher function level, so activating FL 504 by itself has no immediate impact on your ability to create deprecated objects.  

You control creation of deprecated objects in FL 504

When you activate FL 504, you gain the capability to control and prevent the creation of new deprecated objects in your Db2 environment. Customers asked us for this capability after they finished converting all of their deprecated Db2 objects to UTS, only to find users, applications, and third-party tools creating new non-strategic objects in their Db2 environments.  

In FL 504 or higher, you can control exactly which packages, applications, and tools can create the deprecated topics by controlling their application compatibility level. Applications that run at APPLCOMPAT V12R1M504 or higher cannot create the deprecated objects, but if you do need them to create the deprecated objects, you can run them at APPLCOMPAT V12R1M503 or lower.  

The idea with the CURRENT APPLICATON COMPATIBILITY special register is that you can toggle the special register down to V12R1M503 when you specifically need to run SQL DDL statements to create deprecated objects, and then raise it back up when you are done. Many tools vendors already provide the support for tools to toggle this special register automatically on your behalf, and you should reach out to them to find out which releases or patches are needed to support this capability in FL 504 and higher.  

Deprecated objects remain supported—for now 

We do recognize and appreciate the time and effort required to convert your many deprecated objects. We also know that tools from many vendors, and even some from IBM, still create and use the deprecated objects, and even we in Db2 development have some work to do for the Db2 catalog, directory, and other system objects, before we can fully remove the code that supports them.  

For these reasons, the deprecated objects will remain supported in Db2 12 and even in Db2 VNext. You can still create the objects by controlling APPLCOMPAT as described above, and Db2 Vnext will support all Db2 12 APPLCOMPAT levels. ALTER is fully supported at every APPLCOMPAT level for all existing objects, except when the alteration would result in the creation of a new deprecated object. Db2 VNext will support 

Nevertheless, we strongly recommend that you adopt the use of strategic objects types such as UTS and develop plans for migrating your existing deprecated objects to one of these UTS types, which offer many benefits such as online schema evolution support, flexible size partitions, and more. The benefits of converting to UTS are real, and the deprecated objects won't be supported forever. 


Don’t let worries about the changes in FL 504 prevent you from taking advantage of the new capabilities in the higher function levels, such as the valuable and relevant capability to move tables from deprecated multi-table table spaces to UTS in FL 508 (at APPLCOMPAT V12R1M508 or higher), not to mention the ability to prepare for Db2 VNext with FL 510. 

For much more about deprecated objects, the advantages of UTS, and how to define a conversion strategy for your deprecated objects, check out the recent webcast “Achieving Optimal Availability, Usability and Performance with Universal Table Space - Part 1” by John Campbell and Frances Villafuerte, which is now available on demand with registration. 

For more discussion about the specific changes for deprecated objects that are introduced by FL 504, see .

For a complete list of the deprecated function in Db2 for z/OS, see Deprecated function in Db2 12