Installing IBM WebSphere MQ Client on Linux

This is the second part in the IBM WebSphere MQ series. Installing IBM WebSphere MQ client is also very easy. It takes just a few minutes to install. IBM WebSphere MQ Client can be downloaded from http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg24019253.

Extract it to some folder (e.g /root/download/wmqc) after download. Then follow these steps.

1. cd /root/download/wmqc
2. ./mqlicense -accept

This is necessary since this instructs to accept the license, otherwise you will not be able install WebSphere MQ. If this gives a JRE error then give the JRE path like this:

2. ./mqlicense -accept -jre PATH_TO_JRE
3. rpm -ivh MQSeriesClient-x.x.x-x.i386.rpm MQSeriesRuntime-x.x.x-x.i386.rpm

where x.x.x-x is the version number like 7.0.1-1

That’s it! WMQ client has been installed. Now you can connect to WMQ server on another machine, or install WMQ SDK to start developing applications for IBM WebSphere MQ.

This is necessary since this instructs to accept the license, otherwise you will not be able install WebSphere MQ. If this gives a JRE error then give the JRE path like this:

2. ./mqlicense -accept -jre PATH_TO_JRE

Hidden Reasons for slipping project deadlines

There can be so many factors that affects the deadline and project can be delayed. There is an excellent article 10 ways to get a slipping project back on track on TechRepublic explaining the remedies. But in my opinion tips given by the author are where there are already processes defined and a proper organizational hierarchy is maintained, not just maintained but also everyone at its position has its role and responsibilities defined and he works according to his role. At least to some extent. But what when this is not the situation? Let me explain here by first commenting on the TechRepublic post.

Overtime was on the top in that post. Author has already accepted that this is an option when you are at the end of the project, and there are better strategies if you are in early stages of project. I agree with that. You cannot work overtime for a long period. Few overtimes are acceptable. I just wanted to mention this here.

Few other reasons of slipping the project deadline is setting the deadlines blindly, assuming ideal situation and not keeping the buffer, specially when there is a learning curve when you are working on something new.

Another problem is that if there are lots of senior guys and everyone is imposing his own decisions discarding other’s. Having senior guys is good but everyone should have separate responsibilities and no one should interfere with other. Discussing matters, coordination, and giving opinion is something else. Not having this leads to unstability.

Another major big problem is with the management when talking in terms of investment. Besides company’s plans few things are obvious where anyone can see that investment has been done at wrong place or investment is not done where it was supposed to be. Like hiring skilled people and paying them good. Finding cheap human resource does not always work. You should know when you have to invest in human resource and when not. And if you already have good human resource then appraise them before you loose a good resource and someone else steals it from you. Keep in mind as long an employee works for a company, he becomes more valuable asset since he has learned so many things and new employee will take time to learn those things. If you can understand this then you already know that time is money. And if employee leaves in the middle of a project, then obviously there is a big chance of slipping the deadline. You have to put extra resource, reschedule accordingly, assign resource etc etc.

Another one is related to human resource and team. One should have experts and should have responsibilities and roles defined. Don’t expect one to do everything from project management, to design and architecting, to learning, to implementation, to support. Project Manager is one guy, System Architect is another, Developer is another, Designer is another, Tester is another, Network or System Admin is another (sometimes two), and Support personal is one another. If you don’t have enough money to hire all these people then don’t jump into the big business, otherwise you will fail. Start with small and gradually build your team. This is a long term investment.

Besides human resource, other resources are also important, including facilities. Not providing sufficient resources to the team wastes time and at the end deadlines are slipped. Employees also get frustrated. Even a very small resource or facility has its effect. Not upgrading systems, network issues, not providing healthy environment, and even not having standards and policies are the reasons. Having flexibility is something else and not having proper company policies is something else. Not having these demotivates employees and one cannot give his 100% then.

One another important thing is forecasting and future planning. If you don’t have the plan and has approach like we’ll see when that will happen, then don’t be surprised if you fail to accomplish your goals.

When working on projects you should have dedicated resources, not the ones that come on and off. I am typically talking about human resources here. Since working on project and to complete it in time needs concentration and focus. There can be resources who come on and off but don’t assign them critical tasks. Use them for assistance only.

Processes! Just having separate development and testing teams doesn’t mean you are following processes. There are processes for within individual teams as well. If processes are not defined then this is also a reason for not meeting the deadlines.

Besides all this I also recommend reading Peter Steven’s blog post 10 Ways to Save a Slipping Project.

Setting up a CVS repository

Setting up a CVS repository is very easy. First create a directory where you want your CVS repository to be located. For example create a folder /cvsroot. Change you directory to /cvsroot and run the following command.

# cvs -d /cvsroot/ init

Obviously, you should have CVS installed. This command will initialize your CVS repository. Remember not to run this command after adding projects/modules, otherwise it will wipe out all your files. After initializing you can add projects to it. Thats it! your CVS repository is ready. Go and add your projects 🙂

What processes are using a particular port?

If you want to see how many processes are connected on a particular port, you can use the following command on Linux platform:

lsof -i tcp:1234

Command is self descriptive. It will show only TCP connections using port 1234. Among other information this command also shows the process, its PID, user, and the IP/Port it is using.