Tech Blog

These are blog entries written by the UNIX Health Check development team. Our team has extensive technical experience on both AIX and Red Hat systems, and we like to share our knowledge with our visitors.

Topics: WebSphere

WebSphere MQ introduction

WebSphere MQ, previously known as MQ Series, is a tool to transfer message and data from one system to another, a means of program-to-program communication. Basically, one program puts a message in a queue and the other program reads from the queue. This can be synchronous or asynchronous. It's time independant, communicating applications do not have to be active at the same time.

MQSeries runs on a variety of platforms. The MQSeries products enable programs to communicate with each other across a network of unlike components, such as processors, subsystems, operating systems and communication protocols. MQSeries programs use a consistent application program interface (API) across all platforms.


The figure shows the main parts of an MQSeries application at run time. Programs use MQSeries API calls, that is the Message Queue Interface (MQI), to communicate with a queue manager (MQM), the run-time program of MQSeries. For the queue manager to do its work, it refers to objects, such as queues and channels. The queue manager itself is an object as well.

What is Messaging and Queuing?

Message queuing is a method of program-to-program communication. Programs within an application communicate by writing and retrieving application-specific data (messages) to/from queues, without having a private, dedicated, logical connection to link them. Messaging means that programs communicate with each other by sending data in messages and not by calling each other directly. Queuing means that programs communicate through queues. Programs communicating through queues need not be executed concurrently.


This figure shows how two programs, A and B, communicate with each other. We see two queues; one is the "output" queue for A and at the same time the "input" queue for B, while the second queue is used for replies flowing from B to A. The squares between the queues and the programs represent the Message Queuing Interface (API) the program uses to communicate with MQSeries' run-time program, the queue manager. As said before, the API is a simple multi platform API consisting of 13 calls.

About the queue manager

The heart of MQSeries is the message queue manager (MQM), MQSeries' run-time program. Its job is to manage queues and messages for applications. It provides the Message Queuing Interface (MQI) for communication with applications. Application programs invoke functions of the queue manager by issuing API calls. For example, the MQPUT API call puts a message on a MQSeriesqueue to be read by another program using the MQGET API call. This scenario is shown in the next figure.


A program may send messages to another program that runs in the same machine as the queue manager (shown above), or to a program that runs in a remote system, such as a server or a host. The remote system has its own queue manager with its own queues. This scenario is shown in the next figure.


The queue manager transfers messages to other queue managers via channels using existing network facilities, such as TCP/IP, SNA or SPX. Multiple queue managers can reside in the same machine. They also need channels to communicate. Application programmers do not need to know where the program to which they are sending messages runs. They put their messages on a queue and let the queue manager worry about the destination machine and how to get the messages there. MQSeries knows what to do when the remote system is not available or the target program is not running or busy. For the queue manager to do its work, it refers to objects that are defined by an administrator, usually when the queue manager is created or when a new application is added. MQSeries for Windows provides graphical user interfaces; other platforms use the command line interface or panels.

Topics: WebSphere

WebSphere MQ links

A number of external links, related to WebSphere MQ:

Official IBM sites:

Related links:

Topics: Sun Solaris

Sun Solaris introduction

The Sun Solaris Operating Systems is a UNIX based operating system, derived from Berkeley. It is quite widely used, but mostly for smaller systems, like webservers.

Nowadays it is called OpenSolaris, which is available for download at opensolaris.org.

Solaris 10

Topics: Sun Solaris

Sun Solaris links

A number of external links, related to Sun Solaris:

Official SUN sites:

Related sites:

Topics: Sun Solaris

Solaris swap space

Having an appropriate amount of swap space is important for optimal system performance. Simple commands allow monitoring swap space utilization. To get a summary of total system swap space, use the swap command:

# swap -s
total: 597744k bytes allocated + 99760k reserved = 697504k used, 095216k available
The output of this command shows the amount of swap space used (697504KB in this example) and available (95216KB), and further breaks down the used swap space into allocated and reserved. Allocated space represents swap space currently in use. Reserved space is in limbo, not available, not in use, but reserved for future use.

To get details on the individual devices or files that constitute the swap space, use:
# swap -l
swapfile dev swaplo blocks free
/dev/dsk/c0t0d0s1 32,1 16 2624560 2624560 /dev/dsk/c0t8d0s1 32,57 16 2624560 2624560
The swapfile column is the device or filename of the swap component. The dev column shows the major and minor device numbers for devices or zeros for a file. Blocks is the total size of the swap component in 512 byte blocks (divide by two for KB) and free shows the number of 512 byte blocks unused.

