web stats
Performance tips for large number of channels? - Mirth Community

Go Back   Mirth Community > Mirth Connect > Support

Reply
 
Thread Tools Display Modes
  #1  
Old 06-29-2015, 02:23 PM
clinjohn clinjohn is offline
OBX.2 Kenobi
 
Join Date: Apr 2015
Posts: 95
clinjohn is on a distinguished road
Default Performance tips for large number of channels?

I'm looking for some general help on how to design our channels to avoid performance bottlenecks. Here's the situation:

We've built a test channel for moving X12 messages (as raw files) from a single source in our system to a single destination with a vendor that represents data for a large number of our customers. Although we have hundreds of customers, the amount of data per day for any particular customer is small. We haven't expected the total amount of data or files to cause much queue backup or resource contention with the few other channels we use.

However, the vendor has just thrown us a curve. They want to use separate receiving folders for each of our customers, meaning hundreds of destinations. The easiest way to handle this seems to be to create hundreds of channels that all have the same source, and that determine which files to send where via filters based on file naming conventions.

But what does that mean in terms of resource allocation within Mirth Connect? If each channel uses its own thread, is this going to bump up against memory or heap constraints we need to prepare for? Are there settings anyone would recommend in Mirth Connect? Our database is SQL-Server so another question is, do we need to worry about an increase in database disk space usage for so many channels?
Reply With Quote
  #2  
Old 06-29-2015, 02:36 PM
narupley's Avatar
narupley narupley is offline
Mirth Employee
 
Join Date: Oct 2010
Posts: 7,124
narupley is on a distinguished road
Default

You will certainly see a modest increase in resource usage if you have hundreds of channels versus just one. If you were using one channel with many destinations each having their own filter, I would suggest using destination set filtering in the source transformer to increase performance and storage.

Have you considered still using a single destination, and using Velocity variables to dynamically send to multiple places? You can use map variables to determine the host/port/folder to write to, etc.
__________________
Step 1: JAVA CACHE...DID YOU CLEAR ...wait, ding dong the witch is dead?

Nicholas Rupley
Work: 949-237-6069
Always include what Mirth Connect version you're working with. Also include (if applicable) the code you're using and full stacktraces for errors (use CODE tags). Posting your entire channel is helpful as well; make sure to scrub any PHI/passwords first.


- How do I foo?
- You just bar.
Reply With Quote
  #3  
Old 06-30-2015, 10:42 AM
clinjohn clinjohn is offline
OBX.2 Kenobi
 
Join Date: Apr 2015
Posts: 95
clinjohn is on a distinguished road
Default

Thanks. I have been thinking about a velocity variable based solution, which makes a lot more sense maintenance-wise whether or not it's better in performance. (We won't have to create and test a new channel or destination with each new customer.) Unfortunately, as I mentioned in an unrelated post today, our Mirth service is down and can't be rebooted, so I'm not able to work on this for the moment.

Per the idea of using one channel with numerous destinations, does this offer anything advantageous performance-wise over separate channels?
Reply With Quote
Reply

Tags
channel architecture, optimization, performance tuning

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 05:12 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Mirth Corporation