Embedded Model causes User Input to Abort - Message: (SearchUser SearchUser) - Thread was being aborted
search cancel

Embedded Model causes User Input to Abort - Message: (SearchUser SearchUser) - Thread was being aborted

book

Article ID: 152041

calendar_today

Updated On:

Products

Workflow Solution

Issue/Introduction

When using an embedded model to import users from a customized component, as shown in the model screenshot,

we noticed the following error:

 

Exception Type : System.Exception

Message: (SearchUser SearchUser) - Thread was being aborted.

Stack Trace

(inner exception)

Thread was being aborted. at System.Net.UnsafeNclNativeMethods.OSSOCK.select(Int32 ignoredParameter, IntPtr[] readfds, IntPtr[] writefds, IntPtr[] exceptfds, TimeValue& timeout)

at System.Net.Sockets.Socket.Poll(Int32 microSeconds, SelectMode mode)

at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)

at System.Net.HttpWebRequest.EndWriteHeaders(Boolean async)

at System.Net.HttpWebRequest.WriteHeadersCallback(WebExceptionStatus errorStatus, ConnectStream stream, Boolean async)

at System.Net.ConnectStream.WriteHeaders(Boolean async)

at System.Net.HttpWebRequest.EndSubmitRequest()

at System.Net.HttpWebRequest.GetResponse()

at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)

at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)

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

at LogicBase.Core.Ensemble.UserMan.Userman.SearchUsers(String sessionID, SearchUser searchUser)

at LogicBase.Components.Ensemble.UserMan.SearchUser.Run(IData data)

at LogicBase.Core.ExecutionEngine.MultiPathProcessComponentExecutionDelegate.Execute(IData data, IOrchestrationComponent comp, String& outputPath, IExecutionEngine engine, TLExecutionContext context)

at LogicBase.Core.ExecutionEngine.AbstractExecutionEngine.DoRunComp(IOrchestrationComponent comp, IData data, TLExecutionContext context)

Log Message :

Log Message : Error starting/continuing dialog model execution

Cause

The entire embedded model was not holding its data long enough for the entire Excel spreadsheet file to be read, and each time it iterated a record in the spreadsheet, it reloaded all previously loaded data into the process memory as well.

Resolution

The real resolution to this issue is to take the processing and handling of the data away from the primary process of reading the data.  The below number diagram with the listed steps will outline the procedure.

1. This step builds the data elements (datatypes) for the method in which the imported user data will be structured.

2.  The 6 components here read the spreadsheets and map the read data to a new variable set.

3.  This group of components takes the results from about and builds a collection of users

4.  Thic component write the collection generated in Step 3 to a database table in the Ensemble database.  This table is emptied, if the process completes to the END component.

5.  This is probably the most important component.  It switches the workflow from synchronous processing to asynchronous.  This dramatically reduces the size and dataset that the subsequent portions of the process use to fulfill their respective roles.  This component is what allowed the import/evaluation/creation process to complete successfully.

6.  Here is where each user is evaluated from the temporary database table written in Step 4, against the User table.

As each user is processed and evaluated, they are either new users and are created accordingly, or existing users found and have any changed data updated, and completed.  Then the next user in the collection/database list is processed.  Once the end component is reached, the table created in step 4 is emptied, and the process is complete.   The Switch Workflow to Asynch component made the process work more efficiently to completion.

Once other note for improved processing.  We also checked and enabled its caching settings, as shown below. Set a time value for the settings.  We used 10 mins.

.


Applies To
Servicedesk 7.0 MR1

Workflow 7.0