Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Web Service Listener only allows five concurrent client connections #2312

Closed
rbeckman-nextgen opened this issue May 11, 2020 · 6 comments
Closed
Milestone

Comments

@rbeckman-nextgen
Copy link
Collaborator

@rbeckman-nextgen rbeckman-nextgen commented May 11, 2020

A fixed thread pool (five threads) is hard-coded into the receiver. Instead this should be configurable.

Imported Issue. Original Details:
Jira Issue Key: MIRTH-2376
Reporter: narupley
Created: 2013-03-01T11:32:50.000-0800

@rbeckman-nextgen rbeckman-nextgen added this to the 3.4.1 milestone May 11, 2020
@rbeckman-nextgen
Copy link
Collaborator Author

@rbeckman-nextgen rbeckman-nextgen commented May 11, 2020

This should have been fixed with MIRTH-3167, but that value of 5 is still hard-coded.

Imported Comment. Original Details:
Author: narupley
Created: 2016-06-02T09:30:35.000-0700

@rbeckman-nextgen
Copy link
Collaborator Author

@rbeckman-nextgen rbeckman-nextgen commented May 11, 2020

Revisions 8056/8057: The Web Service Listener server will now use an executor with a number of pool threads equal to the channel max processing threads, plus a few more to allow for concurrent WSDL/XSD requests. The TCP socket backlog is set to 256 to be in line with what we do for the TCP Listener. In the future a dedicated Max Connections option may be added to the connector (MIRTH-3974).

Imported Comment. Original Details:
Author: narupley
Created: 2016-06-02T09:37:25.000-0700

@rbeckman-nextgen
Copy link
Collaborator Author

@rbeckman-nextgen rbeckman-nextgen commented May 11, 2020

Attached 3.4.0 group for testing. When you start up the sender channel, you should see 10 messages received by the listener at once, but instead in 3.4.0 you'll only see 5, and then after 10 seconds have elapsed you'll see the remaining 5 process. In 3.4.1 all 10 should be received by the listener immediately.

Imported Comment. Original Details:
Author: narupley
Created: 2016-06-02T09:48:33.000-0700

@rbeckman-nextgen
Copy link
Collaborator Author

@rbeckman-nextgen rbeckman-nextgen commented May 11, 2020

OS(s) and JRE version: virtual Window 7 with JRE version 1.8.0_91-b14
Version(s)/Build(s) to reproduce failure: mirthconnect-3.4.0.8000.b1959-windows-x64
Version(s)/Build(s) to verify fixes: mirthconnect-3.4.1.8057.b139-windows-x64
How Tested:

  • Download & import the attached channel group
  • Deploy channels (Test Web Service Listener & Sender) & Start Sender channel
  • Monitor Dashboard for number of msgs received/sent on Listener Channel
  • Verify Listener channel can receive 10 incoming msgs at once
  • Modify Listener Channel to Max Processing Thread = 8 (from 10)
  • Redeploy channels
  • Verify Listener channel can receive 8 incoming msgs at once

Verified Fixed:
Before fixes, Listener channel received the most 5 msgs at a time
With FIXED, Listener channel immediately received 10 incoming msgs or according to the defined Max Processing Thread

Additional Info: used mirthdb=postgres for this test
Using Derby would intermittently get Error about duplicate key
ERROR (com.mirth.connect.donkey.server.channel.Channel:1248): Error processing message in channel Test Web Service Listener (8f605038-3a54-4a76-b7ca-f1ecb1582083). com.mirth.connect.donkey.server.channel.ChannelException: com.mirth.connect.donkey.server.data.DonkeyDaoException: java.sql.SQLIntegrityConstraintViolationException: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'D_M2_PKEY' defined on 'D_M2'.

Imported Comment. Original Details:
Author: minht
Created: 2016-06-02T11:00:42.000-0700

@rbeckman-nextgen
Copy link
Collaborator Author

@rbeckman-nextgen rbeckman-nextgen commented May 11, 2020

That error is known for Derby when using multiple processing threads: MIRTH-3871

Imported Comment. Original Details:
Author: narupley
Created: 2016-06-02T11:15:05.000-0700

@rbeckman-nextgen
Copy link
Collaborator Author

@rbeckman-nextgen rbeckman-nextgen commented May 11, 2020

Successfully verified fixed

Imported Comment. Original Details:
Author: minht
Created: 2016-06-02T11:20:42.000-0700

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.