Virtual CICS User Group Sponsors

IntelliMagic
Broadcom Mainframe Software
DataKinetics

Virtual CICS User Group | September 2024

CICS Resource Definitions as part of a DevOps Pipeline

Ezriel Gross
Principal Solutions Advisor
Rocket Software

Many organizations already leverage automated DevOps practices for distributed applications, and now many are looking to include z applications in the pipeline. For CICS, developers manage source code and the executable modules, but the systems programmers typically manage the related CICS resource definitions. This separation between the code and resource definitions creates issues when incorporating CICS applications into an automated DevOps pipeline. This session will explore techniques and tooling using CICS Configuration Manager that allow application developers to create/modify/promote CICS resource definitions while also allowing the systems organization to have oversight and governance, so they can insure the integrity of the CICS environment.

Ezriel Gross

Principal Solutions Advisor
Rocket Software

Ezriel is a Principal Solutions Advisor for Rocket Software specializing in IBM CICS Tools. He was formally the CEO of Circle software (acquired by Rocket Software in 2018), where he specialized in hands-on classes and consulting in CICS, DB2, and MQSeries. Ezriel was a Gold Consultant for many years and is currently an IBM Champion. His specialties include Web Services, Web Support, Performance / Tuning, Monitoring, Internals, CICSPlex SM, DevOps and Liberty as they relate to CICS. He recently co-architected the Rocket C\PROF product, a tool that captures CICS trace without running in a CICS region.

 

Upcoming Virtual CICS Meetings

November 12, 2024

Virtual CICS User Group Meeting

Seven Deadly Sins of CICS Integration

Scott Brod and Russ Teubner
Broadcom

Register here

January 14, 2025

Virtual CICS User Group Meeting

Read the Transcription

[00:00:00] – Amanda Hendley, Host
If we haven’t met, my name is Amanda Henley. Welcome to our virtual CICS User Group. We’re excited to have you here today. We’re excited to have Ezriel Gross speaking. I just have a few agenda items to cover before we get started with today’s session. First, I want to thank our partners, Broadcom, IntelliMagic, and DataKinetics for sponsoring this series. We do have sponsorship spots available in the series. If you are interested in having an opportunity for logo placement and the chance to speak with us as well. You can reach out to me. I’m easy to find on Planet Mainframe. Amanda@planetmainframe.com will get you there.

[00:00:42] – Amanda Hendley, Host
This month over at Planet Mainframe is a celebration of COBOL for the 65th birthday of COBOL. So we’ve got some really great articles. We did a call to the community last month, and I loved everyone’s reflections. It was interesting. There were reflections of how COBOL entered their life and maybe even led them on their own career journey. So check us out all month long. And then next month, we’re going to be talking about cybersecurity.

[00:01:16] – Amanda Hendley, Host
After today’s session, as you’re closing out your browser, there’ll be a two-question survey.

[00:01:20] – Amanda Hendley, Host
We’d love to get your feedback on what you thought of today’s session. And really quick, just appreciate your time doing that. We have a partnership this year with GSE UK, so you can save 10% with this promotional code, PlanetMF2024, when you’re registering for GSE UK. So I’d love to see you there. Planet Mainframe will be there. We’ll be doing some on-site interviews, and it should be a good program. And if any of you are venturing over to IDUG in Valencia, I will be there as well and would love to see you. Now, on to our session. I told you the intro would be pretty painless. So I am excited to introduce you to Ezriel Gross. I’m going to go ahead and stop my share so that you can start your share.

[00:02:14] – Ezriel Gross, Presenter
Okay. Let’s see if mine works.

[00:02:17] – Amanda Hendley, Host
He is a Principal Solutions Advisor for Rocket Software, and he specializes in IBM CICS tools. He was formerly CEO of Circle Software, which was acquired and teaches classes and does consulting in CICS, DB2, and MQ series. He’s a Gold Consultant and an IBM Champion. So thanks for joining us today.

[00:02:39] – Ezriel Gross, Presenter
Thank you for having me, Amanda. I’m going to turn off my video so I can avoid any transmission delays, but I figured I’d put it on there so you could see my picture to start. So yes, I’m Ezriel Gross. I’m with Rocket Software. And today we’re going to go through CICS’s resource definitions as part of a DevOps pipeline. So I’m going to show you how we look at defining CICS resources along the same lines as migrating applications through various different environments using a DevOps pipeline. Just make sure. There we go.

[00:03:13] – Ezriel Gross, Presenter
This is what I want to cover today. I’m going to just talk about DevOps for traditional CICS applications. Today, we’re more in the world of self-service, and we’re trying to get applications to do a little bit more work, as you’re going to see in just a second. In terms of ensuring that their applications and their CICS resources move through a DevOps pipeline at the same time with backup capability and audit and all that good stuff. I’m going to introduce this product called CICS Configuration Manager. Lecture, which I’m going to use for editing CSD files. We’re going to talk about delegating responsibilities and how different people at different levels can be responsible for different portions of application development, and then talk about making those changes changes, migrating them through various different environments, how to deal with LPAR boundaries, and I’m going to talk about why that’s an issue as well. Then things like back out and audit compliance, and then some other stuff associated with resource definitions. We also have support for ZFS, for some of the bind files, the WSDLs, and you’re going to see how we handle those, and then, again, how we fit into a DevOps pipeline. That’s my plan for today.

[00:04:28] – Ezriel Gross, Presenter
Let’s talk about traditional DevOps pipeline. If you’ve seen this picture before, it’s just a copied picture that you would have seen almost pretty much anywhere else, where you’d literally plan for a release, you’d code it, you’d build your programs, and then you’d test it, release it, deploy it, and operate. It goes around in this infinite loop, pretty much. What I’m going to show you is, aside from making the code changes and building the code that you actually want to test and distribute, there are usually some resource definitions some behind the scene that might be required, perhaps some program definitions, some transaction definitions, maybe a file definition, even things like TCP/IP service definitions or URI maps that might be associated with an application that you’re building in the world of CICS. Wouldn’t it be nice that as part of your DevOps pipeline, you could automatically deploy these resources in a development environment, in an acceptance or production environment as you deploy the application all the way through the pipeline.The plan is to show you our solution using the IBM Tool CICS Configuration Manager to actually ship the resource definitions along with any changes to the applications themselves.

