Log on:
Powered by Elgg

Matthew Weaver :: Feeds

July 17, 2009

The Impact of Making Product Choices

As part of my job, I help customers to select the appropriate software to either fulfill a need or as a component of a larger solution.  Fulfilling this role means comparing similar software offerings and selecting the best fit.  The challenge in this goal is to map the vendor offering into a subjective requirement, such [...]

read more


Sun Stockholders Rubber Stamp Acquisition

Sun’s long-suffering stockholders approved the company’s sale to Oracle for $9.50 a share Thursday. The deal still needs US and European regulatory sanctions. If, as Oracle’s lawyers said to expect, the deal closes by the end of August, it would be quicker than is usual after a second request for information by Justice Department. The agency is reportedly asking questions about Java.

read more


July 16, 2009

Quest Software and Cloud Computing

Using Cloud means providing our products as a service. Most of these efforts are not public yet, but you can get some of the information on what is coming if you see the recording of my TechEd session. Also, Quest has one of the best virtual desktop (VDI) solutions in the market – vWorkspace. And a growing number of service providers are signing up to provide a virtual desktop service built on that system. Using the cloud for our own offerings. Enabling public and private clouds. 1. Using Clouds Using Cloud means providing our products as a service. Most of these efforts [...]

read more


Stop Blaming Sales!

If sales isn't responding - then marketing is responsible. Marketing's role is to give sales the tools and training they need to sell the company's solutions. It's also marketing's role to get them excited about the newest offerings. So the next time someone starts to blame sales for lack of product acceptance in your customer base or for discounting deals that don't generate the margin or results you expected - think again. It's most likely sales is doing the best they can with what they've been given.

read more


Sun Microsystems Announces Stockholder Approval of Oracle Merger Agreement

Sun Microsystems, Inc. (NASDAQ: JAVA) announced that at a special meeting of stockholders held on July 16, 2009, its stockholders adopted the merger agreement entered into with Oracle Corporation, under which Oracle will acquire Sun common stock for $9.50 per share in cash. Approximately 62% of the shares of Sun common stock outstanding as of the record date for the meeting voted to adopt the agreement.

read more


Adobe Flash Media Server on iPhone

Modulation Index, LLC announced that the Tuner2 Hi-Fi Radio app for Apple iPhone is the first ever iPhone application to natively support the true RTMP protocol for streaming audio via Adobe Flash Media Server. Radio stations can now use a single standard streaming format to serve MPEG-4 HE AAC v2 audio to listeners on Windows, Mac, and Apple iPhone. In addition, Modulation Index announced that this functionality is also available immediately to all station customers taking delivery of customized versions of its iPhone radio app.

read more


July 14, 2009

Exadel Studio JavaFX plug-in for Eclipse New Version 1.0.1

Today we released Exadel Studio JavaFX plug-in for Eclipse version 1.0.1. Here is what’s new in this version: New icons (screen shots - this was a previous minor update) Updated menu actions (now available directly on the perspective) Compiled with JDK 1.5 for Mac OS support Applet deployment has been updated to create exactly the same deployment structure [...]

read more


July 13, 2009

LucidEra: the People Express of On-Demand BI?

I am not happy to see LucidEra disappearing. It is not a good sign for the SaaS BI market in general and the startups in our space specifically. And I still believe Rob Ashe (IBM/Cognos) was wrong when he said that “BI doesn’t lend itself to SaaS”. There are some fundamental differences between first generation SaaS [...]

read more


JSF Mojarra Extension Tags Validation and Focus

Here is something you may or may not know. JSF Mojarra comes with a small extension tag library with three tags: regular expression validator, credit card validator, and focus setting tag. They are available since JSF version 1.2_09, but maybe even earlier (I didn’t check). Page setup Before using any of the tags, add this xml [...]

read more


JSR Watch: JavaOne Wrap-up

The year’s biggest Java community event – JavaOne – finished recently. As it is for others in the Java world, this is a busy time for the JCP. We host various events for our members, we participate in discussions and BOFs, and like all other attendees, we enjoy the opportunity to meet with members of the Java developer community. In this column I’ll review our JavaOne activities, and also discuss the new version of our jcp.org website, which we hope will encourage and enable even more community involvement in our work.

