Sie sind auf Seite 1von 10

Definio de objetos MQSeries para interligao de Sistemas V1.

Pgina 1/ 10

Objetivo: O objetivo deste trabalho o de definir padres a serem seguidos no ambiente de troca de mensagens entre sistemas utilizando para isto o gerenciador de mensagens MQSeries. Outros gerenciadores de filas JMS compliant podem ser usados bastando para isto serem alterados alguns parmetros aqui propostos, o que de uma maneira geral no invalidaria o modelo proposto. Escopo do trabalho escopo deste trabalho a definio de objetos MQSeries, sendo estes: Gerenciador de filas, fila de transmisso, filas remotas, filas locais, canais de envio e recepo de mensagens. No escopo deste trabalho definir classes, lgica de conexo e/ou outros padres inerentes do desenvolvimento especficos dos sistemas que por ventura venham a utilizar da infra- estrutura aqui proposta. Todos os objetos esto sendo aqui descritos de uma forma a termos uma completa abstrao do ambiente a que o sistema cliente venha a ser desenvolvido, bastando que este venha tambm a ter compatibilidade com o modelo JMS.

Ambiente proposto: O ambiente aqui proposto vem definir os objetos necessrios para uma completa comunicao entre sistemas, sendo possvel a implementao de canais de comunicao nos sentidos um para um ou um para muitos. Ou seja, um sistema poder trocar mensagens com um ou vrios outros sistemas sem que para isto o caminho de postagem das mensagens concorra. Para cada sistemas teremos definidos sete tipos de objetos sendo estes: fila local, fila remota, fila de transmisso, canal de recepo (receiver), canal de envio(sender) e canal de conexo (servconnection). Abaixo temos o diagrama propondo estes objetos e sua nomenclatura:

Pgina 2/ 10

Definio dos objetos:

1 Definio das caractersticas do gerenciador de filas de um sistema: Cada sistema que venha a fazer parte deste ambiente dever ter seu gerenciador de filas prprio, sendo que o padro de nome a ser seguido define um tamanho padro de nomes com oito caracteres, de modo a mantermos uma padronizao geral deve ser sempre seguido este comprimento, na formao do nome do gerenciador teremos tambm a sigla QM indicando que aquele nome se refere a um gerenciador de filas, com isto a formao da nomenclatura de um gerenciador de filas padro ser: QM.AAAAAAAA. 1.1 Parmetros a serem seguidos: 1.1.1 Log: O padro de log do queue manager ser linear, com isto teremos maior facilidade de localizar possveis eventos de outros dias. 1.1.2 Dead- Letter queue: A fila que conter as mensagens que de alguma forma no puderem ser tratadas pelo queue manager devera ter ser nome como QL.ERRO. Abaixo segue o comando usado para criao de um Queue manager seguindo os padres deste documento: crtmqm - u QL.ERRO - ll QM.AAAAAAAA

2 Definio de Fila Local: Cada sistema ter apenas uma fila local sendo que a nomenclatura desta seguira o padro: QL.AAAAAAAA, esta fila recebera as mensagens dos outros sistemas que o sistema em questo por ventura ira se comunicar, o processamento de mensagens postadas nesta fila seguir o padro FIFO(first- in fisrt- out). A definio de parmetros especficos desta fila sero: 2.1 Description: Este atributo conter uma breve descrio deste objeto, um exemplo de descrio ser: QL sis AAAAAAAA. 2.2 DefPersistent: Este atributo deve ser setado de modo a termos a persistncia de uma mensagem em uma eventual falha de sistema e/ou reset do queue manager.

Pgina 3/ 10