[00:05:46] – Ezriel Gross, Presenter
The first thing to understand is configuration manager is built to actually help you manage CICS resource definitions. There are a lot of tools that are available to allow you to help build CICS resource resource definitions that come shipped with CICS itself. You can use the CETA transaction, you can use a DFHC as DUP, you even have the ability to dynamically create resource definitions in some cases as well. But Nevertheless, you’re going to see there are some advantages that using a product will give you versus some of the free tools. We’re going to talk about managing resource definitions across multiple environments. If you take a look at some environments, they’re quite a bit different when you look at development versus, let’s say, production. Because in development, you might do everything in one region, and then when you go to QA, maybe it matches development, maybe it matches production. It depends on the site. Then by the time you get to the production environment, you’d find your resources Resource definitions are all over the place.0 They’re not in one region. They’re probably separated by multiple different regions. Therefore, the types of resource definitions that you’d need are completely different. Maybe the developer has the knowledge of how your environment is split up or maybe they don’t. By building the proper rules in place, you can actually migrate definitions and have them automatically split into the correct environments as you need them. Again, if you’re in an environment where you’re making rapid or frequent changes, then you’d probably be better off with a tool as well. How the definition impacts the target environment could be important to you as well. Finally, there’s always that point of cleanup. Whenever I go to a customer and I take a look at their CSD resources, they tend to have tons of resources that haven’t been used in 20 or 30 years, but they’re always afraid to clean them up. “Oh my God, what would happen if I delete the wrong thing?”

[00:07:41] – Ezriel Gross, Presenter
m going to show you that using a tool like this makes it really easy to manage those resources and do any cleanup that you might want to do. Now, the tool itself lives in a CICS region. So part of it is through a TSO-ISPF interface. You can also use an Explorer interface to communicate with the CICS configuration manager. You can actually write your own batch interface or your own custom interface if you want to as well. I normally use the ISPF interface or the CICS Explorer interface to communicate with the product. Either way, it uses SOAP XML to communicate with CICS CM via CICS Web support. It uses standard interfaces within CICS to communicate with the product itself. Now, the product is designed manage your resource definitions, and it needs a CICS region to run in. If you’re running in a CPSM environment, for example, I tend to install it in the web user interface, the web UI region, because it’s the easiest place to communicate with all the different regions that I’m working with. Now, the CICS CM server itself has a couple of files, a repository file and a journal file, which you’re going to see allows it to manage the resource definitions and all the changes changes that you’ve made to resources since the beginning of time. It has a history of all the changes, and it also knows everyone who’s made those changes, which to me is very important for audit and compliance, as well as if you have some issues and you need to do a quick backup. Now, if you manage your resource definitions using CPSM and you store them in the EYU DREP because you use BAS to manage your resource definitions, then CICSCM will issue API calls into the CICSPlex SM C-MAS, and it will help you manage your resources in the data repository there. It supports CPSM, and in fact, you can actually copy resources back and forth between the PSM and the standard DfH CSD file if you want to. Now, at the bottom, you’ll see that if you install a little agent associated with CICSCM in the individual regions, then besides for getting the definitions into your CSDs, you can also get them dynamically installed in a CICS region at will as well.

[00:10:07] – Ezriel Gross, Presenter
Here’s some sample use cases, and I’m going to do some demos as we go through this presentation here. I’m going to show you it’s easy to edit CSD files. It actually makes it quite easy to figure out what you might want to change a resource definition to or what you might want to create when you’re creating a resource definition. We’ll talk a little bit about delegating and approving changes because if you want to ensure that a CISPROG looks at it. This isn’t an environment where, for example, perhaps in development, you allow programmers to make their own resource definitions. But then when you want to migrate it, let’s say, to QA or production, you want to have a look, see, and make sure that they aren’t using something in that resource definition that you don’t want them to do. You could set up approvals such that those resources will not migrate to a different environment unless you approve that change. In fact, I have some customers that say, I don’t even want them to make the definitional changes in a development environment. I don’t want to deal with the aggravation. For those customers, they’ll set up what we call a shadow or a fake CSD, which is basically a CICS system definition file that’s not attached to a region. They let programmers make the changes in this shadow CSD. Then what they do is they say, okay, when they’re ready to actually do the testing, they can migrate those resource definitions to an actual test environment. Now, through the approval process, you can see exactly what they’re installing into your lowest environment. Then we’ll talk a little bit about changes across an Lpar boundary. The real issue What we do is, we don’t keep a separate repository of changes. What we actually do is we store the resource definitions in the CSD files themselves. Should anything go wrong with CIC-CM, you always have access to your original definitions as they’re defined in the CSD. Since the CSDs are VSAM files, then when you migrate across, let’s say, an Lpar boundary, the issue is it’s hard to get a VSAM file from one Lpar to another. We have this concept of flattening the resource definition, shipping it over to the other side, and reconstituting it. I’ll show you a little bit about that. But most importantly, whenever you’re making resource definition changes, you want to instantly be able to back them out very quickly if something should go wrong. We’re going to show you we have back out, we have audit compliance built into the product itself. Then finally, if you have any free time, as if system programmers today have any free time at all, but if you manage to have a little bit of free time, then perhaps you want to do some CSD cleanup. You’ll see that the product makes it very easy to figure out which resources you’re actually using, not using, the ones that are redundant. You have the same resource definition in multiple places. It’ll allow you to clean up those resource resource definitions quite easily. Plus, if you clean them up and you’re afraid you lost something and you need to go back, since there’s a history of every change you’ve ever made, you can actually reconstitute a resource definition at any time that you might want to. Then finally, there’s always this need to do some comparisons. You want to be able to see what I’m running in development versus test or in QA or broad. There’s this ability to compare resource definitions right down to the attribute level. You can even consider some changes that might be different between the different environments. I’m going to show you a little bit about that.

[00:13:40] – Ezriel Gross, Presenter
Now, to start out, let me point out that this is probably not your environment or most people’s environment, but some people actually still have a separate CSD file for every region in their environment. Now, I could understand this if you’re probably dealing with 5 or 10 regions. But once you start getting into the hundreds, it gets pretty ugly to manage a CSD file, one for each region.So you’ve probably combined a number of them together, but you still have a few. You probably have separate CSDs for, let’s say, development, QA, and prod. So nonetheless, even if you don’t have this particular problem where you have a CSD for each region, you probably have a number of CSDs in your environment. Now, you still have to go and log on to a region that has access to the CSD to make any changes to that, or you’d have to run a batch utility. And then eventually, if you really wanted to install the resource dynamically into a CICS region, you’d probably have to log on and do an install to get that in there. The other problem is there’s no audit trail and there’s no easy backup, because you don’t know who’s done what unless you actually save the message user file from the beginning of time for any CSD changes. That might give you an idea of what you’ve replaced, but it’s very hard to back it out nonetheless. What I’m going to show you is with this product, you get this single point of control through this CICS CM server that I showed you what it looks like. That you can attach to, and effectively, you can manage all your CSDs all in one place, especially if they’re on the same Lpar or using shared DASDI. Then what you can do is you can migrate or move resource definition changes from one CSD to another, you can actually modify it all from one particular place. Now, the regions don’t have to be up and running, so that’s good because obviously, if the CSD was part of a region that’s not running, you’d have to either bring it up or you’d have to dynamically attach it to another region to make changes to it. We don’t care whether the region is active or not. We’re working directly with the CSD files. Any changes you make, have a full audit trail of who made the change, when the change was made, as well as a very easy backup to that change as well.

