For some background, we've grown our Business Intelligence team on using the SQL Server stack of tools (SQL Server 2019 Enterprise, SSIS, SSAS, SSRS & SQL Server Agent for scheduling jobs) from a handful of ETL jobs to generate a cube to now more than 50+ cubes with some jobs taking multiple hours to run (bulk loading dataflows with 100+million rows with upwards of 50+ lookup tasks is one example of one of the heavier modeling jobs).
The issue I'm now trying to troubleshoot is, when reading excel files in SSIS, we occasionally get an Unexpected Termination in the SSISDB logs. Generally it clears up with restarting the ssis package via the SQL Job Agent. At worst we could try restarting the box hosting the SSIS executions. I've noticed that it happens more frequently when we have multiple excel extracts going on concurrently across agent processes (10+ Excel loads in one package is okay, but 1 Excel load in 10 different packages, which are scheduled at the same time in sql job agent can occasionally hit the Unexpected Termination)
I've done some reading of the documentation and they clearly have a multithreaded limitation
https://www.microsoft.com/en-us/download/details.aspx?id=54920&WT.mc_id=rss_alldownloads_all
"The Access Database Engine 2016 Redistributable is not intended:"
...
" To be used by a system service or server-side program where the code will run under a system account, or will deal with multiple users identities concurrently, or is highly reentrant and expects stateless behavior. Examples would include a program that is run from task scheduler when no user is logged in, or a program called from server-side web application such as ASP.NET, or a distributed component running under COM+ services. "
This leads me to ask if there's a better replacement, hopefully a drop-in driver replacement so we don't need to touch 100+ SSIS packages unless we really have to.