This content has been marked as final. Show 1 reply
with no Information about what your App needs to do, I can only give you things on your way, you probably know:
- Make use of EJB3 with Hibernate or JPA including some Caching (Infinispan works nice)
- Load as few data as possible, as much as needed. No more.
- Load even fewer data from your database
- Design you code to perform only the things, you really need. Don't make the code smarter as it should be.
- Let the Database make as much work as possible (i.e. use one Statement using Joins instead of a lot of small Database Queries)
- Make sure, you have Indices on the right Columns (Data Model Design)
- Keep your Web-Sessions as small as possible
- Use rather a own Business Locking over Optimistic Locking (i.e. Last-Changed-Flag or Version Column in your Data-Model). Optimistic Locking adds lots of CPU overhead and additional (if used) Cache-Handling
- Try avoiding Session-Replication in case when you would like to make a JBoss cluster
- If you would use a Web-App, favor Ajax-Requests over Page-Reload - it makes feel a faster application
- Cache time-consuming stuff (i.e. if you use drools, avoid compiling rules on each execution)
- Favor in-memory Objects over persistent Objects, where possible (i.e. when you just want to track a Progress of an Process use some Stateful EJB or a Managed Bean instead of writing a row in your Database for each Step)
Beside this, your Hardware-Config sounds neat!
If you have any specific Questions, just post 'em.