[00:16:06] – Ezriel Gross, Presenter
This is just a sample of the Explorer screen. If you install the template for the Explorer in the CICS Explorer, of course, you can see up at the top left, you can see CICS configurations. Now, the one thing I’ll point out is we use an eight-character name to specify what a configuration is. Configuration, as far as concerned, is really just a CSD file or it’s an EYU DREP repository. You can see I have a bunch of them on the top over there, on the top left. Then at the bottom, you can see I’m looking at my CSD groups. I can see a bunch of groups there.

[00:16:48] – Ezriel Gross, Presenter
If I were to run this query, I get back the results that look like this, and we are looking across all the groups that start with Gen, and it’s showing the individual resource definitions, it’s highlighted by type. Then if you wanted to, you could expand, for example, on program definitions, and it’ll give you the list of program definitions.

[00:17:08] – Ezriel Gross, Presenter
Of course, you can do the same thing with see to expand group, Gen A, and you’d see all the resource definitions in that group, but it won’t be nicely correlated. But you can then add program and see all the programs that are there.

[00:17:23] – Ezriel Gross, Presenter
If you’re using the Explorer, you can see you have the ability to see the resource definition overview, which IBM gives it to you in this new format. If you like the attribute format, notice the tab at the bottom of the screen says you can click on the Attributes tab and see it the way we’ve always seen it in the past. This just shows you can go in through the Explorer, you can look at any one of those configurations, and you can modify the resources within those configurations all from a single location. Now, again, each configuration represents a different CSD, so it can actually manage your resource definitions across different environments.

[00:18:03] – Ezriel Gross, Presenter
Now, we also have a 3270 interface, which is the one I’m going to demo today. This is just me going in and looking at a list of all the configurations I have. You can see within this list, you get the name, which is an eight-character name of the CSD or the context, as we’re going to see for CPSM. Then we also have another type of file, which I’m going to show you, a couple of them down at the bottom. You can see I can see standard CSD files because I can tell by the file name that it’s a CSD. You can see the context set for the CPSM EYUD reps that I’m communicating with. Then you’ll see a couple of other ones like an export file. An export file is used to flatten the resource definitions from a VSAM file to a flat file. This is usually used to migrate a resource definition from one environment to another. Then at the bottom, you can also see We’re going to be another type of configuration called ZFS. We can actually use this to manage the ZFS resource definitions for you as well with backouts. For example, if you have WS bind files or bundles or WSDL tools, you can migrate them from one environment to the other with full backup capability.

[00:19:20] – Ezriel Gross, Presenter
Now, if I were to select or filter, in this case, for the groups in Gen A, and obviously I’ve gone into the CSDA or 6, which is this one over there, I can do the same filtering by group.

[00:19:35] – Ezriel Gross, Presenter
Then finally, I can actually go and say, Okay, show me all the programs in the group starting with Gen asterisk, and it’ll show you the program definitions over here, I can select one of them and it’ll give me a screen that looks like this. Now, what’s nice about this particular screen that’s showing the resource definitions is it has one advantage in the fact that you’ll notice by every field is a little plus sign. That plus sign will actually give you the ability to hit PF4, which is a prompt, which will show you all the valid values that are available for that particular attribute. Now, you can see the description on the right-hand side, but you can actually change that to something else if you so choose.

[00:20:19] – Ezriel Gross, Presenter
Now, this is an example of looking or working with multiple configurations. This is an enhanced screen that says I can pull up the definitions from I have three different CSDs at the same time, and I can tell, and I’m not doing it on this screen, but I’ll show you in a demo, whether or not the definitions are exactly the same or they’re different, and I can do side by side compares of those resource definitions. The one thing you can do with this that you can’t necessarily do with something else is you can actually look at multiple CICS resource definitions at the exact same time.

[00:20:57] – Ezriel Gross, Presenter
What I plan to do next is demo working with CSDs, show you a little bit about what I showed you here, but live. Then we’ll do things like modify resource definitions, and I’ll show you things like search history and compare.

[00:21:11] – Ezriel Gross, Presenter
Let me switch over to my system here. Here’s my system, I’m in the CICS configuration manager. You can see I have user settings as option zero.I have an administration option which allows me to add or remove CSDs from the environment. But anyone who is using it to manage resource definitions will use one of the three options down at the bottom. I can manage my CICS resource definitions using option two. I can build packages, which we’ll talk about in a little bit using option three, and I can do any of the reporting I want to using option four. Let’s start with option two.

[00:21:49] – Ezriel Gross, Presenter
If I go into option two, let me just take the filter off, and you’ll see that I have quite a number of CSDs that I could be working with here. Again, this is giving me a description. If I hit PF11, it’ll actually show me what it is I’m looking at here. You can actually see some of them are CSDs, some are CPSM, EYUD reps, and then You can see I have an export file and a couple of ZF assets. The ones I want to demo today start with… Sorry, Dem, for demo. I have a couple of different environments via the demo environment. If I go down to my development system I’m over there. I’ll put a slash here for a minute.

[00:22:33] – Ezriel Gross, Presenter
I can actually use an expand to expand resdesks or lists. Remember, we work with both CPSM or CSD files. I can look at the groups or I could just select, which I happen to like for select. If I do a Select, it will remember the last thing I did. Obviously from here, I was looking in a group called Demo Group 1. I’m looking for anything that starts with an asterisk in terms of the name and the I could even put in a little change time and date over here. If I just hit Enter, you’ll see I have 28 resources within the group called Demo Group 1, and I can see a bunch of programs and files. If I really wanted to, I could just say, No, I’m just really interested in seeing the programs, and I could limit my screen to show that the programs that are in here. Now, if I wanted to modify one of these, I could just select it, and you could see if I truly wanted to, I could hit PF4, and it’ll give me a choice for language. If I go down to, I don’t know, usage, I hit PF4, it’ll say normal or transient.

[00:23:38] – Ezriel Gross, Presenter
These are the options available on the resource definitions. If I wanted to, I can actually change any of them. I could change it to enabled to disabled. Or let’s pick something more interesting. Let’s do this. Let’s change it to an assembler program because it doesn’t really matter. It CICS deduces in the language today anyway. Why would you make a program definition today? A lot of people ask me. Usually it’s because when you set up an auto install template, you have to pick something for these two parameters. Not everything could be quasi-reentrant CICS API. Maybe you want to use a different value, like you want to make it concurrency is required and open API. Unless you have a good naming convention for your program names, you might actually have to still go in and make program definitions, which could be quite verbose. I’m just going to save this for a minute. You know I’ve saved a copy of this. The question is, how do I figure out what somebody’s done with this particular resource definition since the beginning of time? Well, that’s easy. I just do H for history. You can see it’s just been me making changes to this definition over and over again.

