No announcement yet.

Performance tips for large number of channels?

  • Filter
  • Time
  • Show
Clear All
new posts

  • 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?

  • #2
    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.


    • #3
      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?