Depurando Sessões de Email

Quando depurar um aplicativo de correio, poderá usar o recurso de depuração de correio. O componente de correio gera informações sobre depuração, por sessão, que podem ser utilizadas para ajuste ou determinação de problemas.

Sobre Esta Tarefa

A ativação do modo de depuração aciona o componente de correio do servidor de aplicativos para imprimir os seguintes dados para o fluxo de saída padrão:
  • interações com os servidores de correio
  • propriedades da sessão de correio
Esse fluxo de saída é redirecionado ao arquivo SystemOut.log para o servidor de aplicativos específico.
Nota: Esse tópico faz referência a um ou mais arquivos de log do servidor de aplicativos. Como uma recomendação alternativa, é possível configurar o servidor para usar a infraestrutura de log e rastreio do High Performance Extensible Logging (HPEL) em vez de usar os arquivos SystemOut.log , SystemErr.log, trace.log e activity.log em sistemas distribuídos e IBM® i. Também é possível usar HPEL em conjunção com os recursos de criação de log z/OS nativos. Se você estiver usando HPEL, será possível acessar todas as informações de log e rastreio usando a ferramenta de linha de comandos LogViewer a partir do diretório bin do perfil do servidor. Consulte as informações sobre a utilização do HPEL para resolução de problemas dos aplicativos para obter mais informações sobre o uso do HPEL.

Procedimento

  1. Abra o administrative console.
  2. Clique em Recursos > Correio > Sessões de Correio > sessão de correio.
  3. Clique em Ativar Modo de Depuração. A depuração é ativada apenas para essa sessão.
  4. Clique em Aplicar ou em OK.

Exemplo

O exemplo a seguir mostra a saída de depuração de correio de amostra:

ResourceMgrIm I   WSVR0049I: Teste de Ligação como correio/teste
SystemOut     O *** Em SessionReferenceable.getReference:
SystemOut     O  StringRefAddr incluído: type=ws.transport.password, content=****
SystemOut     O  StringRefAddr incluído: type=ws.isolated.class.loader, content=false
SystemOut     O  StringRefAddr incluído: type=mail.transport.protocol, content=smtp
SystemOut     O  StringRefAddr incluído: type=mail.imaps.class, content=com.sun.mail.imap.IMAPSSLStore
SystemOut     O  StringRefAddr incluído: type=mail.smtp.host, content=smtp.coldmail.com
SystemOut     O  StringRefAddr incluído: type=mail.debug, content=true
SystemOut     O  StringRefAddr incluído: type=mail.pop3s.class, content=com.sun.mail.pop3.POP3SSLStore
SystemOut     O  StringRefAddr incluído: type=mail.from, content=smith@coldmail.com
SystemOut     O  StringRefAddr incluído: type=mail.smtp.class, content=com.sun.mail.smtp.SMTPTransport
SystemOut     O  StringRefAddr incluído: type=mail.smtps.class, content=com.sun.mail.smtp.SMTPSSLTransport
SystemOut     O  StringRefAddr incluído: type=mail.imap.class, content=com.sun.mail.imap.IMAPStore
SystemOut     O  StringRefAddr incluído: type=mail.smtp.user, content=smith
SystemOut     O  StringRefAddr incluído: type=mail.pop3.class, content=com.sun.mail.pop3.POP3Store
SystemOut     O  StringRefAddr incluído: type=mail.mime.address.strict, content=true


SystemOut     O DEPURAÇÃO: JavaMail versão 1.4ea
SystemOut     O DEBUG: java.io.FileNotFoundException: 
C:\Program Files\IBM\WebSphere\AppServer\java\jre\lib\javamail.providers 
(The system cannot find the file specified.)
SystemOut     O DEPURAÇÃO: !anyLoaded
SystemOut     O DEPURAÇÃO: não carregando o recurso: /META-INF/javamail.providers
SystemOut     O DEPURAÇÃO: recurso carregado com êxito: /META-INF/javamail.default.providers
SystemOut     O DEPURAÇÃO: Tabelas de provedores carregados
SystemOut     O DEBUG: Providers Listed By Class Name: 
     {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider
[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], 
com.sun.mail.smtp.SMTPTransport=javax.mail.Provider
[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], 
com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider
[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], 
com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider
[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], 
com.sun.mail.imap.IMAPStore=javax.mail.Provider
[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], 
com.sun.mail.pop3.POP3Store=javax.mail.Provider
[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
SystemOut     O DEBUG: Providers Listed By Protocol: 
{imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems,Inc], 
imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], 
smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems,Inc], 
pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], 
pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], 
smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
SystemOut     O DEPURAÇÃO: recurso carregado com êxito: /META-INF/javamail.default.address.map
SystemOut     O DEPURAÇÃO: !anyLoaded
SystemOut     O DEPURAÇÃO: não carregando o recurso: /META-INF/javamail.address.map
SystemOut     O DEBUG: java.io.FileNotFoundException: 
     C:\Program Files\IBM\WebSphere\AppServer\java\jre\lib\javamail.address.map 
     (The system cannot find the file specified.)