[00:24:53] – Ezriel Gross, Presenter
You’ll notice the very first entry is unknown because it came, I migrated it over. I I installed it originally with CETA, and perhaps I wasn’t signed on, and so I don’t have the original definition there. But down here, I can literally do comparisons. I can say CM, CM, compare these two, and you can see side by side, date and time, what change was made. There’s the original, there’s the modification. I can do this for any period of time. I can go down and say, What was the change before that? Somebody tried to make the CEDF status from no to yes. I can look at a history of any changes to this application from the beginning of time, and I can compare it as well. One other advantage of modifying resources this way, sorry, I got to move that because this thing is in my way. I can issue a search. I can search for anything within the resource definition, especially if I hit the right button. There we go. I could search for particular particular attributes. Let’s say I wanted to look for and I have to pick a certain type of resource. It’s got to be either programs, transactions, whatever it might be I’m looking at because you can only search through one resource type at a time.

[00:26:15] – Ezriel Gross, Presenter
When I go down here and I go to the attribute, I can say, what can I search on? Let’s hit PF4. Let’s look for, I don’t know, data location. I can say equal, and I can put in a particular value. It’s any or I could say, You know what? I just want to see a list of them side by side. I’ll put in an asterisk. I’ll hit PF3. Let me turn it on. Then I’ll hit PF3, and you’ll notice he says zero rows excluded by the search. Why zero rows? Because I didn’t actually search for anything. I didn’t pick a value. I said, show me all of them. But now if I hit PF11, I can look down at the data location and they’re all set to any. I can combine that search with other things. I can go back in and say, you know what? I want data location equal asterisk. At the same time, I can add another attribute here. Let’s pick another interesting one. Let’s do Concurrency. Let’s see. Let’s also do equal asterisk. I can just see the two side by side. Hit pf3. Now, if I go back, it’ll show me, sorry, data location.

[00:27:30] – Ezriel Gross, Presenter
I can search for multiple things at the same time. You can search through a set of resource definitions. You can search through… Oh, I’m sorry, let me do that again. I did not do what I wanted it to do. That’s why you have to turn the slash on, sorry. There we go. Now I could see data location and quasi re-entered. See that? Actually, I could put in an equal asterisk or if you have a group. Remember, I put in a group name, right? If I really wanted to, I could say, You know what? Sorry, I went too far out. Let’s put in program asterisk. This should be cool. Now, I don’t know how long it’ll take. It depends how many I have. It’s 2,884 programs. Now I do the search. This might be more exciting because now it’s looking through it and I might have, there you go, I’ve got a couple of programs below. All these are defined as quasi-reentrant. There’s the ones that are thread-safe. If I really wanted to, I can now go into the search and say, Well, I’m only interested in the quasi-reentrant programs, or I’m only interested in data location below.

[00:28:46] – Ezriel Gross, Presenter
That’s a good one because everybody wants to know, How many programs do I still have running below the line? Let’s hit PF4 and be lazy and select it from here. Search is in progress. You can see I only have 23 programs of 2,884 with quasi-reentrant. No, below. I guess I don’t have any below. Did I set that search right? I always mess it up. Let me move my tab here. I’m looking for dataLocation= below. That’s what I want to do. Concurrency, any. I don’t know what I’m saying. This is what happens when you run on the development box. I’m probably running the wrong version of this. But anyway, it would show you only the ones that say below. Now, that’s what I wanted to show you in terms of managing resource definitions. Obviously, you can go into a CPSM and you can manage the resources in the EYUD rep. This would be equivalent into running BAS. Then later on, I’ll show you you can actually manage resources in a ZFS as well. That was the demo I wanted to show you to start out. Let’s go back to this.

[00:30:12] – Ezriel Gross, Presenter
What are some of the problems? Some of the problems you’d run into is, for example, administration bottlenecks for resource changes. We tend to try and ensure that the right people make the right resource definition changes in the right What I mean by that is perhaps a junior CISPROG can make definitional changes in test environment, but you wouldn’t want him necessarily to make those changes in production until he gets a little bit more experience. Or you don’t have enough resources, or maybe there’s some institutional knowledge that makes it risky. For example, in development, I need… I don’t know. It depends on the resource definition that we’re looking for. In In development, the transaction is local. In QA, I have to put a remote definition for the transaction in the TOR. I have to put a local definition of the transaction in the AOR. You might actually have stuff you have to change as you migrate through the environments. That’s the type of problem you run into.

[00:31:20] – Ezriel Gross, Presenter
What we’re going to show you is delegating responsibilities is relatively easy. Again, if you’re willing to let your application developers make changes in development, then That’s good. Or you can make them in a shadow CSD such that when they want to migrate to a test environment, they have to get some approval. Maybe you use a junior CICS admin person to make those changes in test or do the migrations to test. Of course, since we’re talking about changes through a DevOps pipeline, maybe we’d make that automated as part of the process. Then finally, the same thing is true with production. As long as you have an audit trail with an easy backup of any changes that you actually make.

[00:32:02] – Ezriel Gross, Presenter
Here is one issue that most people come back with and they say, You know what, Ezriel? Program definitions, maybe not so much, but transaction definitions, for example, could be quite complex. What we’re afraid of is a programmer will change one of the attributes on one of these things and mess the whole darn thing up. We won’t be able to fix it or we won’t realize it until it made it all the way to production. Here’s an example. We have standard. We say that all the program definitions must have the attribute of CEDF set to yes. If you tried to change CEDF status to no, it should not allow you to do it. We have Site Standard Exit that you can program. Effectively, you can protect any attributes inside this definition that you don’t want anyone to change. This is why the argument of allowing an application developer to make changes in a test environment makes sense. Because if they can only change, for example, the language here or the concurrency parameter, then effectively, no matter what else they do, they won’t be allowed to change that attribute. You, as the cisprog, can turn around and say, I’m pretty confident that the user made the changes that won’t impact my system in a negative way.

[00:33:24] – Ezriel Gross, Presenter
If you were to change cedf_no in my environment, you’ll get this. It says, Sorry, you tried to make a change, but we rejected it because there’s a site standard rule that says cedf must have the value of yes. You can see this is what the rule looks like. It’s a little bit complicated, but it basically has two query options. If the group starts with DEMO Group 1 and the name starts with D-E-M-A, then CEDF has to equal yes. That means in my environment, if I were to go back I’ll take the development here for a minute, and I pulled up my programs, and let’s pull up the programs in DEMO Group, and I went in here and I said CEDF no, and I hit PF3 to save it.

[00:34:16] – Ezriel Gross, Presenter
I’m going to get that error. You see, he can’t change something you don’t want to change. There’s no way. Can’t be done. Fails the exit. You can be pretty sure, and I can just cancel and go to get back out of this, you can be pretty sure that they can only modify the attributes in the resources that you want them to modify. That’s only within the resources that you allow them to modify. Here comes the next piece of it. The next piece of it says, what about I only want them to do transactions, programs, files, maybe a couple of other resources. It’s really up to you. You choose what they can and can’t modify. You can see that this user was attempting to do a change, but it was stopped by security because he has a permit on CCV, which is the three-character prefix for the product. In this configuration, this group name, this definition type, and you can go all the way down to the name itself, and you can say, Access None. If you wanted to, you could pick a resource type and just basically say, I’m sorry, this user is not authorized to create this resource definition.