read more


VMware Delivers New Products

VMware Monday was set to announce two new products well as a major release of its vCenter Lab Manager 4. The new products are vCenter AppSpeed, derived from VMware’s acquisition of Beehive, and Chargeback, developed in-house. According to Raghu Raghuram, general manager of VMware’s server business unit, “If the first wave of the virtualization revolution was about reducing capital expenditures, the next is innovative virtualization management capabilities that allow IT to extricate itself from mundane tasks, become more productive, and reduce IT operating costs.” The new vCenter products are supposed to provide greater efficiency in the data center, more control over service levels and greater flexibility.

read more


July 09, 2009

The iPhone Is Here To Stay!

I thought it fitting to make a bold statement today as this is my 100th article on Ulitzer... The iPhone is here to stay! Now the follow-on stement is more thought provoking... What's an Enterprise to do about it?

read more


Vizioncore Named Bronze Sponsor of SYS-CON's Virtualization Expo

Leading the way in providing software solutions that extend, enhance and improve virtual environments, Vizioncore Inc. has grown into an industry leader which is helping thousands of organizations maximize their ROI from their investments in virtualization. With a comprehensive set of solutions that automate complex processes and address IT challenges of P2V/V2V conversions, disaster recovery, storage optimization, process automation and provisioning, and performance monitoring and chargeback, Vizioncore helps organizations leverage virtualization to achieve new levels of productivity and efficiencies in their IT systems.

read more


July 08, 2009

Carbonite Piggybacks on Java

Carbonite, the consumer/small business online backup company, has struck a deal with Sun to piggyback on Java and offer a free 30-day trial of its widgetry to anybody who upgrades to the latest version of Java or downloads in for the first time. Terms were not disclosed.

read more


July 02, 2009

The Mobile Revolution Heavyweights

Seeking Alpha recently named four companies that are leading the mobile revolution, and Sybase is among them.

read more



July 01, 2009

iPhone Apps vs ROI

For Ulitzer.com, recently we have published our first article. Please go through, either on Ulitzer.com or below on our blog. ROI (Return on Investment) has never had such a major importance, especially in these economic crisis days. In many ways a well delivered ROI analysis is the most effective part of the whole pitching art, whether [...]

read more


June 30, 2009

High Performance and Grid Computing in the Cloud

The HPCcloud discussion group has been created in order to address the growing interest in High Performance Computing and Grid Computing in the Cloud. The purpose of this group is to present experiences and scenarios by individuals, organizations and projects to illustrate how Cloud computing can enhance the different types of distributed and high performance computing infrastructures in science and engineering.

read more


June 29, 2009

Oracle Adds Zest to SQL Developer with Standalone Data Modeling Tool

The whole SQL databases and associated tools and modeling ecosystem is ripe for tumult. My best guess is that Oracle's pending Sun Microsystems purchase will provide offense via MySQL, and the associated community, to target the Microsoft SQL Server franchise.

read more


June 24, 2009

iPhone Developer Summit Day Two: Show Report

Today SYS-CON's iPhone Developer Summit finished, on a high as it started yesterday. it has always been said that good things come in two's!

read more


Dialog Boxes, Habituation, and Single Threaded Thought

In Jef Raskin’s excellent book, The Humane User Interface, he discusses how the human brain is able to perform many tasks simultaneously while only having the ability to focus on one conscious thought at a time. Being able to process information and analyze it intelligently is crucial to our ability to solve problems, but once we have learned how to deal with a particular situation, just as vital is our ability to remember and recall the response without thinking.

read more


Stress & Load Testing Web Apps (Even ADF & Apex) Using Apache JMeter

A couple of years ago I presented Take a load off! Load testing your Oracle Apex or JDeveloper web applications at OOW and AUSOUG. I can't recommend enough the importance of stress testing your web applications, it's saved my bacon a number of times. Frequently as developers, we develop under a single user (developer) model where concurrency issues are easily avoided. When our programs hit production, with just 1 more user, suddenly our programs grind to a halt or fall over in bizarre places. Result, pie on developers' faces, users' faith in new technologies destroyed, and general gnashing of teeth all round. Some simple stress and load tests can head off problems way before they hit production.

