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.
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.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
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.
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.
Servicedesk 7.0 MR1