mq listener

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

Upload: ibm-srbija

Post on 18-Nov-2014

545 views

Category:

Entertainment & Humor


0 download

DESCRIPTION

 

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ć

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