It's all about the answers!

Ask a question

How to unstuck email?


long TRUONG (3654123147) | asked Sep 07 '16, 2:34 a.m.
On our site, we have RTC/RRC 5.0.2 on Windows server 2008, DR (and POC, TST) have been switched to WAS, while PRD is still on Tomcat.

We are trying to switch "from email"  & "SMTP reply" addresses to the email address of the admin account, seemingly a simple task, as we have switched these addresses before (albeit ineffective), on both DR and PRD.

We started on PRD, the change seemed ineffective without an appRestart, with an invite as validation. Hence we tried in DR next, to make sure a restart is required before we attempt same on PRD:
  • It is from an obsolete address in DR.
  • We test sent an invite, OK with the obsolete address, in DR.
  • We then replace the obsolete address with the bona fide address of the admin account.
  • Before restarting the apps, we tested to see if the saved change became effective by clicking the "Send Test email" button and got error
501 5.1.7 Invalid address
which is consistent with 
http://www.ca.com/us/support/ca-support-online/product-content/knowledgebase-articles/tec526592.aspx

(we are on Exchange 12 though, not 7)

  • From then on, sending an invite kept failing, despite server restart twice, despite addresses used. We believe that it was the obsolete address was blocking the Send Test email then blocking all emails out.
  • We hence "Send Test email" on PRD, as the email to be switched from is an active address.
  • However we get PRD email stuck too (without any apps restart)