[00:35:28] – Ezriel Gross, Presenter
Now you have all the CICS resource the definitions available to you. You protect the ones you don’t want them to modify themselves. They need to contact you. Then within the definitions you want them to add or change, they can do it from there. Effectively, to be honest, if you guys know Now, what we usually do is when you want to build a new program, so you can see there’s a program here called 50. If I selected, I could say save as D-E-M-A-M-G be 60. It’s going to save a copy of that in Demo Group 1 in this configuration, and I hit Enter. Next thing you know, they made a copy of that resource definition. In fact, if you compare these two, to one another, they’ll look exactly the same except for the program name. In reality, when a user comes in and decides to add a resource definition such as a program or a transaction, they’re not going to build it from scratch anyway. They’re going to copy it. Then you could lock down the attributes. Obviously, program is not really as bad as, let’s say, transaction definition. You want to be sure that they’re only modifying maybe the initial program and a couple of other attributes that you want to, and you can lock them all out.

[00:36:50] – Ezriel Gross, Presenter
Based on this picture, you can see that not only can you protect the attributes within a definition, but you can protect the type of the definitions that a programmer can make. This could also be true for a junior CISPROG. You only want them to modify the definitions that they’re familiar with.

[00:37:10] – Ezriel Gross, Presenter
Now, once you’ve made the definition, and either it’s in a shadow CSD and you got to migrate it to development, or in our case, you let them do the development in a development environment, and you want to migrate it off to a test environment. The question is, how do you systematically promote resource changes and move them from environment to environment? The other problem is, is sometimes one environment looks different than another. Maybe you want different attribute settings in a test environment than you had in the original development environment. You might even want to do some renaming. Maybe you want to go from a CSD to an EUAUD rep CPSM, or you want to go from CPSM back to a CSD because depending on the environment, there are different structures. The answer is, is that’s what we tend to call tribal knowledge or information that only the more advanced CIS PROG in the environment may know.

[00:38:05] – Ezriel Gross, Presenter
Based on that, you might want to figure out how to get these resources from one environment to another. Now, keep in mind, you can just copy them. Obviously, I can copy. You saw me actually copy a resource definition, and one of the prompt fields said, I can copy it to a completely different CSD, assuming I have the authority to migrate it. Problem with copying resource definitions is that if there are any attribute changes that are required, you have to go in afterwards and change them manually. Plus, in terms of what if I have 200 program definitions? It’s a little harder to copy over 200 program definitions at the exact same time. We built a solution that includes packaging resource definitions. Basically, what you have to do is define a package. You have to package resources into that package. Then there’s a concept called readying. If you have multiple people who could be working on the same resources at the same time, once you’ve read a resource, it’s basically saying, I’m preparing it for migration, and therefore, nobody should change it. If somebody were to change that resource definition, it becomes unreadied, and therefore you’d know somebody made the change.

[00:39:22] – Ezriel Gross, Presenter
And you basically know, based on the historical information, who made the change, and you can go and ask them, or you can back out the change. And Then, of course, there might be an approval setting, and there might be up to five levels of approvals if you want to. Then finally, you can actually do a migrate from one environment to another. Now, with this, you have different resource types. You have some files, some transactions, some programs. When you do the migration from one environment to another, you want a one-click backup. I know I would want one. You want to be able to back it out. You want to be able to install it and new copy it if that’s required as part of the change.

[00:39:59] – Ezriel Gross, Presenter
The key idea behind this packaging is this should be all automated for you, and it could be part of a CI/CD pipeline for migration. Wouldn’t it be nice if I could migrate from the development to test the change package and then eventually to production? Then all the nuances about the environments were handled as part of that migration. We’re going to see we identify environments by calling them migration schemes. Migration scheme is going to identify the source target environment and any changes to the resource definitions that are required as part of the migration.

[00:40:36] – Ezriel Gross, Presenter
You can see that I can easily go from a single CSD to multiple CSDs. Why would I do this? Maybe I’m taking a transaction definition that was local in one environment, and I’m splitting it out to a remote definition and a local definition in another environment. I can go from one to many or many to one. I can go from CPSM to CSD or back again. We can handle any combination resources. You just have to build the rules once, and then you know how the environment migration works from one environment to another.

[00:41:08] – Ezriel Gross, Presenter
Not only that, but you can actually make some quick changes. As I said, you can change the attributes within a definition. If you choose a different attribute when you’re going from one environment to another, you can make that change. In this example, you could see at the bottom, I want to change the middle qualifier from development in DEVT in development to test test inside of a test environment. I want that automated. I don’t want to have to go in and manually change the definition after it’s moved from one environment to the other. Also, I might also want to change the name of the group because in test, I have it end in test, in development, it ends in D-E-V-T. I want to apply whatever standards I have in place, but I want to imply them automatically so that when I do the migration, all those changes are automatically made so I don’t have to go in and manually touch that resource definition again.

[00:42:01] – Ezriel Gross, Presenter
Let’s talk about that with a little demo here. I’ll go back to my environment here and show you that through packages, you can see I have a package here. I’m going to We had a new one for just our migration here. But first, let’s take a look in administration. Somebody in systems would set this up. You’d have something called migration schemes. You could see I have a migration scheme that says demo, dollar, D to C, and D to T. I’m going from development to test. Let’s see what happens when I do this migration. It says I’m going to take the resource definitions from development, move them to test. I’m also going to move them to an XPRT, which is an export file. Maybe I want to flatten them so I can move them across an Lpar boundary.

[00:42:52] – Ezriel Gross, Presenter
Then I’m also going to move the ZFS files from here, from this source to this target. This is all part of the migration scheme called demo_d-t. I’m also going to apply these transformation rules. Let’s go take a look at a transformation rule. If I go back here, I can see I have a transformation rule set and I can group them if I want to. If I go into option 5, you can see the one I’m going to do is development to test. Let’s see what the rules are. This is just a quick way of looking at a rule. I can obviously select it if I choose to see it full screen, and I could page through it this way. But you’ll see it’s just as easy to look at it here. It says when the source configuration is demoDEVT, the target is demo test, and the group starts with the name demo, and the resource is of type file. Okay, so far, so good. I don’t care about the resource name. It says what I’m going to do is change the data set name from demoDEVT to demo test. That’s what I’m going to do.

[00:43:56] – Ezriel Gross, Presenter
If the data set name is DEVT CICS, I’m going to change it to test CICS. What I’m also going to do, which is interesting, is I’m going to change the group name. If there’s demo in the group name, which we have demo GRP1 in the group name, I’m going to change it to test GRP1 because that is standard, and you can build as many standards as you want here. Once this infrastructure is in place, then it becomes relatively easy to build and migrate resources. I’m going to go into option three. I’m going to define a new I’m going to say Ezriel. Then what I’m going to do is I’m going to give it a description, my test package. Then I can actually go in and say, I want to package some resource definitions. Let me save this first. I’m going to set up the approval profiles for this. Let’s do demo approval profiles. There we go. I’ve created a new package. Now, sometimes the sysprod creates the package in advance, sometimes you do it here. You can see that I can package some resources with option one, and I can go off to my demo group, and I can look at multiple different groups here.