(For the remainder of this post I'll infer "stress testing" and "load testing" as the same thing, though strictly speaking one tests for your application falling over, and the other how fast it responds under load)

So how to go about stress testing a web application?

There are numerous tools available to stress test web applications, paid and free. This post will look at the setup and use of Apache's JMeter, my tool of choice, mainly because it is free! ... to undertake a very simple stress test. Apache JMeter is available here, version 2.3.3 at time of writing.

On starting JMeter (<jmeter-home>/bin/jmeter.bat on Windows) you'll see the following:


Creating a Thread Group

From here what we want to do is set up a Thread Group that simulates a number of users (concurrent sessions), done by right clicking the Test Plan node -> Thread Group option. This results in:


As you can see the Thread Group allows us to set a number of threads to simulate concurrent users/sessions, loop through tests and more.

Creating HTTP Requests

From here we can create a number of HTTP requests (Test Plan node right click -> Add -> Sampler -> HTTP Requests) to simulate each HTTP request operation (Get, Post etc), HTTP headers, payloads and more. However in a standard user session between server and browser there can be a huge array of these requests and configuring these HTTP requests within JMeter would be a major pain.

Configuring the HTTP Proxy Server


However there's an easier way. Apache JMeter can work as a proxy between your browser and server and record a user's HTTP session, namely the individual HTTP requests, that can be re-played in a JMeter Thread Group later.

To set this up instead right click the Workbench node, Add -> Non-Test Elements -> HTTP Proxy Server:


To configure the HTTP Proxy Server do the following:

* Port – set to a number that wont clash with an existing HTTP server on your PC (say 8085)
* Target Controller – set to "Test Plan > Thread Group". When the proxy server records the HTTP session between your browser and server, this setting implies the HTTP requests will be recorded against the Thread Group you created earlier, so we can reuse them later
* URL Patterns to include – a regular expression based string that tells the proxy server which URLs to record, and those to ignore. To capture everything set it to .* (dot star). Be warned that during recording however, if you use your browser for anything else but accessing the server you wish to stress test, JMeter will also capture that traffic. This includes periodic refreshes by web applications such as Gmail or Google Docs that you don't even initiate; I'm pretty sure when replaying your stress test, Google would prefer you not to stress test their infrastructure for them; stick to your own for now ;-)

The end HTTP Proxy Server setting will look something like this:


You'll note the HTTP Proxy Server has a Start button. We can't use this just yet.

Configuring your Browser

In order for the JMeter HTTP Proxy Server to capture the traffic between your server and browser, you need to make some changes to your browser's configuration. I'm assuming you're using Firefox 3 in the following example, but same approximate steps are needed for Internet Explorer.

Under Firefox open the Tools -> Options menu, then Advanced icon, Network tab, Settings button which will open the Connection Settings dialog.

In the Connection Settings dialog set the following:

* Select the Manual proxy configuration radio button
* HTTP Proxy – localhost
* Port – 8085 as per the JMeter HTTP Proxy Server option we set earlier
* No Proxy for – ensure that localhost and 127.0.0.1 aren't in the exclusion list


The above setup makes an assumption that the server you want to access is accessibly without a further external proxy required.

Recording your HTTP session

Once the browser's proxy is setup, to record a session between the browser and server do the following:

1) In Apache JMeter hit the Start button on the HTTP Proxy Server page
2) In your browser enter the URL of the first page in the application you want to stress test

Thereafter as you navigate your web application, enter data and so on, JMeter will faithfully record each HTTP request between the browser in server against your Thread Group. This may not be immediately obvious, but expand the Thread Group and you'll see each HTTP request made from the browser to server:


As can be seen, even visiting 1 web page can generate a huge amount of traffic. Ensure to stop recording the HTTP session by selecting the Stop button in the JMeter HTTP Proxy Server page.

Configuring the Thread Group for replay

