I got called in to take a look at a really odd situation where a project team encountered an issue where MEC would only process 3 messages every 10 seconds. Looking at MEC, they were completely right, I could see a message being processed roughly every 3 seconds.
In M3CE we don’t have a huge amount of access to look at what is happening in the background so we needed to do some detective work. The MEC map itself was pretty simple, but it was a custom MEC map and it was coming in from ION. Looking at IONs OneView we could see that a message was being sent to the M3 connector roughly once every 3 seconds.
Looking at the document flow, it was pretty simple, a file comes in from a directory via the Enterprise Connector, then it goes to M3 – not really a lot going on there that could slow things down.
Taking a step further, we looked at the customers server that the Enterprise Connector was installed on. Plenty of disk-space, plenty of RAM, CPU was busy but not alarmingly. Enterprise Connector itself looked pretty happy, though fairly busy.
Basic flow was
At this stage we looked at the set up of the connector in ION Desk – all of the different incoming documents were being read from the same directory, they were differentiated by different wild-card patterns in the file name :-O
We take a look at the directory Enterprise Connector is reading – it’s incredibly slow to enumerate in Windows Explorer. Eventually we determined that there was north of 450,000 files in the one directory, most not related to the process we were interested in. When Enterprise Connector (or pretty much anything for that matter) tried to poll the directory it would take a very long time for the OS to return the filtered list.
We stopped Enterprise Connector, renamed the directory and moved incoming files over in smaller chunks and the processing through to MEC vastly improved.
The recommendation was to split the different document types out in to their own directories, to consider multiple Enterprise Connectors and be conscious of the underlying operating systems limitations when dropping large numbers of files to be interfaced.