[00:45:14] – Ezriel Gross, Presenter
But I’ll go to demo group, demo dbt, and let’s just look at the program resources. Well, let’s do program and file. Well, let’s do them all. I can just say P to do a package of all them. Hit Enter, and it says it’s all packaged. Now, I could go into option 2 to list what’s in my package. You’ll see not ready new object because I have not readied the package. This is just me packaging the resource definition. I can package commands, like if I wanted to remove a group from a list, I could package that as a command. But to save on time, I’m just going to ready my package. He says, What migration scheme do you want to use? I want to go from From development to test. This is where the whole DevOps play comes in. I could ready the package and I can do option two for a batch. You could see in batch, everything that I’m doing online can be done with a little batch job or it can be done with a step inside of JCL as part of your CI/CD pipeline to actually do this approval processing if I want to.

[00:46:27] – Ezriel Gross, Presenter
But to save time, I’m not going to submit the job. I’m just going to do it in the foreground for a minute, and you’ll see it says command successful. Very simple. Now, if I go back to list the resource definitions in the package, you’ll see it says it’s all ready. Now, what I want to do is I want to try and migrate it. I’m going to hit migrate, I’m going to do option one, and he says, Wait a minute, this is not fully approved. You can’t do this. Oh, that’s right. I forgot. I asked for approval. Let’s go ahead and approve this. Since I’m the guy who can approve it, and I’m going to approve it under manager. I could submit the job this time just to show you can do it. I’m going to submit. Now I’ve approved it. Life is good. Is it? Well, this required two levels of approval, I think. He says, It’s only partially approved, right? You got to fully approve it. Okay, let’s go back into approval. Obviously, different people will use the approval. Sorry, went into the wrong thing. Let’s go back into approval. Now you’ll see the manager has approved it, but Ops has not.

[00:47:40] – Ezriel Gross, Presenter
I’m going to do an approval for Ops, which is me too. But this time I’m going to do it in the foreground, and now it’s approved. Now there’s nothing else here that needs to be approved. It’s fully approved. I’m going to do an option 6, and I say migrate it. I’m going to do it in the foreground. It says command success. Now, if you wanted to see anything that occurred here, you can always go into history, which is option 12, and you can see the package got a ready, approve, approve, and migrate. Now, I’m used to this condition code. Condition code of 04, reason code 24 says when I migrated it from one CSD to the other, he had to create a new group, so that group didn’t exist. Because the group didn’t exist, he created a new group definition. I can look at any migrate and list the resources that I migrated at the time. Now I’ve actually done this. Let’s see if the group is there. Let’s go back here for a minute and go to option 2. Then if we go to demo test, you’ll see that demo group already existed and it has a lot less resources.

[00:48:54] – Ezriel Gross, Presenter
But do you remember we did a rename? We called it test, testgroup1. If I take off the programs, you’ll see I should have 29 resource definitions in here. I did move it along. Not only that, but if we actually take a look and let’s do a look via multiple CSD. To look at multiple CSDs at the same time, you use a reporting, option four. I say one multiple config. Then what I can do is let me compare some groups from development to test. Then the group I want is asterisk GRP1. You’ll see I actually had a demo group over there in that test CSD, but it’s I believe this one that I migrated to this one. Now, I could turn on what’s called a checksum, and then it would tell me in one sentence whether or not these two compare equal. I can You see they don’t compare equal to one another. What I can do is I can go down to, let’s say, this development. You can see I can do some compare of the individual groups. Let’s do one of those. Let’s do a CM at the group level to this. Now, I’ll turn the check sums back on over here.

[00:50:22] – Ezriel Gross, Presenter
You can actually see if the program definitions are exactly the same. In fact, you can easily see it, there are no flags, so these are exactly the same. But it says the files are different. Do you see that? This checksum does not match this one, and it even has the change flag. I said, Okay, what the heck is different about these data sets? Now, we should all know because remember, part of what I did was I changed anything that started with DEVTC-ICS, SC-ICS. I can look through the rest of the definition, and all the rest are exactly the same. That’s the biggest difference. If I hit PF11, it’ll show me if there’s anything missing. If I wanted to show you something missing, I’d have to go in and delete something to be able to see that. Now, one of the things I also want to show you is there’s a complete audit. If I wanted to see everything Ezriel did today, I can go into Definitions, and I can say there’s my ID, Esril, and I say today, and show me everything that What Ezriel has done today. This is what I’ve been playing with all day long.

[00:51:33] – Ezriel Gross, Presenter
You can see the migrations, you can see me creating a program over there. If I wanted to, I could back this out. Let’s do it at the package level. We can go into option We’re ready for packages, and we can go into… Where’s my package? Oh, Ezriel, you named your package something different. There we go. We’ll go into here, and We’ll do a back out. Let’s do a back out, option 10. Let’s back this puppy out. Let’s do it in the foreground. Boom, it’s done. Now, you don’t have to believe me. What we can do is we can literally go in and go into option 2, go into the test environment, and we can say, show me everything in this group, and you’ll see there’s no matches. We backed out that group. It’s gone. If I go back to resource changes over here, back under 4 for reporting, and Three for definitions. I look at today, you can see the back out. You know what a person’s done from day one, beginning to end, what’s occurred today? What occurred yesterday? I had one customer say, I, Ezriel, I accidentally deleted a group that had a whole slew of stuff in it.

[00:53:05] – Ezriel Gross, Presenter
I have no idea what was in there. I’m desperate. I know I have a backup CSD, but I’ve been making changes. What do I do? I say, you go in here, you deleted something, you can go and restore it right from here. I could recover what it was. I could literally go in and do silly things like option two, go in and look at my development environment, and I can I pull up the dem group, and I can do delete asterisk. Deletion is success. Oh, my God, I shouldn’t have done that. I can go back into option 4. I can go into resource definitions, and I can say what API command was issued. I can even do it by API command, so I can actually do delete. Pull up all the deletes that I’ve done today. There it is. I do recover asterisk. Obviously, I want the before image in this particular case. He’s done it. It was quick. I can go in option 2, go into development, and there’s all my resource definition, just as they were. You can see you have a full audit trail of what you need. The key as part of a DevOps pipeline is you can get that JCL that I showed you, and you can use that to submit stuff.

[00:54:35] – Ezriel Gross, Presenter
Or as I’m going to show you here, one of the things you can do in terms of the interfaces that are available to you is you have the ability not just to use a batch interface where you can do, this is a connect and a ready, this is a migrate, but you can actually communicate with a SOAP interface. You can actually talk directly to CICS CM if you want to and build your own XML to do any the Packaging ready, unready, approved, disapproved, migrate, back out, install and discard. I didn’t do that in my CICS regions, but you can get it to dynamically install, discard, new copy, and the like.

