View previous topic :: View next topic
|
Author |
Message |
subratarec
Active User
Joined: 22 Dec 2007 Posts: 130 Location: Bangalore
|
|
|
|
Hi,
Currently in my organization we are working on a project whose main objective is given below...
Problem:
-----------------------------------
•Application configurations cannot take advantage of Mainframe HA capabilities
•Application platforms (e.g. MSO) go “dark” during scheduled maintenance windows and system outages
•Capacity related outages due to application “hard coded” to specific LPARs
Objective:
-------------------------------
•Eliminate application availability due to single LPAR capacity issues or hardware failure
•Dynamic workload routing to the CEC, LPAR, CICS region or DB2 subsystem based on resource availability
Now to implement this feature we got to do bunch of different work. Among all types of work we are currently concentration of our TSQs and TDQs.
Now for TSQ the solution given to us that we need to create new TSQMODEL and while using the TSQ the load will be distributed among all the regions (if I understood correctly)
Now for TDQs we have much bigger issue. CICS team is saying there is no concept of TDQMODEL (like what we have in TSQ). We have more than 200 programs which are using TDQs (mostly for ATI purpose). So mean many programs and many different TDQs. Now they are saying we can not use TDQs and we are in big trouble. Still not sure what we can replace these TDQs with and we need to have the ATI facility also. Don't know how to go about it. Cause the solution we are trying should leave us very minimal change in our existing program (as we have many programs).
So does anyone faced this kind of issue and if yes, then what should be correct approach where the program changes would be minimal?
We were thinking MQ. One message to MQ and then trigger the corresponding transaction or what about 'Extra Partition TDQ'? Is it possible to share - Extra Partition TDQs amoung different LPAR.
Need your suggestion!! The above is what I understood if there is anything wrong in terminology please let me know I will recheck our documentation.
Thanks |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
Quote: |
Now for TSQ the solution given to us that we need to create new TSQMODEL and while using the TSQ the load will be distributed among all the regions (if I understood correctly)
Now for TDQs we have much bigger issue. CICS team is saying there is no concept of TDQMODEL (like what we have in TSQ). We have more than 200 programs which are using TDQs (mostly for ATI purpose). So mean many programs and many different TDQs. Now they are saying we can not use TDQs and we are in big trouble. Still not sure what we can replace these TDQs with and we need to have the ATI facility also. Don't know how to go about it. Cause the solution we are trying should leave us very minimal change in our existing program (as we have many programs). |
They must not be made aware of What is CICSPlex and Sysplex. You need to have two separate ENQ Models (if you are trying to bring multi CICS region to paired for resiliency) Local and Shared one. Research more on CICSPlex SM. It is not easy as your organization think it is . You need to get experts from application as well as System side and get IBM recommendations on this to do more research and find out all the CICS affinities involved in these changes apart from just TSQ and TDQ.
CICSPlex SM overview |
|
Back to top |
|
|
subratarec
Active User
Joined: 22 Dec 2007 Posts: 130 Location: Bangalore
|
|
|
|
Hi Rohit,
Thanks for your reply. Yes as you have mentioned a pretty big CICS team is working on it. We already have listed CICS affinity commands and with that which all programs are having Low/Medium/High complexity of those affinity commands.
As I mentioned above we have found ways to deal with our TSQs and we already have started working on that (solution is - creating TSMODEL against specific PREFIX under a single GROUP).
In TSQ solution we don't have do much changes in our existing programs (cause we are utilizing current TSQs and rest of the thing will be handled internally by TSMODEL setup)
But the same kind of solution I couldn't find for TDQs. I searched and found that unlike TSQ, TDQ we can't create any such model and thats the reason we have make code changes to eliminate TDQs. Now TDQs we have used extensively because of data passing from one CICS programs to another with ATI facility. Now my query is that I am thinking if we can replace all TDQs with MQs (which will be used internally) and is that correct approach or is there any other way where we can share TDQs also like TSQ?
Note - As we are the owner of our CICS program so it seems we only have to think what is best or easy for us as far as the solution is concerned and have to give the plan to the main CICS ADMIN/SYSTEM PROGRAMMER team. They will review and may come back to us.
I am current checking the link you have provided.
Thanks |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
Quote: |
I searched and found that unlike TSQ, TDQ we can't create any such model and thats the reason we have make code changes to eliminate TDQs. Now TDQs we have used extensively because of data passing from one CICS programs to another with ATI facility. Now my query is that I am thinking if we can replace all TDQs with MQs (which will be used internally) and is that correct approach or is there any other way where we can share TDQs also like TSQ? |
Would you please explain the exact problem you have with TDQs here ? I assume if you have more CICS regions added then you think there is going to be a problem with TDQs , is that what the questions is all about? Apart from all this you still need two ENQ models to deal with CICSPlex env(if you are going to have any) to avoid any contentions. Do you also need GORs?
Quote: |
I am current checking the link you have provided. |
We have already implemented this successfully this year. This is exactly designed to meet your objectives and to support many more good feature.
This shall be the potential solution to the objectives you listed.
Quote: |
Note - As we are the owner of our CICS program so it seems we only have to think what is best or easy for us as far as the solution is concerned and have to give the plan to the main CICS ADMIN/SYSTEM PROGRAMMER team. They will review and may come back to us. |
Not always everything needs a programming change so it is wiser to take their advise at the same time. |
|
Back to top |
|
|
subratarec
Active User
Joined: 22 Dec 2007 Posts: 130 Location: Bangalore
|
|
|
|
Quote: |
Would you please explain the exact problem you have with TDQs here ? |
The main issue we are facing is, we have been asked to remove all TDQs from all our online programs. They told for our current project (High Availability) no TDQ is possible.
As I have very less idea (as I have never worked on this type of assignments) hence I am completely taken aback. Hence I am trying to figure it out with what I can replace all these TDQs.
Thanks |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
May be it’s time you ask why TDQs needs to be removed. Second you could use DB2 or MQs but you could also take advantage of TSQs and CICS START to trigger transactions based on certain depth to replace ATIs. |
|
Back to top |
|
|
subratarec
Active User
Joined: 22 Dec 2007 Posts: 130 Location: Bangalore
|
|
|
|
Hi Rohit,
Thanks! for your reply on this. I had thought of using MQ but implementing will be too much overhead so as you have mentioned above I planned for TSQ with CICS START to implement ATI logic. Now I shared my plan and below is what I got in reply..
Quote: |
"The below is a good thought. But I see some issue. Using a TSQ would cause the programs to take a lot more programming control over the reading and writing of the data. If you issue a RUN or START transaction, The transaction will be triggered in the same local region. That is not the goal of HA (High Availability). You could have 2 transactions running in a different cics region both attempting to read the same TSQ. There would have to be ENQ/DEQ logic added to all programs. The tighter you try and control this method, the more there is a chance of locking a transaction or slowing down the transactions. If you issue the deleteq in one local region, you might actually delete an item (record) that was written from another region, but just missed the reader getting the itemerr in that split second.
Using MQ does cause more programming changes, but all the control is now away from the application program. You write the MQ record, and you’re done. The CICS regions and MQ manager then does all the coordinating of the data handling. Where the transaction that reads this data, is now controlled by CICS and the MQ technique that has been setup. The data reading is also a destructive read, so now deleting of the data is necessary. It is out of the application program’s responsibility." |
Does it make sense to you? For me I am still figuring out but not fully making sense to me. I will still try to convince him to use TSQ but you know...
Thanks |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
I am sure they don’t have enough knowledge of other possibilities of achieving the objectives they have in hand.
1.Ask them to have two GORs defined for two regions.
2. Define two ENQ models one for local region and other one would be shared model for all other regions paired with local one.
3.Ask then to explore more on CICSplex SM, which is suggested already.
4.if you handle shared enqs across cics regions then no way you can interrupt any other task in any region for the same transaction.
5.You can issue a Start and let CICSplex SM decides in which region it needs to be executed based on the health of each region. You don’t need to control that programmatically.
6.MQs add more work of creating and managing them and hence lots of MQI Calls so if it can be avoided then why not?
7.Enq and deq won’t slowdown anything, we have them in all our programs.
8. You have to make TSQ name unique, task# or/and region name, terminal id should be part of TSQ name. So this way you won’t be able to delete someone else’s data and that’s the basic of naming TSQs.
9. Moreover, I am curious how do they plan to trigger a Transaction in a perticular region for high availability using MQs and without CICSPlex? |
|
Back to top |
|
|
subratarec
Active User
Joined: 22 Dec 2007 Posts: 130 Location: Bangalore
|
|
|
|
Hi Rohit,
Thanks! again for your valuable comments on the topic. Yes, I am going through what all points you have written above and I will try to present those points to the management. At the same time, I guess I have to gain more knowledge on CICSPlex SM product cause if they come back to me with more complicated questions then I should be able to at least address that.
From the beginning, I told them I will keep TSQ names unique (4 char trans id + EIBTRMID) then not sure how come other transaction (or same instances of the same transaction) will be able to delete the data? But as you have mentioned above deletion is not possible.
But one point I didn't get and that is GOR. I am not sure what is this GOR. Could you please let me know what 'GOR' stands for? I know AOR,TOR,FOR etc. but no idea on GOR.
Thanks |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
Sure, present them these questions and see what they have to say about it.
GOR - Gateway Owning Region. This option goes hand in hand with CICSPlex.
Quote: |
From the beginning, I told them I will keep TSQ names unique (4 char trans id + EIBTRMID) then not sure how come other transaction (or same instances of the same transaction) will be able to delete the data? But as you have mentioned above deletion is not possible. |
This may not be a unique always , say task1 is running for abcs transaction on a1 terminal and user process another task for the same terminal and transaction, so in this case task1 may not have been finished yet while task2 try to access the resources. |
|
Back to top |
|
|
subratarec
Active User
Joined: 22 Dec 2007 Posts: 130 Location: Bangalore
|
|
|
|
Hi Rohit,
I wrote an email to the HA contact person and tried to explain what you have given above. Now that person doesn't have end to end knowledge on HA setup and it's infrastructure so it seems he will pass my info to the main HA technical team and we may have meeting with them.
NOTE - It seems they are implementing CICSPlex SM product only.
Thanks |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
Very well. It’s very interesting concept to work on and specially fun and challenging when performing volume tests.
You need lot of testing efforts to test and compare Monoplex vs CICSplex region results to make sure they are 100% accurate. |
|
Back to top |
|
|
subratarec
Active User
Joined: 22 Dec 2007 Posts: 130 Location: Bangalore
|
|
|
|
Hi Rohit,
Thanks! for all the help and information. Yes, I am very new this kind of assignments. Maybe this would be a good learning for me but again because I work for an Investment Bank's Wealth Management division we have something called ZDAP - Zero Developer Access Policy and with this policy they have removed all of our main access from QA/PROD region (CICS or DB2 etc.) so sometimes it is very tough for us to learn more about setup related things.
Current a dedicated team is working on VSAM changes (enabling RLS option) and soon we will have to start working on this CICS thing..
I may have to come back again to you if I need any guidance on the same and hope you will assist me they way you did this time.
Thanks |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
You are welcome 🙏. |
|
Back to top |
|
|
subratarec
Active User
Joined: 22 Dec 2007 Posts: 130 Location: Bangalore
|
|
|
|
Again I am replying to this thread. Actually after few months of pause we had meeting with our CICS Integration/System people. I tried to present my thought on how we can have TDQs and no need to replace TDQ with MQ.
But it seems they are pre determined that they will move away from TDQ and will adopt MQs in place of TDQs. In the end it is basically they are passing the bucket to us (application programmers) cause to replace all TDQs to MQs we need to make significant code change.
Now I have another query for CICS HA. That meeting a topic surfaced and that is let's say we have initiated a transaction in one region (lets say by CICS START) and during it's run in that region suddenly because some unavoidable issue region goes down. Then in that scenario what happens? I mean how we can make sure that the transaction then can automatically be routed to another region? Is it possible with this CICSPlex SM env?
May be it is possible and I am not aware of it. But wanted check with you. In that scenario will rollback happens for that transaction and it gets restart/routed automatically in another region so business process should not get affected?
Could you please your thought on the same?
Thanks |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
You are mixing couple of things together... let me try to them answer one by one.
1. If the transaction fails in Monoplex CICS then DTB happens and logs are created and in this case rollback happens and messages remains in MQ. Now based on TriggerType the transaction is self started after certain specified interval or manually by MQSET if type DEPTH is chosen. This is a usual way of working without CICSplex SM.
2. Now with CICSPlex SM paired regions, say rgn1 and rgn2 are paired together for HA. Now certainly transaction sequencing is done thru ENQ and DEQs and there will be now two ENQ models that needs to be defined. Local and Shared ENQ models. In such enabled environments when a transaction is triggered it first comes to GOR (Gateway Owing Region(s)) where the two tasks are created at the same time say tsk1 and tsk2 into rgn1 and rgn2 respectively and based on CICSPlex SM decision either one region takes the priority and executes it and other task (tsk2) goes on wait in shared ENQ as well as Local ENQ. So say rgn1 has got a problem and it crashed so the hold is released and DTB and that's where tsk2 in rgn2 takes the control and starts executing by acquiring LOCAL and SAHRED ENQ. Now there could be more than 2 regions paired and same logic flows thru rest of the regions.
I hope this helps. |
|
Back to top |
|
|
subratarec
Active User
Joined: 22 Dec 2007 Posts: 130 Location: Bangalore
|
|
|
|
Hi Rohit,
Thanks!! a ton for your time and reply. I am going through what you have explained above and the link you have given. As usual for any query I may bother you a bit
Thanks |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
No Problem, You're Welcome!!. |
|
Back to top |
|
|
|