Rebecca and I were able to troubleshoot this error after a bit of head scratching:
The extensible extension returned an unsupported error in MIIS.
The stack trace is:
"System.Threading.ThreadAbortException: Thread was being aborted.
at SNINativeMethodWrapper.SNIPacketGetConnection(IntPtr packet)
at System.Data.SqlClient.TdsParserStateObject.ProcessSniPacket(IntPtr packet, UInt32 error)
at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
at System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
at System.Data.SqlClient.TdsParserStateObject.ReadByte()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at XMA_HR.XMA_HR.Microsoft.MetadirectoryServices.IMAExtensibleFileImport.GenerateImportFile(String fileName, String connectTo, String user, String password, ConfigParameterCollection configParameters, Boolean fFullImport, TypeDescriptionCollection types, String& customData) in D:\ILM.Extensions\XMA_HR\XMA_HR.cs:line 102
Microsoft Identity Integration Server 3.3.1106.2"
This error hadn't manifested in development but popped up immediately after transitioning to our integration/QA environment. There were no timeouts that we could find anywhere in our connect strings or XMA code and the stored procedures the XMA was calling ran perfectly fine on their own but when called from the XMA it would bomb after several minutes. The culprit turned out to be a timeout masquerading as something else:
In the Run Profile UI for the Full Import step, the Timeout setting here looks like it is associated with the input file generation process and the successful processing of a full import. My take on this just from looking at the UI is that 90 seconds after my Full Import process has successfully completed the ldif file will be deleted. However, this setting seems to have other subtle effects on the timing of the import file generation process beyond what is advertised and does not appear to be related to when the file gets deleted at all.
To get around this issue, set the timeout to zero (0) – the file is still deleted after the successful import but there is just no timeout for the process.