Saturday, October 25, 2008

Microsoft Joins AMQP working group

 Decision to join AMQP Working Group based on commitment to
openness,interoperability and providing customer choice.

REDMOND, Wash., Oct. 24 /PRNewswire-FirstCall/ -- Microsoft
Corp. today announced that it is joining the Advanced Message
Queuing Protocol (AMQP) Working Group, an organization
focused on the development of the AMQP specification. Microsoft
is joining the AMQP Working Group at the request of its members,
including several of Microsoft's customers in the financial services
industry, in order to support the development of an open industry
standard for ubiquitous messaging.

AMQP is a specification for platform-neutral, open standards-based
business messaging. The primary goal of AMQP is to enable the
communications necessary for business processes. AMQP Working
Group members are collaborating on specifications for messaging
infrastructure that provide businesses with a simple and more
powerful way of connecting messaging-dependent applications both
within and between firms. By joining the AMQP Working Group,
Microsoft is seeking to contribute toward the development of such
solutions and to enable greater customer choice in the marketplace.

"Customers are seeking scalable solutions with lower costs that will
allow messaging within the enterprise and outside the corporate
infrastructure," said Sam Ramji, senior director of platform strategy
at Microsoft. "By joining the AMQP Working Group, Microsoft is
aiming to contribute to the development of the specification in ways
that will best promote interoperability for existing market
implementations and provide customers with increased choice."

Message-based transports with security and transactional integrity
are a vital infrastructure component throughout institutions. As
Microsoft continues to provide vertical industry solutions, AMQP will
provide an alternative to current messaging options. The AMQP
specification and related implementations may provide greater
interoperability for a number of vertical scenarios in addition to
financial services, insurance and healthcare, among others.

AMQP Working Group members embraced the news of Microsoft's
decision to join.

"The AMQP Working Group is doing great work to facilitate open
and interoperable standards for messaging infrastructure across
platforms," said Adrian Kunzle, head of Engineering and
Architecture at J.P. Morgan."We welcome Microsoft's commitment
as another step toward AMQP becoming the preferred connectivity
for business messaging on the Internet."

"Cisco has long been a proponent of open industry standards that
benefit our customers," said Pranta Das, technical leader for Cisco
Systems Inc. and member of the AMQP Working Group. "We are
pleased to welcome Microsoft to the AMQP Working Group as we
continue to develop open specifications for messaging."

Paul Fremantle, chief technology officer of WSO2 Inc., another
working group participant, noted: "We welcome Microsoft's
commitment to openness and the AMQP messaging specification.
Their participation will be valuable to our efforts to support the
development of interoperability solutions across heterogeneous
IT environments."

Members of the AMQP Working Group are Cisco, Credit Suisse,
Deutsche Boerse Systems, Envoy Technologies Inc., The Goldman
Sachs Group Inc.,iMatix Corporation, IONA Technologies,
J.P. Morgan, Novell, Rabbit Technologies Ltd., Red Hat Inc.,
TWIST Process Innovations Ltd., WSO2 and
29West Inc.

More information about Microsoft's interoperability efforts can be
found at

Founded in 1975, Microsoft (Nasdaq: MSFT) is the worldwide leader
in software, services and solutions that help people and businesses
realize their full potential.

Wednesday, October 8, 2008

ApacheCon US 2008 New Orleans

ApacheCon is a week of open source goodness straight from the source of the Apache Software Foundation, featuring intense training classes over two days followed by three days of more than 60 sessions by the creators of open source software such as the Apache httpd webserver, Tomcat, Lucene, Hadoop and more.

Unable to attend ApacheCon? No Problem!

Just register for the live streaming and follow the event live from your own PC. After the live transmission, you can view repeats of the talks, whenever and as often as you like.

ApacheCon US 2008 features:

  • Over a dozen Training Workshops from industry experts -- half-day, full-day and two-day classes are offered.
  • More than 60 1-Hour Sessions on System Admin, Enterprise Web Services, Open Source & Business and more.
  • For the first time, attendees may join Apache Committers at the Hackathon
  • The Fast Feather Track returns, featuring short and to-the-point updates on the latest emerging technology from Apache
  • The standing-room-only Business Panel returns to kick-off the Business Track
  • Attendee-organized Birds of a Feather sessions bring together like-minded people
  • An ApacheCon favorite, Lightning Talks are fast, furious, and fun!
  • World-class Keynotes and vendor Expo

