• Introducing Dark Mode! Switch by clicking on the lightbulb icon next to Search or by clicking on Default style at the bottom left of the page!

'Processing' delayed in 8.12

Tom_Davidson

VIP Member
I'm wondering if anyone else is having this issue, it occurs in many grids but for my example I'll use P42101.

When do a find, and get my list of orders all seems good. Then when I use QBE to change 'last status' to a different value, say 620. About 30% of the time there is a 5-6 second delay before the 'Processing' wheel in the upper right appears. Other times the 'Processing' wheel appears instantly.

I am running this from a client one hop away from my servers (ES, OAS) so I'm pretty sure it isn't network.

Has anyone else run into this?

Thanks.

Tom

8.12, 8.98.4.4, IBM i ES 6.1, OAS
 

altquark

Legendary Poster
Hi Tom

You're seeing the delay in the back based on the new type of "select" statement you're having to use. More than likely, whatever database (iSeries DB2/400 ?) is having to choose the optimal method for the select that you've requested. Its checking to see what indexes have been built to identify the right path to use, if any. On an iSeries its looking for Logical Files and creating SQL Packages to help the query.

Add into the network latency for the initial select, until the first set of rows are being returned and the bandwidth between the client, the web server and the enterprise server - and that pretty much is going to incorporate the entire delay.

So - on a "find" on the P42101 - you click the button. The web client sends the command to the HTML server. The HTML Server then processes this request and creates "JDB" database query logic. This then gets passed to the middleware that converts it to the correct SQL that is needed for the database type used. Don't forget it also checks security records in memory to ensure that you're allowed to see the data. Then the fully structured SQL is passed via JDBC to the database. The database engine then picks up the query, and breaks down the query to identify what indexes/temporary files/memory to use. Once it does that, it grabs the first few rows. Once the "select" has occurred - then the database returns information to the Application Server to update it to say it is "ready" to send the data requested. At this point the "processing" wheel is then displayed, and the server then performs "fetch next" for each grid row. Once the grid rows are selected, then the "processing" wheel logic ends. When the user hits "page down" - the session is still open, so the initial SQL Select doesn't need to occur - and it instantly starts showing the "processing" logic.

Now, SQL connections are also shared using JDBC - so it also might be that the SQL Statement HAS already been created and is available on the database server side, thereby for those times, the "processing" wheel is instantaneous.

I hope that kind of explains it all. To really dig down and find out if there is an issue, you might have to turn full debug on to identify where the "gap" is at the application server level for the session, and use Performance Workbench to identify if its the database server or not. Especially long periods of delay might also be to do with incorrect JDBC settings, incorrect Client Access settings or a bug in the tools release somewhere along the line. It might also be affected by too row level security if its being used.
 

Tom_Davidson

VIP Member
Thanks Jon,

Maybe people are just noticing it now. I always figured that the 'Processing' wheel was generated somewhere by either Java Script on the browser, or by the web server once it had the request. I figured all the other stuff i.e. SQL optimization, data retrieval, happened AFTER the 'Processing' notice.

Has when the 'Processing' wheel is generated changed from tools to tools release?

Tom
 

altquark

Legendary Poster
Well, the "whistling policeman" animation in the fat client would only start when data started streaming to the client, ie, after the "select" had occurred. If you remember back then, the "whistling policeman" would appear without animation for some time, and then when he started animating, you knew data was streaming. The processing animations have definitely changed between tools releases - but the same overall process occurs - theres an animation (or not) for the "start" of the SQL - and then an animation for row-fetching. The latest (9.1.5) tools release has a blue-bar animated "GIF" that displays as soon as you click "find". Then if you click "go to end" - the screen goes blank and a "processing" screen is displayed. Other tools releases did other things....
 

Tom_Davidson

VIP Member
God Jon,

We ARE old. Well I am ;) I had completely forgotten about the policeman.

Alzheimer's here I come, soon I'll be learning lots of 'new' stuff all over again

Tom
 
Top