A specific user is not able to login to ServiceDesk

book

Article ID: 156786

calendar_today

Updated On:

Products

ServiceDesk

Issue/Introduction

Customer reported an issue where a specific user could not log into the virtual name of a load balanced ServiceDesk environment.  They could successfully log into the individual ServiceDesk nodes, but the shared IP/name would just loop back to the login screen.

The Process Manager logs would report two errors over and over as they attempted to login.

First:

[global] Error in Login Authentication, SessionID 'b76aed42-afe7-11e1-923e-00505693005f' not found. [global] Client Host Information:  [global] IP: 10.4.80.230 [global] HostName: 10.4.80.230 [global] Browser: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; .NET4.0C; InfoPath.3) [global] -- error.ToString() -- [global] System.Web.Services.Protocols.SoapException: Verify Session ID failed [global]    at LogicBase.Ensemble.Userman.Userman.VerifySession(String sessionID, String[] permissions) [global]    at LogicBase.Ensemble.Global.Application_AuthenticateRequest(Object sender, EventArgs e)

Followed by:

Error deleting user data. LogicBase.Core.Messaging.CouldNotCreateExchangeException: The requested exchange is not externally available  Server stack trace:     at LogicBase.Core.Messaging.MessageExchangeFactory.FindExchangeConfiguration(String name, Boolean internalRequest)    at LogicBase.Core.Messaging.MessageExchangeFactory.CreateLocalTarget(String name, Boolean internalRequest)    at LogicBase.Core.Messaging.MessageExchangeFactory.GetExchangeTarget(String name, Boolean internalRequest, NetworkCredential credential)    at LogicBase.Core.Messaging.Remoting.MessagingServer.GetQueue(String exchangeName, String session)    at LogicBase.Core.Messaging.Remoting.MessagingServer.Remove(String session, String exchangeName, String ID)    at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)    at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)  Exception rethrown at [0]:     at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)    at LogicBase.Core.Messaging.Remoting.MessagingServer.Remove(String session, String exchangeName, String ID)    at LogicBase.Core.Messaging.RemoteServerImpl.Remove(String ID)    at LogicBase.Ensemble.Core.EnsembleLoginHelper.DeleteSessionData(String messageID)

Cause

Per the requirements of load balancing, the local file exchange that handles Process Manager sessions had been moved into SQL.  We were able to find in the SYMQ Browser utility that the session for this user existed, but it must have become corrupt somehow.

Resolution

These session entries in the Process Manager session exchange are meant to be temporary, so we were able to delete the entry and it was recreated properly.  We used the following SQL commands to identify and then delete the offending record.

select * from Messages where MessageID = 'b76aed42-afe7-11e1-923e-00505693005f' (obviously replacing the session ID with the one you're looking for).

Assuming there's one and only one entry for that Session ID in the database, run the following query to delete it.

delete from Messages where MessageId = 'b76aed42-afe7-11e1-923e-00505693005f'

After deleting this Session ID  record, the user was able to succesfully login.


Applies To

ServiceDesk 7.1 SP2