SystemOut     O *** Em SessionFactory.setPasswordAuthentication, TRANSPORT PasswordAuthentication baseia-se em:
SystemOut     O  url=smtp://smith@smtp.coldmail.com
SystemOut     O  user=smith
SystemOut     O  password=****
SystemOut     O *** Em SessionFactory.getObjectInstance, propriedades de sessão:
SystemOut     O  mail.transport.protocol=smtp
SystemOut     O  mail.imaps.class=com.sun.mail.imap.IMAPSSLStore
SystemOut     O  mail.smtp.host=smtp.coldmail.com
SystemOut     O  mail.debug=true

SystemOut     O  mail.pop3s.class=com.sun.mail.pop3.POP3SSLStore
SystemOut     O  mail.from=smith@coldmail.com
SystemOut     O  mail.smtp.class=com.sun.mail.smtp.SMTPTransport
SystemOut     O  mail.smtps.class=com.sun.mail.smtp.SMTPSSLTransport
SystemOut     O  mail.imap.class=com.sun.mail.imap.IMAPStore
SystemOut     O  mail.smtp.user=smith
SystemOut     O  mail.pop3.class=com.sun.mail.pop3.POP3Store
SystemOut     O  mail.mime.address.strict=true
SystemOut     O DEPURAÇÃO: A propriedade mail.smtp.class existe e aponta para com.sun.mail.smtp.SMTPTransport
SystemOut     O DEPURAÇÃO SMTP: useEhlo true, useAuth false
SystemOut     O DEPURAÇÃO SMTP: tentando conectar-se ao host "smtp.coldmail.com", porta 25, isSSL false


javax.mail.MessagingException: Host SMTP desconhecido: smtp.coldmail.com;
  a exceção aninhada é:
 java.net.UnknownHostException: smtp.coldmail.com
 em com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1280)
 em com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
 em javax.mail.Service.connect(Service.java:275)
 em javax.mail.Service.connect(Service.java:156)
 em javax.mail.Service.connect(Service.java:105)
 em javax.mail.Transport.send0(Transport.java:168)
 em javax.mail.Transport.send(Transport.java:98)
 em com.ibm.ws.mail.ut.TestServlet.doTask(TestServlet.java:104)
 em com.ibm.ws.mail.ut.TestServlet.doGet(TestServlet.java:65)
 em javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
 em javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 em com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1397)
 em com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:759)
 em com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:429)
 em com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
 em com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3512)
 em com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:273)
 em com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:896)
 em com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1530)
 em com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:161)
 em com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
 em com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
 em com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
 em com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
 em com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
 em com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
 em com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
 em com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
 em com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
 em com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
 em com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
 em com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
 em com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1487)
Causada por: java.net.UnknownHostException: smtp.coldmail.com
 em java.net.PlainSocketImpl.connect(PlainSocketImpl.java:196)
 em java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
 em java.net.Socket.connect(Socket.java:519)
 em java.net.Socket.connect(Socket.java:469)
 em com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
 em com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
 em com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
 ... 32 more

Essa saída ilustra uma falha de conexão com um servidor SMTP (Simple Mail Transfer Protocol), porque um nome fictício, smtp.coldmail.com, é especificado como o nome do servidor.

A lista a seguir fornece dicas sobre como ler a amostra anterior da saída do depurador:
  • As linhas intituladas por DEPURAÇÃO são impressas pelo provedor de correio no tempo de execução, enquanto as duas linhas intituladas por *** são impressas pelo servidor de aplicativos no tempo de execução.
  • No segundo parágrafo de código, as primeiras linhas indicam que alguns arquivos de configuração são ignorados. O componente de correio tenta carregar vários arquivos de configuração a partir de diferentes locais no tempo de execução. Todos esses arquivos não são obrigatórios. Entretanto, se um campo necessário não puder ser acesso, o componente de correio criará uma exceção. Nessa amostra, não há exceção e a terceira linha anuncia que provedores padrão são carregados.
  • As próximas linhas, intituladas por Provedores Listados por Nome de Classe ou Provedores Listados por Protocolos, mostram os provedores de protocolos que são carregados. Os seis provedores listados são os provedores de protocolos padrão fornecidos sob o provedor de correio integrado para o servidor de aplicativos. Se instalar provedores de serviços especiais e esses provedores forem usados na sessão de correio atual, esses provedores serão listados aqui com os provedores padrão.
  • As duas linhas intituladas por *** e as linhas abaixo delas são impressas pelo servidor de aplicativos para mostrar as propriedades de configuração da sessão de correio atual. Apesar dessas propriedades serem listadas por seu nome interno em vez de pelo nome estabelecido no console administrativo, você pode reconhecer facilmente as relações entre elas. Por exemplo, a propriedade mail.store.protocol corresponde à propriedade Protocolo na seção Propriedades de Correio de Entrada do painel do console para a configuração de sessão de correio. Reveja as propriedades e os valores listados para verificar se eles correspondem.
  • As linhas acima da pilha de exceções mostram as atividades do correio ao enviar uma mensagem. Em primeiro lugar, a API JavaMail reconhece que o protocolo de transporte está configurado como SMTP e que o provedor com.sun.mail.smtp.SMTPTransport existe. Em seguida, o log de saída exibe os parâmetros useEhlo e useAuth, que são utilizados pelo SMTP. Por último, o log mostra o provedor SMTP tentando conectar-se ao servidor de correio smtp.coldmail.com.
  • O log de saída mostra a pilha de exceções em seguida. Esses dados indicam que o servidor de correio especificado não existe ou não está funcionando.

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tmai_jdebug
Nome do arquivo: tmai_jdebug.html