Вы находитесь на странице: 1из 16

Concurso Master The Mainframe 2014 Parte 2

Tempo previsto de concluso 6 a 8 horas




Bem vindo corporao bancria Master the Mainframe.
O sistema do banco precisa ser atualizado. Voc foi convidado para trabalhar em uma equipe que est
desenvolvendo um prottipo para a substituio do sistema do banco que processa transaes com carto de crdito.
Detalhes de transaes de cartes de crdito chegam via mensagens do WebSphere MQ, e so processadas atravs
de uma transao do CICS. A transao do CICS processa as solicitaes e registra os detalhes da transao em um
banco de dados DB2, atualizando o crdito disponvel no carto ao mesmo tempo. O CICS envia uma resposta de
volta para cada transao atravs do WebSphere MQ, indicando se foi processada com xito.
Seus colegas comearam a desenvolver o prottipo, mas esto se esforando para faz-lo funcionar. O objetivo desta
parte do desafio completar com sucesso o prottipo, de modo que voc possa simular um pagamento em seu carto de
crdito.
Para simplificar o processo, usaremos cartes de crdito com um nome em vez do usual nmero de 16 dgitos. O nome
de seu carto de crdito, e o logon de acesso ao sistema CICS, so os mesmos que o seu user ID do z/OS.








Ajuda
Voc pode consultar as seguintes referncias para completar as tarefas:
! z/OS v1.11 Information Center:
http://publib.boulder.ibm.com/infocenter/zos/v1r11/index.jsp
! CICS Transaction Server v3.2 Information Center:
http://publib.boulder.ibm.com/infocenter/cicsts/v3r2/index.jsp
! WebSphere MQ v7 Information Center:
http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp
! As instrues da Parte 1 do Concurso tambm contm muitas dicas teis!

Introduo ao CICS e o WebSphere MQ

CICS
CICS (Customer Information Control System) Transaction Server um software poderoso da IBM que atende s
necessidades de processamento de transaes de grandes e pequenas empresas. Baseia-se no z/OS e nas facilidades do
System z para oferecer alta disponibilidade e escalabilidade a um baixo custo por transao, e suporta grandes volumes
de transaes com um tempo de resposta rpido e consistente.
O processamento de transaes um estilo de computao, normalmente realizada por grandes servidores, e que
suporta aplicaes interativas. Por exemplo, retirar dinheiro de um caixa eletrnico e atualizar o saldo no banco de
dados.

Eu gostaria que voc fizesse um teste usando o WebSphere
MQ e o CICS para simular um pagamento com o seu carto de
crdito. Vou fazer tambm algumas perguntas para avaliar a
sua compreenso. Por favor, me envie as suas resposta aps
terminar o teste.
Por outro lado, o processamento em batch um estilo de computao em que um ou mais programas processam um
conjunto de registros (um batch), com pouca ou nenhuma ao do usurio. Por exemplo, imprimir extratos bancrios
para cada titular de conta e envi-los pelo correio.

Mediadores de processamento de transaes, como o CICS, permitem que os programadores de aplicativos se
concentrem em escrever cdigos que suportam o negcio, e protegem as aplicaes dos seguintes detalhes de
gerenciamento de transaes:

" Gerencia o processamento simultneo de transaes.
" Permite o compartilhamento de dados.
" Garante a integridade dos dados
" Gerencia a priorizao da execuo da transao.
Quando uma transao inicia o processamento, o CICS executa um programa que est associado com a transao. Esse
programa pode transferir o controle para outros programas no decorrer da transao, fazendo o possvel para montar
aplicaes modulares que consistem em muitos programas do CICS.
A qualquer momento, em um sistema CICS, muitas transaes podem ser executadas ao mesmo tempo. Seria terrvel ter
que esperar por outras pessoas terminarem de pagar antes que voc pudesse comprar alguma coisa online.
WebSphere MQ
WebSphere MQ produto para troca de mensagens entre aplicaes da IBM. Ele pode ser usado para enviar os dados
formatados, sob a forma de mensagens, entre aplicaes diferentes por meio de um mecanismo de entrega de
mensagens assncronas.
Essas aplicaes podem ser escritas em diferentes linguagens de programao e estar em execuo em diferentes
hardwares e sistemas operacionais. Ser capaz de unir essas aplicaes faz com que os clientes tenham uma grande
economia de tempo e dinheiro.
Comeando
Antes de comear esta parte do concurso, voc vai precisar das perguntas que voc precisa responder ao longo do
caminho.
Elas estaro disponveis em uma folha de questes e respostas no data set sequencial chamado
ZOS.CONTEST3.PART2.ANSWER.SHEET.
! Usando o ISPF faa uma cpia desse data set. Voc ir complet-lo conforme for realizando as tarefas.



