?
Solved

What's the best strategy to deploy my web system to large pool of users (using JBoss and Oracle DB)

Posted on 2003-03-31
4
Medium Priority
?
314 Views
Last Modified: 2010-03-17
Hi,
  We have developed our system using JBoss 3.0.4 (tomcat 4.1.12). We're using Oracle 8i database. We also interface information from other Oracle database using dblink (the Siebel and Peoplesoft applications which is stationed at different machines).

  Now we need to roll out our system to 1,500 users. So, the concurrent access at one time can reach 1,500.

  We have heard so far a lot of system encountered problem when they go life to large pool of users, for eg: connection limit reached, exceeded the cursor limits, web server crash, etc.

  Is there anybody can guide me on the roll out strategy? (not from the business perspective, as we cannot control the number of users using the system at any time). Any info that can help to roll out smoothly, like the architecture, what kind of configurations needed to be made at JBoss as well as Oracle DB.

  So far, is there anybody using JBoss and Oracle DB and the system has been rolled out to a few thousand users and the system still working fine? Can someone share the experience/learning points with me?

  Somebody has proposed to me use 2 web server with standalone database. At the end of the mth, synchronize the data back to the centralised database. Not too sure is this strategy good, but the maintenance is high. Especially when you need to view the report of the data and if there are changes to some code values which are shared by all. The synchronization cost is high.

  Our another problem is the machine issues. We can't afford high end machines.

  Hope someone can help me. Thanks.
0
Comment
Question by:littletortoise
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 9

Expert Comment

by:vzilka
ID: 8246278
What we usually do is use a product that simulates the behavior of users.
We define a normal user transaction (or several of them), write a script, and run the tool.
I can suggest some open source tools for you, for example at http://deluge.sourceforge.net/

Or you can buy a commercial tool, like a tool from Mercury Interactive (called LoadRunner) but that is very expensive.

About the number of users - usually not all 1500 users are logged on the same time, so maybe your requirements are a bit too high.

But if your application doesn't require too much memory, then two-three PCs should suffice (but it depends on many issues, like size of HTTPSession, number of EJBs, use of transactions and more).

I work for a consulting company and we know some applications that work in this load.
0
 

Expert Comment

by:eelgueta
ID: 8247860
Have you taken a look at Oracle RAC?

That's the clustering technology from Oracle in Linux.

For the web part, usually a DNS-based load balancing among two or three servers is enough.
0
 

Author Comment

by:littletortoise
ID: 8250246
Hi vzilka and eelqueta,
  Thanks for your replies.

  We're currently trying to look into JMeter to do the load stress. It's really rush. I think developers actually should do incremental performance test along the way, but not the last minute lump everything for stress test. Well, this is just a way of life :)

  For Oracle RAC, I think this feature requires a separate license, does not come together with database. If so, I think we can't afford that.

  Does anybody know how to do the configuration for  size of HTTPSession, number of EJBs, use of transactions and more? Which file should I modify?

  Thanks.
0
 
LVL 9

Accepted Solution

by:
vzilka earned 750 total points
ID: 8251596
Size of HTTPSession is determined by your application.
The more you use HTTPSession object in servlet (and the session object in a JSP), the more you make the HTTPSession object larger.
Number of EJBs is also determined on your development. However, you can configure the properties of the EJB-Pool in JBoss in the jboss.xml file.

For example:
<cache-policy-conf>
  <min-capacity>50</min-capacity>
  <max-capacity>1000000</max-capacity>
  <overager-period>300</overager-period>
  <max-bean-age>600</max-bean-age>
  <resizer-period>400</resizer-period>

Unless you need Transactions in your application, I strongly suggest to remove them. You can do this in the ejb-jar.xml file, under the <container-transaction> tag. The default for an EJB method is Supports, which means that unless you created a transaction - nothing happens. If you use a different type of parameter (like NotSupported, Required or something similar) make sure you do it on purpose.

About stress testing - I strongly recommend stressing the application during the development process. If you check extreme programming techniques, you'll see they recommend having very frequent builds. At least on every other build you should stress test your application.

One more tip - after making sure the application works in load (lets say in a test which is about 2 hour long), do a very long test - like 48 hours. Make sure you have no memory leaks and the application (and the app server) is stable.

Good luck
0

Featured Post

Want to be a Web Developer? Get Certified Today!

Enroll in the Certified Web Development Professional course package to learn HTML, Javascript, and PHP. Build a solid foundation to work toward your dream job!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Meet the world's only “Transparent Cloud™” from Superb Internet Corporation. Now, you can experience firsthand a cloud platform that consistently outperforms Amazon Web Services (AWS), IBM’s Softlayer, and Microsoft’s Azure when it comes to CPU and …
ADCs have gained traction within the last decade, largely due to increased demand for legacy load balancing appliances to handle more advanced application delivery requirements and improve application performance.
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question