IMS User Group | September 2026

All about SMP/E (System Modification Program/Extended) — It’s SiMPlified!!!

SMP/E (System Modification Program/Extended) is the foundation of software maintenance and update management within the z/OS ecosystem. This session provides a practical introduction to core SMP/E concepts and terminology, helping attendees better understand how controlled software maintenance is managed on the mainframe. Topics will include PTFs, APARs, SYSMODs, USERMODs, CSI structure, and the overall PTF lifecycle. Attendees will also gain an overview of the standard SMP/E workflow, including RECEIVE, APPLY, and ACCEPT processing, along with a discussion of SMP/E zone architecture (GLOBAL, TARGET, and DISTRIBUTION zones). The session will touch on dependency management concepts such as REQ, CO-REQ, and PRE-REQ relationships, as well as migration considerations following testing. Designed as an accessible introduction, this session aims to simplify SMP/E concepts while reinforcing their importance to maintaining stable and reliable z/OS environments.

Read the Transcription
[00:00:09] – Amanda Hendley
Welcome today. We are here for the Planet Mainframe Virtual User Group. We’re talking IMS, and I’m your host, Amanda Hendley. We’re talking all about SMP, System Modification Program Extended. It’s simplified. Pratik Ghatpande is our presenter today. He’s a senior software engineer, and I’ll introduce you to him a little bit more in a minute. For now, we’d love to get to know you. If you can tell us where you’re joining us from and maybe a little bit about what you do. And if that is not exciting enough, you
tell me if you think that it is fall yet. Since we are at September first, is it fall in your mind or heart at least? I am 100% still summer until September. What September 22nd, 21st? So we’re still, and I’m in Atlanta, so we get the nice weather until well, it’ll be nice like this until Thanksgiving at least. If you have something to share with the IMS community or our Db2 and CICS. communities, you can reach out. That’s my email address on there, ahendley@planetmainframe.com. And, um, how did you want to do the Q&A again? I have on here to wait till the end, but do you mind?
[00:01:32] – Pratik Ghatpande
Yeah, yeah. So what I was planning to do is 40 to 45 minutes of session, after which I can take the Q&A. But, uh, I also mentioned that in case anyone has a particular doubt or something to discuss about a particular topic which is currently in presentation, feel free to stop me. It’s, it’s not like I’ll take the Q&As at the end. In fact, I would prefer questions right at the time so that we can discuss it. And I think we have got sufficient time to cover it.
[00:02:07] – Amanda Hendley
Yeah, I think we do. Yeah, so great. I see someone just mentioned they might get 100 degrees. This week, that’s the thought. Awesome. Well, it’s good to see everyone. You can keep telling us what you do, where you’re from, and wanted to plug a couple things before we get started. So we’re doing a series on what mainframe teams can learn from each other on accelerating mainframe efficiency. The next session is this month on September 22nd. And free session, you can register for it at planetmainframe.com/persona-series or just find it on planetmainframe.com. Invite you to join us for that series. And if you’re not a regular reader of Planet Mainframe, it could be a fun month for you to start reading Planet Mainframe because we’re talking about AI all month, which is really cool. If you haven’t gotten enough of AI, I mean, are we over it yet? What do you think, Steve? Think we’re—
[00:03:10] – Pratik Ghatpande
Oh yeah, obviously mainframe and AI is a great topic to speak in, and I can speak in length about both of the topics because both are very interesting topics. One is a legacy system, another one is an evolving system, and I think both can go hand in hand together and achieve great lens. So yeah.
[00:03:38] – Amanda Hendley
Cool. So again, if you have something you want to share with the communities, let me know, reach out, and we’ll get you scheduled. I think we’re booking in ’27 now, but would love to talk to you at least about what you want to hear about. And now I’m going to stop my share. So that you can start yours.
[00:04:02] – Pratik Ghatpande
Sure.
[00:04:03] – Amanda Hendley
Are you able to get that? And let me just tell our audience a little bit about you, if I can figure out what monitor is going to open up for me. Pratik is a senior software engineer at BMC Software. He’s got 9 years of experience in mainframe QA and development. His expertise includes COBOL, JCL, CICS, BCAM, IMS, Db2, and mainframe automation. So as you could tell, he’s passionate about AI and AI mainframe modernization. So I’m excited for this session. I’m gonna turn it over to you and let you get started.
[00:04:45] – Pratik Ghatpande
Thank you so much, Amanda. First of all, can you just quickly Mention whether you are able to see my screen. Is it—
[00:04:54] – Amanda Hendley
I can see your screen. You might want to press hide on that white bar just so in case it covers up language.
[00:05:01] – Pratik Ghatpande
Is it fine now?
[00:05:02] – Amanda Hendley
Looks great.
[00:05:03] – Pratik Ghatpande
Okay, okay, great, great. Yeah, thank you so much, Amanda, for hosting me and everyone else, and, uh, welcome everyone. Good morning, good afternoon, and good evening to all of you. And welcome to another session of IMS Virtual User Groups. My name is Pratik Ghatpande. As Amanda mentioned, she gave a very nice introduction about me. Thank you so much for that as well. So basically, to add up to that, just to give you a quick background, I am currently designated as a Quality Assurance and Automation Engineer in BMC Software. It’s been I think around 2.5 years now, roughly, where I’m basically currently working in BMC. Before that, I have almost 6 and a half years of experience wherein I primarily work— worked in the mainframe technology. I learned it, and it’s been more than 9 years since I have been working in the mainframe technology. I have had the opportunity to work on the different aspects of mainframe technology because, as we all know, Mainframe technology is in itself a huge world. The z/OS world is huge, enormous. So starting with, I learned the basics of JCL, then COBOL, Db2, VSAM, CICS, etc. And currently I’m working on IMS FastPath since past 2.5 years, and it’s been a great journey so far.
[00:06:36] – Pratik Ghatpande
I’ve learned a lot. I keep learning a lot, especially AI. Now we’re trying to integrate AI. wherever it is possible to accelerate and enhance the capabilities of mainframe, which is already a robust system in itself. So this was a quick intro about myself. And yeah, I’ll jump onto the topic today which we are going to discuss. And as I’ve mentioned earlier, feel free to stop me wherever you want to discuss something, wherever you want to ask any questions. And anyway, we can take the Q&A after the session. So Yeah, so today’s topic is SMP. SMP, as I have named it, or it’s all about SMP. SMP, basically what is SMP? So System Modification Program Extended, since it’s the extended version, and I’ve named it as it’s simplified. Let’s simplify this. That’s why the keyword play. So yeah, today we are going to understand what the SMP concept is, what are its different terminologies, why it is critical to our z/OS system, and as I’ve mentioned, the backbone of mainframe system maintenance. So yeah, going ahead, let’s quickly discuss about the agenda. So I’ve broadly divided into 6 categories the agenda, starting with what is SMP.
[00:08:02] – Pratik Ghatpande
We’ll try to understand what exactly is SMP. I’ll try to give you All some analogies so that it becomes simpler for you to visualize what exactly this concept is. Although it’s a critical system and, and utility in itself, but if we try to understand the basics of it, it’s not that difficult. It’s not rocket science to understand it. So, and then going ahead, we’ll try to understand why the SMP process matters, why it is critical to the Z/OS system and the PDLC or the product development lifecycle in general. Then we’ll discuss about the terminologies, the different terminologies which, which are associated with SMPE, PTF, APAS, SysMods, UserMods, hold data as well. And obviously one important point is CSI. How all these terminologies are linked with each other, I have a very nice diagram to explain it. And we’ll talk about the different zones, distribution zones. global zones and target zones which we have in the SMP. We’ll also look into the PTF lifecycle. We look into the different commands which are used in the SMP environment, with the help of which we are able to maintain our z/OS systems properly and organized every time. And we’ll also look into some of the dependencies which it provides, and eventually we’ll summarize it.
[00:09:30] – Pratik Ghatpande
With all the points which you have discussed so far. So yeah, let’s start with the first point. What exactly is SMP? So as the name suggests on the screen, SMP is nothing but System Modification Program Extended. So it’s basically the abbreviation which we use on day-to-day basis. So what is
SMP? SMP is nothing but a utility or a tool which has been developed by IBM. Now various vendors use it. This is a system or a tool which is used for z/OS maintenance, in short. So under z/OS maintenance, there are a lot of things which we’ll discuss later on, but for now, as the definition is quite simple, it is basically a utility or a tool for installing and tracking software Software changes on ZOS, maintenance of the ZOS software changes, whatever we have, whether there is a new enhancement or a new feature added or some existing issues or bugs reported which needs fix, whatever is everything comes under this SMP and it is tracked and monitored very efficiently using the SMP concept and the terminologies. So again. It makes use of controlled inventory, controlled software, consolidated software inventory, CSI, which we’ll talk about it later on in depth.
[00:10:57] – Pratik Ghatpande
So why and why it is important, it becomes the backbone of the SMP concept itself. And what are the different commands through which we basically execute the SMP process efficiently throughout the lifecycle of the PDLC? So in short, SMP is a Z/OS maintenance tracking software or a tool which is used for installing and tracking software changes, whatever software changes we have, whether it’s something new added, some new feature, or a product in itself. So yeah, this is what SMP is. Then let us discuss about SMP more in, in few more points which I would like to describe. So SMP, since, yeah, first of all, if before going to SMP and why it matters and why is it critical to our z/OS system, I would like to give you a quick comparison between SMP-E, which is the current and the latest And the greatest version, SMPE Extended. Previously, the original one was SMP, which is nothing but SMP, System Modification Program. But there were some shortcomings in it. Like, it, to my understanding, it was not supporting multiple, like running on multiple platforms, which was rectified and enhanced in the extended version. And now it is able to install the corrective and the preventive services, which is PTFs, Program Temporary Fix, and the different types of SysMods, which we’ll discuss.
[00:12:43] – Pratik Ghatpande
Again, everything is recorded and maintained in the CSI, which is an inventory or a central repository, so that we have logs for everything. We have got each and every activity tracked and documented properly. So that anytime we need to look into the history and understand what went wrong while installing a software or what went wrong while configuring some settings during that time, we can simply go back and look into the CSI library and find out where it went wrong. And it’s it’s quite easy to understand once you understand the basics of it. So yeah, then going ahead. Enforcing dependencies. Yeah, dependencies is quite a key concept again between the SysMod, different SysMods, and how they are linked together, whether it is a PTF, its corresponding APAR, and what are the different zones and how they are applied. We’ll discuss it. So to support the removal. Yeah, so sometimes what happens is, and in real world each one of us have come across this kind of scenario at least once, wherein A particular feature was not working fine once it was tested. Something was broken after the development was done. At that point of time, it becomes critical to take the decision, especially by the QA, whether we need to take this feature ahead as broken if it’s that critical, or we need to stop it here.
[00:14:15] – Pratik Ghatpande
During that process, this restore command becomes quite crucial. Using this restore command, we can restore it back to the original one where where the changes were stored, which is the production. So that’s why restore is quite important. And then why does it matter? Why this system is quite critical. So as we all know, everyone works especially in the customer environment. There is production systems which are dependent on consistent and trustworthy systems. During that point of time, if there is some issue, we need to have a certain system which is set for for quite organization quick fixes, getting some on the fly information. For that purpose, SMP is quite crucial. Then whenever there is change, whenever we are dealing with some audit related stuff during our PDLC lifecycle. At that point of time, SMP becomes quite crucial because it has its inventory maintained. It also helps us reduce the ad hoc copying. Like, for example, as compared to manual copying of certain libraries and its corresponding zones, it, it’s quite easier to maintain it on SMP. And SMP is run as batch jobs, so you don’t really need online systems typically using The GIM SMP program, and it has some different Sysin control statements, DD statements, which we’ll talk about it later on.
[00:15:53] – Pratik Ghatpande
So as, as it’s mentioned, SMP CSI control, what all inputs are required for the— for this program to
execute. So this is what a whole picture of SMP is, and Moving ahead, so what all problems SMP solves? We’ll discuss what SMP helps us do, what are its benefits, why it is important, and we’ll also discuss about something which SMP does not do because it’s quite easy to misinterpret the SMP concept for what it is not. So it’s also crucial to understand what it is and what it is not. So Starting with what problems SMP solves. There are different areas and stages during the PDLC lifecycle where SMP becomes crucial. Start— yeah, hello? Is someone trying to say something?
[00:16:49] – Amanda Hendley
I think it was just someone that needed muting.
[00:16:53] – Pratik Ghatpande
Okay, okay, thanks, thanks, Amanda. Uh, anyway, so yeah. What I was discussing is what problems SMP solves. So starting with, it’s important to categorize different zones for different tasks which we perform. So for example, we have got a global zone wherein the whenever a developer does his or her changes and they push those changes once they are done with the unit testing, they push those changes to some testing environment. Whether it’s an X-test or I-test, integration testing or extended testing, whatever you call it. So whenever they push it, firstly it needs to have acknowledgement and an entry into a particular SMP zone, which is nothing but the global zone, followed by once it is— it has been received in the global zone, it has been— it has made its first record in it and it is documented in the global zone. Once it has been received in the global zone, the next thing is to apply it in the target zone, and etc., when the actual testing takes, takes place in the target zone. So that’s why SMP solves this problem, like knowing what is where, and it stores it in the CSI. And then the applies which I was talking about right now.
[00:18:18] – Pratik Ghatpande
Target zone. It it should be consistent. Same sysmods applied within the same checks across environments when you follow the same process. So it helps us resolve this problem. It maintains the consistency again accepting into the distribution zone. So once all the testing is done in whatever different test environments we have, whether it’s a user acceptance testing, integration testing. Etc., whatever. Once the changes look good and solid, then the next stage is to distribute it right before we actually deploy it. So for that purpose as well, SMP comes into picture. It helps us receive, apply, and then accept it into the distribution zone. So for future installs or disaster recovery rebuilds, including the fix, it helps us. Basically recover in case there are some problems happening later on. So again, audit becomes quite crucial topic in SMP. SMP basically reports and the CSI updates support changes and compliance questions. So whatever changes are done, it’s reported and logged into the CSI and The compliance is taken care by SMP as well. Then another important factor is dependencies. So there are different dependencies whenever there are changes, which is like the prereqs or the prerequisites, the requisites, and the corequisites.
[00:19:51] – Pratik Ghatpande
All of them are handled properly and categorized properly using SMP as it’s mentioned. So the That’s why it’s quite important to understand SMP in depth. And then eventually another important thing which SMP solves is the backup, backup path, or using the restore command whenever we feel something is broken which was earlier fixed. At that point of time, we need to restore it using the SMP. It helps us. So yeah, and as I’ve mentioned, 2 things. Firstly, what I have explained is what SMP does, but it’s also important to understand what SMP does not. So as it’s mentioned, SMP basically is not your whole DevOps pipeline system in general. So it won’t replace the Git or the Zoe which we have on our z/OS systems, or the pipeline, the CI/CD pipelines which we have. It’s not not the replacement for that. It’s, it’s a utility, as I’ve mentioned, for z/OS software maintenance, and it does not do the pipeline stuff, which is like moving from one stage to another. Yes, it does while receive and apply process, but as the usual or the traditional DevOps pipeline works, it does not work around like that. So, and again, it’s not a substitute for change management which we have.
[00:21:21] – Pratik Ghatpande
There are different change managements and And it does not do the approvals which are required, whether it’s a QA sign-off or some testing sign-off and a green signal for whether the product is working fine. It does not do that. That still remains like efficiently in the hands of the organization.
And again, not just typical copy member. It’s not just a copy and a paste, a simple copy and a paste. It does far more useful things than just normal copy utility. For example, ibcopy, which is there in GCL, right? It’s not simply a copy-paste mechanism. It’s more to it. And that we’ll see later on. Again, In any system, even if we are using some advanced technologies, it’s quite important to have a manual intervention in it. And in today’s world, especially when AI is taking over, it’s still— we come across certain scenarios. At least I’ve seen a few scenarios wherein what you ask to an AI, for example, if I’m trying to have some chats and prompts with ChatGPT. I know for a fact that it does not necessarily give you 100% correct information every time. At that point of time, manual intervention and your manual knowledge is, is quite crucial and it is not replaceable.
[00:22:58] – Pratik Ghatpande
Similarly, SMP also does have its own share of mistakes— not mistakes, I would say, whenever some PTF fails while applying into a target zone, then at that point of time we need to understand what the messages do signify or what they’re implying to say, whether it was an incorrect apply into the region or that particular PTF was already existing in that zone. Certain scenarios like this over there, it’s
important to understand those messages, especially the SMP, the GIM messages which we get. So yeah, these are a couple of points which we need to understand so that we do not confuse SMP with any other thing than the actual definition of it. So going ahead, SMP versus manual copies. So manual copy, which is like any other utility in which We do not— it’s like a black box, right? Manual copy. You copy it from point A to point B or location A to location B. You don’t know what’s happening in between. But that’s quite crucial when it comes to the product development lifecycle. At that point of time, SMP has a clear advantage over here because it has definitive boundaries set in terms of the different zones which are there.
[00:24:24] – Pratik Ghatpande
Then it categorizes them correctly. And obviously we have a CSI library. Mm-hmm. Which is consolidated software inventory. It is an inventory. Consider it as data of data, which is like metadata to store all the information about that different types of sysmods which we’ll talk about. So here the clear advantage comes in, and again, hard to know the prerequisites, super sessions in any of the systems when we are trying to maintain certain things, we are trying to enhance something. It’s quite important to know the prerequisites and the Corequisites of it and not just a blank or a plain copy paste. Over here, the CSI again takes over in SMP, and it basically records the relationships and the states in the CSI. It also supports the consistent behavior between the different zones and its corresponding commands: apply, accept, and restore. Again, so this might be a miss in manual copy. So a couple of advantages and why the process matters. Again, coming back to one of the important points, the risks which we can see or foresee. And again, these are just a few of them. There might be many more. I’ll try to mention a couple of real-time scenarios or issues which we have faced while working with SMP.
[00:25:52] – Pratik Ghatpande
Later on, so as it’s mentioned, incomplete applies. So stop jobs, missing datasets, or unresolved holds leaves the system in an inconsistent state. So in case the apply in the target zone was not successful due to various reasons, like for example, that particular the modules were incorrectly assembled and link edited at that point. Point of time, we might get an incomplete apply during the
target zone. So that’s why it’s important to understand this in depth. Then again, the missing prereqs and the coreqs— to understand and to distinguish between the different dependencies which we have, whether it’s a prereq, a coreq, or the req itself, it’s quite important because one miss and The entire lifecycle might be at risk going ahead, whatever zones we are working in. Okay, and then the distribution drift— skipping accept means distribution does not match with what you have installed. Again, this is quite a common mistake. We have observed it in our organization itself. So few of the teams do sometimes miss the acceptance in the distribution zone, which is why Whenever they try to apply something which is quite similar to the previous one, which has not already been accepted, then there is an issue.
[00:27:23] – Pratik Ghatpande
That’s why it’s important to follow the process of SMP. And again, the backout complexities. Just now we are dealing with something which was broken. We have kept it in the extended region. And just to
give you an analogy, and We are just trying to figure out whether we should be using the restore command or not, because previously in the history we have not yet used the restore command. We have just replaced it with the production version. So these are certain risks which come in place when when we are trying to deal with SMP. So yeah, then coming to this diagram which I was trying to. Talk about earlier, core terminologies. So let’s try to understand the core terminologies of it. Again, there are different terms. I’ll talk about it, everything in detail, and please ask me questions if you have any doubts. So starting with the heart or the backbone of SMP, which forms— which is CSI. Which is an abbreviation for Consolidated Software Inventory. So what exactly is CSI? To simplify, CSI is a central repository where all the information, all the activity, all the logs are stored, along with what are the different zones.
[00:28:48] – Pratik Ghatpande
Those are categorized whether it’s a target zone, which is the target zone, what is its dataset name, what’s the global zone name, and what’s the corresponding distribution zone name. So central repository tracking software elements, fixes, products, and configurations in mainframe system. That’s why it’s at— it’s, it’s in between. It’s in— it’s closely associated with all the other things around it, starting with the sysmods. Okay, sysmods is system modifications. Okay, it’s, it’s a type of, uh, package. If we— if I have to show you The package which basically has the different software changes. For example, the PTF, which is at the right corner, or the APARS below it, the user mods and the FMIDs. All these are types of sysmods, nothing but system modifications. So which basically contains certain statements, the actual data, and it’s a combination of all of them. Together as sysmods. So starting with PTF, the first sysmod— basically there are 4 sysmods as it’s mentioned over here: PTF, APAR, UserMod, and FMID. We’ll talk about it one by one. So PTF— PTF stands for Program Temporary Fix. Whenever there are certain changes— before PTF, I would like to start with APAR. Actually, APAR is the first thing which we deal with.
[00:30:17] – Pratik Ghatpande
During the product development lifecycle. So what is APAR? APAR is an Authorized Program Analysis Report, APAR, which usually comes from IBM and whoever is the product owner. So whether it’s BMC or any other organization for that matter. So APAR is a report, or the first report, which has the actual description of the problem in place. It basically mentions What is the issue we are dealing with? How
do we plan to resolve it using simple English language? And everything is mentioned in the description so that we have a firsthand on what exactly are we dealing with, whether it’s an enhancement altogether, a new enhancement to add a new feature in a particular product, or some fix. For example, if a certain product feature is not working fine for its attributes. At that point of time, how should we fix it? So APAR is the first document, which is like Authorized Program Analysis Report, which basically gives the correction details and what all is required for that. And again, as it’s mentioned, it’s a precursor to the PTF. So now let us move to PTF. PTF is Program Temporary Fix. Although in the name itself it mentions temporary, but we can consider it long term because it’s always a fix for long term unless some new issue comes around after testing.
[00:31:49] – Pratik Ghatpande
But PTF, PTF is where the actual software changes are done by the development team. So whenever we receive an APAR, we basically go through that APAR, we understand the requirement in depth, then we do our impact analysis, we do our analysis during what all modules are getting impacted in it, and then we actually go ahead and do the root cause analysis and find out what all modules actually require the changes, and then the code changes are done, whether it’s an assembly assembler language, high-level assembler, or it’s a COBOL or a PL/1, etc., any language which is within our mainframe z/OS environment. So all these changes are done In the PDF. A PDF number is created whenever these changes are done. So different organizations have different code, code change management. For example, ISPW, we have— there is Changeman somewhere in service industry, or there is Endeavor as well, different types of. So in ISPW, we create these PDFs, and then we check out the modules into the PDF, whatever from the production. Or in case if we are trying to write a new program, we’ll register it and then check it out into the PDF, and then we’ll start the coding.
[00:33:13] – Pratik Ghatpande
The developers will start the coding, they’ll make the changes, they’ll do the unit testing, they’ll
assemble, link, edit the code, and once they have— once they are sure about their changes via unit testing, they’ll push it to the testing region wherein the QA will come into perspective. So that’s what PTF is. APAR and PTF are closely associated with each other. The 3rd type is FMID, which is Function Modification Identifier. FMID— so this is an identification number, an acknowledgement name, if I have to say, for a PTF, for a product actually. So if there is some, for example, in FastPath we use zPFP410, which is the current version for FastPath related products. So FMID is the one which basically identifies what product are we dealing with. And there is also user mods, user modifications, customizations or enhancements created by the user. So sometimes along with the different IBM modules and the programs which we have. It is necessary to write some customized— as per the requirement, is necessary to write some user programs as well. Those are link edited with the main programs later on, but these also form a crucial part of the sysmods. So 4 types of sysmods: PTF, APAR, FMID, and user mods, along with the main concept which is CSI.
[00:34:43] – Pratik Ghatpande
Okay, and then there are different zones which we’ll discuss. The zones, uh, it’s, it’s important to categorize the different zones, whether it’s a distribution zone, a target zone, or a global zone, whatever we are dealing with. So all 3 of them are quite crucial. So this is how it basically links together and is mapped with each other. So yeah, any questions so far before we move ahead?
[00:35:21] – Amanda Hendley
I don’t see any questions in text right now.
[00:35:24] – Pratik Ghatpande
Okay, okay, great. Thanks for the confirmation. But again, feel free to stop me. So going ahead, yeah, as we have discussed, CSI, okay, Consolidated Software Inventory. As the name suggests, it’s a consolidation or the basically merging all of the things together, the SysMods and the FMECs and the different zones into one repository or a central repository, which is a CSI. Okay, so I would like to give you a nice analogy, see if you are able to visualize it using it. So I consider SMP As a whole library. Okay, uh, when we enter a library, I’m pretty sure everyone must have, uh, visited library at least once or twice as per our reading habits. But yeah, in our schools we do have libraries, right? So SMP as a concept, consider it as a library. And for every library we do have a librarian, right, who Who, who is the person responsible for maintaining the library, for keeping everything intact, categorizing those books in different sections as per their genre, and maintaining a logbook of it, indexing it, who has taken which book and who has returned which book, which is available, which is not, all this information.
[00:36:52] – Pratik Ghatpande
So consider that librarian as the CSI, which forms the central repository or the metadata of SMP. So as the definition says, the CSI is the dataset or the datasets where SMP stores software inventory and metadata for the zones, the different zones. And yeah, here another analogy is there. Think of it as a database of receipts— what was received, what was applied to target, what was accepted into the distribution zone, etc. So this is— this forms the backbone of the SMP process. Then the different zones and commands which we deal with. So what are the different zones here we have? Primarily there are 3 zones, one of which I think— yeah, one, the thing which I was trying to remember is in the original SMP, which is System Modification Program, not the extended one, I think there was a single zone, to my knowledge, which I have read, and then due to certain challenges which were coming up in the extended version, they distributed it and categorized it into 3 different zones, which is global zone where the changes are received, the target zone where the changes are applied, where the actual testing takes place, and the distribution zone where after the testing all the changes look fine.
[00:38:16] – Pratik Ghatpande
Those are accepted into the distribution zone and later on taken ahead to the manufacturing team, which basically then does the deployment. So yeah, the global zone again processes and stores control information about system modifications, maintains a global inventory. Again, this is having a different CSI library altogether. And then there is a target zone which basically contains the executable code. The actual programs are there here, and all of the changes are here through which we do the extensive testing in the target zones and then the distribution zone. Once all the testing is
done, whether it’s extended testing, whether it’s integration testing followed by user acceptance testing, all of these stages, once it goes through, then, then basically it It’s basically accepted into the distribution zone, which basically holds the master distribution library. And this distribution library is the original product code, and it contains the different backups and the regenerations for required, just in case the system fails or a sysmod fails, whether it’s a PTF or a EPAR. So all these 3 zones are quite crucial and closely linked with each other. each other. Going ahead, I have given a simple example of the receive command.
[00:39:45] – Pratik Ghatpande
Again, going back over here, the 3 definitive commands are linked to the 3 zones correspondingly. Okay, so the receive command is usually used in global zone, apply is used in target. Again, this is not a fixed or a mandatory rule, but this is how the usual process is Is, and in the distribution zone it’s accepted. So going ahead, receive. This is a receive job. As I was telling you earlier, it is executed using the program GIM SMP, and there are different DD statements associated with it. First of which is the CSI library, the SMP CSI library. Whatever in your organization we name it, the Naming convention is followed. So the CSI library is mentioned over here, wherein the zones are categorized: the global zone, the target zone, and the respective distribution zone. Followed by another DD statement, which is PTS, where the changes are picked from. Then the SMP logs—all the logs are entered and maintained in this SMP log dataset. And then there’s SMP out. The sysout basically, which is given usually on the STSF spool. The SMP report, when you can view the report, and the SMP list as well. It gives us the list of commands executed along with what was the respective written code for that command, and eventually the control statement, which is nothing but the sysint control statement.
[00:41:22] – Pratik Ghatpande
Over where We give the actual statements, which is set boundary as global, and then receive it. Okay, receive it in the target zone. So receive select and the PDF name on the number of it. Receive basically brings us a small and related data into SMP processing context and registers it in the CSI. It is more than a simple copy. It establishes inventory for subsequent apply. So that’s what a receive does. It’s a first instance or the first record in the CSI through which the process begins, followed by the apply process closely. Apply is generally done in target zone. Apply, as I’ve mentioned in the control statement, all other DD statements remain same. And again, the program is executed using the GIM SMP program name and its corresponding load module for it. And the control statement basically mentions apply select the PDF name for it. So apply installs the sysmod into the target libraries for the zone you specify, and its corresponding target zones are linked to its respective library. So for example, in the target zone We have got in our organization, we have got 2 different target zones, one of which is an X-test or extended testing.
[00:42:50] – Pratik Ghatpande
And extended testing is done at different product level. So different products have their respective and their unique X-test libraries, and that is defined in the DD target zone of that CSI library. Okay. And once the testing is done, the regression is performed in the X test. It moves ahead to the I test. I test is another environment which we have, which is integration testing. So all of the products which come under same umbrella, for example, IMS has different databases, right? IMS has full function as well as fast part database. IMS has a storage team. IMS has admin. All of them combined together into a single library integration library where we perform the integration testing. For checking the impact on other modules as well and using that library. So it has its own target zone, okay, and it is defined in the CSI. So that’s how it is. And, uh, going ahead, accept. All right, accept. What is accept? Accept basically updates the distribution library, so the sysmods is the part of the maintained image for future installs. Basically it’s required for future installs and distribution. If you apply but never accept, distribution can— sorry, can distribute from what operators assume is installable, right?
[00:44:11] – Pratik Ghatpande
The risk which we talked about earlier. Again, in the control statement, SMP CONTROL DD accept it and then go ahead. So yeah, after the zones— so the zones, at a glance, to summarize it, the global zone is used for Receive processing and global related data receives sysmods and associated data registered here as part of the workflow. Then the target zone, which basically describes the libraries
and the products that are active for that system image, what you run against it and use for apply process basically in distribution, followed by wherein the accept command is used. So yeah, I’m sorry. Yeah, so Sysmods type. Okay, the different Sysmods which we were talking about earlier in that diagram. So PTF, Program Temporary Fix, corrective maintenance where the actual software changes and the code changes are done and tested. Uh, then the APAR. The APAR is a document First report and APAR. Do not confuse the ticketing with the Sysmon. So APAR, as I’ve mentioned, it’s the first report which has the actual description of the problem or the issue in question. And then the FMIDs or the functions introduce and replace a function. User modes locally built modification requires strong governance.
[00:45:43] – Pratik Ghatpande
Yeah, that’s a crucial point whenever we try to write The program, it’s quite important through which it follows. Okay, then another important concept which I would like to talk about is whole data. Okay, so sometimes what happens is I am working, for instance, I’m working on a particular fix using the PT. And I want to so that whenever the user applies that PTF, he or she should be aware what’s going on, what’s required for it as a prerequisite. In that terms, we make use of these hold statements, okay, which is nothing but an information which we send before the person applies that PTF actually. So hold data communicates the conditions and the actions required Using the plus plus fold statements that may require an action before or after the instance. Okay, it’s quite crucial. Sometimes we require it, right? To give that this particular PTF will only work, only be applied in this instance and not that instance, etc. So these scopes. The program error, fix errors, holds session before apply. That’s why it’s important to know, and it is optional. It is, it’s only used when it’s required. So hold instruction, do not bypass hold.
[00:47:33] – Pratik Ghatpande
Without policy. Yeah, some crucial notes along with it, how it all links together. When this is mod— I won’t package in general— then it’s, it goes, it’s applied in the target zone where the testing occurs, and then eventually it’s accepted in the distribution zone. Okay, restore. At the start, I also mentioned about restore and backup. So sometimes what happens is there is some issue which is basically encountered while testing, especially the QA testing or regression for that matter. At that point of time, and we are closer, and that issue is encountered during the— at the very end lifecycle of that particular testing. Time period and there’s no option and we are short on time to set it back actually before we actually retest it. At that time, at that point of time, what to do is the main question. And then with the help of restore command, we should be able to back it out if it is done correctly. Okay, restore removes the applied sysmods from the target according to SMP rules and your procedures. Okay, use your shop’s backup Standard and procedures, the IBM guidance which has been provided and available. Some situations require extra steps outside SMP.
[00:48:55] – Pratik Ghatpande
So yeah, again, conditions applied, terms and conditions applied. Sorry. Yeah, going ahead, common pitfalls. What all— what are the common problems which might be encountered, which, which we might face, is Wrong boundary. Sometimes setting the wrong boundary causes the mismatches, especially while setting the boundaries and categorizing the sysmods into different zones: global, target, or distribution. Then providing the wrong CSI. Again, very important thing to remember is before we actually execute the SMP process, whether it’s a receive, apply, or accept. Whatever we’re trying to do, or just for that matter, we’re just trying to list down the PTFs or the sysmods which we have in a particular zone. It’s quite crucial to double-check the wrong— double-check the CSI library. It should be correct. Pointing to the wrong CSI can update the wrong system image. Again, very crucial. So for in our organization, what we have done is we have commented out All of the CSIs by default, and when we are trying to execute a particular PDF, we are trying to apply it into a particular target zone. We just uncomment the one which is required. In that case, we have everything in our place, and we just uncomment the one which should be executed.
[00:50:24] – Pratik Ghatpande
Okay, just tip, and then no backup. Yeah. Backup is quite crucial. It’s quite important to take the image copies and the backups of those CSI and the SMP-related libraries. And ignoring the messages— yeah, it’s very crucial to understand the GIM messages which we get, and written codes need to
review before accepting the success. Okay, prereqs, coreqs, and the, uh, the reqs. Okay, these are the— there are basically 3 dependencies. And dependencies, as in the first one which is obvious, is req or requisite. OK, the PDF or the SysMod which is in question. For example, another SysMod that must be present or satisfied per the mod control relations for this fix. This is the actual changes which we are dealing with, the current changes in the requisite, the current PDF. Or sysmod, any other sysmod. The prereqs is nothing but a sysmod that must be already applied before we install the current one, the req. So along with the req, the prereq is important. OK, for example, the sometimes what happens is we every time we make any changes in our organization, we bump the bundle of that particular version. So for example, currently we are at.
[00:51:54] – Pratik Ghatpande
4.10.00.68. Okay, so next time the changes come, or the next RSL, or the recommended service level— we work on quarterly basis, okay? So then next quarter comes, then there are some changes, we bump. Okay, at that point of time, it’s quite important for that bumping of that particular bundle or the wrapper PDF, it’s quite important, uh, for any customer or any end user to do the prerequisite, which is apply the previous one wherein the dependencies are the prereq, and then only apply the req one. Okay, again, the coreqs. Okay, coreqs sysmods that must be installed together as a package in a coordinated manner. So, okay, coreq is nothing but a wrapper PDF file. If I have to consider a bundle PDF, which basically combines all of the PDF together into a single whole PDF, this becomes crucial. Again, this is another option because the PDFs are in exclusive explicit manner as well. We give the customers the flexibility whether they want to receive it like using the receive order, basically bundles all the PDFs together in that particular RSL or that particular maintenance window, or they want to receive it separately. It’s their choice. So all these 3 are correlated, these dependencies: the prereqs or the prerequisite, requisite, and the co-requisite.
[00:53:29] – Pratik Ghatpande
Okay, 3 of them. Then what breaks again when Pre-reqs and the coreqs rules fail, apply stops. Obviously, it’s important to double-check this as well along with the CSI. As I have mentioned, the pre reqs and the coreqs should be precise. The name and the numbers of the PDF should be correct. That needs double-check. Here, the manual intervention is quite required. Okay, I know certain things can be done via AI now, but still, I strongly believe that it’s a, it’s a combination of both the human intelligence as well as the artificial intelligence, which will make sure the success is robust and not just based on some artifacts which are produced by AI. Okay. So over there, human knowledge and skillset is quite crucial. So yeah, the skill is reading the logs and not guessing. Okay.
[00:54:27] – Amanda Hendley
Yes.
[00:54:28] – Pratik Ghatpande
To summarize, okay, we have come at the end. I guess it’s been 45 minutes, close to 1 hour. I guess I have lost the track of time. But yeah, to summarize things, what we have discussed so far: SMP is IBM’s controlled facility. As I’ve mentioned, it’s a utility or a tool used for z/OS software maintenance and its changes, for tracking and monitoring purpose, for installation. Then the CSI, and we also discussed about the CSI, Consolidated Software Inventory, and its different zones: global zone, target zone, distribution zone, why they are crucial. And the different sysmods which we discussed, system modifications like PTF, APAR function, usermod, and how they move through the different commands, whether it’s receive, plan, accept, in the product lifecycle. Okay, the different dependencies which we discussed right now— prereqs, the reqs, and the coreqs. Okay, and why it is crucial to understand the whole data concept. The promotion levels, how it works through different stages— work development followed by X-test, I-test, and then verified. Okay, repeats the process with change control. Always follow— again, it’s quite important to follow the official documentation of that particular organization. And your standard search. So yeah, thank you for being in this session.
[00:55:53] – Pratik Ghatpande
Any Q&As, I’m happy to discuss. Coming back to our screen.
[00:56:05] – Amanda Hendley
So, so if anyone has any questions, you’re welcome to put them into chat or come off of mute to ask the I did see someone was asking about the recording. Our plan is to share the recording in a week or so, and we’ll also have the slides to share as well.
[00:56:25] – Pratik Ghatpande
Okay.
[00:56:28] – Amanda Hendley
Yeah.
[00:56:29] – Pratik Ghatpande
All right. Thank you. Thank you so much, everyone, for joining, giving your time. Hopefully the session was to some use. I was able to deliver something of useful concepts which you can take ahead and utilize. And again, reach out to me in case of any questions. Even if you are not able to ask questions right now, you can reach out to me on my email ID as well, official email ID, and happy to help.
[00:57:04] – Amanda Hendley
Thank you so much.
[00:57:05] – Pratik Ghatpande
Thank you so much, Amanda.
[00:57:08] – Amanda Hendley
I just put up our URLs for our LinkedIn and our YouTube, and the video, the video, the deck, and the transcript and article will all appear on planetmainframe.com. But if you’re interested in perusing past sessions on YouTube, that is That is what you can find if you just search Mainframe Virtual User Groups on YouTube. That’s where you’ll find it. But if you want the full package together, you can get that at planetmainframe.com or virtualusergroups.com will get you there as well. The only thing— and I see, I think some chats are coming in just thanking you for your session. I wanted to let you know when the next session is going to be. It’s Data Gravity and IBM Z. So that is October 6th. October at Planet Mainframe is going to be Cybersecurity and Disaster Recovery Month. So this sort of ties in. And then just so you know, Planet Mainframe this month is AI Month. So we’re going to have some great content all throughout. The month of September, and then the other thing I wanted to mention is that if you are not yet a Cheryl Watson Tuning Letter subscriber, or you are, the next issue of Cheryl Watson Tuning Letter is expected to release today or tomorrow morning.
[00:58:42] – Amanda Hendley
So keep a lookout. You’ll you’ll be able to get an email about that release if you’re not yet a subscriber. We’re really ramping up the number of pieces that you can get previews of, just so you can get a taste of the Sherwoodson Tuning Letter in case it is of interest to you to subscribe. So with that, I want to thank you, Pratik, for being our presenter. So much. It’s been a great session, and I look forward to hearing from you about what sessions you’d like to see next. And otherwise, we’ll see you in a little over a month.

Virtual IMS Sponsor

Planet Mainframe
Pratik Ghatpande

Pratik Ghatpande

Senior Software Engineer
BMC Software

Upcoming IMS Session

Get the latest Virtual User Group Updates

This field is for validation purposes and should be left unchanged.
Select the Groups you'd like to Join(Required)