Para copiar um dataset, use a opo 3.3 do painel principal do
ISPF. (Digite =3.3 na linha de comando do ISPF).

Voc tambm pode copiar os membros PDSE deste painel,
colocando o nome do membro entre parnteses aps o nome do
data set.



! Certifique-se que os DOIS primeiros qualificadores do seu data set o seu user ID caso contrrio, suas
respostas no podem ser marcadas corretamente.











Voc ser avisado quando for para responder cada uma das perguntas, mas antes leia os comentrios no topo da folha de
respostas cuidadosamente antes de prosseguir.
! Preencha com o seu user ID do z/OS (i.e. xxxxxxx) no espao fornecido acima da questo 1.
! Acesse o seu data set sequencial <user ID>.<user ID>.ANSWERS
! Ele deve ser alocado em tracks (TRKS)
! Ele deve ter uma quantidade principal de 1 e uma quantidade secundria de 1
! Ele deve ter 0 blocos de diretrio
! O formato de registro deve ser FB (Fixed Block) e o comprimento do registro deve ser de 80
! O tamanho do bloco deve ser 32000
! O tipo de nome do dataset deve estar em branco
Se tudo der errado, no se preocupe! Exclua o data set,
encontrando-o na opo 3.4 do painel principal do ISPF e
digitando D na coluna de comado esquerda. Em seguida,
tente novamente!

