A Django site.
March 26, 2007
» The ultimate tool set for Java Web application development



I am in process of launching a new Java-based project, so there is a great opportunity to do it right.

As a background, this project will have a Web UI front with about fifty screens. The team currently leans towards using a component-based Web UI framework. The key values of a tool set that we'd like to pick up are short learning period, ease of development and maintenance and [ideally] integration with popular AJAX toolkits. The development methodology is modified XP.

With all this said, I am wondering what Java community considers a good tool set for Web application development. What do you think?

Regards,

Slava Imeshev

» The ultimate tool set for Java Web application development



I am in process of launching a new Java-based project, so there is a great opportunity to do it right.

As a background, this project will have a Web UI front with about fifty screens. The team currently leans towards using a component-based Web UI framework. The key values of a tool set that we'd like to pick up are short learning period, ease of development and maintenance and [ideally] integration with popular AJAX toolkits. The development methodology is modified XP.

With all this said, I am wondering what Java community considers a good tool set for Web application development. What do you think?

Regards,

Slava Imeshev

March 20, 2007
» Optimizing Perforce Infrastructure for Software Build Management




Perforce has accepted my paper "Optimizing Perforce Infrastructure for Software Build Management" for Perforce Users Conference 2007 May 9-11.



Perforce Users Conference is known to be very technical and practice-oriented. If you use Perforce on a daily basis, it is a great place to learn advanced techniques straight from fellow Perforce users and Perforce engineers.



The cool thing is that this year Perforce User Conference will be held at the Hard Rock Hotel and Casino in Las Vegas!



See you there!


27 June 2007



Update: May presentation is available online now.


Regards,



Slava Imeshev



P.S. Looking for a software build management and Continuous Integration server that works with Perforce? Check Parabuild.





» Optimizing Perforce Infrastructure for Software Build Management




Perforce has accepted my paper "Optimizing Perforce Infrastructure for Software Build Management" for Perforce Users Conference 2007 May 9-11.



Perforce Users Conference is known to be very technical and practice-oriented. If you use Perforce on a daily basis, it is a great place to learn advanced techniques straight from fellow Perforce users and Perforce engineers.



The cool thing is that this year Perforce User Conference will be held at the Hard Rock Hotel and Casino in Las Vegas!



See you there!


27 June 2007



Update: May presentation is available online now.


Regards,



Slava Imeshev



P.S. Looking for a software build management and Continuous Integration server that works with Perforce? Check Parabuild.





June 15, 2006
»
May Occam's Razor Drop On You


I was reading Damon Poole note on values of agile development and stumbled upon this phrase: "The vocabulary doesn't matter either. I don't happen to like the idea of creating new words when there are perfectly good words that mean the same thing." That is exactly the point I have been trying to formulate after seeing multiple attempts to create Pattern Language out of nothing just by naming a process Process. Creators Of New Words and Pattern Inventors, may Occam's Razor drop on you.

Damon also hits the nail on the head saying that the whole value of and the only point of agile software development is in short iterations. I'd like to add to this that "agile coaches" have plugged in the rest to allow them to coach innocent consulting victims and to sell books full of aforementioned rest to the same poor clients. Agile shamelessness it is.

» May Occam's Razor Drop On You


I was reading Damon Poole note on values of agile development and stumbled upon this phrase: "The vocabulary doesn't matter either. I don't happen to like the idea of creating new words when there are perfectly good words that mean the same thing." That is exactly the point I have been trying to formulate after seeing multiple attempts to create Pattern Language out of nothing just by naming a process Process. Creators Of New Words and Pattern Inventors, may Occam's Razor drop on you.

Damon also hits the nail on the head saying that the whole value of and the only point of agile software development is in short iterations. I'd like to add to this that "agile coaches" have plugged in the rest to allow them to coach innocent consulting victims and to sell books full of aforementioned rest to the same poor clients. Agile shamelessness it is.

December 27, 2005
» Telling IDEA Where The idea.properties Is Located From Command Line

It appears that IntelliJ IDEA has a command line option that allows to point it to a location of idea.properties that is different from default. This is the -Didea.properties.file= option.

» Telling IDEA Where The idea.properties Is Located From Command Line

It appears that IntelliJ IDEA has a command line option that allows to point it to a location of idea.properties that is different from default. This is the -Didea.properties.file= option.

May 7, 2005
» FAQ: What's the right hardware for my WebLogic application?

This FAQ has moved to it's permanent location: http://www.viewtier.com/support/online/thread.jspa?threadID=53&tstart;=0
Tired of your job? Need to hire developers? Visit DZone Jobs: great people, great opportunities.

» FAQ: What's the right hardware for my WebLogic application?

This FAQ has moved to it's permanent location: http://www.viewtier.com/support/online/thread.jspa?threadID=53&tstart;=0

» FAQ: Why does WebLogic startup fail if I set up a connection pool with Oracle OCI dirver?

