Author |
Message
|
jschoppet |
Posted: Wed May 22, 2002 12:08 am Post subject: More process for one queue |
|
|
Novice
Joined: 15 May 2002 Posts: 17
|
Hi all,
is there a possibility to define more than one process for one queue?
The case:
I have two qmgr on different machines (SUN Solaris). QM1 sends messages to QM3. In the transmission queue on QM1 I've defined a process which starts the sender-channel to QM2.
Now, I would gladly define a second process, which starts a program on each message, which arrives in the transmission queue.
How can I do this?
Kind Regards
Jörg Schoppet |
|
Back to top |
|
 |
oz1ccg |
Posted: Wed May 22, 2002 12:25 am Post subject: |
|
|
 Yatiri
Joined: 10 Feb 2002 Posts: 628 Location: Denmark
|
I'm sorry to tell you that there might be one and only one process per queue..
However if it's on the distributed platform you can use triggerdata on the transmission queue, but I don't think it will help you.
By the way waht will you do on the transmission queue ? .... this is a non programmer queue ? _________________ Regards, Jørgen
Home of BlockIP2, the last free MQ Security exit ver. 3.00
Cert. on WMQ, WBIMB, SWIFT. |
|
Back to top |
|
 |
jschoppet |
Posted: Wed May 22, 2002 12:35 am Post subject: |
|
|
Novice
Joined: 15 May 2002 Posts: 17
|
Hi,
well, I only have access to QM1 and there I want to generate a logging-program.
This program should log when messages are put on the transmission queue.
Is there another way to realise this?
Jörg Schoppet |
|
Back to top |
|
 |
oz1ccg |
Posted: Wed May 22, 2002 2:44 am Post subject: |
|
|
 Yatiri
Joined: 10 Feb 2002 Posts: 628 Location: Denmark
|
Ooops, that is not the the way to do that job. (my opinnion)
The smartest way to create logs.... (asfar as i see it) is to create a exit to handle the job, because you're able (and shure) to obtain all msgs, you don't have to rely on how MQSeries (and the OS) is scheduling the programs doing MQGets (your appl and the channel initiator).
You might take a look on samples/c/amqsxrma.c to get some inspiration.... (placed under MQSeries path)
The exit hooks in the message exit, and you can monitor all data, when transmitted (or recived..) _________________ Regards, Jørgen
Home of BlockIP2, the last free MQ Security exit ver. 3.00
Cert. on WMQ, WBIMB, SWIFT. |
|
Back to top |
|
 |
jschoppet |
Posted: Wed May 22, 2002 3:59 am Post subject: |
|
|
Novice
Joined: 15 May 2002 Posts: 17
|
Hi,
I'm an extrem beginner in MQSeries. Are there any IBM-Books which explain "easy" how I can work with this sample?
Jörg Schoppet |
|
Back to top |
|
 |
oz1ccg |
Posted: Wed May 22, 2002 5:58 am Post subject: |
|
|
 Yatiri
Joined: 10 Feb 2002 Posts: 628 Location: Denmark
|
Take a look in the Intercommunication book, there is a chapter named Channel-exit programs, which covers the most of it.
About the sample amqsxrma.c it's documented in the information center on windows/NT...
There a some IBM supportpacks to get inspiration from available on the net: http://www-3.ibm.com/software/ts/mqseries/txppacs/
Generally developing exit is a non trivial task, one of the problems is that we're dealing allmost inside the queuemanagers, and it can be difficult to debug. Well that also what give the most challanges  _________________ Regards, Jørgen
Home of BlockIP2, the last free MQ Security exit ver. 3.00
Cert. on WMQ, WBIMB, SWIFT. |
|
Back to top |
|
 |
jschoppet |
Posted: Wed May 22, 2002 8:22 am Post subject: |
|
|
Novice
Joined: 15 May 2002 Posts: 17
|
Hi,
there is a good SupportPac (MA06), which makes exactly what I want, but I couldn't compile it for SUN Solaris.
That's life.
Although, thanxs for the good ideas.
Jörg Schoppet |
|
Back to top |
|
 |
dgolding |
Posted: Thu May 23, 2002 2:52 am Post subject: |
|
|
 Yatiri
Joined: 16 May 2001 Posts: 668 Location: Switzerland
|
Hi Jörg,
What problems did you have compiling it (MA06) for Sun Solaris? The Intercommuncation Guide has instructions for compiling channel/message exits for the different Unix platforms. |
|
Back to top |
|
 |
