Timeout in Integration Studio

Timeout in Integration Studio

  
I'm receiving a timeout error in Integration Studio while trying to import entities from a linked DB2 server.  When I get to the page that allows you to choose the entities you want to import, it sits for a while until I receive the following message:



I have tried entering the following on my machine.config file under system.web:

<httpRuntime executionTimeout="1200" maxRequestLength="640000" />


I'm not sure which timeout is the correct one to set.  Any help would be greatly appreciated!


Thanks,
Matt
Hey there,

This reply is like a bump, I'm having exactly the same situation.

Any ideas?

Cheers,
Pedro Lima.
Hi Pedro,

Like Matthew mentioned the solution is to increase the timeout in the machine.config file.
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\machine.config

The executionTimeout should be added in the httpRuntime element:


Regards,
João Rosado
Viva,

Thanks for the answer João, but i added that row and now the Error is different.
I was looking for some ideal configuration if such thing exists.

Error message i have now: 


Thanks again,
Cheers.
Pedro Lima
Hi Pedro,

Can you check the error log in Service Center?
I would guess that you are hitting the Query Timeout now. You can in Configuration Tool increase the Query Timeout.



Regards,
João Rosado
Hello,

Tried and it didn't help. The database I'm trying to integrate have around 90.000 tables.

Ps: Nothing on the error log.

Thanks João, very nice response time.
Pedro Lima

Hi Pedro,

It's strange that you don't have any errors logged. Usually "There was an error processing your request" errors always leave logs.

Anyway, I have a suggestion just to see if the problem is because of the quantity of tables.
Instead of using a user that has access to all 90000 tables, use a user that can only see 1 or 2 tables and try to introspect those.

By the way, how many tables will you actually import from the 90000?
I ask this because if it's not many, you could just create the entities manually. The wizard is just an accelerator to fill the names/attributes in the Integration Studio UI.

Regads,
João Rosado
Hey there,

Yes i managed to connect to the tables manually, but it wasn't the goal.
Indeed the wizard is "just" an accelerator, but thats an important "just" in the process.

Thanks for the help.
Pedro Lima
Hello!
This topic is almost 2 years old but I'm currently having the problem described here. I've read all the topic.
I'm aware that the final solution that worked was to manually create in Integration Studio the table to be imported, but I'm trying the first solution, which is to increase the timeout of the HTTP request.
First, I'm using Integration Studio 8.0.1.60 which is the most recent version, with Windows 7 64-bit.
In my laptop I have several .Net framework versions, 32-bit and 64-bit:
C:\windows\Microsoft.NET\Framework\v2.0.50727\CONFIG
C:\windows\Microsoft.NET\Framework\v4.0.30319\Config
C:\windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG
C:\windows\Microsoft.NET\Framework64\v4.0.30319\Config
Since I didn't know which of these versions was being used by Integration Studio 8.0.1.60, although I suppose is 2.0, I changed in all of the those versions, in the file "machine.config", the "executionTimeout" as so:
"
    <system.web>
<httpRuntime executionTimeout="1200" maxRequestLength="640000" />
(...)
    </system.web>
"
Although I did that, the timeout in Integration Studio would still be reached at 10 minutes, instead of 20 minutes (1200 seconds) which was what I was expecting.
Didn't know if it was necessary but I rebooted the laptop after making changes to the several files "machine.config".
-
Any suggestions on what am I doing wrong here?
Thanks.
are there many tables?

for me it helped to create a "view" of the database which contained less tables.
then the import went much smoother

Hi tiago,

There are 2 timeouts problems:

One is at the Integration Studio side, on your machine.
You can check the defaults on those in the file at C:\Program Files\OutSystems\Integration Studio 8.0\IntegrationStudio.exe.config

The other one is at the server side (and those are the ones that are changed in the machine config that you mentioned). Unless you also have a community edition on yout laptop, those changes you mentioned won't do anything since they would need to be made on the server side.

It will timout on the minimum of both sides, so it's important to try to understand where it is happening.

I can say that there are improvements being made in this subject, but they will most likely only be available on the next major version, so they will not help you on a 8.0.x.

Regards,
João Rosado
Hello again.
1)
Yes, there are many tables, a few thoushands. It's an Oracle 11g database.
I don't have much control over the database as to create a "view" with less tables.
The error message I get in Integration Studio is:
"

Error retrieving tables: The request channel timed out while waiting for

reply after 00:09:59.9899987. Increase the timeout value passed to the

call to Request or increase the SendTimeout value on the Binding. The

time allotted to this operation may have been a portion of a longer