This FAQ has moved to it's permanent location: http://www.viewtier.com/support/online/thread.jspa?threadID=52&tstart;=0

» FAQ: Why does WebLogic startup fail if I set up a connection pool with Oracle OCI dirver?

This FAQ has moved to it's permanent location: http://www.viewtier.com/support/online/thread.jspa?threadID=52&tstart;=0

» FAQ: Why do I get "[EJB:011076] Unable to deploy the EJB because the database table is not accessible"?

This FAQ has moved to it's permanent location: http://www.viewtier.com/support/online/thread.jspa?threadID=51&tstart;=0

» FAQ: Why do I get "[EJB:011076] Unable to deploy the EJB because the database table is not accessible"?

This FAQ has moved to it's permanent location: http://www.viewtier.com/support/online/thread.jspa?threadID=51&tstart;=0

November 26, 2004
» FAQ: What is the optimal number of CPUs per WebLogic instance?

1. What is the optimum allocation CPU's per WebLogic instance?

2. For the second question, let us assume the optimum allocation is two CPU's per JVM. Let I have an application running on a server with two CPU's and one JVM for these two CPU's. It currently supports 100 user load. What if I run another JVM on the second CPU? Can it take more load than what one JVM with two CPU's has taken? What would be the approximate percentage of additional user load that the new setup can support?

3. Http session size, does it affect the number of Servers and CPU's required or it only affects the amount of RAM required on that machine?

A:I seriously doubt it's possible to give exact answers on these questions because there are too many parameters that affect the result, mostly: presence of application wide bottlenecks, database bottlenecks, CPU load and GC patterns.

Yet, there are some basic rules to follow:


o You need more CPUs for a given box if the CPU load under stable load exceeds 80%
o You may add more JVMs if available HW memory exceeds used by one JVM by times.
o You may add more JVMs if CPU load under stable load below 40%
o You need more boxes if there are availability concerns.

The best thing to do here is to run load tests simulating production user behavior patterns and pick a variant that delivers best scalability and throughput.

As for #3 - the more long living objects in the JVM and the bigger the heap, the slower GC. So the rule here is keep heap reasonably low. If there is high demand for heap to satisfy growing load, it can make sense to split app to multiple JVMs with smaller heap, either within one box or into different boxes.

I personally prefer partitioning apps into multiple boxes - it gives better resource use distribution and higher availability - if you put everything into a big fat box and it dies, you are doomed.

Hope this helps.

Regards,

Slava Imeshev
More from Unofficial WebLogic FAQ

» FAQ: I need to use Microsoft JDBC driver with WL 7.0. Where should I put the jar files?



Q: I need to use Microsoft JDBC driver with WL 7.0 (with connection pool & data source). How do I install the Microsoft JDBC driver ? (Where should I put the jar files ?)

A: You can place the driver anywhere you like. Server installation "lib" dir may be a good place to start. You will also have to modify server's startup script to make sure that the path to the driver jar is the first thing in the server startup CLASSPATH.

February 11, 2004
» FAQ: OutOfMemory in WebLogic

From time to time I see questions like this:

Q: "We are seeing OutOfMemory error in the WebLogic log, after that our app becomes inaccessible. The application is not under heavy load. In fact, we can see it even if the server is idle. WebLogic performance console shows that there is plenty of heap available. What's wrong?".

A: Given the symptoms above, the most likely cause of the problem is that the default size of the heap allocated by JVM for long living objects is often too small for a J2EE application is general and for one under WebLogic in particular. Weblogic uses caching a lot, so if you've got many EJBs, there will be plenty of long living object, and they may not fit into perm heap.

To fix this problem, you need to increase MaxPermSize JVM parameter. Go to WebLogic startup script and add -XMaxPermSize=64m or -XMaxPermSize=128m to JVM startup parameters. If you don't have an application memory leak, this change should take care about the problem.

Q: But how do I know if it's not an app memory leak?

A: The first symptom of the app memory leak is that in addition to OutOfMemory, you will see that the memory graph in WebLogic performance console hits the top, and forcing GC doesn't change anything. Fixing this problem is relatively easy. Get a good profiler tool, like OptimizeIt of JProfiler, and run a load test while memory profiling is enabled. Set up a filter to see only your classes and fined ones taking most of memory. It's likely that the same objects will have largest instance counts.

Tips for setting up a profiler.


First, set the JVM memory to as minimum as possible. If you expect WebLogic to run with 1Gb of JVM heap, set it to much lower values at which app can run. It can be 32M, 64M, depending on the app. Is sounds odd, but the reason is that the memory profiler catches JVM GC activities, and as there will be much more object in 1GB than in 64Mb, that GC under profiler will be dead slow, it can be hours, virtually. Set memory to as low as possible.

Second, turn off anything except the memory profiling. Memory profiling itself is slow, so you will want yo avoid any additional overhead in this case. Performance profiling is to be turned off in any case.