|
View previous topic :: View next topic
|
| Author |
Message |
Ziko13
New User
Joined: 19 Jul 2018 Posts: 43 Location: Greece
|
|
|
|
Dear all,
We have a screen in our shop which is letting users write comments. Currently the users have the right to write up to 12 lines in one page and the results are written in a table.
We recently had an improvement which was allowing users to write more than one pages. The comments are written to a CICS queue and when the user presses ENTER the contents of the queue are written to the table. Pages are changed when PF8 is pressed.
Everything was working well in the test partition but unfortunately in production it was stuck and as a result we put the old version back.
What can be the reason for this decrease in performance? Any ideas?
At your service if you need more information.
Thank you in advance. |
|
| Back to top |
|
 |
Rohit Umarjikar
Global Moderator

Joined: 21 Sep 2010 Posts: 3108 Location: NYC,USA
|
|
|
|
Did you find out what part of the code it was stuck ?
You may not have enqued the resources like queues and multiple users hitting it causing one to go on lock or hold .. in test may always be one person testing it so never got to point to test this scenario.
Try putting enq deq logic if it’s not already coded |
|
| Back to top |
|
 |
Ziko13
New User
Joined: 19 Jul 2018 Posts: 43 Location: Greece
|
|
|
|
| Thank you very much for your responce. I will definitely try your suggestion. One more improvement we thought was to use multiple row fetching. The contents of the table are loaded to the queue firstly and the users can browse with pf08 and pf07. We cannot recreate the problem in test unfortunately. Users in production are a few thousands. |
|
| Back to top |
|
 |
Rohit Umarjikar
Global Moderator

Joined: 21 Sep 2010 Posts: 3108 Location: NYC,USA
|
|
|
|
Welcome - multi row fetch will only help if you have many rows of it just few hundreds I don’t think it will solve your problem unless tasks are serialized.
Good luck ! |
|
| Back to top |
|
 |
Ziko13
New User
Joined: 19 Jul 2018 Posts: 43 Location: Greece
|
|
|
|
| Code: |
EXEC CICS ENQ RESOURCE ('QUEUE2') END-EXEC
EXEC CICS WRITEQ TS QUEUE ('QUEUE2')
FROM (QUEUE-ARRAY1)
END-EXEC
EXEC CICS DEQ RESOURCE ('QUEUE2') END-EXEC |
Coded
For ENQ it says CICS compiler option i not in effect but WRITEQ compiles ok. Am I doing something wrong here? |
|
| Back to top |
|
 |
Ziko13
New User
Joined: 19 Jul 2018 Posts: 43 Location: Greece
|
|
|
|
| Nevermind....queue2 had to be in a variable |
|
| Back to top |
|
 |
Rohit Umarjikar
Global Moderator

Joined: 21 Sep 2010 Posts: 3108 Location: NYC,USA
|
|
|
|
| Yes and you need to check enqbusy if you get that means resource isn’t an available and you can delay task and go back check enq again 3 times or so until you fail. |
|
| Back to top |
|
 |
Ziko13
New User
Joined: 19 Jul 2018 Posts: 43 Location: Greece
|
|
|
|
Code example? Management gaves us one more shot at this ...
The screen is divided into two programs. First program is deleting the queue , creates it and loads the contents of the table and the second is doing the processing.
Writeq , deleteq are done with enq , deq.
My main concern is regarding the deleting of the queue. Shall we have it the way it is now or it is more appropriate to create it in the system and emptying it instead of deleting it? |
|
| Back to top |
|
 |
Rohit Umarjikar
Global Moderator

Joined: 21 Sep 2010 Posts: 3108 Location: NYC,USA
|
|
|
|
| Delete queues the end of processing is standard to avoid any bad data showing |
|
| Back to top |
|
 |
Ziko13
New User
Joined: 19 Jul 2018 Posts: 43 Location: Greece
|
|
|
|
Hello,
Our change is ready. We are thinking now of a way to test. I have seen here that with the feature called EXCI you can trigger transcations from a batch program.
Just a COBOL program with a simple loop starting the transaction lets say 50 times.
Do you think this might work?
Best Regards,
Dimitrios |
|
| Back to top |
|
 |
Ziko13
New User
Joined: 19 Jul 2018 Posts: 43 Location: Greece
|
|
|
|
Hello,
Our change is ready. We are thinking now of a way to test. I have seen here that with the feature called EXCI you can trigger transcations from a batch program.
Just a COBOL program with a simple loop starting the transaction lets say 50 times.
Do you think this might work?
Best Regards,
Dimitrios |
|
| Back to top |
|
 |
Rohit Umarjikar
Global Moderator

Joined: 21 Sep 2010 Posts: 3108 Location: NYC,USA
|
|
| Back to top |
|
 |
Ziko13
New User
Joined: 19 Jul 2018 Posts: 43 Location: Greece
|
|
|
|
| I have seen there that EXCI works with transactions that are not interactive ie use maps. My transaction is using a map. Do that mean I cannot use EXCI? |
|
| Back to top |
|
 |
|
|