Ran out of licenses - how to tell who was logged in?

Is there a log file or some way to tell who all was logged into Epicor when we ran out of licenses? We use webservices and we have some users that can login twice, so I’d like to determine if we truly had that many unique users logged in or if something else may have been going on…

Server Side Exception

Maximum users exceeded on license type: DefaultUser assigned to company: TS.

Exception caught in: Epicor.ServiceModel

Error Detail

============

Description: Maximum users exceeded on license type: DefaultUser assigned to company: TS.

Program: Epicor.Ice.dll

Method: Get

Line Number: 92

Column Number: 13

Client Stack Trace

==================

at Epicor.ServiceModel.Channels.ImplBase`1.ShouldRethrowNonRetryableException(Exception ex, DataSet[] dataSets)

at Ice.Proxy.BO.ReportMonitorImpl.GetRowsKeepIdleTimeWithBallonInfo(String whereClauseSysRptLst, Boolean getBallonInfo, String whereClauseSysTask, String whereClauseSysTaskLog, DataSet& sysMonitorData)

at Ice.Adapters.ReportMonitorAdapter.GetRowsKeepIdleTimeWithBallonInfo(SearchOptions opts, Boolean getBallonInfo, SysMonitorTasksDataSet& sysMonitorData)

In the Epicor Admin Console, select the App, and then Sessions.

Here’s a screen shot from EAC

image

user gself has three entries, but is probably only logged in once (maybe twice).

Not nearly as useful, but you can run the “User session Log Report” (System Setup -> Security Maint.)
Note that it can show multiple entries per person, but that doesn’t mean that they had simultaneous sessions.

1 Like

@ckrusen Thanks!!! I’m familiar with how to check right now who is logged in, but does EAC(or a log or something else) allow us to see several days ago when the error happened who all was logged in?

I’m wondering if we have a REST API grabbing a bunch of licenses momentarily or if a user was logged in multiple times wasting licenses like your screenshot shows…

User Session Log Report can go back in time (you enter a date range). But as I said, that report is almost useless. When I run it with just todays dates, one user appears to have had many sessions, but its really just one.

Note that the “Logoff Time” is often before the “Logon Time”

If you are Json-literate, you can also use this REST service - especially if you’re in the (cough, cough,…) cloud and don’t have access to the Admin Console or you don’t want to RDP to the server and you’re on prem.

Ice.BO.AdminSessionSvc

1 Like

Gotcha sitting in RAM - kind of scary if you loose power and the data doesn’t get flushed to disk/DB…

I did get a little further I learned about the System Activity Tracker and now after enabling the Activity Log in Company Maintenance I’m seeing something strange that could be related to the problem I’m trying to solve(out of default licenses). We have a user webservices we use when we need to consume a REST API and I’m seeing this user login every couple of seconds, which appears to be a problem. Where can I look to see what this user is doing? In E9 there was a plain text log file I could look in, but in E10 I’m not sure where this is logged?

Doesn’t have to be. It might be stored in the running AppServer. Remember that in E10, data may be cached. We’re used to seeing “the truth” in the database but that is no longer the case in modern applications.

Well, yeah, for some data. But if you are rebooting your server, the current logins probably get wiped anyway. :wink:

What is the nature of your REST client? That is, what is it doing?

1 Like

We have lots of different small apps we develop that consume data via the REST APIs, and I’m trying to figure out what piece of code is logging in so frequently. That’s why I’m curious how I can figure out what each of these sessions is doing(in E9 you could see all of the BO and method calls for a given session and relate that session to a user).

Although in looking more at the output from System Activity Log Tracker it indicates we had a person login 15 times with in 5 seconds, that makes me not trust the data I’m looking at and/or question how I’m interpreting this data(maybe it doesn’t mean what I think?)… So unfortunately I’m back to my original problem of not knowing how to determine how many users are logged in previously(when an error occurred saying we were out of licenses). Any pointers would be appreciated.

SysActivityLog

And the oddity between the SysActivityLog table and the User Session report, is that there is an exact 5 hour difference - Which I belive is the difference between EST and GMT.

Well you found that table while I was composing my response.

One thing that stands out, is that there aren’t an “Log Off” entries in the Activity Comment

Right. So not knowing what they are doing I’m a bit limited in a response.

  • Are read-only lookups for validation or to populate read-only “dashboards?”
  • Are they doing transactions at the same workstation as the user?
  • Are they autonomous transactions happening on a timer or an event?

Based on what they are doing, you have some strategies besides logging in for each transaction.

BTW, do you have Web Service Licenses? How licenses are consumed is explained in this EpicCare KB Article.

https://epicorcs.service-now.com/epiccare?id=epiccare_kb_article&sys_id=46c81970dba3af44443cc55305961930

10.2.600 gives you an admin screen in the client to show who is logged in, sessions can be deleted.

1 Like

What I can’t seem to find a solution to is not who is logged in right now, but rather who was logged in at some point previously(a log), specifically when we ran out of licenses. I know how to check who is logged in right now, but can’t figure out how to tell last Tuesday at 1pm when someone reported they couldn’t login due to an error of being out of licenses, how many people were logged in(license usage is what I really care about) in and who were they. Otherwise I’ve got to receive the error and check quickly before anyone logs out to know this(it’s a race). If there are any solutions to this I’d love to know.