cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Approving a large number of items times out

Approvers are seeing an issue where they approve a large amount of request at a time (10) and they get an error back on the approval screen.  I impersonated a user and was able to reproduce it.  In the website.log there are 4 lines of error related to the approval.  Two errors in the GetFNMSLicenseData component, 1 in the ScriptManager1_AsyncPost and the last one is an Application Error where the thread timed out and was aborted.  If I refresh the page the requests are approved and processed.  Wondering if anyone has run into this issue when approving multiple requests at the same time?  Is it a possible application pool setting on the FNMS side?

Error getting FNMS license variables DBQuery: SELECT pr.RequestID,ISNULL(pr.LicReservationID,0) AS LicReservationID,ISNULL(pr.LicReserveCount, 0) As LicReserveCount,ISNULL(pr.PurchaseNeeded, 0) As PurchaseNeeded,wp.PackageID,ISNULL(wp.FnmpLicenseScope,0) FnmpLicenseScope,ISNULL(wp.CheckFNMPLicensePosition,0) CheckFNMPLicensePosition,wp.FUID As flexeraId,pr.machinename As machinename,pr.machinedomainname As Domain,pr.Username As Username,u.UserDomain As UserDomain FROM WD_PackageRequests pr , WD_WebPackages wp , wd_user u WHERE wp.PackageID = pr.PackageID_FK AND pr.UniqueUserName = u.UniqueName AND requestId  = 269509 Thread was being aborted.    at SelfService.ESD.GetFNMSLicenseData(Int32 requestId)

(1) Solution
50000K does not seem very large (50M).. Typically, the value is set to "0" by default, meaning no limit.. Can you try bumping up this number, or simply setting the value to 0 to see if this makes a difference?

View solution in original post

(7) Replies

The query you've posted here would be a query directly against the App Portal database, so I would not expect that to be anything related to FNMS application pool settings.  If you open SQL Server Management Studio and run that query manually against your App Portal database, do you get the same result?  Do you have any recent activity in the DatabaseCalls_Error.log on your App Portal server?

Anything expressed here is my own view and not necessarily that of my employer, Flexera. If my reply answers a question you have raised, please click "ACCEPT AS SOLUTION".
The exception is deceiving.. It logs a query which is being run earlier in the method, but it does not really look like it is the query which is causing the problem.. Rather, the delays are coming when trying to communicate with FNMS in order to get a license count. Do you see any exceptions in FNMSIntegration.log if you attempt to approve the requests?

There was an error in the FNMS.integration log when it invoked the SoftwareLicenseGetAvailableByFlexeraID API.  I ran the api on the FNMS server and it returns the licenses available for that arl.  I found this in the event viewer - system logs on the FNMS server at the time the thread was aborted.

A worker process with process id of '11400' serving application pool 'ManageSoftWebServiceAppPool' has requested a recycle because it reached its private bytes memory limit.
 
That application pool on the FNMS server has a memory size of 50000 and it looks like we hit 5 times a minute based on the event viewer logs. 
 
in the App Portal FNMSIntegration.log (I've redacted and removed server and user info)  I have the following:
 

Exception while executing method with parameters flexeraID=arl://MGS-APP-00000030550; computer=xxxxxx; computerDomain=xxxx; user=xxxx; userDomain=xxx; TenantId=; fnmpLicenseScope=0 Thread was being aborted.     at System.String.IndexOf(Char value, Int32 startIndex, Int32 count)

   at System.Web.Services.Protocols.ContentType.GetBase(String contentType)

   at System.Web.Services.Protocols.ContentType.IsSoap(String contentType)

   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)

   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)

   at Flexera.Integration.FNMP.FNMPOnPremService.ComplianceAPIService.SoftwareLicenseGetAvailableByFlexeraID(String flexeraID, String tenantUID)

   at Flexera.Integration.FNMP.FNMPOnPremService.ComplianceAPIService.SoftwareLicenseGetFNMPAvailableByFlexeraID(String flexeraID, String tenantUID)

   at AppPortal.Business.FNMP.FnmsRepository.<>c__DisplayClass20_1.<GetAvailableLicenseCount>b__0(IComplianceApiCommon service)

======

Thread was being aborted. Thread was being aborted.     at AppPortal.Business.FNMP.FnmsRepository.<>c__DisplayClass20_1.<GetAvailableLicenseCount>b__0(IComplianceApiCommon service)

   at Flexera.Integration.FNMP.FnmpServiceFactory.CreateFnmpOnPremAPIService[T](GenericGetApiService`1 method)

   at Flexera.Integration.FNMP.FnmpServiceFactory.GetServiceProvider[T](GenericGetApiService`1 method, String& errorMessage)

Out of curiosity, how long did the SoftwareLicenseGetAvailableByFlexeraID API take to return? I've recently seen something similar in another environment..

13 seconds for that API call to return the licenses available for the arl

50000K does not seem very large (50M).. Typically, the value is set to "0" by default, meaning no limit.. Can you try bumping up this number, or simply setting the value to 0 to see if this makes a difference?

Checking with the FNMS admin on the setting .  We had a couple open issues last year where the settings on the app pool were changed due to the MyApps calls made on the previous App Portal version.  I'm working with the admin on what he changed on the app pool settings.