91
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by rjolda on August 03, 2025, 02:34:42 PM »Hi Johan,
I was at the webinar. I don't have much to offer but ProcessLink seems to be a focal point for everything that happens. If I were to try to look at this I would look at web_handler and begin to search with maybe what is going through the ProcessLink AFTER your browse procedure. CLOSES.... A very crude way that I can think of is to put a p_web.Trace('hi, I am procedure Browse_city..., etc) at the start of each procedure. Then you can watch your DebugView for what happens AFTER your browse closes. There are probably more elegant ways to do this. Also, it might be doing some housekeeping which might not get you a trace statement. But then you might know what it is NOT.. Also, if you can slice out this browse and part of the program and test it OUTSIDE your full program, you might gain some insights.
Ron
I was at the webinar. I don't have much to offer but ProcessLink seems to be a focal point for everything that happens. If I were to try to look at this I would look at web_handler and begin to search with maybe what is going through the ProcessLink AFTER your browse procedure. CLOSES.... A very crude way that I can think of is to put a p_web.Trace('hi, I am procedure Browse_city..., etc) at the start of each procedure. Then you can watch your DebugView for what happens AFTER your browse closes. There are probably more elegant ways to do this. Also, it might be doing some housekeeping which might not get you a trace statement. But then you might know what it is NOT.. Also, if you can slice out this browse and part of the program and test it OUTSIDE your full program, you might gain some insights.
Ron
92
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by Jane on August 02, 2025, 05:02:21 PM »I watched the webinar recording, Johan.
Helpful hint - Ctrl+Shift+X clears the log in debugview++
Helpful hint - Ctrl+Shift+X clears the log in debugview++
93
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by JohanR on July 31, 2025, 10:00:56 PM »Hi Jane
Asked in the NT user group last night, still no resolve,
but the problem is outside of the procedures.
Once I have more info will post what I've found
thanks
Johan
Asked in the NT user group last night, still no resolve,
but the problem is outside of the procedures.
Once I have more info will post what I've found
thanks
Johan
94
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by JohanR on July 30, 2025, 10:53:08 AM »Hi Jane
Thanks for that idea, will have a look,
it's a decent length, perhaps 20 entries, so will play a roll, but don't think that's the culprit.
Also need to cleanup my procedure and all debug lines, and look with fresh eyes.
thanks
Johan
Thanks for that idea, will have a look,
it's a decent length, perhaps 20 entries, so will play a roll, but don't think that's the culprit.
Also need to cleanup my procedure and all debug lines, and look with fresh eyes.
thanks
Johan
95
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by Jane on July 30, 2025, 07:12:20 AM »Hi, Johan,
Not sure I'm understanding? Do you have a browse with an EIP column and the browse itself is slow to load?
Is the browse page-loaded or file-loaded? How many items are in the EIP dropdown list?
I think that the browse with EIP populates all the EIP possibilities for the column for each row. Which, if you have 15 rows in the browse, would mean it needs to process all of the rows for the EIP selections 15 times. If file-loaded, then for the entire browse. If you only have a few choices that might be reasonable, but if there's a long list there will be a lot of overhead.
When you use an update form, the EIP selections are only populated once when you open the form.
Not sure I'm understanding? Do you have a browse with an EIP column and the browse itself is slow to load?
Is the browse page-loaded or file-loaded? How many items are in the EIP dropdown list?
I think that the browse with EIP populates all the EIP possibilities for the column for each row. Which, if you have 15 rows in the browse, would mean it needs to process all of the rows for the EIP selections 15 times. If file-loaded, then for the entire browse. If you only have a few choices that might be reasonable, but if there's a long list there will be a lot of overhead.
When you use an update form, the EIP selections are only populated once when you open the form.
96
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by JohanR on July 30, 2025, 03:07:59 AM »Hi,
Currently have had to remove the EIP dropbox and replaced it with a popup UpdateForm.
Will return to the problem when I get a chance, and will post any findings.
thanks
Johan
Currently have had to remove the EIP dropbox and replaced it with a popup UpdateForm.
Will return to the problem when I get a chance, and will post any findings.
thanks
Johan
97
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by JohanR on July 29, 2025, 10:27:15 AM »Hi Bruce
Any advice on how to find this possible problem?
Been chasing all sorts of things past few days, but still having an issue.
From your post earlier
>>>>>>>>>>>>>>>>>>>>
My guess is that the reply to the browser is not completing. ie you have some code in the thread, after the drop down is populated, which delays the ending of the thread. In that case the connection is not closed, so the browser does not start processing the reply.
>>>>>>>>>>>>>>>>>>>>
thanks
Johan
Any advice on how to find this possible problem?
Been chasing all sorts of things past few days, but still having an issue.
From your post earlier
>>>>>>>>>>>>>>>>>>>>
My guess is that the reply to the browser is not completing. ie you have some code in the thread, after the drop down is populated, which delays the ending of the thread. In that case the connection is not closed, so the browser does not start processing the reply.
>>>>>>>>>>>>>>>>>>>>
thanks
Johan
98
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by JohanR on July 27, 2025, 09:50:16 PM »Hi Ron
thanks for the idea, am looking into it.
The key is Case sensitive and the filter is constructed by the EIP code
My understanding is if Case sensitive key then UPPER not required?
thanks
Johan
99
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by rjolda on July 27, 2025, 03:04:05 AM »Johan,
I am not sure if it applies here but using the UPPER on any searches really speeds up browses.
e.g instead of where ITM:UID = thisUID go for where UPPER(ITM:UID) = UPPER(thisUID). This takes out the mixed case filtering and speeds up queries.
Ron
I am not sure if it applies here but using the UPPER on any searches really speeds up browses.
e.g instead of where ITM:UID = thisUID go for where UPPER(ITM:UID) = UPPER(thisUID). This takes out the mixed case filtering and speeds up queries.
Ron
100
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by JohanR on July 26, 2025, 12:43:26 AM »Hi Bruce
Think I found the line that takes roughly 5secs
In the LoadViewRecord
It's the next(p_view) between 5555 and 6666
Still using TPS, not sure if this is an issue
Below the code and the view structure.
My next step is going to duplicate and handcode the action of the view and see if it does the same and also to see if there is something to be done.
Any ideas highly appreciated.
Johan
NetWebServerWorkerBase.LoadViewRecord Procedure(View p_View,File p_File,Key p_Key)
err Long
f String(1024)
code
self.trace('TVCweb LoadViewRecord 1111:' & format(clock(),@t06))
f = p_view{prop:filter}
self.trace('TVCweb LoadViewRecord 2222:' & format(clock(),@t06))
p_view{prop:filter} = ''
self.trace('TVCweb LoadViewRecord 3333:' & format(clock(),@t06))
self.trace('TVCweb LoadViewRecord 3333Filter=:' & p_View{prop:filter})
self.AddKeyToFilter(p_View,p_File,p_Key)
self.trace('TVCweb LoadViewRecord 4444:' & format(clock(),@t06))
self.trace('TVCweb LoadViewRecord 4444Filter=:' & p_View{prop:filter})
set(p_view)
self.trace('TVCweb LoadViewRecord 5555:' & format(clock(),@t06))
next(p_view)
self.trace('TVCweb LoadViewRecord 6666:' & format(clock(),@t06))
err = errorcode()
self.trace('TVCweb LoadViewRecord 7777:' & format(clock(),@t06))
p_view{prop:filter} = self.AssignFilter(f)
self.trace('TVCweb LoadViewRecord 8888:' & format(clock(),@t06))
return err
View:item View(item)
Project(ite:item_isn)
Project(ite:item_desc)
Project(ite:item_amt)
Project(ite:item_qty)
Project(ite:item_gr_total)
END ! of ThisView
Think I found the line that takes roughly 5secs
In the LoadViewRecord
It's the next(p_view) between 5555 and 6666
Still using TPS, not sure if this is an issue
Below the code and the view structure.
My next step is going to duplicate and handcode the action of the view and see if it does the same and also to see if there is something to be done.
Any ideas highly appreciated.
Johan
NetWebServerWorkerBase.LoadViewRecord Procedure(View p_View,File p_File,Key p_Key)
err Long
f String(1024)
code
self.trace('TVCweb LoadViewRecord 1111:' & format(clock(),@t06))
f = p_view{prop:filter}
self.trace('TVCweb LoadViewRecord 2222:' & format(clock(),@t06))
p_view{prop:filter} = ''
self.trace('TVCweb LoadViewRecord 3333:' & format(clock(),@t06))
self.trace('TVCweb LoadViewRecord 3333Filter=:' & p_View{prop:filter})
self.AddKeyToFilter(p_View,p_File,p_Key)
self.trace('TVCweb LoadViewRecord 4444:' & format(clock(),@t06))
self.trace('TVCweb LoadViewRecord 4444Filter=:' & p_View{prop:filter})
set(p_view)
self.trace('TVCweb LoadViewRecord 5555:' & format(clock(),@t06))
next(p_view)
self.trace('TVCweb LoadViewRecord 6666:' & format(clock(),@t06))
err = errorcode()
self.trace('TVCweb LoadViewRecord 7777:' & format(clock(),@t06))
p_view{prop:filter} = self.AssignFilter(f)
self.trace('TVCweb LoadViewRecord 8888:' & format(clock(),@t06))
return err
View:item View(item)
Project(ite:item_isn)
Project(ite:item_desc)
Project(ite:item_amt)
Project(ite:item_qty)
Project(ite:item_gr_total)
END ! of ThisView
Recent Posts