[00:55:15] – Ezriel Gross, Presenter
Just to finish it up a little bit, what about changes across an LPAR boundary? The biggest issue you have is if you don’t have shared DASDI between the two Lpars and you’re dealing with a CSD file, which is obviously a VSAM file, you need something to compress it down to a flat file and restore it on the other end. You notice I was using an export file, but I never showed you the definitions in them. But nonetheless, that’s how we do it.

[00:55:42] – Ezriel Gross, Presenter
We basically say we can not only take the resource definition, but the package itself, and we can ship it down to an export file, which is a flat file. That flat file, by the way, could be in CSDUP format if you don’t have CXCM on the other side, some people don’t run it in every environment, or it could be in CPSM, sorry, in CIC-CM format, and therefore you can import it on the other side, including the package to migrate it further down the road. Now, you still have to FTP it from one Lpar to another if you don’t have shared DASDI, but that can all be part of a CI/CD pipeline as well. The packaging can also go down to an export file, and then the FTP and the restore and the final migration can occur on a production side all through a CI/CD pipeline. Now, you already saw back out was relatively easy.

[00:56:46] – Ezriel Gross, Presenter
I could do back out in one step. Since I have a history of everything you’ve done with the package, you can always go into the package and see what you’ve done, readied, unreadied, migrate, back out, and it’ll show you a history of everything that’s What has happened to that particular package. You can also recover individual resources if you don’t want to back the whole thing out.

[00:57:07] – Ezriel Gross, Presenter
Now, in terms of audit compliance, you already saw I could pull up a history of any resource definition. I know the date and time that it was changed, who made that change? It’s quite valuable if there’s any audit concerns on changes being made to a development, well, it’s mostly a production environment, you can actually give a report of anything that has changed. Here’s a sample of a report. I already showed you the historical changes using the 3270. But here is us going through the CICS Explorer interface. What we’re doing is looking at the same history I showed you before, and you could see the changes to the TWA size there, zero versus 100.

[00:57:54] – Ezriel Gross, Presenter
Or as I showed you, you can also do it with the 3270. And you know the date and time of the original versus the change and who made that change. So you’d know exactly who may have changed a resource definition.

[00:58:08] – Ezriel Gross, Presenter
Finally, some people still want to run DfH CSDUP to do migrations of big resources, but they want the audit trail and they want the easy way to back stuff out. What they’ll use is they’ll use a CSDUP job, which today we can actually collect the information and update our repository so that we can actually audit the changes made through DfH CSDUP. We do that by wrapping DfH CSDUP with a CCV program wrapper. But nonetheless, then when you run the batch job, it will audit it and tell us who made the change, when the job was changed. Then once it’s in, CICS, because usually you use CSDUP because you’re trying to get a large amount of resources into a CICS environment, or you get a vendor product that It gives you a CSDUP job, and you want to know that it was put in, you want to easily back it out. Once you get it into the CSD, you’re probably going to use the facilities within CICS CM to manage it. But until you get it there, you might want to use CSDUP, or if you want to extract it from one environment to another, we can actually find and monitor any changes through the auditing.

[00:59:22] – Ezriel Gross, Presenter
Now, you can always do cleanup. I didn’t show you any of the cleanup examples because I know I’m running out of time. But nonetheless, you can find things like orphan groups, which are groups that don’t belong to any lists, duplicated definitions, or redundant definitions across multiple groups. Then you could literally use the search, as I showed you, how to find a needle in a haystack. Show me all the pay files using LSR pool one, you can do that simply by doing the search criteria that I showed you earlier. Now, we’ve done the side-by-side compares, so you saw me do that live.

[00:59:59] – Ezriel Gross, Presenter
You saw me do it with a whole group of definitions. Here’s a better example because you can see the M identifies missing definitions. I didn’t have any missing from one group to the other, but it’ll tell you if they’re missing, it’ll tell you they’re different because the checksum values are different. We can see that DT01 just below it compares exactly equal. There’s nothing to look at. You can also look at any change definitions. By the way, if you apply rules during the migration, then you can also say exclude those rules. So don’t look at the data set name because I know I’ve changed it, and then my group would have appeared equal, but I did it for full comparison. Then, of course, once you do the side by side compare, you can literally see what was changed within the definition.

[01:00:49] – Ezriel Gross, Presenter
Now, we also have ZFS support, which says you can migrate bind files, WSDLs, OSGI bundles, web service definitions. The way we do this is we create a ZFS file which just points to a Unix system services directory where you’re coming from and going to. You have the ability to specify up to nine backups. When you do that migration, we will store what was there first. If you actually do a backup, we can replace what you’ve put in there and we can reinstall it in a CICS region. Now you can manage ZFS resources using CICS configuration manager even though they live out on Unix system services, which, by the way, includes bundles, which is tremendous.

[01:01:38] – Ezriel Gross, Presenter
Now, again, that’s a ZFS file resource definition, and it has full backup capability as well.

[01:01:45] – Ezriel Gross, Presenter
What you can see is that as part of a DevOps pipeline, the key is either using the batch JCL to do the packaging and migration of resource definitions, although somebody It can do it in development with the product itself. Then therefore, you can actually, as you code the changes to the application, you can build the resource definitions as well. When you do the migration, then the program changes go along with transactional changes, program definition changes, file definition changes. Then should you need to deploy it, you can deploy the package with the program themselves. Then, of course, you have the audit and analysis capabilities. Should you end up backing out, you have the ability to undo what you’ve done as well.

[01:02:36] – Ezriel Gross, Presenter
Hopefully, I’ve given you an idea of how the product works and shown you how it can play a role in a CI/CD pipeline as part of a DevOps strategy for managing CICS, application changes along with the resource changes. Now I’ll see if there were any questions.

[01:02:59] – Attendee
You can drop your questions in chat or if you want to come off mute quickly, you can ask them directly. I had a question. On the qualifier, when you’re changing it from DEV T to production, does it have to be in a specific a specific data set? Does it have to be the high-end level qualifier or the middle-level qualifier? Is that something you specify?

[01:03:37] – Ezriel Gross, Presenter
In my case, I put an asterisk on the front and back of it. It would have searched or scanned for dev t throughout the entire string, but you can limit it, if you wanted to as well, to only a piece of that string. The rules that you set in place can be very significant. You can identify, you can do it any way you want to. But in my case, I said anything in the string in the data set name that said test change. Sorry, said development change to test.

[01:04:15] – Attendee
Awesome. And-oh, sorry.

[01:04:20] – Ezriel Gross, Presenter
No, go ahead.

[01:04:24] – Attendee
Does it help you to manage CSDs across different versions of CICS when you’re doing a rollout? So if you start in month one and you get your stuff into test environment and then your CICS region, migrations, that is, converted to the next version of whatever CICS version it is. Can this product cope with different versions of CICS CSDs, bearing in mind that there might be different definition changes. For example, I know CAT 1s disappeared with 6.1, isn’t it?