2.3 MaxQdepth: Este atributo deve ser setado para 5000, com isto teremos o limite de ate 5000 mensagens a serem postadas em uma fila sem que esta comece a negar a postagem de alguma outra mensagem, sendo que se este caso ocorrer, o gerenciador informara o aviso MQRC_Q_FULL. 2.4 MaxMsgl: Este atributo informa o maior tamanho de uma mensagem que poder ser colocada em uma fila, este valor dever ser 10485760, que corresponde a 100mb. Este valor o indicado para ambientes linux, windows e Solares. 2.5 MsgDlvSq: Este parmetro determina a forma com que as mensagens sero retidas das filas, sendo que o valor a ser usado ser: FIFO (primeira mensagem a entrar ser a ultima a sair). Abaixo ser mostrado um exemplo de scritp a ser usado para criao de filas locais seguindo o padro determinado neste documento:
DEFINE REPLACE QLOCAL('QL.AAAAAAAA') CLUSTER(' ') CLUSNL(' ') DESCR('QL sis AAAAAAAA') PUT(ENABLED) DEFPRTY(0) DEFPSIST(YES) MAXDEPTH(5000) MAXMSGL(10485760) BOTHRESH(0) BOQNAME(' ') USAGE(NORMAL) NOTRIGGER SHARE DEFSOPT(SHARED) MSGDLVSQ(FIFO) RETINTVL(999999999) HARDENBO GET(ENABLED) QDEPTHHI(80) QDEPTHLO(40) QDPMAXEV(ENABLED) QDPHIEV(ENABLED) QDPLOEV(DISABLED) QSVCINT(999999999) QSVCIEV(NONE) DEFBIND(OPEN)

Pgina 4/ 10

Definio de fila remota: Cada sistema ter filas remotas correspondentes ao sistema que este venha a trocar dados. Os parmetros a serem seguidos seram mostrados abaixo: 3.1 QREMOTE: Este parmetro contem o nome da fila remota, este nome ser formado pelas letras QR. indicando fila remota e o restante ser o nome da fila local do sistema a ser conectado, lembrando que cada sistema ter seu nome formado por oito posies. Como exemplo de uma fila remota que venha a se comunicar com uma fila local de um sistema BBBBBBBB teremos seu nome: QR.BBBBBBBB. 3.2 DESCR: Este parmetro ser preenchido com a descrio da fila rmora. Como exemplo teramos a descrio: QR - BBBBBBBB 3.3 RNAME: Este parmetro ser preenchido com o nome da fila local correspondente a fila remota criada. Como exemplo do preenchimento deste parmetro para que haja comunicao entre um sistema AAAAAAAA e um sistema BBBBBBBB teremos o preenchimento para este parmetro da seguinte forma:

QL.BBBBBBBB. 3.4 RQMNAME: Este parmetro ser preenchido com o nome do queue manager remoto ao qual ser mantido contato. Como exemplo de preenchimento para este parmetro temos: QM.BBBBBBBB. 3.5 XMITQ: Este parmetro ser preenchido com o nome da fila remota correspondente ao sistema que se deseja trocar dados. Para cada sistema a ser contactado ser criada uma fila de transmisso a qual ter seus objetos descritos mais adiante. Como exemplo de preenchimento teremos: QT.BBBBBBBB.

Pgina 5/ 10

Abaixo ser mostrado um exemplo de scritp a ser usado para criao de filas remotas seguindo o padro determinado neste documento:

DEFINE REPLACE

QREMOTE('QR.BBBBBBBB') CLUSTER(' ') CLUSNL(' ') DESCR('QR - BBBBBBBB') PUT(ENABLED) DEFPRTY(0) DEFPSIST(YES) RNAME('QL.BBBBBBBB') RQMNAME('QM.BBBBBBBB') XMITQ('QT.BBBBBBBB') DEFBIND(OPEN)

Definio de fila de transmisso: Esta fila responsvel pelo encaminhamento das mensagens para o outro

gerenciador de filas correspondente ao outro sistema a que se deseja comunicar. O nome a ser colocado para esta fila ser formado pelas letras QT. seguido do identificador de oito caracteres correspondente ao sistema a que se deseja comunicar, um exemplo levando em considerao que se deseja comunicar com o sistema BBBBBBBB o nome da fila de transmisso correspondente a este sistema no queue manager QM.AAAAAAAA ser QT.BBBBBBBB. Abaixo iremos explanar os objetos que devem ter seus valores observados:

4.1 Description: Este atributo conter uma breve descrio deste objeto, um exemplo de descrio ser: XMITQ - BBBBBBBB . 4.2 DefPersistent: Este atributo deve ser setado de modo a termos a persistncia de uma mensagem em uma eventual falha de sistema e/ou reset do queue manager. 4.3 MaxQdepth: Este atributo deve ser setado para 5000, com isto teremos o limite de ate 5000 mensagens a serem postadas em uma fila sem que esta comece a negar a postagem de alguma outra mensagem, sendo que se este caso ocorrer, o gerenciador informara o aviso MQRC_Q_FULL. 4.4 MaxMsgl: Este atributo informa o maior tamanho de uma mensagem que poder ser colocada em uma fila, este valor dever ser 10485760, que corresponde a 100mb. Este valor o indicado para ambientes linux, windows e solares.
Pgina 6/ 10

4.5 MsgDlvSq: Este parmetro determina a forma com que as mensagens sero retidas das filas, sendo que o valor a ser usado ser: FIFO (primeira mensagem a entrar ser a ultima a sair). 4.6 Usage: Este parmetro, uma vez que este objeto se trata de uma fila de transmisso deve ser preenchido com o valor XMITQ. Abaixo ser mostrado um exemplo de scritp a ser usado para criao de filas de transmisso seguindo o padro determinado neste documento:

DEFINE REPLACE

QLOCAL('QT.BBBBBBBB') CLUSTER(' ') CLUSNL(' ') DESCR('XMITQ - BBBBBBBB') PUT(ENABLED) DEFPRTY(0) DEFPSIST(YES) MAXDEPTH(5000) NOTRIGGER MAXMSGL(10485760) BOTHRESH(0) BOQNAME(' ') USAGE(XMITQ) NOSHARE DEFSOPT(SHARED) MSGDLVSQ(FIFO) RETINTVL(999999999) HARDENBO GET(ENABLED) QDEPTHHI(1) QDEPTHLO(40) QDPMAXEV(ENABLED) QDPHIEV(ENABLED) QDPLOEV(DISABLED) QSVCINT(999999999) QSVCIEV(NONE) INDXTYPE(NONE)

Pgina 7/ 10

5 Definio de canais de transmisso: Os canais so responsveis pelo estabelecimento do meio de comunicao entre os queue managers e ou programas que utilizam os recursos do gerenciador de filas. Abaixo descreveremos os parmetros a serem usados nos canais de

transmisso seguindo os padres deste documento. A nomenclatura a ser usada para estes canais ser formada pela letra C seguido do identificador de oito letras correspondente ao sistema origem e em

seguida do identificador de oito letras do sistema que se deseja comunicar, como exemplo de um canal sender para que um sistema AAAAAAAA se comunique com um sistema BBBBBBBB , o nome a ser usado pelo canal de transmisso ser: CAAAAAAAA.BBBBBBBB. Abaixo iremos explanar os objetos que devem ter seus valores observados: 5.1 XMITQ: Este parmetro esta relacionado a fila de transmisso a que este canal esta associado, seguindo o exemplo de uma comunicao entre o sistema AAAAAAAA com o sistema BBBBBBBB o valor para este parmetro seria: QT.BBBBBBBB. 5.2 CONNAME: Este parmetro esta relacionado ao endereo IP do queue manager que se deseja se comunicar, tendo como exemplo de uma comunicao sendo estabelecida entre queue managers instalados em um mesmo servidor teramos como exemplo para o preenchimento deste parmetro:

'localhost(1415)', onde o valor 1415 esta relacionado a porta TCP a ser usada, esta porta ser determinada na criao do queue manager remoto e estabelecimento do objeto listner que ira ficar aguardando por uma conexo. 5.3 DESCR: Este parmetro contem a descrio para este objeto, no exemplo seguido esta descrio seria: Canal sender para BBBBBBBB 5.4 MAXMSGL: Este parmetro j vem sendo discutido durante este documento e esta relacionado ao maior tamanho de mensagem a ser suportada pelo sistema, para os ambientes em que teremos instalados estes queue managers e clients o valor a ser usado ser 10485760, que corresponde ao limite de tamanho de mensagem para 100mb.