Once you've recorded the session in the Thread Group there are a couple of extra things we need to achieve.

For web application's that use Cookies and session IDs (JDeveloper's ADF uses a JSessionID for tracking sessions) to track each unique user session, we cannot replay the exact HTTP request sequence with the server through JMeter, as the session ID is pegged to the recorded session, not the upcoming stress test sessions.

To solve this in JMeter right click the Thread Group -> Add -> Config Element -> HTTP Cookie Manager. This will be added as the last element to the Thread Group. I usually move it to the top of the tree:


Next we need to configure the Thread Group to show us the results of the stress test. There are a number of different ways to do this, from graphing the responses, to showing the raw HTTP responses. In this post we'll take the later option.

Right click the Thread Group -> Add -> Listener -> View Results in Tree, which will add a View Results in Tree node to the end of the Thread Group:


Finally save the Thread Group by selecting it in the node tree, then File -> Save.

Running the Thread Group

To commence your first stress test run, it's best to leave the number of spawned sessions to 1, just to see the overall test will work in it's most basic form. The default Thread Group number of threads is set to 1, so there is no need to make a change to do this.

To run the test, simply select the Run menu -> Start. On running the Thread Group, you'll see the top right of JMeter has a little box that tells if it's still running, and the number of tests to go vs total number of tests:


Once the tests are complete, this indicator will grey out.

We can now visit the View Results Tree:


This shows the HTTP requests that were sent out and on selecting an individual request, you see the raw HTTP request and the actual response. You'll note the small green triangles showing a successful HTTP 200 result. If different HTTP errors occur the triangles show different colours. Also remember that sometimes application errors don't perculate up to the HTTP layer in your web application, so you should check your application's logs too (in the case of a JEE application, this will be your container's internal logs).

Running a Stress Test

The obvious step from here is to change the Thread Group number of threads to a higher number.

From here take time out to explore the other features in JMeter. It includes a wide range of features that in particular make it useful for regression testing.

Caveats

Firstly remember when doing this you're not only stress testing your application, your stress testing a server, potentially stress testing databases, stress testing your networks and so on. Therefore you can have an affect on anybody sharing those resources. "Hard core" stress tests should be on separate infrastructure, after hours, aiming for as little impact on those around you!

Also keep in mind, besides seeing your application fall over at 2 users, 10 users, 100 users, which is an important test, try to be realistic about your stress tests. Stress testing you're brand-new-application to a 1 million concurrent users is probably not being realistic. How many concurrent user requests do you really expect and what response times do you need? Normally when I ask managers this question they'll answer with, "oh we have 1000 concurrent users, the application must support that many at any one time". However what they really mean is the application has 1000 users, potentially all logged into the application (ie. sessions) at the same time, but not necessarily hitting the server with HTTP requests at any onetime.

read more


June 23, 2009

Jobs Reportedly Spotted

Steve Jobs was on Apple’s Infinite Loop campus Monday according to both CNBC and Reuters. He has reportedly been spotted at Apple before but Monday was the first workday after the Wall Street Journal said that Jobs had a liver transplant two months ago.

read more


Compuware Goes Agile with Changepoint

At the Project Portfolio Management Summit in California on June 15, Compuware unveiled a juiced-up version of its IT portfolio management solution, Changepoint, identifying agile development and delivery as key components of increasing value to customers over the next 12 likely-recessionary months.

read more


Sun Announces Major Update to Sun Studio Compilers and Tools Software

Sun Microsystemshas announced that Sun(TM) Studio 12 Update 1, a major upgrade to its software compiler and tools technology, is freely available for download at http://developers.sun.com/sunstudio. Sun Studio software provides an advanced suite of tools for the Solaris(TM) 10 Operating System (OS), OpenSolaris(TM), the next generation of the Solaris OS, and leading Linux platforms, including parallelizing compilers, powerful debuggers, advanced thread and performance analysis tools, and highly-tuned libraries that help simplify the creation of high-performance applications and provide an optimized development environment for the latest multi-core x86 and SPARC(R)-based systems.

read more


<< Back Next >>