timeout. 
"
I guess 00:09:59 is the 10 minutes timeout.


2)
I've tried editing my local "C:\Program Files\OutSystems\Development Environment 8.0\IntegrationStudio.exe.config" setting the following smaller values (previews values were 00:10:00, for 10 minutes, I assume):
"(...)
<basicHttpBinding>
        <binding name="IntegrationStudio" closeTimeout="00:01:00" openTimeout="00:01:00"
            receiveTimeout="00:02:00" sendTimeout="00:03:00" allowCookies="false"
(...)
<binding name="IntegrationStudioSSL" closeTimeout="00:01:00" openTimeout="00:01:00"
            receiveTimeout="00:02:00" sendTimeout="00:03:00" allowCookies="false"
(...)
"
Tried using again Integration Studio (closed and opened) to import tables, but the timeout again happened at 10 minutes threshold, and not at 2 or 3 minutes as I expected.

3)
To overcome this problem I'll try to import manually the table, but as started to try the solution to increase the timeout I'd like to get it to work, for future reference.
Oddly enough, using a VM with Integration Studio and editing "C:\Program Files\OutSystems\Development Environment 8.0\IntegrationStudio.exe.config" the same way as I mentioned before, the timeout happened at 2 minutes... Let's see if I can continue from here.
1) I've managed to manually import the table (actually it's a view) from the Oracle database, so my problem is solved.

2) In my machine (a VM) I managed to increase the timeout to 40 minutes by changing the file "C:\Program Files\OutSystems\Development Environment 8.0\IntegrationStudio.exe.config". Now I get a timeout at 20 minutes with a different error, the second type of error that Pedro Lima also got before:

I checked Service Center logs and found this:

and

"

   at ssServiceCenter.Actions.WsIntegrationStudio.WebSrvcIntegrationStudioEntityIntrospectionGetTables(HeContext heContext, String inParamusername, String inParampassword, RCEntityIntrospectionServerRecord inParamserver, RCEntityIntrospectionDatabaseRecord inParamdatabase, RLEntityIntrospectionTableRecordList& outParamtables)
   at ssServiceCenter.WebServices.IntegrationStudio.EntityIntrospectionGetTables(String inWSusername, String inWSpassword, WORCEntityIntrospectionServerRecord inWSserver, WORCEntityIntrospectionDatabaseRecord inWSdatabase, WORCEntityIntrospectionTableRecord[]& outWStables)
-Env-
eSpaceVer: 0 (Id=1, PubId=1, CompiledWith=8.0.1.38)
RequestUrl: https://desout2.estradas.pt/ServiceCenter/IntegrationStudio.asmx (Method: POST)
AppDomain: /LM/W3SVC/1/ROOT/ServiceCenter-1-130995827271875000
FilePath: C:\...\PS\running\ServiceCenter.1244356872\
Locale: en-US
DateFormat: yyyy-MM-dd
PID: 3196 ('w3wp', Started='10-02-2016 12:58:46', Priv=561Mb, Virt=5869Mb)
TID: 15
Thread Name: 
.NET: 2.0.50727.5483
"
Maybe this only can be addressed by changing configurations on the server, which I do not have access.

And also this log in an extension method:
"
   at System.Data.Common.UnsafeNativeMethods.OCIStmtFetch(OciHandle stmtp, OciHandle errhp, UInt32 nrows, FETCH orientation, MODE mode)
   at System.Data.OracleClient.TracedNativeMethods.OCIStmtFetch(OciHandle stmtp, OciHandle errhp, Int32 nrows, FETCH orientation, MODE mode)
   at System.Data.OracleClient.OracleDataReader.ReadInternal()
   at System.Data.OracleClient.OracleDataReader.Read()
   at OutSystems.NssIntegrationStudio.DbSchemaOracle.getDbTableReferences(IDbTransaction trans, Boolean isDbLink, String srvName, String tableName, String owner, String dbName, Int32 timeout)
   at OutSystems.NssIntegrationStudio.DbSchema.GetTableList(String srvName, String dbName, Int32 timeout, ServerType serverType)
   at OutSystems.NssIntegrationStudio.CssIntegrationStudio.MssEntityIntrospectionGetTables(RCEntityIntrospectionServerRecord ssserver, RCEntityIntrospectionDatabaseRecord ssdatabase, RLEntityIntrospectionTableRecordList& sstables)
   at ssServiceCenter.RssExtensionIntegrationStudio.MssEntityIntrospectionGetTables(HeContext heContext, IRecord inParamserver, IRecord inParamdatabase, RecordList& outParamtables)
"