• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

jms application receiving and processing 400 messages in database and sending reply in 90 sec

 
Jyoti Sharma
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am working to develop a jms application which is receiving 400 messages at a time , they need to pe processed and procedures need to be called for inserting/updating data. procedures are very heavy as validations are also performed in them. each procedure is taking about 10 seconds of time to execute.
My concern is to execute 400 procedures for all 400 messages and also send reply within time limit of 90 seconds by jms application.
No application server to be used(requirement)

Right now my application is able to handle 40 messages in 90 seconds.Ineed to improve it's performance by 10 times

Any help ?
 
Luciano A. Pozzo
Ranch Hand
Posts: 112
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Some times we reach the limit of the code performance. Maybe you will need another machine for processing the messages(a cluster).

Or you can post your code for us, and give more details about your requirements and architeture.
 
Onkar Joshi
Ranch Hand
Posts: 116
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Cost per developer per month - $3500
Cost of 4 developers spending 2 weeks to improve performance in various ways like app server tuning, db tuning, architecture etc. - $7000
Cost of 16GB Server memory - $600
Cost of a 12 core AMD Opteron CPU - $1000
Good quality SSD for your hot persistent data - $600

Moral of the story - Better hardware can be a much cheaper option.

Also, faster hardware also means a lot of developer time saved in the long run.
 
Onkar Joshi
Ranch Hand
Posts: 116
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
10 seconds to do something sounds like quite a lot-

Try to check if all cores of all CPUs on your machine are tied at 100% throughout the processing.

Reduce the number of messages being processed simultaneously until you still have 100% for all CPUs. (This will ensure that CPU is not getting busy doing task scheduling rather than processing)

Check if IO is excessive - Use something like iostat / vmstat.

Check your log files and logging levels - Too much logging would cause IO burden.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic