Giter VIP home page Giter VIP logo

mqweb's Introduction

MQWeb

MQWeb - A REST API server for Websphere MQ

MQWeb is a HTTP server that can be used to get information from WebSphere MQ.

All documentation is available on https://fbraem.github.io/mqweb/.

mqweb's People

Contributors

fbraem avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mqweb's Issues

Command server replies will have unlimited expiry without MQRO_PASS_DISCARD_AND_EXPIRY, will go to DLQ without MQRO_DISCARD_MSG

command->message()->setExpiry(1200000);

I learned recently that by default the command server sends all replies with unlimited expiry unless you set the MQRO_PASS_DISCARD_AND_EXPIRY reporting option. If you set MQRO_PASS_DISCARD_AND_EXPIRY then the command server will pass the remaining expiry from the request message to the reply. In addition if you have also set MQRO_DISCARD_MSG it will pass this on as well preventing it from going to the DLQ, even if only for the remaining expiry.

Adding something like this will do the trick to add those:

command->message()->setReport(MQRO_PASS_DISCARD_AND_EXPIRY | MQRO_DISCARD_MSG);

Hope this helps in some way. I stumbled on your project off a Blog post you commented on over at Capitalware. Looks very nice.

Remove queuemanager from pool when MQRC=2009 Connection Broken

When a queuemanager is stopped or in error and a 2009 is returned, the queuemanager connection must be removed from the pool. When the queuemanager is back available and the connection is still in the pool, it is possible that it reuses the wrong handle.

Read MQ-command-events and MQ-config-events on the nodes?

Hey fbraem,

I'm pretty new to all this but i'm sure you are able to provide us (me and my collegues) with the right questions to understand the content of the following "enhancement-request".

Would it be a good idea to collect (MQGET) the native WSMQ-"audit/error/..."-events that are generated on WSMQ-backends in MQWEB. (as you are probably well aware those messages have a pcf-structure)

What is your idea as an expert on the following usecases?