Voc pode encontrar mais informaes sobre o CICS em: CICS Transaction Server v3.2 Information Center
(http://publib.boulder.ibm.com/infocenter/cicsts/v3r2/index.jsp).


Cartilha do CICS
Agora uma boa hora para falar um pouco sobre o uso do CICS.
Voc inicia uma transao CICS ao pressionar a tecla CLEAR * para limpar a tela, e inserir o identificador de
transao, sozinho ou seguido de dados, na linha de comando da tela. A linha de comando geralmente est na
parte superior da tela.
Voc pode digitar o identificador de transao sozinho e seguir as instrues at que um comando de transao
completo seja construdo, ou voc pode digitar o comando de transao completo na linha de comando. Se
voc no inserir a informao necessria, ou se a informao digitada estiver errada, ser solicitado que voc
complete ou corrija o seu comando.
Por exemplo, na operao seguinte, CESF o identificador de transao e os dados adicionais
GOODNIGHT.
CESF GOODNIGHT
Esta transao usada para fazer logoff no CICS.
Quando a transao iniciada, ela processa os dados adicionais. Aps a concluso desta transao, voc recebe
a seguinte mensagem:
STATUS: SESSION ENDED
Depois que uma transao for concluda, pressione a tecla CLEAR * para obter uma tela em branco de
prontido para realizar uma prxima transao.
Para finalizar uma transao use a tecla PF3.
* A tecla especial CLEAR do emulador 3270 no est presente nos teclados. Contudo, cada um dos
emuladores 3270 fornece ela atravs de um menu ou permite que voc possa mape-la em alguma tecla do seu
teclado padro. Muitas vezes a tecla Pause/Break a default.


Utilizando o CICS
Abra uma segunda sesso no terminal 3270, mas em vez de entrar com o comando TSO no prompt SELECT
APPLICATION entre com o comando LOGON APPLID(CICSZ057).
Voc deve ento visualizar a tela de login do CICS:

! Entre com o seu id e senha e pressione Enter (lembre-se que o Enter a tecla
Ctrl).

A mensagem seguinte ir aparecer: DFHCE3549 Sign-on is complete (Language ENU).

! Responda as questes de 1 a 5 no seu data set <userid>.<userid>.ANSWERS agora que voc est dentro do
ambiente do CICS.

Utilizando a linguagem JCL

Se voc pensar sobre como voc pode alcanar qualquer tarefa no mundo real, voc normalmente decompe ela em
uma ou mais etapas, onde cada etapa conclui uma determinada parte da tarefa e, normalmente, requer o uso de
diferentes recursos.
Job Control Language (JCL) uma linguagem de controle utilizada para descrever a aes a serem relizadas para o
z/OS, onde um job representa uma tarefa.
Para cada job que voc enviar, voc precisa dizer ao z/OS onde encontrar a entrada adequada, como processar essa
entrada (ou seja, qual o programa ou programas para executar), e o que fazer com a sada resultante. Voc usa JCL para
transmitir esta informao para z/OS por meio de um conjunto de instrues conhecidas como instrues de controle do
job.
Os conjuntos de instrues de controle do job de JCL so bastante grandes, o que permite fornecer uma grande
quantidade de informaes para o z/OS. A maioria dos jobs, no entanto, podem ser executados usando um subconjunto
muito pequeno dessas instrues de controle.
Dentro de cada job, as instrues de controle so agrupados em etapas de trabalho. A etapa de trabalho constitudo por
todas as instrues de controle necessrias para executar um programa.
Se um job precisa ser executado por mais de um programa, o job dever conter uma etapa de trabalho diferente para
cada um desses programas.
Instrues de Controle do Job
Cada job deve conter:
- Uma instruo JOB para marcar o incio de um job e atribuir-lhe um nome. Esta instruo tambm usada
para fornecer certas informaes administrativas, incluindo segurana, contabilidade e informaes de
identificao. Cada job tem uma e apenas uma instruo JOB.
- Pelo menos uma declarao EXEC (execute), marcando o incio de uma etapa de um job, um nome para a
etapa de um job, e o programa ou procedimento a ser executado. Voc pode adicionar diversos parmetros
na declarao EXEC para personalizar a forma de como o programa executado e as condies em que o
passo deve ser executado.

Instrues JCL podem ser codificadas somente at a coluna 71. Se voc perguntar por que JCL tem este formato, a
resposta que antigamente se usavam os cartes perfurados que tinham 80 colunas, o ltimo dos quais 8 foram
utilizados para os nmeros de linha.

*** DICA: Para visualizar a quantidade de colunas em um cdigo JCL, digite COLS na linha de
comando!
Para mais informaes voc pode consultar a sesso JCL Reference do livro MVS no z/OS Information Center.

Utilizando o SDSF

Nessa sesso, voc pode ter que trocar entre duas aplicaes diferentes repetidamente, por exemplo, entre as suas
respostas no editor do data set, e o SDSF para encontrar as respostas para as questes. Pode ser bem chato ter que ficar
entrando e saindo entre essas aplicaes, ento h uma maneira melhor de fazer isso:
A maioria dos programas exigem alguma entrada ou geram alguma sada e de modo geral tambm contm:
- Uma ou mais instrues DD (data definition), para identificar e descrever os dados de entrada e de sada
para ser utilizada na etapa. Essa declarao pode ser usado para solicitar um conjunto de dados previamente
criado, para definir um novo conjunto de dados, para definir um conjunto de dados temporria, ou para
definir e especificar as caractersticas do produto.
Cada instruo de controle do job tem cinco campos:
1. Um campo identificador que tipicamente duas barras (/ /). A linha inteira tratada como comentrio
caso as duas barras estiverem seguidas por asterisco (/ /*).
2. Um campo nome, identificando a instruo para que ele possa ser referido mais tarde.
3. Um campo operao identificando o tipo da instruo, ou seja, JOB, EXEC, DD.
4. Um campo parmetro.
5. Tudo aps o campo parmetro considerado comentrio e ignorado.
O layout do JCL pode parecer um pouco confuso
quando voc o v pela primeira vez. Felizmente, o
editor ISPF pode exibir a sintaxe de JCL destacada se
voc digitar o comando HILITE JCL (ou HILITE
AUTO) durante a edio de um membro do JCL.

Voc deve estar surpreso de como nunca descobriu sobre isso!







Pressionando F2 far com que a tela faa um "split" em seu cursor mostrando as duas telas separadas por uma
linha pontilhada horizontal. Voc pode em seguida pressionar F9 para alternar entre as duas telas.
Para maximizar o tamanho de tela disponvel, coloque o cursor na linha do topo da tela antes de pressionar F2.
Cartilha do SDSF

O System Display and Search Facility (SDSF) fornece informaes que voc pode usar para monitorar,
gerenciar e controlar um sistema z/OS.

Voc pode usar o SDSF para exibir o registro do sistema e os status dos jobs que esto sendo
executados no sistema ou que tenham concludo a execuo, incluindo qualquer sada realizada de
jobs que ainda no tenham sido descartados.

Voc acessa o SDSF a partir do comando S no painel principal do ISPF.

A partir da, o comando DA pode ser usado para exibir os jobs ativos no sistema (em execuo), incluindo
quaisquer tarefas iniciadas, que so um tipo especial de job. O comando ST pode ser usado para visualizar o
status dos jobs, aqueles que esto ativos, aqueles que ainda no foram processados, e aqueles que j foram
concludos.

Uma vez que voc estiver visualizando a lista de jobs, usando a linha do prompt de comando voc pode
filtrar a lista para visualizar apenas os jobs que voc possui digitando:
OWNER XXXXXXX

Para voltar a mostrar todos os jobs basta digitar:
OWNER *

Da mesma forma, voc pode filtrar a lista de jobs a partir do nome dele digitando: PREFIX ABC* (Nesse
caso, mostra apenas os jobs cujos nomes comeam com ABC)

Para remover esse filtro digite:
PREFIX *

Voc pode usar ambos os comandos OWNER e PREFIX ao mesmo tempo.

Estes so particularmente teis porque eles escondem os jobs em um sistema que voc no est interessado
ou outro ou no autorizado para acessar.













Os filtros OWNER e PREFIX no so exibidos em
qualquer lugar, por isso, se voc colocar os filtros em
qualquer lugar na tela, voc pode ter como resposta
uma lista de Jobs em branco.
Esteja ciente de que SDSF lembra os filtros que voc est usando. Se voc no est vendo um job que voc
espera ver, defina os dois filtros em um nico asterisco (*), de modo que todos os jobs so exibidos.

Nos painis DA e ST apresentado uma lista de jobs. Use as teclas PF7 e PF8 para subir e descer a tela.

Para visualizar mais informaes sobre um job particular entre com S na coluna da esquerda (NP) e
pressionar Ctrl.

Isto pode fornecer uma grande quantidade de dados e com isso, alternativamente, voc pode digitar um
ponto de interrogao (?). Isso retornar uma listagem das vrias sees da sada. Voc pode ento usar S
para selecionar essas sees individualmente.

Use a tecla PF3 para sair da tela que voc est e voltar para a anterior.


! Responda as questes de 6 a 8 agora que voc j est familiarizado com o JCL e o SDSF.
A Aplicao de Teste

Executando a aplicao de teste



! Crie um PDSE, como na parte um, chamado <userid>.PART2.JCL.

! Crie um membro em seu data set JCL chamado PAYMENT, faa uma cpia dele a partir do membro de
mesmo nome do data set chamado ZOS.CONTEST3.PART2.JCL.

! Substitua os espaos reservados no job como descrito - voc pode usar qualquer valor monetrio e descrio
de sua escolha.
! Envie a tarefa digitando SUBMIT na linha de comando durante a edio dele, e verifique a sua sada usando
o SDSF.




Vamos verificar algumas outras comodidades do
mainframe, por isso, pode valer a pena rever o
esquema inicial para se concentrar na nossa tarefa
testar o nosso sistema de processamentos de
pagamentos. A aplicao de teste desenvolvida por
nossos colegas foi projetada para ser executado por
meio de batch Jobs, sabendo disso, vamos comear a
usar alguns JCLs.
! Deve ser alocados em faixas (TRKS)
! Deve ter uma quantidade principal de 1 e uma quantidade secundria de 1
! O formato de registro deve ser FB (Fixed Block) e o comprimento do registro deve ser de 80
! O tamanho do bloco deve ser 32000
Oh no! Parece que o cdigo no est
pronto ainda mesmo o JCL que diz
para o z/OS executar o batch no
funcionou!

! Corrija os erros do JCL, usando a seo JCL Reference do livro MVS no z/OS Information Center para te
ajudar a descobrir o que est errado e como corrigi-lo.
! Responda pergunta 9.
Recompilando a aplicao de testes
Tendo concludo o exerccio anterior e respondido a pergunta 9, voc vai perceber que est faltando a aplicao de
testes.
Antes de recompilar ela, voc precisa criar outro PDSE em que o programa compilado possa ser armazenado e da qual
ele pode ser executado.



! Crie outro PDSE chamado <userid>.PART2.LOAD, definindo-o com os mesmos atributos que
ZOS.CONTEST3.PART2.LOAD.
Agora voc precisa copiar um outro conjunto de JCLs - que voc pode usar para compilar a aplicao - para outro
membro em seu data set JCL.
! Copie o job do membro chamado COMPPAY no data set ZOS.CONTEST3.PART2.JCL
! Substitua os espaos reservados no job como descrito e compile a aplicao de teste de unidade - voc
no deve encontrar quaisquer erros neste momento.

Reexecutando a aplicao de testes
Agora que voc recompilou a aplicao de testes, voc pode tentar execut-la novamente como antes.
! Atualize seu JCL para que o sistema procure o programa na sua biblioteca e execute-o novamente.


O cdigo fonte do aplicativo est no data set
ZOS.CONTEST3.PART2.C. No deve demorar
muito tempo para compil-lo e execut-lo usando
algum JCL diferente.

! Agora uma boa hora para responder as questes 10 e 11.
Parece que voc precisa criar (definir) a fila de resposta.
O WebSphere MQ fornece painis ISPF para ajud-lo a administrar os gerenciadores de filas - estes podem ser
encontrados no z/OS em Produtos IBM - WebSphere - MQ. Voc deve visualizar uma tela como abaixo:


O nome do gerenciador de filas (o nome de conexo) pode ser encontrado no JCL que voc usou para executar o
aplicativo de teste de unidade.
Voc pode pressionar a tecla PF1 em qualquer painel para obter ajuda para o campo em que cursor est.
! Defina a sua fila de resposta.


Oh! Mais problemas! A aplicao funcionou
normalmente, mas desta vez h um erro do
WebSphere MQ.


Agora que voc definiu com sucesso a sua fila de respostas:
! Responda a questo 12.

Completando a Parte Dois

Agora voc foi capaz de executar com xito a aplicao de teste de unidade.
Para completar esta parte do Desafio Mainframe:
! Use a aplicao de testes para gravar uma transao em seu carto de crdito para que o seu saldo atual
no seja zero. Voc pode gravar mais de uma transao, se desejar, os valores e as descries so de sua
escolha.
Enviando as suas respostas
Depois de ter gravado uma operao em seu carto de crdito:
! Revise suas respostas e em seguida, envie para que elas possam ser marcadas.
Para fazer isso, v para a opo 6 e digite:
XMIT ZOS19.IBMBRA DA ('<userID>.<userID>.ANSWERS')








Sua fila de respostas deve ser definida como
SYSTEM.DEFAULT.LOCAL.QUEUE

Ah, e certifique-se de nome-lo como
<userID>.REPLY em letras MAIUSCULAS!
Parabns! Voc terminou todos os passos
da Parte 2! Graas a voc, pudemos
implantar as mudanas em nosso sistema
CICS tempo, e nossos clientes podem se
beneficiar com isso



Estou te recomendando ao nosso time de cartes de
crditos corporativos para a Parte 3 do concurso voc
vai precisar de acesso aos sistemas de mainframe. Por
favor, envie um e-mail com o seu ID de usurio atual
para o administrador do concurso para solicitar um novo
ID de usurio




Voc j conseguiu muito at agora, mas h
ainda um caminho grande a percorrer! A
Parte 3 baseia-se no que voc aprendeu at
aqui, e vai ficar mais difcil, pois voc
estar usando recursos mais avanados do
WebSphere MQ e CICS! Nos vemos l!

Оценить