[01:05:00] – Ezriel Gross, Presenter
The rack side of it.

[01:05:01] – Attendee
There might be some definition changes there.

[01:05:04] – Ezriel Gross, Presenter
Can you cope with that? We can cope with it easily. I will tell you, though, that generally, when you take a look at the CICs resource definitions, unless you’re overriding them, you can’t make resource definitions to the IBM groups anyway. When you do the upgrade, when you upgrade a CSD, IBM will automatically install the new group that has the new attributes with the changes, and they always add a letter to the end of the group.

[01:05:31] – Attendee
I’m thinking more the ones that you’ve updated because people do obviously create their own definitions of the IBM supplied definitions.

[01:05:41] – Ezriel Gross, Presenter
Well, you can go in and change them, right? You can actually pull up all the IBM definitions that you’ve modified, and you can do with a couple of clicks, you can say, Change this attribute and all these definitions all at the same time. The answer is yes, but you would have to do it because we I don’t change a definition for you without you saying it. Because think about it, some people might say, Okay, IBM changed all these transaction definitions, but you want to leave them off. We don’t know what you want to do, but it’s easy for me to go into a resource definition. Let me see if I’m still sharing my screen. It’s easy for me to go into a resource definition. Let’s see if I can do this. If I go into, let’s say, development, and I pull up… Let’s pull up programs. Here’s an example. I could have done transactions, but I could say alter, hit Enter, and he says, What attribute do you want to alter? You can go down and set in the case of transaction definitions. Obviously, resource security level turned on or off. You’d be able to change it, and he will alter it in all of them.

[01:06:58] – Ezriel Gross, Presenter
If I wanted to, I could go down to, I don’t know, concurrency, and I hit PF4, and I can make it thread safe. Hit Enter, hit PF3, and he have altered all those program definitions. They were probably quasi reentered. I would assume they were the default, but he’s just altered them all. There is this quick group alter that you can do. No problem. Again, because you have everything that you changed, I can go back and undo everything I’ve just done as well. We won’t change them for you, but we’ll make it easy for you to make those changes, yes, with audit. Does that make sense?

[01:07:41] – Attendee
Yeah, no, I think it’d just be quite useful if it gave a warning because it knew that it wouldn’t be that hard because it’s what Cysprox do anyway. You check to see what your override in the IBM definitions, and then you try if you-Yeah, I can look at them myself.

[01:08:00] – Ezriel Gross, Presenter
I don’t know if I have.

[01:08:02] – Attendee
There’s nothing in here that knows what region, what version you’re going to, and it detects that there’s a potential change there and just flags it up as a warning sign.

[01:08:12] – Ezriel Gross, Presenter
Not that I’m aware.

[01:08:15] – Attendee
You said, for example, you got your own CEMT, which I think a lot of people already have.

[01:08:20] – Ezriel Gross, Presenter
Yeah, I was looking for… I’m sorry. Yeah, but you can do it this way, right? I can look at all the C transactions if I wanted to. Let’s see if I have any. I don’t know what I’ve in this system. It’s not really mine. You can see all the DfH ones, and you can see I actually have some definitions. It looks like if I looked at CEMT, I do have… Well, you have the two from IBM, right? I can compare these two.

[01:08:49] – Attendee
There’s no automated process. It does it automatically just gives you a warning sign because it knows that you’re exporting these to a 6.1 region from a 5.6, and the definition might be different.

[01:09:02] – Ezriel Gross, Presenter
You wouldn’t export them, right? You’d take that CSD, you’d probably make a copy of it, and then you’d issue an upgrade, right? So it would come out of a different IBM group. So I’m not sure that we would have to do some a scan against the list to see, first of all, because you could have C transactions in a group that are not part of the list and they’re not in use anyway. So it would be very hard to automatically detect whether or not you’ve overrided a a specific transaction, and then that list was really installed in a CICS region. I don’t think we’ve done anything like that, but it’s a good suggestion if that was something you were interested in seeing.

[01:09:41] – Attendee
What about if you’re running two versions of CSD? Because just in case you want to back it out. Say you’ve got an environment that’s doing a lot of changes, and you’re running maybe half your production regions on 5.6 and the other half on 6.1. Can Can you actually go to both CSDs and update both CSDs?

[01:10:04] – Ezriel Gross, Presenter
Yes, you can. He will know that one is at one release and one is at the other. In fact, if there are attributes that don’t exist in the old release, but in the new one, they come up as n/ Okay, so we do pay attention to what release you’re running, and we’ll never put in a resource definition that doesn’t belong in the right release of CICS.

[01:10:22] – Attendee
Okay, cool.

[01:10:23] – Ezriel Gross, Presenter
Thank you. You’re welcome. So any other questions?

[01:10:35] – Amanda Hendley, Host
I see a comment in the chat. Okay. Migrations as jobs. Okay.

[01:10:46] – Ezriel Gross, Presenter
I’m going to pull up the chat. It’s not pulling it up for me. Can you… Oh, there it is. Let’s see. You set up our migrations as jobs so we can easily back off if necessary, no manual intervention is required. Yeah, but if you’re setting up as batch jobs, you’re probably setting up with CSDUP and you’re overriding one, and then you’re backing it out to the other. But in our particular case, we’ll have a history of that. Once you’ve actually done the migration, you can actually back it out using a package of resource definitions. But yes, you could set up CSDUP that it will alter or add any resource definitions. You just have to remember to remove it. Remember, we can also install dynamically in a CICS region and back it out and replace the original definition. That’d be really hard to do today with a batch job. I’m supposing you could do it somehow, but I’m not sure how you do install. You’d have to reinstall afterwards, I guess. But I’m sure there are other methods, but this has an audit of everything that you’ve actually done. No manual intervention either, of course. Any other questions?

[01:12:12] – Ezriel Gross, Presenter
Well, I’ll turn it back to you then.

[01:12:14] – Amanda Hendley, Host
Thank you so much.

[01:12:16] – Ezriel Gross, Presenter
You’re welcome.

[01:12:19] – Amanda Hendley, Host
As I said earlier, we will have this video, transcript, and hopefully we can get your slides to share online in a couple of weeks. If you’re not already, I assume you are since you’re signed up, but make sure you’re getting our newsletter for the user groups, so that way you get all of the announcements for the next sessions and when content is available. I want to thank our sponsors again, Broadcom, InteliMagic, and DataKinetics for sponsoring this series. And if you’re not familiar, we do have a DB2 series and an IMS series, so you’re welcome to check those out. Every group meets every other month. And this is how to get involved and stay connected apart from our newsletter. You can find us on X, Facebook, LinkedIn, and YouTube. I would say LinkedIn is probably the place where there’s the most conversation, as you can imagine. And mark your calendars for Seven Deadly Sins of CICS Integrations on November 12th. It should be a great session. We will be same time, same place, November 12th. And with that, if there’s no other questions, I look forward to seeing you all in a couple of months.