Done with Google Summer of Code 2008

I'm really proud to inform everyone that I have completed my Google Summer of Code project this year and that is the first time I'm doing the Gsoc. I'm really satisfying the way I have completed it and I kept on writing code continuously and the important thing is that I never left stuff to handle at the end and kept on doing things in a continuous manner.
Next important thing happen to me is adding another project for my committing list which is Apache Qpid, previously I had committing rights for Apache Axis2C, Apache Axis2, Rampart/C and WS-Commons, now I'm happy to have committing rights for Apache Qpid which is the project which I most likely to being with. I have already committed the code in to SVN and change the build. I thought of writing a blog post in order to thank all the people who helped me over this.
First I got this oppurtunity simply because I was expose in to the open source world when I was in my internship at WSO2.I have to thank to the university and all the staff members and all my colleagues in my batch. Then I have to thank to people who personally advice me to select WSO2 for the internship who are Vajira Ginneliya (my cousin) and Dinesh Premalal (Senior student from my university and currently reading for his MSc). Thank you very much all the employees at WSO2 for helping me to have a great time during my internship.
Then I have to thank all the people who helped me to make my Gsoc proposal a success, first I have to thank Rajith Athapaththu (who works for RedHat in Canada). He was the one who adviced on how to make my proposal effecive and he kept on helping me for the whole period of time I spent with Gsoc and thanks Rajith Ayya for your assist and I really really appriciate. And next important people were Aidan Skinner, Marnie McCormack and Martin Ritchie who were my mentors and I think I'm the most luckies guy with Gsoc to have mentors like them, and if I wasn't get Aidans help I might not be able to complet my Gsoc in this way so BIG THANK YOU FOR AIDAN....THANKS DUDE THANKS A LOT.I shouldn't forget the Qpid developers community and they were very helpful for me whenever they can and I really appriciate your great assist and thank you very much for being helpful for me during last couple of months.I have to give a special thanks for Leslie Hawthorn from Googles side and she was always in our side and helped emmensely to make everybodies project success. And thanks for Google for organizing the event and allowing us to get in to open source world with a great exposure.I'm always reminding all my family members whom always there with me my Mom Dad and three bros.
I will be working with Qpid community as much as possible simply because I love that and that's my pleasure to contribute towards ASF.

Sunday, August 31, 2008

Mounting hibernated NTFS file system on to Linux

I had a problem with mounting my Windows NTFS file system which was Hibernated on to my Ubuntu 8.10 installation. When I'm trying to mount the file system as usual it gave me this error,

Windows is hibernated, refused to mount.
Failed to mount '/dev/sda1': Operation not permitted
The NTFS partition is hibernated. Please resume and shutdown Windows
properly, or mount the volume read-only with the 'ro' mount option, or
mount the volume read-write with the 'remove_hiberfile' mount option.
For example type on the command line:

mount -t ntfs-3g /dev/sda1 /media/ -o remove_hiberfile

After going through the previous message I tried to run the given command and try to mount the file system but it again gave me another error message like this,
$LogFile indicates unclean shutdown (0, 0)
Failed to mount '/dev/sda1': Operation not supported
Mount is denied because NTFS is marked to be in use. Choose one action:

Choice 1: If you have Windows then disconnect the external devices by
clicking on the 'Safely Remove Hardware' icon in the Windows
taskbar then shutdown Windows cleanly.

Choice 2: If you don't have Windows then you can use the 'force' option for
your own responsibility. For example type on the command line:

mount -t ntfs-3g /dev/sda1 /media/ -o force

Or add the option to the relevant row in the /etc/fstab file:

/dev/sda1 /media/ ntfs-3g force 0 0

As this error message describe I tried to run those commands but those command prompt the previous error I was given before this particular error. But hopefully when I tried to mount the file system as read only using the following command it worked fine for me,

sudo mount -t ntfs-3g /dev/sda1 /media/ -o ro

So if you have the same problem you can mount your file system as read only using the command like that but to be honest I don't know how to mount the file system with write access.

Tuesday, August 12, 2008

What Qpid Management Console can do ?