Solaris 10

Topics: IBM Content Manager

Running icmrm as a Windows service

If your installing ICM on a Windows system and you wish to run the Resource Manager as a system service, then open a DOS command window and go to the WebSphere installation directory (c:\Program Files\WebSphere\AppServer\bin). Then type:

WASService -add icmrm -serverName icmrm -userid icmadmin -password password -startArgs "-user icmadmin -password password"
-stopArgs "-user icmadmin -password password"
Now you can open the Services window (Start -> Settings -> Control Panel -> Administrative Tools -> Services) to check the IBM WebSphere Application Server V5 - icmrm service.

Topics: IBM Content Manager

Installing ICM on Windows

IBM Content Manager can be installed on Windows 2000 server or later. To get it to install on a Windows XP system (e.g. for testing the ICM software), change the compatibility mode of the install program to Windows 2000. Now it won't complain about the wrong operating system.

But be aware that no official support is available for running an IBM Content Manager environment on Windows XP. Especially Content Manager OnDemand is very difficult to get it to run on Windows XP. Consider running your content manager environment under Windows 2000 or 2003 within VMware. This works fine.

Topics: IBM Content Manager

TIFF plugin for ICM

If you're storing TIFF images in ICM, and you do not want to do any image conversion on the Resource Manager, and you also do not want to use the Java Applet, you might consider using a TIFF plugin for the browser. One can be found on www.alternatiff.com. It's freeware and is works perfectly.

Topics: IBM Content Manager

Starting and stopping Content Manager On Demand

Start:

# Start Content Manager on Demand
echo Starting CMOD...
su - archive -c "/usr/lpp/ars/bin/arssockd ARCHIVE"
echo CMOD started.
Stop:
# First kindly request CMOD to stop.
echo Stopping CMOD...
su - archive -c "/usr/lpp/ars/bin/arssockd stop ARCHIVE"
# Wait 10 seconds for CMOD to stop.
sleep 10
# If it is still active - then kill the process
PROCESS=$(ps -ef | grep "arssockd: (accepting)" | grep -v grep | awk '{ print $2 }' )
if [ -n "$PROCESS" ] ; then
   echo CMOD did not stop correctly.
   kill $PROCESS
   echo CMOD process killed.
else
   echo CMOD stopped.
fi
It's actually allowed to kill the process, if a normal stop request fails. CMOD doesn't notify you whether the process stopped or started successfully or not, so you have to check it. It occasionally occurs that CMOD doesn't want to stop. If that happens, just kill the accepting process.

Topics: DB2, IBM Content Manager, WebSphere

ICM process check

DB2 database check:

# ps -ef | grep db2loggw
This command shows you the (log writer processes of the) DB2 databases that are active. To show the DB2 instance list:
# su - db2inst1 -c db2 list active databases
# su - db2inst1 -c db2ilist
Check if the db2agents and db2sysc are active via ps -ef. If one of these are not functioning, the database will not be active.

Check connectivity to DB2 database:
# su - db2inst1
# db2 connect to [database-instance] user [user-name] using [password]
db2 list tables
db2 list applications
db2 connect reset
IBM HTTP Server check:

Check the HTTP process using:
# ps -ef | grep httpserver
Startup a web browser to http://[server]/ and to https://[server]/.

Check the eClient:
# ps -ef | grep eClient_Server
WebSphere check:

Start a browser to http://[server]:9090/admin and login with ID wasadmin or icmadmin. Start a command window, go to the WebSphere directory (WebSphere/AppServer/bin) and run:
# serverstatus -all
Individual WebSphere applications can be stopped with stopserver icmrm (if you would like to stop the Resource Manager) and startserver icmrm (server1 is the default WebSphere server).

Check the Resource Manager

Start a browser to http://[server]/icmrm/ICMResourceManager. If you get output about a NULL request, it's fine.

Other checks:

http://[server]/icmrm/snoop should output information of the Snoop Servlet.
https://[server]/icmrm/ICMRMAdminServlet should show RM diagnostic data (You'll probably have to logon with the rmadmin userid).

Number of results found: 470.
Displaying results: 391 - 400.