web stats
Concurrent processing: 1 channel = 1 connection? - Mirth Community

Go Back   Mirth Community > Mirth Connect > Support

Reply
 
Thread Tools Display Modes
  #1  
Old 09-23-2015, 11:24 AM
rwhelan rwhelan is offline
Mirth Newb
 
Join Date: Sep 2011
Posts: 15
rwhelan is on a distinguished road
Question Concurrent processing: 1 channel = 1 connection?

Hello,
I've been reading through existing posts about async and concurrent processing, e.g.:
http://www.mirthcorp.com/community/f...ead.php?t=7446
https://www.mirthcorp.com/community/...ead.php?t=2065

The general info I've gotten is that a Mirth channel only does one thing at a time, so either I can set the channel asynchronous, and it will immediately respond "success" to the client and pass the request on for processing to other channels... or I can set the channel to be synchronous, and it will accept a connection, process the request and send back the final result... and *only then* it will accept another connection.

I'm coming from a web development world, so this seems quite odd to me! But it may also be outdated info.

Basically I need something more like a CGI or servlet model -- I need to accept, say, 200 simultaneous connections from different clients, and concurrently process their requests, returning the final result. If that processing takes 600 ms, that must *not* mean the sad 200th connecting client doesn't get a response for 2 full minutes.

Right now our whole Mirth flow is only 2 channels -- SOAP in to a channel listener, then HTTP out (to a custom service). The response from the custom service needs to go back to the caller. It could be a single channel, really, if that helps.

But what's the "right" way to set this up? One load-balancing channel and 200 processing channels seems impractical, especially if we want to scale up from there.

Thanks for any suggestions!
Reply With Quote
  #2  
Old 09-23-2015, 03:45 PM
narupley's Avatar
narupley narupley is online now
Mirth Employee
 
Join Date: Oct 2010
Posts: 7,124
narupley is on a distinguished road
Default

Feel free to leave any suggestions/comments here: MIRTH-3167
__________________
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 09-24-2015, 03:41 AM
santosam santosam is offline
OBX.2 Kenobi
 
Join Date: May 2012
Location: Portugal
Posts: 62
santosam is on a distinguished road
Default

Mirth is a Service Bus which has a very different approach and business model than a web server - you get out-of-the-box messaging with all the goodies but this business model makes it difficult to solve your use case.

As I said in the JIRA issue http://www.mirthcorp.com/community/i...wse/MIRTH-3167, we had to put a HAProxy balancer in front of 60 cloned channels to keep with the producer (a 24 nodes weblogic app...), but with LLP.

You can have an async javascript transformer but then you loose the messaging control...
Reply With Quote
Reply

Tags
async, channel, concurrent, response

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 02:42 PM.


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