I thought of writing a complete documentation about the Apache Qpid management Command Line tool which would be helpful for the users to get the maximum out of the management console.

  • How to connect with the Broker
Before you come in to this state you have to build the source or you can get the binary and extract then set the QPID_CLI environment variable to the main directory of the source or binary,then only you are in a position to start working with management console. First check whether the broker is up and running. In order to simply connect with the broker you can run the qpid-cli script which required arguments.

${QPID_CLI}/bin/qpid-cli -h [HostName of IP of the broker ] -p [Port of the broker]

Default values for arguments -h [localhost] -p [8999]

  • One Shot mode
With one shot mode you can run interactive mode commands for one time and disconnect with the broker.This feature is useful when you want to run particular command in the management console using a script which is running in the normal console.What you have to do is you have to give the command you want to run with the qpid-cli script running command.

Ex 1: $QPID_CLI/bin/qpid-cli queue list -- This will list the queue objects and disconnect.

Ex 2: $QPID_CLI/bin/qpid-cli queue view -n ping - This will display information about all the message in the queue with the name of ping

Likewise you can run any command in one shot mode and get the out put for one time.

  • Report Generation Mode
If you want to generate reports you can do it by defining your required information using a property file. There's a sample property file in the parent directory and you can have a look and get an idea about that.You can generate reports by giving a time interval in the property file. In order to start the daemon mode you have to run the qpid-cli script with the option : -r by giving the path for your property file.

Ex: $QPID_CLI/bin/qpid-cli -r ../

You should specify a property file in order to run the daemon mode and get information repeatedly.
  • Interactive mode with number of command
This is the mode you get when you run the qpid-cli script without the one shot mode and without the daemon mode with [-r] option.Once you connect with the broker it display you a prompt [qpid-admin-$], then you can run several commands to can perform following tasks.

For all the commands object type is command and most important command so you can use this option value without giving the option letter by giving that option value at the beginning of the command.

Ex: [list -o queue ] can use this command like this dropping -o option [queue list]
Ex: [list -o queue -n ping] = [queue list -n ping]

  • Data displaying commands
This is the set of commands which display the information about broker.

list : list information about the given object type with limited number of attributes and you can use number of command options to get different useful behaviors with the list command.You can get the complete description about the command by running the command like this.[list -h].

info : list all the attributes of a given object type. This command works very similar way to list command. You can use -h option for help and get complete description of the info command.

view : view information about the content of the message in the queue object. In order to run this command you have to specify the object type at the beginning.You can give how many message informations you want to view from the top of the queue by using -t option.

Ex : queue view -n message_queue -t 5
[list the message info for top 5 messages in queue message_queue]

viewcontent : view the content of the a given message in the queue. You have to give the messageId as a parameter with -id option letters.

Ex: queue viewcontent -n message_queue -id 12
[list the content encoding and Mimetype of the message with the messageId for the give message which is in the queue message_queue]
  • Data modification commands
This is a set of commands which allow users to deal with messages in queues.Users can delete messages from a give queue and user's can move one message from one queue to another queue.

delete :Using this command user can delete a give message from a given queue you can specify how many messages you want to delete from the queue from the top of the queue by using -t option.If user does not give how many messages to delete from the top of the queue program is going to delete all the messages from the queue after giving a prompt to confirm the deletion.

Ex: queue delete -n message_queue -t 3
[Delete top three messages in the queue message_queue ]

move : This command allow user to move number of messages from one queue to another queue. First you have to specify from which queue you want to move messages by using -n1 and -v1 option letters(-n1 queue name/ -v1 virtual host).Then you have to use -n2 option to give the target queue name and then you have to give From messageId and To messageId using -fmid and -tmid option letters to specify the messages range you want to do the move operation.

