Skip to main content

     
  TPF : Library : Presentations

TPF Systems Technical Newsletter, Vol. 4 No.4

Object Code Only (OCO) Modules in TPF


by Jacki Cooper, IBM TPF Customer and Vendor Relations

As the TPF product becomes a more open platform, the TPF Lab can use software that already exists for other platforms to provide equivalent functionality on TPF. This use of existing software allows us to deliver new functions to our customers much more quickly. However, there is an occasional drawback when the developer of the software we are using will not permit us to distribute the source code for that function to our customers. When this happens, TPF's implementation of this function will be distributed in object code only (OCO) format without source code.

The following reprint of a handout addressing OCO-related concerns was distributed at the TPF Users Group (TPFUG) meeting recently held in Atlanta, Georgia.

General

Question Answeer
Q1 After all these years of having source code for our TPF system, why is it now necessary to start shipping OCO functions with TPF?
A1 A little clarification might help to start things out. The first thing to note is that not all of TPF will be distributed as OCO; th ose portions that have source code now will still have source code available in the future.

Another thing is that IBM's TPF Lab is using a new strategy to maximize the addition of functional enhancements to TPF. We are using software originally created for non-TPF platforms (for example, OS/390, OS/2, AIX, UNIX, and others) as the basis for providing these same functions on TPF. This effort is referred to asporting and results inported code.

One of the benefits to porting an existing function to TPF is obviously the more rapid delivery of that function. Additionally, what is delivered may be more complete, robust, and standard than if it was implemented from scratch. Another benefit is that this existing function has been tested by a lot of users on those other platforms.

However, there are drawbacks with this strategy, too. The original developer of a function remains the owner of that function regardless of how many different platforms on which that function executes. When a piece of software is a valuable business asset, they will usually take steps to protect that asset. One way to accomplish this is by not distributing the source code.

Whenever this method of protection is being used for code that we want to port to TPF, we are being forced to make a choice between providing that new function to our customers as OCO (without source code), or not providing it at all!

Ordering Procedures

Q1 Do we have to do anything different to get these new functions?
A1 No. At this time, our plans are to distribute these new functions as enhancements to TPF and as an APAR in our normal maintenance st ream.

Installation

Q1 How will having OCO functions impact our APAR installation process?
A1 There is nothing unique about OCO modules that would require you to change your maintenance installation process.
Q2 Our TPF system is not at the current maintenance level. Will we still be able to install enhancement APARs even though our system is back-level?
A2 It has always been the TPF Lab's position that all APARs must be installed to maintain system currency and integrity. With the advent of OCO modules, it is now even more important for customers to maintain their systems at current maintenance levels as much as possible. We realize, however, that this is not always possible. As a result, our customer service organization will be able to help you identify the prerequisite and/or corequisite APARs that must be applied to your system before attempting to apply a specific APAR.
Q3 OK, we "bit the bullet" and are going to implement some OCO functions, but we are really nervous about this and how it is going to work. Will someone from IBM be here with us during implementation and for the first few days as we shake out any problems?
A3 There are currently no plans for the TPF Lab to modify its cutover coverage policy because of the advent of OCO functions. However, services contracts for additional coverage at implementation time are available.
Q4 What changes will we see as a result of OCO modules in TPF?
A4 There will be an additional file on the PUT tape you receive from IBM. This file, which will be fully described in the unpacking instructions you receive with each PUT tape, will contain OCO modules being shipped with the TPF product without source code. This file is separate from another file on that tape that already exists and contains preassembled TPF modules for which source code is available.

We are investigating whether there might be a need for a separate library for these OCO modules to avoid conflicting names between the OCO functions being ported and existing TPF software. If this is necessary, there might be more changes necessary to our product distribution methods.

Q5 Are there any other changes that we will see?
A5 Yes, but this one is the result of porting software from other platforms regardless of whether source code is available. It may be necessary for you to modify your library control systems because the names of ported modules are unpredictable. They may be longer than currently allowed or may be duplicates of names already in existence, or both. We have had to make some changes to our library control system and will be glad to share our experiences with you.
Q6 Are there things we should be aware of as we make plans to install and use ported (OCO) functions?
A6 Yes.

* When porting code, the portion that interfaces with the operating system is where most of the TPF-specific changes for this functio n will be made.

* Each project will be implementing error recovery facilities that, following an error, will provide the ability to return the system to a point where things used to work. These facilities will do such things as disable/recover or migrate/fallback individual functions, or fix/recover/purge such things as database problems. You should familiarize yourself with these facilities and construct error recovery procedures for your system.

* Messages and system errors that are issued from existing packages ported to TPF may not comply with TPF standards.

Usage

Q1 If we will not have the source code, how will we be able to write programs that use these new functions?
A1 Publications have been provided with TPF describing the application programming interfaces (APIs). This will not change . . . API do cumentation will still be available for those functions we port to TPF; it is just that we may refer you to a publication for another product for this information.

What you may see reflected in TPF publications, particularly inTPF Messages, are messages and system errors that have been im plemented and/or modified as a result of porting new functions to the TPF platform.