Pgina 8/ 10

Abaixo ser mostrado um exemplo de scritp a ser usado para criao de canais de transmisso seguindo o padro determinado neste documento:
DEFINE REPLACE CHANNEL('CAAAAAAAA.BBBBBBBB') CHLTYPE(SDR) XMITQ('QT.BBBBBBBB') TRPTYPE(TCP) CONNAME('localhost(1415)') DESCR('Canal sender para BBBBBBBB') DISCINT(0) SHORTRTY(10) SHORTTMR(60) LONGRTY(999999999) LONGTMR(1200) SEQWRAP(99999999) CONVERT(NO) BATCHINT(0) BATCHSZ(50) MAXMSGL(10485760) HBINT(300) NPMSPEED(FAST)

Definio de canais de Recepo: Os canais so responsveis pelo estabelecimento do meio de comunicao entre os queue managers e ou programas que utilizam os recursos do gerenciador de filas. Abaixo descreveremos os parmetros a serem usados nos canais de recepo seguindo os padres deste documento. A nomenclatura a ser usada para estes canais ser formada pela letra C seguido do identificador de oito letras correspondente ao sistema remoto ao qual

esta sendo disponibilizado o canal seguido do identificador de oito letras do sistema local, como exemplo de um canal receiver para que um sistema AAAAAAAA se comunique com um sistema BBBBBBBB , o nome a ser usado pelo canal de recepo ser: CBBBBBBBB.AAAAAAAA. Abaixo iremos relacionar os parmetros que devem ter seus valores observados: 6.1 DESCR: Este parmetro contem a descrio para este objeto, no exemplo seguido esta descrio seria: Canal receiver para BBBBBBBB 6.2 MAXMSGL: Este parmetro j vem sendo discutido durante este documento e esta relacionado ao maior tamanho de mensagem a ser suportada pelo sistema, para os ambientes em que teremos instalados estes queue managers e clients o valor a ser usado ser 10485760, que corresponde ao limite de tamanho de mensagem para 100mb.

Pgina 9/ 10

Abaixo ser mostrado um exemplo de scritp a ser usado para criao de canais de recepo seguindo o padro determinado neste documento:
DEFINE REPLACE CHANNEL('CBBBBBBBB.AAAAAAAA') CHLTYPE(RCVR) TRPTYPE(TCP) DESCR('Canal receiver para BBBBBBBB') PUTAUT(DEF) SEQWRAP(99999999) BATCHSZ(50) MAXMSGL(10485760) HBINT(300) NPMSPEED(FAST)

7 Definio de canais serverconnection: Alguns sistemas utilizam os prprios canais de comunicao de sistema disponibilizados pelo gerenciador de filas, esta pratica vem sendo utilizada sem problemas porem se o desenvolvedor necessitar de alguma configurao mais especifica relacionada com sua aplicao este deve passar as caractersticas para a equipe responsvel pela gerencia desta ferramenta de modo a serem criados os prprios canais serverconnection necessrios para este sistema.

8 Consideraes finais: No que diz respeito ao controle e formato das mensagens a serem manipuladas pelo gerenciador, estas devem ser discutidas pelos desenvolvedores de modo a ser criado um layout de mensagem a ser usado. Sugerimos que os desenvolvedores utilizem todos os mtodos de controle do trafego de mensagens disponveis pelo MQSeries, como mensagens de controle COA(confirmao de chegada) e COD(confirmao de entrega), estes recibos garantem para o

desenvolvedor e mantenedor do sistema que se utiliza do recurso de gerenciamento de mensagens do queue manager que suas mensagens chegaram no queue manager remoto e que foram entregues para o processamento pelo sistema remoto

respectivamente.

Pgina 10/ 10

Das könnte Ihnen auch gefallen