jschoppet |
Posted: Thu May 23, 2002 4:43 am Post subject: |
|
|
Novice
Joined: 15 May 2002 Posts: 17
|
Hi,
on the server there is installed gcc.
After I have replaced all "??(" and "??)" with "[" and "]" I have started the compilation with "gcc MSGMON.C".
Then I get a lot of error-messages which look like:
"/usr/ccs/bin/as: /var/tmp/ccFSxCtt.s, line 679: error: unknown opcode .uleb128"
"/usr/ccs/bin/as: /var/tmp/ccFSxCtt.s, line 679: error: statement syntax"
I've no plan what this should be.
Jörg Schoppet |
|
Back to top |
|
 |
dgolding |
Posted: Thu May 23, 2002 5:19 am Post subject: |
|
|
 Yatiri
Joined: 16 May 2001 Posts: 668 Location: Switzerland
|
Hi Jörg,
Apart from the fact that it is looking for a \temp directory if it is not AIX (should be /tmp), the putmsgq utility compiled okay (alright, some warnings) and ran. Same with the MSGMON, this compiled for me.
Could I suggest perhaps not using "gcc" - have you got a Sun-supplied compiler? I know gcc is supposed to work, but....
One thing - if you haven't renamed your MSGMON.C to msgmon.c - then "gcc" might think you have got a C++ prog. Maybe - I'm guessing here - I have seen a compiler interpret *.C files as C++, and not C.
However, this support pack will need hacking for Solaris use, if only for the location of the ini file. |
|
Back to top |
|
 |
jschoppet |
Posted: Thu May 23, 2002 5:57 am Post subject: |
|
|
Novice
Joined: 15 May 2002 Posts: 17
|
hi dgolding,
to make the file in lowercases was very good. Now I get other error-messages. I'll post them, but I understand, that this is off-topic and have not to been answered.
Undefined first referenced
symbol in file
main /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/3.0.3/crt1.o
ld: fatal: Symbol referencing errors. No output written to a.out
collect2: ld returned 1 exit status
Jörg Schoppet |
|
Back to top |
|
 |
dgolding |
Posted: Thu May 23, 2002 6:08 am Post subject: |
|
|
 Yatiri
Joined: 16 May 2001 Posts: 668 Location: Switzerland
|
|
Back to top |
|
 |
jschoppet |
Posted: Fri May 24, 2002 1:07 am Post subject: |
|
|
Novice
Joined: 15 May 2002 Posts: 17
|
Hi,
i've got it. I could compile it.
But now I have another problem.
I've copied the file msgmon to /usr/lib, also the file channel.ini.
then I've started the QMgr and changed the sender-channel:
stop channel(CHANNEL1)
alter channel(CHANNEL1) chltype(SDR) msgexit('/usr/lib/msgmon(MsgExit)') msgdata('/usr/lib/channel.ini')
start channel(CHANNEL1)
In the errorlog-file I get the following messages:
AMQ6188: The system could not load the library '/usr/lib/msgmon'. The errormessage: 'ld.so.1: /opt/mqm/bin/runmqchl: fatal: MQPlugInit: cant't find symbol'
The channel is stopped
What have I made wrong?
Joerg Schopept |
|
Back to top |
|
 |
jschoppet |
Posted: Fri May 24, 2002 1:38 am Post subject: |
|
|
Novice
Joined: 15 May 2002 Posts: 17
|
Hi,
I've got it. I had some permission problems.
Thanxs for everything.
Joerg Schoppet |
|
Back to top |
|
 |
dgolding |
Posted: Fri May 24, 2002 1:46 am Post subject: |
|
|
 Yatiri
Joined: 16 May 2001 Posts: 668 Location: Switzerland
|
Hi Joerg,
How did you compile it? It needs to be a shared object (so MQ can dynamically load it) - with Suns C compiler, you use (reading from the "MQ intercommunication guide, channel-exit programs section" here):
cc -c -KPIC msgmon.c
ld -G msgmon.o -o msgmon
cp msgmon /usr/lib
...but for GCC I have no idea, I'm afraid it's time to read the manual I'm afraid!
AFAIK the KPIC option is merely saying use 32bit addressing, which should be fine for MQ - so whatever is the same setting for GCC (it's probably the default).
The really important thing is the ld -G - this says effectively "make this program dynamically callable". |
|
Back to top |
|
 |
|