e.g.:

  • One might be able to see in MQWEB who execute an administrative action (stop channel/refresh security/resume cluster/define object/...) and when (via "WSMQ command events" that are generated on the connected MQ-nodes)
  • One might be able to see in MQWEB who changed/defined an MQ-object + what was the object definition BEFORE and AFTER that action (via "WSMQ config events" that are generated on the connected MQ-nodes)
    (A same mechanism could be implemented for "qmgr-event-queues" and several other event-queues. However I'm not sure whether this will result in too much content for one enhancement request...)

In this proposal MQWEB would destructively read the messages on the connected WSMQ-nodes on the configured audit-event-queues. ("command-events" and "config-events")
If supporting other "event-consumers of the same audit/error-events" is a requirement, it will be possible to archieve this via PUB/SUB-setup on the MQ-queuemanager. The suggested mechanism of MQGET may ensure that audit-events can be read in a swift and performing manner (mqget with wait-interval) and the "MQGET by MQWEB" does not need to result in a loss of audit/error-information.

Received a WebSphere MQ error: 2085

Hello Franky,

I'm having issue using the Master version + poco-1.7.8p2 on Windows 7 64, against MQ 7.5. MQ error 2085.
The client is the Python scripts in the Samples folder. The connection seems to be well established.

When I look at the description of the error 2085, it doesn't make sense to my setting because I don't have cluster.
Log:
2017-05-29 17:31:25 CANL-BN75S32 9684-4 T *** api controller: qmstatus
2017-05-29 17:31:25 CANL-BN75S32 9684-4 I *** Connection information: { "channel" : "SYSTEM.ADMIN.SVRCONN", "connection" : "10.106.123.100(1414)" }
2017-05-29 17:31:25 CANL-BN75S32 9684-4 T *** MQ4 - MQCONNX : CC=0 : RC=0
2017-05-29 17:31:26 CANL-BN75S32 9684-4 T *** MQOPEN : CC=0 : RC=0
2017-05-29 17:31:26 CANL-BN75S32 9684-4 T *** MQINQ : CC=0 : RC=0
2017-05-29 17:31:26 CANL-BN75S32 9684-4 T *** MQCLOSE : CC=0 : RC=0
2017-05-29 17:31:26 CANL-BN75S32 9684-4 T *** SYSTEM.ADMIN.COMMAND.QUEUE - MQOPEN : CC=0 : RC=0
2017-05-29 17:31:26 CANL-BN75S32 9684-4 T *** MQWEB.REPLY.Q01 - MQOPEN : CC=2 : RC=2085
2017-05-29 17:31:26 CANL-BN75S32 9684-4 T *** MQCLOSE : CC=0 : RC=0
2017-05-29 17:31:26 CANL-BN75S32 9684-4 T *** Trying to open SQLite database C:\vms\MQ-DOCS\mqweb-develop\bin\Debug\mqweb.db to load dictionary Reason
2017-05-29 17:31:26 CANL-BN75S32 9684-4 E *** SQL Statement invalid: SQL error or missing database: no such table: texts
Do I, may be, miss some thing in my properties file? (attached).

Tips to resolve the issue are really appreciated.

Thanks,

Victor

mqwebd.zip

Dashboard as homepage for a queuemanager

Create a dashboard as homepage for a queuemanager:

Overview queues which contains messages
View events
View DLQ messages
View channel status
View active connections
...

UI Bug: Browsing messages in the queue

I am able to select queue which has 10 message and it shows Depth:10 / 5,000 where 10 is hyperlink. When I click on hyperlink, it takes me to Limits pages. I tried various values for Limit Messages and Teaser Length e.g set limits to 1, 19, *, 2 , removed teaser length

but nothing is happening.

See the tracelog details when I click on filter link for limits:

2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MYQMGR - MQCONNX : CC=0 : RC=0
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQOPEN : CC=0 : RC=0
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQINQ : CC=0 : RC=0
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQCLOSE : CC=0 : RC=0
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** SYSTEM.ADMIN.COMMAND.QUEUE - MQOPEN : CC=0 : RC=0
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** AMQ.535A84DE20024E06 - MQOPEN : CC=0 : RC=0
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MY.QUEUE - MQOPEN : CC=0 : RC=0
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQGET : CC=1 : RC=2079
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQGET : CC=1 : RC=2079
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQGET : CC=1 : RC=2079
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQGET : CC=1 : RC=2079
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQGET : CC=1 : RC=2079
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQGET : CC=1 : RC=2079
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQGET : CC=1 : RC=2079
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQGET : CC=1 : RC=2079
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQGET : CC=1 : RC=2079
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQGET : CC=1 : RC=2079
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQGET : CC=2 : RC=2033
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQCLOSE : CC=0 : RC=0
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQCLOSE : CC=0 : RC=0
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQCLOSE : CC=0 : RC=0
2014-04-27 03:24:03 localhost.localdomain 4806-2 T *** MQDISC : CC=0 : RC=0

Empty connection id must be initialized

When no connection id is passed, MQWeb uses MQBACF_GENERIC_CONNECTION_ID and an empty Poco::Buffer. This results in an assertion 0 < buffer.size() ... A buffer with length MQ_CONNECTION_ID_LENGTH must be used which is initialized with 0 ...

While selecting queue name, getting error MQRC_Q_MGR_NAME_ERROR

Hello,
I am successfully able to connect to my local instance of queue manager. On dashboard, I can see both of my queues listed with number of messages but when I click on any of these queues, I get error page with following error.

Object: index
Function: MQCONNX
Code: ERROR
Reason: 2058 - MQRC_Q_MGR_NAME_ERROR

Similarly I get errors when I click on 'List queues' and 'List Channels' under 'Our services' but if I click on top level tabs (home, queues, channels, listeners), I am able to see all the queues based on filter criteria.

Thanks
Joshi

Limit 16k message.

With 0.0.9, i have following message on "Channel Status" :

Object: AMQ.CD011D0BD0D1FE06 QT10 AMQ.*
Function: MQGET
Code: WARNING
Reason: 2120 - MQRC_TRUNCATED

It's possible to remove the limit of 16k message ?

0.0.9

  • Limit browse of messages to 16K

SSL Support

Hello,
Thanks for MQWeb project. Does MQWeb support connection over SSL? If not any plan to add support?

Thanks,
Joshi

Installation Error

I am using Redhat EL6 64 bit and when trying to make the mqweb using command ' make' it throws the below error.

Can you please help me to fix this.

QueueMapper.cpp
Linking MQWeb
/usr/bin/ld: skipping incompatible /usr/local/include/../lib/libPocoNetd.so when searching for -lPocoNetd
/usr/bin/ld: skipping incompatible /usr/local/include/../lib/libPocoNetd.a when searching for -lPocoNetd
/usr/bin/ld: skipping incompatible /usr/local/lib64/../lib/libPocoNetd.so when searching for -lPocoNetd
/usr/bin/ld: skipping incompatible /usr/local/lib64/../lib/libPocoNetd.a when searching for -lPocoNetd
/usr/bin/ld: skipping incompatible /usr/local/lib/../lib/libPocoNetd.so when searching for -lPocoNetd
/usr/bin/ld: skipping incompatible /usr/local/lib/../lib/libPocoNetd.a when searching for -lPocoNetd
/usr/bin/ld: skipping incompatible /usr/local/lib/libPocoNetd.so when searching for -lPocoNetd
/usr/bin/ld: skipping incompatible /usr/local/lib/libPocoNetd.a when searching for -lPocoNetd
/usr/bin/ld: skipping incompatible /usr/local/lib/libPocoNetd.so when searching for -lPocoNetd
/usr/bin/ld: skipping incompatible /usr/local/lib/libPocoNetd.a when searching for -lPocoNetd
/usr/bin/ld: cannot find -lPocoNetd
collect2: ld returned 1 exit status
make[1]: *** [../../bin/Debug/mqwebd] Error 1
make: *** [MQWeb] Error 2
[root@server1 gmake]#

MQ Header support

Viewing properties, dlq information, rfh2, event information, ...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.