Top Banner
MQListener Autor: Ivana Martać МИНИСТАРСТВО ФИНАНСИЈА УПРАВА ЦАРИНА СЕКТОР ЗА ИНФОРМАЦИОНЕ ТЕХНОЛОГИЈЕ
18

Mq listener

Nov 18, 2014

Download

IBM Srbija

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mq listener

MQListener

Autor:

Ivana Martać

МИНИСТАРСТВО ФИНАНСИЈА УПРАВА ЦАРИНА СЕКТОР ЗА ИНФОРМАЦИОНЕ ТЕХНОЛОГИЈЕ

Page 2: Mq listener

MQListener

Uvod

Asinhroni listener

Dolazi uz DB2

Kombinuje messaging sa operacijama nad bazama podataka

Izvodi se kao single multi-threaded process na z/OS UNIX System Services (USS)

Daemon process

Page 3: Mq listener

MQListener

Task

MQListener Task je kombinacija WSMQ queue i DB2 Stored Procedure

Informacije o MQListener Task-ovima se čuvaju u konfiguracionoj DB2 tabeli

MQListener Task-ovi su grupisani zajedno u imenovane konfiguracije

Page 4: Mq listener

MQListener

Stored Procedure

Schema.ProcName (IN procIn Type1, OUT procOut Type2)

Poziv Stored Procedure strogo definisan: 1 IN i 1 OUT parametar

IN i OUT parametri mogu biti različitog tipa: VARCHAR, BLOB ili CLOB bilo koje dužine

Stored Procedure interface za MQListener uzima dolazni message kao input i vraća odgovor (REPLY), koji može biti NULL, kao output

Ako je dolazni message Request i postoji specificiran Reply-To queue, message u OUT parametru će biti poslat u specificiran queue.

* moramo koristiti isti Queue Manager za input message (Request) i Reply queue

Page 5: Mq listener

MQListener

KONFIGURACIJA

Poslovi

1. Poslovi pod DB2

2. Definisanje environment varijabli pod USS

3. Poslovi pod WSMQ

4. MQListener Task - definisanje * za poslove pod DB2 imamo isporučen JCL u hlq.SDSNSAMP : DSNTIJML, DSNTEJSP i DSNTEJML

* za poslove pod WSMQ primer JCL za kreiranje local queue postoji u knjizi DB2 for z/OS: Application Pogramming and Sql Guide.

Page 6: Mq listener

MQListener KONFIGURACIJA DB2 (1)

JOB DSNTIJML

Pseudocode =

COPYHFS Step1 Copy DSNTEJSP file as untar.cmd file on HFS

UNTARLN Step2 Untar mqlsn.tar file on HFS

CREATBL Step3 Create SYSMQL.LISTENERS table

BINDBRM Step4 Bind the dbrms u PLAN DB2MQLSN

* u step1 i step2 koristi se PATH gde je instaliran MQListener

Page 7: Mq listener

MQListener KONFIGURACIJA DB2 (2)

CREATBL Step3 -- Kreiranje tabele SYSMQL.LISTENERS

Za definisanje MQListener Task-ova

Svaki definisani Task je slog u tabeli

SYSMQL.LISTENERS

Svakom definisanom Task-u možemo dodeliti naziv

Svaki definisani Task povezuje odredjeni WSMQ queue sa

odredjenom, prethodno kreiranom DB2 Stored Procedure

Page 8: Mq listener

MQListener KONFIGURACIJA DB2 (3)

BINDBRM Step4 -- BIND za 2 package i 1 PLAN na DB2

Postoji podrška i za 1-fazni i za 2-fazni commit:

db2mqln1 -- verzija za 1-fazni commit –

interakcija sa DB2 i interakcija sa WSMQ su NEZAVISNE

db2mqln2 -- verzija za 2-fazni commit –

interakcije sa DB2 i interakcija sa WSMQ su kombinovane u

jedan unit of work

Page 9: Mq listener