Failed to send team invitations.
hide details
  • Error generating team invitations for the following members: Truong, Long (gr4truo).
    com.ibm.team.repository.common.TeamRepositoryException
    com.ibm.team.process.internal.service.ProcessService.sendTeamInvitation(ProcessService.java:4940)
    com.ibm.team.process.internal.service.GenerateTeamInvitationOperation.run(GenerateTeamInvitationOperation.java:55)
    com.ibm.team.process.internal.common.advice.runtime.OperationAdviceManager.runOperation(OperationAdviceManager.java:1393)
    com.ibm.team.process.internal.common.advice.runtime.OperationAdviceManager.advise(OperationAdviceManager.java:326)
    com.ibm.team.process.internal.common.util.AbstractProcess.doAdvise(AbstractProcess.java:197)
    com.ibm.team.process.internal.service.ServerProcess.access$2(ServerProcess.java:1)
    com.ibm.team.process.internal.service.ServerProcess$2.run(ServerProcess.java:159)
    com.ibm.team.repository.service.internal.PrimitiveTransactionService$3.run(PrimitiveTransactionService.java:162)
    com.ibm.team.repository.service.internal.rdb.RepositoryDatabase$Transaction.run(RepositoryDatabase.java:567)
    com.ibm.team.repository.service.internal.rdb.RepositoryDatabase$2.run(RepositoryDatabase.java:351)
    com.ibm.team.repository.service.internal.rdb.ConnectionPoolService.withCurrentConnection(ConnectionPoolService.java:470)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    java.lang.reflect.Method.invoke(Method.java:611)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:361)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
    com.sun.proxy.$Proxy663.withCurrentConnection(Unknown Source)
    com.ibm.team.repository.service.internal.rdb.RepositoryDatabase.runTransaction(RepositoryDatabase.java:348)
    com.ibm.team.repository.service.internal.rdb.RepositoryDatabase.runInTransaction(RepositoryDatabase.java:288)
    com.ibm.team.repository.service.internal.PrimitiveTransactionService.runInTransaction(PrimitiveTransactionService.java:96)
    com.ibm.team.repository.service.internal.PrimitiveTransactionService.runInTransaction(PrimitiveTransactionService.java:91)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    java.lang.reflect.Method.invoke(Method.java:611)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:361)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
    com.sun.proxy.$Proxy749.runInTransaction(Unknown Source)
    com.ibm.team.repository.service.internal.TransactionService.runInTransaction(TransactionService.java:37)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    java.lang.reflect.Method.invoke(Method.java:611)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:361)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
    com.sun.proxy.$Proxy855.runInTransaction(Unknown Source)
    com.ibm.team.process.internal.service.ProcessService.runInTransaction(ProcessService.java:4830)
    com.ibm.team.process.internal.service.ProcessService.runInTransaction(ProcessService.java:4837)
    com.ibm.team.process.internal.service.ServerProcess.adviseAndExecute(ServerProcess.java:156)
    com.ibm.team.process.internal.service.ProcessService.executeProcessItemSaveOperation(ProcessService.java:1639)
    com.ibm.team.process.internal.service.ProcessService.generateTeamInvitation2(ProcessService.java:3929)
    com.ibm.team.process.internal.service.ProcessService.generateTeamInvitation(ProcessService.java:3912)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    java.lang.reflect.Method.invoke(Method.java:611)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:361)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
    com.sun.proxy.$Proxy1304.generateTeamInvitation(Unknown Source)
    com.ibm.team.process.internal.service.web.ProcessWebUIService.generateTeamInvitation(ProcessWebUIService.java:3386)
    com.ibm.team.process.internal.service.web.ProcessWebUIService.postGenerateTeamInvitations(ProcessWebUIService.java:3382)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    java.lang.reflect.Method.invoke(Method.java:611)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:361)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)
    org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
    com.sun.proxy.$Proxy1578.postGenerateTeamInvitations(Unknown Source)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    java.lang.reflect.Method.invoke(Method.java:611)
    com.ibm.team.repository.servlet.AbstractTeamServerServlet.doModelledRestService(AbstractTeamServerServlet.java:567)
    com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleRequest2(AbstractTeamServerServlet.java:2453)
    com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleRequest(AbstractTeamServerServlet.java:2244)
    com.ibm.team.repository.servlet.AbstractTeamServerServlet.service(AbstractTeamServerServlet.java:1761)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
    org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
    org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
    org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)
    org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:76)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
    org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:120)
    com.ibm.team.repository.server.servletbridge.JazzServlet.service(JazzServlet.java:74)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
    com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227)
    com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776)
    com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458)
    com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
    com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
    com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
    com.ibm.team.repository.server.servletbridge.BridgeFilter.processDelegate(BridgeFilter.java:165)
    com.ibm.team.repository.server.servletbridge.BridgeFilter.doFilter(BridgeFilter.java:198)
    com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
    com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
    com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
    com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
    com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3761)
    com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
    com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:976)
    com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
    com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
    com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
    com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
    com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
    com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)
    com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1784)
    com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
    com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
    com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
    com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
    com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
    com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
    com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
    com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)
    Caused by:
    The message could not be sent because the Jazz Team Server repository sent an exception.; nested exception is: com.ibm.team.repository.service.compatibility.util.http.CrossServerHttpClient$RestCommunicationException (javax.mail.MessagingException)ID CRJAZ1611E
    com.ibm.team.repository.service.compatibility.internal.mailer.MailerService.createMessagingException(MailerService.java:143)
    com.ibm.team.repository.service.compatibility.internal.mailer.MailerService.sendMail(MailerService.java:254)
    com.ibm.team.repository.service.compatibility.internal.mailer.MailerService.sendMail(MailerService.java:237)
    com.ibm.team.repository.service.compatibility.internal.mailer.MailerService.sendMail(MailerService.java:269)
    ... 129 more.
    Caused by:
    com.ibm.team.repository.service.compatibility.util.http.CrossServerHttpClient.createExceptionFromResponse(CrossServerHttpClient.java:600)
    com.ibm.team.repository.service.compatibility.util.http.CrossServerHttpClient.checkResponse(CrossServerHttpClient.java:523)
    com.ibm.team.repository.service.compatibility.util.http.CrossServerHttpClient.send(CrossServerHttpClient.java:495)
    com.ibm.team.repository.service.compatibility.util.http.CrossServerHttpClient.send(CrossServerHttpClient.java:349)
    ... 143 more.

Comments
long TRUONG commented Sep 07 '16, 3:49 a.m. | edited Sep 07 '16, 3:55 a.m.

 We backed out and invites sent OK, so do the many "send test email". However invites received but not the test emails.


Both PRD bona fide address and DR obsolete address are now preceded with "=?UTF-8?Q?=E2=80=AA" as the from address.

One answer



permanent link
long TRUONG (3654123147) | answered Sep 08 '16, 2:40 p.m.
edited Sep 08 '16, 2:43 p.m.
 We believe that this is the case of the Exchange refusing to send the emails due to permissions on using somebody else's bona fide address for STMP reply address; and not a case of emails getting stuck within RTC. We are trying to set permissions up for use by the admin ID.

It looks like no restart of apps is required to make "from address" change effective, it only requires a logout from RTC/RRC or a close of all instances of the browser of active RTC sessions, for the new address to become effective. Otherwise the old address is used from cache. That was why when we first tested by sending invites, we kept seeing the old address after switching in new one and thought it might need an app restart.

When we "send test email" if would effectively use whichever address on the last saved page.

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.