Goal: Fails to Login to Interstage BPM Console
Fact: Fujitsu Interstage BPM (Business Process Manager) Version 11.2a Build IF1120611
Fact: Fujitsu Interstage BPM (Business Process Manager) Version 11.2
Fact: Fujitsu Interstage BPM (Business Process Manager) Version 11.1
Fact: Fujitsu Interstage BPM (Business Process Manager) Version 11.0
Fact: IBM WebSphere Application Server Network Deployment Version 7.0
Fact: IBM WebSphere Application Server Network Deployment Version 6.1
Fact: RedHat JBoss Enterprise Application Platform Version 5
Symptom: Login to console fails with the error "Unable to authenticate user. Possibly the User ID or the Password is incorrect."
Symptom: IBPMServer.log contains the following exception:
Caused by: javax.ejb.CreateException: Could not find Tenant ''.
at com.fujitsu.iflow.serveree.impl.serverimpl.UserAgentSB.pCreate(UserAgentSB.java:74)
at com.fujitsu.iflow.serveree.impl.serverimpl.UserAgentSB.ejbCreate(UserAgentSB.java:85)
at com.fujitsu.iflow.serveree.intf.EJSStatefulUserAgentHomeBean_cfa80632.create(Unknown Source)
at com.fujitsu.iflow.serveree.intf.EJSRemoteStatefulUserAgentHome_cfa80632.create(Unknown Source)
at com.fujitsu.iflow.serveree.intf._UserAgentSH_Stub.create(_UserAgentSH_Stub.java:257)
at com.fujitsu.iflow.commonee.LookupService.getUserAgent(LookupService.java:241)
at com.fujitsu.iflow.commonee.LookupService.getUserAgent(LookupService.java:251)
... 65 more
Symptom: IBPMServer.log contains the following exception:
ERR:TENANTID = -1 : Tue Apr 17 18:26:00 BST 2012: TID=1719232121: TenantUtils : @(tenantValidation(): ) Could not find Tenant ''.
Could not find Tenant ''.
at com.fujitsu.iflow.serveree.impl.common.TenantUtils.tenantValidation(TenantUtils.java:1068)
at com.fujitsu.iflow.serveree.impl.common.DbAccessHelper.loginUser(DbAccessHelper.java:748)
at com.fujitsu.iflow.serveree.intf.EJSLocalStatelessDbAccessHelper_1f222c7b.loginUser(Unknown Source)
at com.fujitsu.iflow.serveree.impl.serverimpl.UserAgentSB.pCreate(UserAgentSB.java:49)
at com.fujitsu.iflow.serveree.impl.serverimpl.UserAgentSB.ejbCreate(UserAgentSB.java:85)
at com.fujitsu.iflow.serveree.intf.EJSStatefulUserAgentHomeBean_cfa80632.create(Unknown Source)
at com.fujitsu.iflow.serveree.intf.EJSRemoteStatefulUserAgentHome_cfa80632.create(Unknown Source)
at com.fujitsu.iflow.serveree.intf._UserAgentSH_Stub.create(_UserAgentSH_Stub.java:257)
at com.fujitsu.iflow.commonee.LookupService.getUserAgent(LookupService.java:241)
at com.fujitsu.iflow.commonee.LookupService.getUserAgent(LookupService.java:251)
at com.fujitsu.iflow.serveree.impl.serverimpl.UserAgentServiceSB.login(UserAgentServiceSB.java:94)
at com.fujitsu.iflow.serveree.intf.EJSRemoteStatelessUserAgentService_acc2ff92.login(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at com.ibm.rmi.util.ProxyUtil$4.run(ProxyUtil.java:726)
at java.security.AccessController.doPrivileged(AccessController.java:246)
at com.ibm.rmi.util.ProxyUtil.invokeWithClassLoaders(ProxyUtil.java:724)
at com.ibm.CORBA.iiop.ClientDelegate.invoke(ClientDelegate.java:1160)
at $Proxy4.login(Unknown Source)
at com.fujitsu.iflow.serveree.intf._UserAgentServiceSR_Stub.login(_UserAgentServiceSR_Stub.java:342)
at com.fujitsu.iflow.model.wfcore.ee.UserAgentServiceProxyImpl.login(UserAgentServiceProxyImpl.java:284)
at com.fujitsu.iflow.model.wfcore.WFSessionImpl.proxyLogin(WFSessionImpl.java:1988)
at com.fujitsu.iflow.model.wfcore.WFSessionImpl.loginImpl(WFSessionImpl.java:168)
at com.fujitsu.iflow.model.wfcore.WFSessionImpl.logIn(WFSessionImpl.java:122)
at com.fujitsu.ibpmconsole.service.UserSerivces.logIn(UserSerivces.java:73)
at com.fujitsu.ibpmconsole.helper.DoLogin.perform(DoLogin.java:105)
at com.fujitsu.ibpmconsole.framework.Dispatcher.service(Dispatcher.java:187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1143)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1084)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:118)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:832)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:679)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:587)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:321)
at com.fujitsu.ibpmconsole.framework.FrontController.service(FrontController.java:161)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1143)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1084)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:118)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:832)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:679)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:587)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:321)
at com.fujitsu.ibpmconsole.servlet.SmartPageFilter.doFilter(SmartPageFilter.java:227)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:832)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:679)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:587)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3453)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:267)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:815)
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1466)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:119)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:267)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:751)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)
Fix:
1. To troubleshoot the login issue to BPM console, log in to TenantManager.page to verify the state of the tenant that you have problem to access. Typically, the URL to access TenantManager.page is http://<hostname>:<port>/console/TenantManager.page
Check to see if the state of your tenant is in active state. You can only access the tenant that is in active state. You may want to right click to refresh the state of the tenant that you want to access.
2. The symptom mentioned above Caused by: javax.ejb.CreateException: Could not find Tenant '' is the real problem. The error message about "Unable to authenticate user. Possibly the User ID or the Password is incorrect." is misleading. Specifically, the issue is caused by the fact that a wrong URL, http://<hostname>:<port>/console/ is provided to access the tenant. In this case, the tenant name is not provided in the URL, so BPM assumes the name of the tenant is an empty string '', while the default tenant name is usually "Default". The correct syntax for accessing the tenant is as described in the BPM installation guide as shown below. Note that the information provided below may show in different chapter or page number depending on the version of BPM used.
6.12 Starting Interstage BPM Console and Tenant Management Console -> Point #8 (page 63)
===============
8. In a Web browser
• To access the Interstage BPM Tenant Management Console, enter the URL
http://<hostname>:<port>/console/TenantManager.page
• To access the Interstage BPM Console, enter the URL
http://<hostname>:<port>/console/<TenantName>/
Here:
• <hostname> is the machine name of the computer upon which you have deployed the Interstage
BPM Console.
• The default port is 9080 for WebSphere. 49950 for JBoss.
• <TenantName> is the name of the tenant; if you are in non-SaaS mode, this is default.
• It is recommended to use the tenant name in the URL with the same case as it has been created with during deployment. Tenant name in the URL is case sensitive for accessing certain features.
The Login page appears.
===================
Author: C.Y. Chen
Attachment: