ConnectionController

The second part of the URI must be conn to call the ConnectionController.

inquire

Get information from clusters. This action executes the MQCMD_INQUIRE_CONNECTION pcf command. On success, the returned JSON object will have a data array, on failure an error object.

URL Parameters

/api/conn/inquire/<QueueManager>/<ConnectionId>

QueueManager

The name of the queuemanager. This parameter is required!

ConnectionId

A hexadecimal representation of a connection id. When this parameter is used, the query parameter for ConnectionId is ignored.

Query Parameters

ConnectionAttrs

With the ConnectionAttrs parameter you can specify which attributes must be returned from the PCF command. Multiple occurences of this parameter are possible. The value must be a (case-sensitive) valid attribute name.

Attrs is a synonym for ConnectionAttrs.

ConnectionId

A hexadecimal representation of a connection id. This parameter is ignored, when a URL parameter is used.

ConnInfoType

Type of connection information to be returned. Possible values are Connection, Handle or All. Values are case-sensitive. Default is Connection.

CommandScope

Specifies how the command is executed when the queue manager is a member of a queue-sharing group. This parameter applies to z/OS only.

Filter

Speficies which filter to use: I means Integerfilter, S means Stringfilter. FilterParam and FilterValue are required to create the filter. When a filter can’t be build because of too little information, it will be silently discarded.

FilterOp

The operator that is being used to evaluate whether the parameter satisfies the filter-value. The default is EQ.

The following values are allowed:

A Stringfilter can use some additional operators:

FilterParam

The name of the parameter to filter on. The names are based on the names used in the WebSphere MQ information center.

FilterValue

The value to use for filtering. When a string is passed for an Integerfilter, a WebSphere MQ constant is assumed.

URDisposition

The unit of recovery disposition associated with a connection (only valid on z/OS). Possible values are All, Group or Queuemanager. Values are case-sensitive.

Example

/api/conn/inquire/PIGEON

<?php
	/*
	 * Inquire all connections from queuemanager PIGEON.
	 * MQWeb runs on localhost and is listening on port 8081. 
	 */
	$url = "http://localhost:8081/api/conn/inquire/PIGEON/";
	
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

	if ( ($response = curl_exec($curl)) === false )	{
		$err = curl_error($curl);
		echo "An HTTP error occurred while getting connection information: $err\n";
	}
	else {
		$json = json_decode($response);
		if ( isset($json->error) ) {
			echo "An MQ error occurred while inquiring connections.\n";
			echo "Reason Code: {$json->error->reason->code} - {$json->error->reason->desc}\n";
		}
		else {
			if ( isset($json->data) && count($json->data) > 0 ) {
				foreach($json->data as $connection)
				{
					echo $connection->ApplTag->value;
					echo ' (';
					echo $connection->ApplType->display;
					echo ')';
					echo "\n";
				}
			}
			else
			{
				echo "No connections found\n";
			}
		}
	}

JSON Object

When using an application/json POST request you can post a JSON object with names like the query parameters.

All URL parameters and query parameters are ignored except for the URL parameter for the name of the queuemanager.

There are some differences between query parameters and a JSON object:

An IntegerFilterCommand can’t be used together with a StringFilterCommand

#!/usr/bin/perl
use strict;
use warnings;
use feature qw(say);

use JSON;
use LWP::UserAgent;
use HTTP::Request::Common;

# This sample will show all connections of the MQWeb daemon

my $qmgr = shift;
die("Please pass me the name of a queuemanager as argument")
	unless defined($qmgr);

my $json = JSON->new;

my %input = ( 
	'StringFilterCommand' => {
		'Parameter' => 'ApplTag',
		'Operator' => 'LK',
		'FilterValue' => 'mqweb*'
	}
);

my $content = $json->encode(\%input);    

my $ua = LWP::UserAgent->new;
my $req = POST 'http://localhost:8081/api/conn/inquire/' . $qmgr;
$req->header(
	'Content-Type' => 'application/json',
	'Content-length' => length($content)
);
$req->content($content);

my $res = $ua->request($req);
die $res->status_line unless $res->is_success;
	
my $mqweb = $json->decode($res->content());
if ( exists($mqweb->{error}) ) {
	say 'An MQ error occurred while inquiring connections.';
	say 'Reason Code: '
		, $mqweb->{error}->{reason}->{code}
		, ' - '
		, $mqweb->{error}->{reason}->{desc};
}
else {
	foreach my $connection(@{$mqweb->{data}}) {
		say $connection->{ApplTag}->{value}
			, ' = '
			, $connection->{ApplType}->{display} 
			, ' (pid='
			, $connection->{ProcessId}->{value}
			, ')';
	}
}