Q2 Will we have to buy a license for that other product just so we can get a copy of the API documentation?
A2 We are not aware of any IBM product that requires a license for obtaining the API publications for that product.
Q3 Will we be able to create user exits within these modules?
A3 No, you will not be able to create new user exits within modules for which no source code is available. As we go through our product development cycle, the TPF Lab will be more proactive in establishing user exits in TPF code. We will try to anticipate where TPF users, both customers and vendors, may want a user exit instead of what we do today where you tell us after the fact that a user exit is needed and where.
Q4 How do we enhance or otherwise modify functions provided by OCO modules? How can we tailor these to better fit our installation?
A4 It will not be possible for you to modify functions provided without source code. The functions we port to TPF tend to be cross-platform functions and, therefore, maintaining cross-platform compatibilities, modifications, or enhancements by you are not permitted.

Diagnosis

Q1 How will we be able to solve dumps if we do not have the source code?
A1 The error numbers and error messages that accompany any dumps should provide enough information for you to identify and correct or ci rcumvent the problem. In some cases, however, it may be necessary for you to contact your IBM representative.
Q2 What will we do if we encounter problems with this new code once we start to use it?
A2 Each function will provide capabilities to disable/recover or migrate/fallback that function.
Q3 What will we do if there are performance problems with this new code once we start to use it?
A3 This should not differ from what you do today. Gather as much information as possible (through such procedures as a data collection or a manual dump) and contact your IBM representative. Consider disabling the function if performance is sufficiently degraded.

Maintenance

Q1 Our TPF system is not at the current maintenance level. Will we still be able to install maintenance APARs even though our system is back-level?
A1 As stated previously, it has always been the TPF Lab's position that all APARs must be installed to maintain system currency and inte grity. With the advent of OCO modules, it is now even more important for customers to maintain their systems at current maintenance levels as much as possible. We realize, however, that this is not always possible. As a result, our customer service organization will be able to help you identify the prerequisite or corequisite APARs that you must apply to your system before attempting to apply a specific APAR.
Q2 We have run into an error with an OCO module and we need a fix for it now. We cannot wait for the next program update tape (PUT). How will we get the fix?
A2 With the understanding that prerequisite and corequisite APARs must be applied, fixes will be available in the same manner in which they are today: through RETAIN, IBMLink, your TPF SE, or TPF Customer Service.
Q3 Can we still selectively apply APARs?
A3 This will be much more difficult now, especially if any of the prerequisites or corequisites for the APAR you want to apply contain OCO modules. Whenever an APAR contains an OCO text file, you must apply that entire APAR, not just parts of that APAR. Additionally, if an OCO module is affected by multiple prerequisite or corequisite APARs, you must apply all parts of those prerequisite and corequisite APARs.
Q4 Our shop does not blindly apply all APARs that IBM ships. We use the "if it's not broken, don't fix it" principle. Will this still be possible?
A4 No. As described in the answer to the previous question, it is not possible to know what the interactions are between OCO modules and the rest of your TPF system. Therefore, you will not be able to make an educated determination of the applicability of any given APAR.
Q5 What will be necessary if we have to apply a critical APAR?
A5 Upon identifying the critical APAR that you need to apply, you will need to determine all of its prerequisite and corequisite APARs t hat have not yet been applied to your system, and apply those prerequisites and corequisites. If any of these APARs contain OCO text files, you must apply that APAR in its entirety. Once you have satisfied the prerequisite/corequisite conditions, you can then apply the critical APAR.
Q6 What has to be done to the OCO text files I receive?
A6 One of two things will be necessary. After putting the text file on your system (for example, as a member in an OS/390 partitioned data set), you will either use a TPF loader to load it directly from that data set, or you will link-edit it with other object modules to create a load module and then use a TPF loader to load that load module. .

Field Support

Q1 How will we be able to solve dumps if we do not have the source code?
A1 A significant amount of time is spent making sure the publications that are available contain enough information for you to be able t o resolve or circumvent error conditions encountered in OCO modules. If for some reason you need further assistance, it will be necessary for you to contact TPF Customer Service in the TPF Lab to help resolve problems in OCO modules.
Q2 Will 24x7 coverage now be available for the TPF product?
A2 There are currently no plans to make any changes to the TPF Lab's customer service structure or policy. This decision is based on the following considerations:

* When outages occur in a test environment, the need for immediate resolution is reduced considerably.

* With the error recovery facilities that are being provided, it is our belief that none of the functions being provided as OCO can b ring down a TPF system and keep it down.

Q3 Central site service will not work for OCO functions. We have to be able to reach someone knowledgeable when the TPF Lab is not open (any time other than Monday to Friday, 8 a.m. _ 5 p.m. Eastern time), and we are trying to resolve problems. How will this be possible?
A3 With current plans, this will not be possible. Instead, before implementing one of these functions, you should become familiar with the error recovery facilities that are being provided with the OCO functions and construct error recovery procedures that will be executed if an error occurs.
Q4 How will requests for additional on-site support will be handled?
A4 See your IBM TPF representative to make arrangements for additional on-site support through a services contract.