Question

Web service long response time

  • 30 April 2021
  • 6 replies
  • 416 views

Userlevel 5
Badge +15

Hi

 

Customer noticed time to time that wadaco terminal freeze for none specific step for about 20-60s. I find out that one of the reason is checking wadaco license for every new or updated wadaco session.
So probably there is some issue with web services. 

For test I prepared below procedure as o copy of license check using by Wadaco.
Then I noticed that when I open new test window in PLSQL Developer first every launch of this anonymous block on IFSAPP account takes about 20-60 seconds. It waits on calls:
  Plsqlap_Server_API.Invoke_Record_Impersonate('BrowseLicenseFile', 'GetCustomLicense', record_);

 

Customer is using AD authentication so maybe here is the problem. As I know Invoke_Record_Impersonate procedure is using IFSPLSQLAP user for authentication. I have got confirmation that this user is not used in AD confirmation.
I heard beside this application firstly tring find this user on LDAP server and this could take much time.

 

How could I figure out the source of this problem? What should I check first? PL/SQL Access provider is ok.

DECLARE
  license_name_     VARCHAR2(200);
  number_of_users_  NUMBER;
  usage_view_       VARCHAR2(200) := 'ACTIVE_DATA_CAPTURE_SESSIONS';
  record_ Plsqlap_Record_API.type_record_;
BEGIN
  dbms_output.put_line('1. '||to_char(sysdate, 'hh24:mi:ss'));
  record_ := Plsqlap_Record_API.New_record('CUSTOM_LICENSE');
--
  dbms_output.put_line('2. '||to_char(sysdate, 'hh24:mi:ss'));
  Plsqlap_Record_API.Set_Value(record_, 'VIEW',  usage_view_, Plsqlap_Record_API.dt_Text_Key, FALSE);
--
  dbms_output.put_line('3. '||to_char(sysdate, 'hh24:mi:ss')||' - '||record_.Name_||' - '||record_.buffer_);
  Plsqlap_Server_API.Invoke_Record_Impersonate('BrowseLicenseFile', 'GetCustomLicense', record_);
--
  dbms_output.put_line('4. '||to_char(sysdate, 'hh24:mi:ss'));
  license_name_    := Plsqlap_Record_API.Get_Value(record_, 'NAME');
  dbms_output.put_line('5. '||to_char(sysdate, 'hh24:mi:ss')||' - '||license_name_);
--  
  number_of_users_ := Plsqlap_Record_API.Get_Value(record_, 'NUMBER_OF_USERS');
  dbms_output.put_line('6. '||to_char(sysdate, 'hh24:mi:ss')||' - '||number_of_users_);
END;


This topic has been closed for comments

6 replies

Userlevel 7
Badge +11

Hi @knepiosko,

 

I fi understood your question correctly, this seems like a customization code segment. 

Note the first ‘New_record’ is passing ‘CUSTOMER_LICENSE’. For Core, it’s passing ‘VALID_LICENSE’. In the impersonate method as well, above code is passing ‘GetCustomLicense’, and if my memory serves me right in CORE it’s ‘CheckUserRoleLicense’.

 

So you might need to look into the customizations done to the customer and the actual requirement of calling this. Because impersonate method is a framework method, so such a delay should be notable in every code logic which using it.

Unfortunately I’m not sure about the ‘IFSPLSQLAP’ comment, if you don’t get any further answers then perhaps reaching out to IFS Consulting could be helpful.

 

Userlevel 6
Badge +16

@Nalaka Samarasinghe I think that its test script/method to simulate what happens in Fnd_License_SYS.Validate_Custom_License (and especially in Get_Custom_License_Info) when its called from wadaco.

Userlevel 5
Badge +15

Exactly Dario You are right. This is a part of standard IFS Applications code.

Userlevel 7
Badge +11

Then I’m guessing you used the code inside FndRole_API. Apologies I’m not really sure about the in detailed framework behind the authentication, but if you don’t find any answers here, then you could raise a IFS Support case for a focused expertise attention since the delay is there in the released application...

Userlevel 6
Badge +16

@knepiosko There have been performance issues with windows mobile and login’s, not sure if this could also affect the license checks.

IFS Applications 10 Supported Platforms (sharepoint.com) 

“Windows Mobile client login to the IFS Application using the SOAP gateway. This gateway uses Basic authentication. In order to facilitate Basic authentication when AzureAD is used as the identity provider you need to enable Domain services in the AzureAD. This makes it possible for the Azure Active Directory to be exposed as an LDAPS server. Even though windows mobile 6.5 works with the Azure AD for authentication, as Windows Mobile being an old platform without any support from Microsoft, It's not recommend to use Azure AD against Window Mobile as it occurs performance issues for few customers.

Use On-Prem AD instead of Azure AD for the windows mobile client”

 

I also found this comment in an internal forum, that seems to be connected to the above:

Issue:

“The Customer is a Cloud customer and they use Azure AD( they have enabled SSO). According to guidelines customer had to configure Azure AD server in a such a way to use LDAPS( for Azure AD), but when Managed service configured the Application server to use LDAPS, WADACO scan gun connection was very slow(a lot of time outs with scan guns, also issue was some times intermittent), it was a big issue for the customer. it looked like LDAPS issue in Azure AD server, we asked the customer to troubleshoot with Microsoft tech, but tech could not find the root cause for the issue or solve the issue. As a solution we have configured the application server to access the customer’s in-house AD server - LDAP configuration( Not Azure AD LDAPS), it solved the performance and timeout issue.

General hit: In AD server, it is always better to create a group put users under that group”

Userlevel 5
Badge +15

Hi Dario

 

Customer is using in-house AD server.

In access log I have following lines with some timeouts

10.245.202.6 - - [21/May/2021:06:19:44 +0200] "POST /fndext/clientgateway/AccessPlsql/Invoke?dlgUpdatingRoutines HTTP/1.1" 200 487 867599835
10.20.4.28 - - [21/May/2021:06:21:24 +0200] "POST /fndext/soapgateway?handler=DataCaptureManagement HTTP/1.1" 200 507 130393248
10.20.4.28 - - [21/May/2021:06:22:53 +0200] "POST /fndext/soapgateway?handler=DataCaptureManagement HTTP/1.1" 200 392 42011906
10.20.4.202 - - [21/May/2021:06:24:35 +0200] "POST /fndext/soapgateway?handler=DataCaptureManagement HTTP/1.1" 200 508 10567351
10.20.1.10 - - [21/May/2021:06:25:18 +0200] "POST /fndext/soapgateway HTTP/1.1" 200 552 24693969
10.245.202.5 - - [21/May/2021:06:56:52 +0200] "GET /websocket/notifications HTTP/1.1" 101 - 1260016694
10.245.202.12 - - [21/May/2021:07:25:08 +0200] "GET /websocket/notifications HTTP/1.1" 101 - 300004908

Customer experienced error at 21/05/21 06:23:35,242000 and it corresponds with line 10.20.4.28 - - [21/May/2021:06:22:53 +0200] "POST /fndext/soapgateway?handler=DataCaptureManagement HTTP/1.1" 200 392 42011906 as I think(06:22:53 plus 42s equal 06:23:35).