Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Websphere MQ Series          stefano.tassi@dexer.it
Immaginiamo uno scenario molto comune   SYS1                                     SYS2Copiare, spostare informazioni da un ...
Immaginiamo uno scenario molto comune   SYS1                                    SYS2CommitmentAtomicitàUna sola copia del ...
SYS1                                                 SYS2                           Network availability                  ...
E4B8ADE59BBD                                                                           ???????????           SYS1         ...
SYS1                                             SYS2                Indipendenza dalla piattaforma       stefano.tassi@de...
Websphere MQ Series – Concetti di base▪ Message & Queing  –Cos’è...    • MOM – Message Oriented Middelware  –Middelware: u...
Websphere MQ Series▪ MQ = Comunicazione Progamma-Programma▪ M=Messaging  – I programmi comunicano tra di    loro tramite M...
Websphere MQ Series – Concetti di base▪ Messaggio    • Qualsiasi blocco di informazioni da scambiare    • la struttura NON...
Websphere MQ Series – Concetti di base ▪ Code     • Contenitore di messaggi     • su i5 l’oggetto CODA e’ implementata con...
Websphere MQ Series – Concetti di base▪ Sincrono/Asincrono  – SINCRONO                                Analogia con TRG    ...
Websphere MQ Series – Concetti di base▪ Sincrono  +  – Semplice  – La riuscita e’ immediatamente verificata  – Semplice er...
Websphere MQ Series – Concetti di base▪ Asincrono  +  – Le richieste non devono essere indirizzate ad un particolare serve...
Websphere MQ Series▪ Ridotta complessità nella fase di integrazione (Stima tIntegrazione  25%)  – Semplicità nell’utilizz...
Websphere MQ Series▪ Ridotta complessità nella gestione  – WebSphere MQ Explorer tool (amministrazione remota) - Eclypse f...
Websphere MQ Series▪ WebSphere MQ Explorer tool (amministrazione remota) - Eclypse  framework▪ Anche per i5:▪ Deve esister...
Websphere MQ Series▪ File transfer (no i5)   – Nuova applicazione per File Transfer (dalla V6)   – via GUI o via Script la...
Websphere MQ Series – Concetti di base ▪ Disaccoppiamento   –Solo con Transazioni Asincrone   –Diversi sistemi (up and dow...
Websphere MQ Series – Concetti di base ▪ Persistenza   –Non sempre c’e’ necessità di conservare il messaggio in caso    di...
Websphere MQ Series: Semplificazione ▪ Portabilità lato Server  Server  • AIX  • HP-UX  • i5  • Linux  • Solaris  • Window...
Websphere MQ Series: Affidabilità e Integrità Commitment - Transazioni   – Vengono onorati Commit/Rollback nelle applicazi...
stefano.tassi@dexer.it
CH                           Q                                QMMQ Objects  stefano.tassi@dexer.it
Architettura basata su un singolo QManager                                    ▪ Le applicazioni                           ...
Architettura basata su un singolo QManager                          ▪ Le applicazioni risiedono                           ...
Architettura basata su più QManager           stefano.tassi@dexer.it
Websphere MQ Series                                    Local Queue Program-to-progam, 1 sistema           stefano.tassi@de...
Websphere MQ SeriesScrivere su una codaqmHandle=yMQConn(MQFER400); // connectqHandle=yMQOpen(qmHandle : ObjDescr1 : Option...
Websphere MQ Series Leggere da una coda qmHandle=yMQConn(MQFER400); // connect qHandle=yMQOpen(qmHandle : ObjDescr1 : Opti...
Websphere MQ SeriesProgram-to-progam, 2 sistemi                                    Canale:                                ...
Websphere MQ Series – CODE...    Local QUEUE                            Coda <Reale>   Remote QUEUE                    Str...
Websphere MQ Series                                    PGM                                    CFG                         ...
Websphere MQ Series          stefano.tassi@dexer.it
Websphere MQ Series – Implementazione su i5  ▪   QMQM (*LIB)  ▪   QMxxxxxxxx (*LIB)  da V7 Naming…  ▪   QMQMSAMP (*LIB)  ...
Il Sottosistema QMQM           stefano.tassi@dexer.it
i Qmanager (WRKMQM)STRSBS QMQM/QMQM[14=Start] oppure STRMQM …Se non e’ attivo QMQM non si possono avviare i QmanagerSTRMQM...
LISTENERSTRMQMLSR PORT(1414)Un listener per ogni QmanagerCheck con Telnet           stefano.tassi@dexer.it
Canali… SENDER         stefano.tassi@dexer.it
Canali… Cosa occorre controllare?                                    RUNNING --> OK                                    STO...
I log….          stefano.tassi@dexer.it
I log….          stefano.tassi@dexer.it
Il Quiescing di MQEndmqm …Endsbs QMQM            stefano.tassi@dexer.it
Il Rimozione ricevitori MQ RCDMQMIMG OBJ(*ALL) OBJTYPE(*ALL) MQMNAME(QM.COL) DSPJRNDTA(*YES)            stefano.tassi@dexe...
Un esempio di configurazione     stefano.tassi@dexer.it
Un esempio di configurazione                QMGR=MQFER400                                     QMGR=MQMAS400               ...
Websphere MQ Series - AutomatismiTriggering di un CanaleAttiva automaticamente un canale SDRnon interessa l’applicativocon...
Un esempio di configurazione                QMGR=MQFER400                                             QMGR=MQMAS400       ...
Un esempio di configurazione                QMGR=MQFER400                                             QMGR=MQMAS400       ...
Websphere MQ Series - Automatismi▪ Triggering di una Coda – rileva messaggio in arrivo su una coda – profondità...        ...
Websphere MQ Series - Automatismi▪ Triggering di una Coda         stefano.tassi@dexer.it
Un esempio di configurazione                QMGR=MQFER400                                             QMGR=MQMAS400       ...
Un esempio di configurazione    LQ    Q=MYP.LABEL00Q    INITQ=MYMQ.INITQ    PRC=MQMAS400.PROCESS                          ...
Un esempio di configurazione                QMGR=MQFER400                                             QMGR=MQMAS400       ...
Upcoming SlideShare
Loading in …5
×

Mq basic v2.1

698 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Mq basic v2.1

  1. 1. Websphere MQ Series stefano.tassi@dexer.it
  2. 2. Immaginiamo uno scenario molto comune SYS1 SYS2Copiare, spostare informazioni da un sistema ad un altroCosa dobbiamo considerare? stefano.tassi@dexer.it
  3. 3. Immaginiamo uno scenario molto comune SYS1 SYS2CommitmentAtomicitàUna sola copia del messaggio presente nei sistemi stefano.tassi@dexer.it
  4. 4. SYS1 SYS2 Network availability System availability Indipendenza dalla rete stefano.tassi@dexer.it
  5. 5. E4B8ADE59BBD ??????????? SYS1 SYS2 CharsetA round-trip conversion ensures the integrity of all character data from the source CCSID to the target CCSID and back to the source stefano.tassi@dexer.it
  6. 6. SYS1 SYS2 Indipendenza dalla piattaforma stefano.tassi@dexer.it
  7. 7. Websphere MQ Series – Concetti di base▪ Message & Queing –Cos’è... • MOM – Message Oriented Middelware –Middelware: uno strato di astrazione – software bridge tra diversi sistemi –Prodotti • Websphere MQ • Oracle Advanced Queing (OAQ) • Microsoft MSMQ • Open Source (JBoss Messaging, Apache Active MQ, ) • Java ha definito un’interfaccia: JMS stefano.tassi@dexer.it
  8. 8. Websphere MQ Series▪ MQ = Comunicazione Progamma-Programma▪ M=Messaging – I programmi comunicano tra di loro tramite Messaggi, non chiamandosi vicendevolmente▪ Q=Queing – I messaggi si propagano tramite Code; non devono quindi essere eseguiti in maniera concorrente stefano.tassi@dexer.it
  9. 9. Websphere MQ Series – Concetti di base▪ Messaggio • Qualsiasi blocco di informazioni da scambiare • la struttura NON deve essere conosciuta da MQ • lunghezza virtualmente illimitata, contenuti • CCSID round-trip • Qualche standard nella formattazione Messaggi che attraversano una coda stefano.tassi@dexer.it
  10. 10. Websphere MQ Series – Concetti di base ▪ Code • Contenitore di messaggi • su i5 l’oggetto CODA e’ implementata con JRN/JRNRCV + streamfiles in IFS stefano.tassi@dexer.it
  11. 11. Websphere MQ Series – Concetti di base▪ Sincrono/Asincrono – SINCRONO Analogia con TRG • L’applicativo invia una richiesta e rimane in attesa di una risposta • Richiede le parti attive contemporaneamente • Un’applicazione interattiva potrebbe aver necessità di richiedere informazioni a un altro sistema e aver necessità immediata della risposta e, contemporaneamente, accodare richieste che possono essere eseguite in un secondo momento - es. verifica di disponibilità + creazione ed invio di una lettera/e-mail – ASINCRONO Analogia con JRN • L’applicativo invia una richiesta/messaggio, il controllo puo’ esserci ma e’ futuro • I servizi non necessariamente devono essere disponibili contemporaneamente • Il poter *rimandare* certe operazioni permette di sganciare l’applicazione immediatamente e migliorare le prestazioni generali del sistema • I’invio BROADCAST di un messaggio spesso è un’operazione asincrona - Tabelloni informativi - Pubblicazione di bollettini - Replica di informazioni batch • Asincrono NON significa LENTO stefano.tassi@dexer.it
  12. 12. Websphere MQ Series – Concetti di base▪ Sincrono + – Semplice – La riuscita e’ immediatamente verificata – Semplice error-recovery (solitamente) – Ottimi tempi di risposta per real-time (soltiamente - – I servizi di entrambe le parti devono essere attivi – Il blocco delle le risorse e’ vincolato alla risposta stefano.tassi@dexer.it
  13. 13. Websphere MQ Series – Concetti di base▪ Asincrono + – Le richieste non devono essere indirizzate ad un particolare server – I servizi sulla macchina destinazione possono essere down – Nessun blocco di risorse per attesa - – I tempi di risposta possono essere non definiti/non definibili – La gestione degli errori puo’ essere piu’ complessa – Il disegno dell’applicazione puo’ essere piu’ difficiel stefano.tassi@dexer.it
  14. 14. Websphere MQ Series▪ Ridotta complessità nella fase di integrazione (Stima tIntegrazione  25%) – Semplicità nell’utilizzo delle API – Compatibilità delle API per circa 80 diverse piattaforme – Eliminazione della logica relativa a DATA-MOVEMENT e STORAGE  business logic stefano.tassi@dexer.it
  15. 15. Websphere MQ Series▪ Ridotta complessità nella gestione – WebSphere MQ Explorer tool (amministrazione remota) - Eclypse framework stefano.tassi@dexer.it
  16. 16. Websphere MQ Series▪ WebSphere MQ Explorer tool (amministrazione remota) - Eclypse framework▪ Anche per i5:▪ Deve esistere SYSTEM.MQEXPLORER.REPLY.MODEL (*MDL)▪ Deve essere in funzione un LISTENER STRMQMLSR PORT(1414)▪ Deve essere in funzione il CMDServer STRMQMCSVR MQMNAME(QM.COL) stefano.tassi@dexer.it
  17. 17. Websphere MQ Series▪ File transfer (no i5) – Nuova applicazione per File Transfer (dalla V6) – via GUI o via Script lanciati da applicazioni o triggerati da sistema▪ Time-independent processing – Partner in differenti time-zones – Invio dei dati e certezza della consegna – Disaccoppiamento delle applicazioni • (sistemi up-down in differenti momenti) – Invio asincrono (+performante)▪ Virtualmente si può integrare qualsiasi sistema stefano.tassi@dexer.it
  18. 18. Websphere MQ Series – Concetti di base ▪ Disaccoppiamento –Solo con Transazioni Asincrone –Diversi sistemi (up and down) –es.: paradigma Publish/subscribe • Chi pubblica non sa a priori a chi invierà i messaggi • C’è un’entità intermedia [Broker] • Il sottoscrittore decide di ricevere messaggi di proprio interesse stefano.tassi@dexer.it
  19. 19. Websphere MQ Series – Concetti di base ▪ Persistenza –Non sempre c’e’ necessità di conservare il messaggio in caso di restart di una coda • Tabelloni informativi –E’ piu’ impegnativa dal punto di vista performances stefano.tassi@dexer.it
  20. 20. Websphere MQ Series: Semplificazione ▪ Portabilità lato Server Server • AIX • HP-UX • i5 • Linux • Solaris • Windows • z/OS • ... stefano.tassi@dexer.it
  21. 21. Websphere MQ Series: Affidabilità e Integrità Commitment - Transazioni – Vengono onorati Commit/Rollback nelle applicazioni native rpg stefano.tassi@dexer.it
  22. 22. stefano.tassi@dexer.it
  23. 23. CH Q QMMQ Objects stefano.tassi@dexer.it
  24. 24. Architettura basata su un singolo QManager ▪ Le applicazioni risiedono sulla stessa macchina ▪ Il Qmanager provvede all’inoltro dei messaggi (asincroni) stefano.tassi@dexer.it
  25. 25. Architettura basata su un singolo QManager ▪ Le applicazioni risiedono sulla stessa macchina o su una diversa macchina ▪ IL Qmanager provvede all’inoltro dei messaggi (asincroni) ▪ Le applicazioni connesse sono dei CLIENTS del QManager ▪ i client hanno limitazioni –Distanza –Disponibilità del servizio ▪ L’approccio alla modalità client è scalabile –da client a server (+QMAnager) stefano.tassi@dexer.it
  26. 26. Architettura basata su più QManager stefano.tassi@dexer.it
  27. 27. Websphere MQ Series Local Queue Program-to-progam, 1 sistema stefano.tassi@dexer.it
  28. 28. Websphere MQ SeriesScrivere su una codaqmHandle=yMQConn(MQFER400); // connectqHandle=yMQOpen(qmHandle : ObjDescr1 : Options1 ); // openyMqPut(qmHandle:qHandle : msg_PutDescr1 : msg_PutOption1 : %len(%trim(dati)): %addr(dati)); //put datayMQClose(qmHandle:qHandle:Options1); //closeyMQDisc(qmHandle); // disconnect stefano.tassi@dexer.it
  29. 29. Websphere MQ Series Leggere da una coda qmHandle=yMQConn(MQFER400); // connect qHandle=yMQOpen(qmHandle : ObjDescr1 : Options1 ); // open DatiLen= yMqGet(qmHandle: qHandle : msg_GETDescr1:msg_GETOption1 :%len(dati):b_ ); //get data yMQClose(qmHandle:qHandle:Options1); //close yMQDisc(qmHandle); // disconnect stefano.tassi@dexer.it
  30. 30. Websphere MQ SeriesProgram-to-progam, 2 sistemi Canale: •TCP/IP •SNA •IPX •... stefano.tassi@dexer.it
  31. 31. Websphere MQ Series – CODE... Local QUEUE Coda <Reale> Remote QUEUE Struttura che descrive una coda Tx QUEUE (xmitQ) Local Q con compiti speciali Init QUEUE Local Q con compiti speciali stefano.tassi@dexer.it
  32. 32. Websphere MQ Series PGM CFG Non guardate i contenuti ma osservate l’isolamento programma- configurazione stefano.tassi@dexer.it
  33. 33. Websphere MQ Series stefano.tassi@dexer.it
  34. 34. Websphere MQ Series – Implementazione su i5 ▪ QMQM (*LIB) ▪ QMxxxxxxxx (*LIB)  da V7 Naming… ▪ QMQMSAMP (*LIB) ▪ QMQM/QMQM (*SBSD) ▪ QMQM, QMQMADM (*USRPRF) ▪ AMQ* (*JRN-*JRNRCV) ▪ /QIBM/UserData/mqm (*DIR) ▪ /QIBM/ProdData/mqm (*DIR) Red=oggetti interessati al salvataggio dati Utente stefano.tassi@dexer.it
  35. 35. Il Sottosistema QMQM stefano.tassi@dexer.it
  36. 36. i Qmanager (WRKMQM)STRSBS QMQM/QMQM[14=Start] oppure STRMQM …Se non e’ attivo QMQM non si possono avviare i QmanagerSTRMQMCSVR MQMNAME(QM.COL)Abilita diverse funzioni: (MQExplorer, STRMQMMQSC ) stefano.tassi@dexer.it
  37. 37. LISTENERSTRMQMLSR PORT(1414)Un listener per ogni QmanagerCheck con Telnet stefano.tassi@dexer.it
  38. 38. Canali… SENDER stefano.tassi@dexer.it
  39. 39. Canali… Cosa occorre controllare? RUNNING --> OK STOPPED --> Canale disabilitato RETRYING --> tentativi di riconnessione INACTIVE --> OK stefano.tassi@dexer.it
  40. 40. I log…. stefano.tassi@dexer.it
  41. 41. I log…. stefano.tassi@dexer.it
  42. 42. Il Quiescing di MQEndmqm …Endsbs QMQM stefano.tassi@dexer.it
  43. 43. Il Rimozione ricevitori MQ RCDMQMIMG OBJ(*ALL) OBJTYPE(*ALL) MQMNAME(QM.COL) DSPJRNDTA(*YES) stefano.tassi@dexer.it
  44. 44. Un esempio di configurazione stefano.tassi@dexer.it
  45. 45. Un esempio di configurazione QMGR=MQFER400 QMGR=MQMAS400 STRMQMLSR 1414 MQMNAME(MQMAS400)RQQ=MYP.LABEL00Q.OUTRMTQM=MQMAS400RMTQ=MYP.LABEL00QTQ=MQFER400.MQMAS400.TQ LQ Q=MYP.LABEL00Q 6 1 TQ-LQ Q=MQFER400.MQMAS400.TQ 4 USAGE=XMITQ 3 2 Channel - SDR 5 Channel - RCV CH=MQFER400.MQMAS400 CH=MQFER400.MQMAS400 CN=targethost(1414) TQ=MQFER400.MQMAS400.TQ stefano.tassi@dexer.it
  46. 46. Websphere MQ Series - AutomatismiTriggering di un CanaleAttiva automaticamente un canale SDRnon interessa l’applicativoconfig: specifica quale canale attivare a fronte di un MSG in partenza stefano.tassi@dexer.it
  47. 47. Un esempio di configurazione QMGR=MQFER400 QMGR=MQMAS400 STRMQMLSR 1414 MQMNAME(MQMAS400)RQQ=MYP.LABEL00Q.OUTRMTQM=MQMAS400RMTQ=MYP.LABEL00QTQ=MQFER400.MQMAS400.TQ LQ Q=MYP.LABEL00Q 8 1 TQ-LQ Q=MQFER400.MQMAS400.TQ 6 USAGE=XMITQ TRIGGER=YES TRGDATA=MQFER400.MQMAS400 INITQ=MQFER400.MQMAS400.CHINITQ 3 2 5 4 LQ Q=MQFER400.MQMAS400.CHINITQ Channel - SDR 7 Channel - RCV CH=MQFER400.MQMAS400 CH=MQFER400.MQMAS400 CN=targethost(1414) TQ=MQFER400.MQMAS400.TQ a STRMQMCHLI QNAME(MQFER400.MQMAS400.CHINITQ) MQMNAME(MQFER400) - (Channel initiator) STRMQMCSVR MQMNAME(MQFER400) stefano.tassi@dexer.it
  48. 48. Un esempio di configurazione QMGR=MQFER400 QMGR=MQMAS400 STRMQMLSR 1414 MQMNAME(MQMAS400)RQQ=MYP.LABEL00Q.OUTRMTQM=MQMAS400RMTQ=MYP.LABEL00QTQ=MQFER400.MQMAS400.TQ LQ Q=MYP.LABEL00Q 1 TQ-LQ Q=MQFER400.MQMAS400.TQ USAGE=XMITQ TRIGGER=YES TRGDATA=MQFER400.MQMAS400 INITQ=MQFER400.MQMAS400.CHINITQ LQ Q=MQFER400.MQMAS400.CHINITQ Channel - SDR Channel - RCV CH=MQFER400.MQMAS400 CH=MQFER400.MQMAS400 CN=targethost(1414) TQ=MQFER400.MQMAS400.TQ STRMQMCHLI QNAME(MQFER400.MQMAS400.CHINITQ) MQMNAME(MQFER400) - (Channel initiator) STRMQMCSVR MQMNAME(MQFER400) stefano.tassi@dexer.it
  49. 49. Websphere MQ Series - Automatismi▪ Triggering di una Coda – rileva messaggio in arrivo su una coda – profondità... Scodatore specializzato Programma in ascolto - generico stefano.tassi@dexer.it
  50. 50. Websphere MQ Series - Automatismi▪ Triggering di una Coda stefano.tassi@dexer.it
  51. 51. Un esempio di configurazione QMGR=MQFER400 QMGR=MQMAS400 STRMQMLSR 1414 MQMNAME(MQMAS400)RQQ=MYP.LABEL00Q.OUTRMTQM=MQMAS400RMTQ=MYP.LABEL00QTQ=MQFER400.MQMAS400.TQ LQ Q=MYP.LABEL00Q 1 INITQ=MYMQ.INITQ PRC=MQMAS400.PROCESS 3 TQ-LQ Q=MQFER400.MQMAS400.TQ 2 LQ USAGE=XMITQ Q=MYMQ.INITQ TRIGGER=YES (alimentata da TRG) TRGDATA=MQFER400.MQMAS400 INITQ=MQFER400.MQMAS400.CHINITQ PRC PRC=MQMAS400.PROCESS (Fittizio, viene alimentata la INITQ) LQ Q=MQFER400.MQMAS400.CHINITQ Channel - SDR Channel - RCV CH=MQFER400.MQMAS400 CH=MQFER400.MQMAS400 CN=targethost(1414) TQ=MQFER400.MQMAS400.TQ STRMQMCHLI QNAME(MQFER400.MQMAS400.CHINITQ) MQMNAME(MQFER400) - (Channel initiator) STRMQMCSVR MQMNAME(MQFER400) stefano.tassi@dexer.it
  52. 52. Un esempio di configurazione LQ Q=MYP.LABEL00Q INITQ=MYMQ.INITQ PRC=MQMAS400.PROCESS UserProgram: MQGET in ascolto su INITQ LQ Q=MYMQ.INITQ FormatoMessaggio: (alimentata da TRG) TriggerData: Contiene NOME della Coda che ha scatenato l’evento TRG: MYP.LABEL00Q PRC PRC=MQMAS400.PROCESS Puo’ sottomettere/lanciare JOB che scoda Channel - RCV CH=MQFER400.MQMAS400 stefano.tassi@dexer.it
  53. 53. Un esempio di configurazione QMGR=MQFER400 QMGR=MQMAS400 STRMQMLSR 1414 MQMNAME(MQMAS400)RQQ=MYP.LABEL00Q.OUTRMTQM=MQMAS400RMTQ=MYP.LABEL00QTQ=MQFER400.MQMAS400.TQ LQ Q=MYP.LABEL00Q 1 PRC=MQMAS400.PROCESS TQ-LQ Q=MQFER400.MQMAS400.TQ 2 - Alternativa USAGE=XMITQ TRIGGER=YES TRGDATA=MQFER400.MQMAS400 INITQ=MQFER400.MQMAS400.CHINITQ PROCESS PRC=MQMAS400.PROCESS APPID=LIBR/PROGRAM LQ 3 Q=MQFER400.MQMAS400.CHINITQ *PGM=LIBR/PROGRAM Channel - SDR CH=MQFER400.MQMAS400 Parm: DS MQMT CN=targethost(1414) Riceve nome della coda TQ=MQFER400.MQMAS400.TQ E provvede a scodare MQGET STRMQMCHLI QNAME(MQFER400.MQMAS400.CHINITQ) Channel - RCV MQMNAME(MQFER400) - (Channel initiator) CH=MQFER400.MQMAS400 STRMQMCSVR MQMNAME(MQFER400) stefano.tassi@dexer.it

×