Slowdown occurs when using applications at first time without connection

AFFECTED PLATFORM:

Platform Version 11.0.528.0

Development Environment Version 11.0.529.0


Hi,

When accessing eSpace for the first time (when the connection is 0), the response of OutSystems is slow (it takes about 20 seconds until the screen is drawn), so we would like to solve this problem.

When eSpace is accessed for the first time, the response (screen drawing) of OutSystems takes time much.

Our customer's users are complaining.

We want to eliminate the delay at the first startup when there is no connection.


As a result of customer investigation, the generated connection disappeared quickly and there was no idle connection.

The customer assumes that a connection is created each time it connects to an external DB causes slow down the response.


Based on this connection, the customer believes that setting the Oracle 'keep alive' can solve the problem.

But It seems that the connection method of Oracle on OutSystems Ver11 .NetStack is 'Oracle.ManagedDataAccess'.

And with 'Oracle.ManagedDataAccess' we aren't able to set 'keep alive'.

The problem that the screen drawing takes 20 seconds has not been solved.

After confirming with Oracle Corporation Japan, the following information was obtained.


=====


If you get an ODP.NET trace, you might get some clues.

The acquisition method is basically that you should check with the OutSystems provider, but in general, you should perform the following trace file acquisition settings in the .NET Framework application configuration file (<application name>.exe.config).

For 'TraceFileLocation', specify the pathname where the trace file is generated.


<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<configSections>

<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>

</configSections>

<oracle.manageddataaccess.client>

<version number="4.121.2.0">

<settings>

<setting name="TraceLevel" value="7" />

<setting name="TraceOption" value="0"/>

<setting name="TraceFileLocation" value="D:\temp"/>

</settings>

</version>

</oracle.manageddataaccess.client>

</configuration>


In addition, if you can obtain a network trace at the .NET Framework level at the following Microsoft URL, you may obtain more useful information, so you should consider obtaining it.

https://docs.microsoft.com/ja-jp/dotnet/framework/network-programming/network-tracing?view=netframework-4.7.2


=====


Therefore, we have any question.

Would you tell us which file should be set to set the trace of 'ODP.NET' of the information provided by Oracle?

Our customer assumes that is 'Web.config'.Is it correct?

Do we need to restart the application server after changing the file?


Best regards.


Hi Ryo,


Four days have passed since you posted your issue, so hoppefully it's solved by now!

If not, and before digging into driver's parametrizations, have you checked the Preparation in that screen that takes 20 seconds to draw? Does the load time drops significantly after the first load, or does it continue to be less slow? Some query or queries could need some attention.


Have you checked the Query Reports in Service Center ( see below )


Or the overall End USer Experience in LifeTime Analytics ( see below)


If you found the reason to be around one or more queries, than answering a couple of questions can help:

- Is there any query fetching binaries ( images or documents, per example )?

- Is there any JOIN performing very slow?

- Is there a lack of indexes in columns used in any WHERE clause?


Taking the external Oracle database into the picture, you can also investigate:

- Is there any DBLINK involved in any query?

- Are there any stored procedures being used somewhere? And doing what? 


Nevertheless, the approach is always to dig small holes at a time, so starting by looking into the DB driver and surrounding configurations could be a long shot for now.

Hope it helps.