Calendar
September 2010
M T W T F S S
« Feb    
 12345
6789101112
13141516171819
20212223242526
27282930  
Categories

A Voice in the Wilderness

Well, January was an interesting month.

The Kato project had some much needed input from Lukasz from Poland. One of the more useful things about the Apache Kato project is it provides an API for accessing hprof files. Previously each tool would need to write its own implementation of an hprof file reader.

The kato project includes a little tool called “KatoView” that allows hprof files to be queried on a command line. While it’s usefulness is limited, there are some useful things that can be done.

I am learning to be a release manager for the project. Apache operate in its own unique way, and it is taking some getting used to, but one of the fundamental processes is the Voting process.

Last week I asked the Incubator project management to vote on whether or not Kato’s first release should be allowed out into the wild.The voting process is roughly as described here. An email is sent with the subject “[VOTE] subject to vote on”, a description of what is being voted on and an announcement of when the vote is to be closed. This should be a minimum of 3 days. People will then vote +1, 0 or -1.

+1  is used to indicate when someone supports the proposal.

0 is used when the voter is neutral.

-1 is when the voter is opposed to the proposal.

Often voters will have additional comments, especially if -1 or even 0 votes are submitted.Generally at least 3 +1’s are required. Under some circumstance -1 constitutes a veto.

The Apache Kato incubator has few active participants, and with insufficient votes the “lazy consensus” approach is often used. i.e. lack of votes constitutes tacit support.

1 day to go on the M1-incubating release. Fingers crossed for lots of +1s :-)

Chrysalis

Well, it’s nearly the end of 2009 and the Apache Kato podling has progressed somewhat during the year.

The high points were:

  • Java One,  where Steve Poole presented Kato and JSR-326 a Birds of a Feather session.
  • The JSR 326 Early Draft Review was published by the JCP
  • The CJVMTI agent was written to produce the dumps required for a reference implementation, and this continues to progress.
  • The TCK is up and running, so we can test.
  • The Hprof implementation also continues to progress.
  • The first release candidates were made available.

There are still plentyof things to do next year:

  • We will have our first release, a milestone release to demonstrate what we have so far.
  • The dump API is to be completed. This means that dumps can be initiated by programs consistently.
  • After the Final Draft Review, we should have a standard.
  • Then, who knows, maybe it will be included in Java 7.

I was hoping to have in this blog, useful information for diagnosing problems - once we have a first release I write about the API and what you can do with it.

Signing off,

Stuart

Signs and Portents

It has been a very long time since my first post.

Most of the work I’ve been doing on the Kato project has been on the Early Draft Review of  JSR-326 (available here: JSR-326).

More interestingly, in IBM here we’ve had a summer student (Paul Sobek - I don’t have a link to him) writing a JVMTI agent in C that dumps all sorts of Java goodness. Our problem was with hprof there wasn’t quite enough information for our needs, and the information is offered was limited. Using  his agent it is now possible to inspect local variables at the time a dump was taken.

Ultimately, we’d like this to be our Reference Implementation, after much more testing against our TCK and implementation of non-JVM information (such as the machine’s hostname). In combination with our JDI connector, it is possible to attach a Java debugger to the dump files and determine what caused them.

Would this be something you want? For example, take a long running server. If an ArrayIndexOutOfBounds exception is thrown, then either the JVM will exit, or it will be caught and ignored. Using this agent, a dump could be taken automatically, and offline it could be debugged.

Soon I hope to write here how you can try this out for yourself…

And Now for a Word

I like blogs, however the blogs I like most are those I can find on Google through a search engine in answer to a specific problem.


I’d like this to be one of those blogs.

Hi! My name is Stuart Monteith.I created this blog because of my involvement in the Apache Kato incubator project. This project aims to develop JSR-326, a Java standard for an API that allows tools to debug Java programs, possibly JVMs.


Why should you care? Ultimately, the aim is to solve programs with Java programs in a different way that you might be used to.  Anyone using more static languages, such as C and C++, will be used to attaching debuggers (such as windbg, dbx, gdb) to running programs. Fine, but they could also attach to programs that had crashed, or generated a core file for some other reason. You can’t do that in Java.

That is a little lie. However, you can’t do that on every JVM from every vendor and write tools to do it.


And finally, a link to a most excellent, non-Java blog: http://www.pagetable.com/?p=48


The postings on this site are my own and don’t necessarily represent IBM’s positions, strategies or opinions.