Ex: queue move -n1 message_queue -n2 ping -fmid 13 -tmid 15
[This will move messages with the messageId range of 13-15 from queue message_queue to queue ping.

If you have any problems please leave a comment in this post or simple write to the following email :

Thursday, July 31, 2008

QPID_CLI 0.2 Released

Major changes

1.You can use list command without specifying object type using -o option by giving object type at the beginning.

  • ex: queue list - This is equal to list -o queue.
  • exchange list - This is equal to list -o exchange

2. Added following options for list command.

  • -n --name Allow user to specify object name type.
  • -v --virtualhost Allow user to specify virtualhost type.
  • -output Allow user to specify output format (csv)
  • -separator Separator for the output formatter

3. Change the way list command display information.

  • Now list command display limited number of information in a tabular format which is very clear.
  • If user want to see all the attributes of particular object user have to use info command.

4.Added a new command to CLI called ** info **

  • This command is very similar to list command and supports almost all the arguments which works with list command.
  • Only difference is this command display all the attributes of particular object type in a different format.

5.Added command completion for users convenience now you can use TAB key to complete the command and object type.

6.Added capability of running a command in one shot which is very useful when you want to run particular command in qpid-cli using a
shell script.

  • Ex: <$QPID_CLI/bin/qpid-cli queue list > - This command list all the queue objects and exit from the CLI so you can use these when you use shell scripts.
  • Usage of one shot mode : you can use grep awk like commands with normal qpid-cli commands with one shot mode like this.
$QPID_CLI/bin/qpid-cli queue list | grep ping

You can download it from here

Project Homepage

I warmly welcome your early feedback on this implementation.

Thanks for your interest in Apache Qpid and Qpid CLI.

Tuesday, July 15, 2008

QPID_CLI 0.1 Released

I have released Apache Qpid CLI it's first release with version 0.1.This is basically a management console which works with almost all the releases of Apache Qpid with JMX support and allow users to monitor useful information via the console.This works only for Linux based systems.

Key features

  1. This management console is released for the first time and at the moment it allows users to list number of MBean information which registered inside the qpid Java broker.
  1. This only supports only for the following command since this is the first release.
List appropriate information of the give object
  • list
For more informations
  • list --help
Disconnect the management console with Java broker
and come back to normal command prompt
  • exit

You can download it from here

Project Homepage

I warmly welcome your early feedback on this implementation.

Thanks for your interest in Apache Qpid and Qpid CLI.

Friday, June 27, 2008

Import Apache Qpid in to Intellij Idea

During last couple of days I was struggling to import Apache Qpid java in to Idea (Intellij Idea) and start the broker with Idea.My main target was to debug the broker using Idea. But there were few modifications to be done.I thought this will be useful for the people who are new to Qpid.

1. First build the Apache Qpid java using following commands or please refer to the how to build in Apache Qpid.
  • mvn -Pfastinstall
  • cd distribution
  • mvn (This will create all the artifacts )
  • tar -xzvf target/qpid-1.0-incubating-M3-SNAPSHOT-java-bin.tar.gz
In here the file name is depend on the version of the Qpid you are using, somehow you have to extract java binary.Then navigate to the extracted directory and set the QPID_HOME variable to that directory.
Now you are in a possition of running Qpid in commandline so you can try this out by following command.
  • $QPID_HOME/bin/qpid-server
Now come back to importing in to Idea. Go back to the source folder of Qpid java and run the this command inorder to build the Idea project.
mvn idea:idea
This will create an Idea project so you can open the project using Idea but the problem is you won't be able to run the java broker on Idea and you won't be able to debug the broker. So in order to make it happen you have to do several modifications. First we have to hardcode the Qpidhome, although we have already set the environment variable it's unable to access them when we start the broker using Idea.
Please have a look in to following diff files and you'll get to know how to do those modifications. diff files.
When you do modifictaion don't apply the patch directly please have a look and do the modifications according to your installation which means your Qpidhome is different from my one.After doing three of those modifications compile the project in Idea and run it, It will work. If this doesn't work for you please be kind enough to comment on this post.


Friday, June 20, 2008

Exokernel Concept

I'm doing the module Advanced Operating Systems and while I'm reading on that I found some interesting topic called Exo-kernel Operating systems.
This was initially proposed by a research group at MIT in 1995. This is a concept which is very useful when it comes to arena of developing high performing applications and this concept is really controversial when we concern about the idea people had about operating systems.Previously people thought about operating systems as a piece of software which hide all the tricky information from application developer and user of the system.But when we concentrate about the performance this abstract layer leads to a huge performance hit due to this fixed abstraction.
As an example if we concern about a Webserver it will keep on increasing it's cache although it's exceed the main memory since the operating system itself handle the memory using the virtual memory so application doesn't have any idea about what's going on inside.So this leads to reduce the performance of the web server.
Likewise using the high level abstraction is always reduce the flexibility of the application development and limit the performance and functionality of the system.So what they suggest with this exokernel concept is kernel (exokernel) will handle the hardware multiplexing and resource protection while application itself will handle all the resource management using their own applicaton specific policies. So what happen is application developer is suppose to implement a piece of software called library operating system which do all the resource management and the kernel will take care of multiplexing the hardware. But the main challenge of this concept is every application has to develop it's own library operating system and this leads to a real overhead.Exokernel researchers develop their own library operating system called ExoS and an Exo kernel called Aegis and they did some benchmark with their resources and click here to see that...

And they have developed a web server called cheetah which use it's own library operating system which is specific for a web server and they used infomations like knowledge about HTTP to bind with IO and they are not copying data but they send data directly to the client from it's cache. So this is the performance difference they had with that cheetah .. click here

So Exokernel principle is something which seperate the hardware protection from resource management from a typical operating system.With exokernel it's not trying to give a virtual machine to each and every application but it's tying to expose hardware to the application while protecting hardware resources from untrusted application.Inorder to implement the protection with exokernels they use this techniques
  • Secure Binding
  • Visiblel Revocation
  • Abort Protocol
Secure binding is a way of protecting resource by binding them with the library operating systems in order to impelement it they have use several techniques like hardware protection, software protection and download code.Visible revocation is revocating resources with keep in contact with the library operating system, with normal applications revocation happens invisibly as an example when kernel wants to deallocate a particular page it doesn't go and ask from application but what it does is simple deallocate the resource but in here kernel deallocate memory by asking from the library operating system. And at last Abort Protocol is a way of break binding when library operating system is unable to respond to the kernel.So here what happen is when libOS is unable to respond to particular request it breaks appropriate resources which bind with library operating system and let the application to know that.

Those are the information I got about exokernels and more commanets will be very useful.

Thursday, May 8, 2008

Extract JMX information from a remote MBean server

I was able to write a code which is capable of extract all the MBeans with a given domain and print all the attribute value and attribute names of each and every MBean.
Here's my code...

If you want to extract all the MBeans which are registered with the connected Server you can simply pass two null value to the method queryNames method.

Monday, May 5, 2008

HP 520 Laptop with Ubuntu

I bought an HP 520 Laptop from Sri Lanka which is worth 800USD. And I wanted to install Ubuntu 7.10 on my new machine and I was bit of suspicious whether it supports for all the harware in my machine. After successful installation of Ubuntu 7.10 I was able to review that It supports for Intel Pro wireless device but unfortunately It doesn't support for sound card.So I decide to swich in to Latest Ubuntu release 8.04 which was release before one week and it works fine for my HP 520 Laptop. But honestly I have certain problems with the OS in my machine.
1. When I hibernate it hibernates and when I start my machine in next time It works fine for few minutes and it get stuck...

2.After working for three or four hours my machine is becoming quite slow and there's no issue with the memory usage and processor usage. Yesterday night I was working on Idea with opening two Idea windows and slow down happened all of a sudden and I was able to find my swap usage became 100% so it's obvious to slow down my machine.

I'm not sure about the problem this might be a problem with my hardware or may be a problem with the OS.I feel like switching for Debian but I love Ubuntu..

If any body knows any solution please leave a comment...


Wednesday, April 23, 2008

Selected for Google Summer of Code 2008

I had a dream of doing a Google summer of code since the day I heard about that. Due to the great time I spent at WSO2 I was able to learn how to communicate in open source world and It really helped me to make my dream success. I was able to get a project in Apache incubator which is Apache Qpid.
Apache Qpid is a multiple language implementation of AMQP( Advanced Message Queuing Protocol). In my project I have to develop a command line interface which is capable of extracting JMX information from Qpid. Since Qpid already have a JMX interface to manage those JMX information I just have to develop the JMX connectors which runs in the shell. The important things in this project is the development of command line interface since most of the people used to ssh in to remote machine and work on that particular machine then running xwindows on remote machine is a pain. So the best option is to use a CLI for monitoring things.

Hope to write some more about my Gsoc project in future. May be about JMX and Java stuff...