MQListener KONFIGURACIJA USS

Definisanje environment varijabli

MQLNHOME

PATH

LIBPATH

STEPLIB

MQLSNLOG *

MQLSNTRC i TMPDIR **

* posle JOB-a DSNTIJML, copy i untar DSNTEJSP (step1 i step2), dobijamo

README file u kome je dato uputstvo za definisanje environment variabli

Page 10: Mq listener

MQListener

KONFIGURACIJA

WSMQ

Odrediti QM koji ćemo koristiti – možemo koristiti neki postojeći ili kreirati novi

Kreirati nekoliko local queue

Input i Output -- queue za aplikaciju Dead-letter (DLQ) i Backout queue Administration queue

* testna Aplikacija koristi 5 local queue

Page 11: Mq listener

MQListener KONFIGURACIJA Komande(1)

Koristimo MQListener komande.

Komande izvodimo: Direktno – sa komandne linije pod USS u bilo kojem

diektorijumu. Pozivom script file – sa komandne linije pod USS

– iz JCL-a pozivom BPXBATCH utility

help: db2mqln2 help

db2mqln2 help <command>

* primeri za script file imamo pod USS-om u direktorijumu

/MQListener-install-path/mqlsn/listener/script

* primer JCL za poziv BPXBATCH utility imamo u DSNTEJML

Page 12: Mq listener

MQListener KONFIGURACIJA Komande(2)

Definisanje MQListener Taska -- add:

db2mqln2 add -ssID DST -config TEST -queueManager CSQ1

-inputQueue LQ.IN -procName SPTEST -procSchema IVANA

-numInstances 3

Prikaz definisanog MQListener Taska -- show:

db2mqln2 show -ssID DST -config TEST

Brisanje definisanog MQListener Taska -- remove:

db2mqln2 remove -ssID DST -config TEST –queueManager CSQ1

-inputQueue LQ.IN

Page 13: Mq listener

MQListener KONFIGURACIJA Komande(3)

Start MQListener-a -- run:

db2mqln2 run -ssID DST -config TEST -adminQueue LQ.ADMIN

-adminQMgr CSQ1

Stop MQListener-a (shutdown ii restart) -- admin:

db2mqln2 admin -adminQueue LQ.ADMIN -adminQMgr CSQ1

-adminCommand shutdown / restart

* shutdown i restart su control messages

Page 14: Mq listener

MQListener

Obrada greške Ako dodje do greške pri obradi message i message treba da se pošalje u DLQ:

MQListener dodaje na message MQ dead-letter header (MQDLH) strukturu

MQListener setuje reason field u MQDLH strukturi na odgovarajući reason code

MQListener šalje message u DLQ

Page 15: Mq listener

MQListener

Testna Aplikacija (1)

Potrebno je kreirati Stored Procedure

CREATE PROCEDURE IVANA.SPTEST (IN PIN VARCHAR(25),

OUT POUT VARCHAR(2))

LANGUAGE SQL COLLID IVANA

WLM ENVIRONMENT WLMTEST

P1:

BEGIN

INSERT INTO IVANA.TEST VALUES(PIN);

SET POUT=’OK’;

END P1

Page 16: Mq listener

MQListener

Testna Aplikacija (2)

Kreirana tabela IVANA.TEST za potrebe testa

CREATE TABLE IVANA.TEST (MSG VARCHAR(25)

CHECK (MSG NOT LIKE ’FAIL%’));

* nad kolonom MSG podignut je CHECK constrain da bi se pri testiranju videlo kako se MQListener ponaša kad Stored Procedure ne uspe da obradi message

Page 17: Mq listener

H v a l a na pažnji !

Page 18: Mq listener

MQListener

Autor:

Ivana Martać

МИНИСТАРСТВО ФИНАНСИЈА УПРАВА ЦАРИНА СЕКТОР ЗА ИНФОРМАЦИОНЕ ТЕХНОЛОГИЈЕ