Logging User Signons
-
- Experienced User
- Posts: 119
- Joined: Wed May 25, 2016 11:58 am
- First Name: Patti
- Last Name: Shuey
- Company Name: Conestoga Wood Specialties
- Phone: 7174452886
- Address 1: 645 Reading Road
- City: East Earl
- State / Province: Pennsylvania
- Zip / Postal Code: 17519
- Country: United States
- Contact:
Logging User Signons
On the IBMi we store user logon time by pulling the information from QHST based on msgid. When our users only use Atruim we lose this information (I think). Is there any way to find this information for our Atrium users?
-
- Experienced User
- Posts: 2711
- Joined: Wed Aug 01, 2012 8:58 am
- First Name: Scott
- Last Name: Klement
- Company Name: Profound Logic
- City: Milwaukee
- State / Province: Wisconsin
Re: Logging User Signons
I'm guessing that your QHST is showing the job start/end times, is that correct?
Atrium works by signing on to the IBM HTTP Server (powered by Apache) using HTTP authentication. The browser then saves these credentials in memory, and automatically re-sends them every time you interact with something (meaning, click a link, button, etc... anything that submits a screen, opens a new tab, etc.)
When a Rich Display application is launched, it is creating a new job. I'm thinking these woudl be in QHST as well, wouldn't they? I'm certainly no expert on QHST, but I thought it had all of the job start/ends.
Likewise, if Atrium runs a Genie macro or starts a Genie session, this is still a 5250 session like other tools create, so it should have the same entries in QHST.
So it seems to me that QHST should still work, but there will be a big difference in that it shows each time the user launches a tab rather than just when they sign on. So that's pretty different, but if you think about it, its no different than what would happen if they opened many 5250 windows at the same time.
Obviously, if you launch a PC command, or open a new web page, these aren't necessarily on the IBM i partition that's hosting Atrium, so they couldn't be logged to QHST.
Atrium works by signing on to the IBM HTTP Server (powered by Apache) using HTTP authentication. The browser then saves these credentials in memory, and automatically re-sends them every time you interact with something (meaning, click a link, button, etc... anything that submits a screen, opens a new tab, etc.)
When a Rich Display application is launched, it is creating a new job. I'm thinking these woudl be in QHST as well, wouldn't they? I'm certainly no expert on QHST, but I thought it had all of the job start/ends.
Likewise, if Atrium runs a Genie macro or starts a Genie session, this is still a 5250 session like other tools create, so it should have the same entries in QHST.
So it seems to me that QHST should still work, but there will be a big difference in that it shows each time the user launches a tab rather than just when they sign on. So that's pretty different, but if you think about it, its no different than what would happen if they opened many 5250 windows at the same time.
Obviously, if you launch a PC command, or open a new web page, these aren't necessarily on the IBM i partition that's hosting Atrium, so they couldn't be logged to QHST.
-
- Profound User
- Posts: 42
- Joined: Wed Jun 14, 2017 12:06 pm
- First Name: Dan
- Last Name: Devoe
- Company Name: Boston Warehouse Trading
- State / Province: Massachusetts
- Zip / Postal Code: 02062
- Country: United States
- Contact:
Re: Logging User Signons
Perhaps a solution is when you launch Atrium, write a record out to a table that stores the user signon information. When connectivity is lost (the job is no longer in the system), update the record.pjshuey wrote:On the IBMi we store user logon time by pulling the information from QHST based on msgid. When our users only use Atruim we lose this information (I think). Is there any way to find this information for our Atrium users?
I did a similar approach when using VisualAge for RPG applications.
The table could contain the User ID, System job number, start timestamp & end timestamp.
You could even take it one step further & for each program launched thru Atritum, write a record (add Program ID as a column in the table).
-
- Experienced User
- Posts: 2711
- Joined: Wed Aug 01, 2012 8:58 am
- First Name: Scott
- Last Name: Klement
- Company Name: Profound Logic
- City: Milwaukee
- State / Province: Wisconsin
Re: Logging User Signons
How would she write a record when someone signs on to Atrium?
I suppose you could modify the sign on screen (this is customer-modifyable) to call your own AJAX routine. That routine could write a record... but that ajax request would only last for a moment (fraction of a second), it'd basically write the record and immediately end. There isn't any way that I'm aware of to tell when someone "ends" the whole Atrium portal.
Atrium is a stateless web application. So when you sign on, it's just sending a quick message to IBM i, and then ending. There isn't really any sort of "sign off" that occurs at all. The Atrium jobs are only active for a moment to get the data from the database, then they end.
The tabs you open for either Rich Displays or Genie sessions will keep a job running while they are open -- but you may have dozens or hundreds of these open during the lifetime of the session as users open/close different tabs.
I suppose you could modify the sign on screen (this is customer-modifyable) to call your own AJAX routine. That routine could write a record... but that ajax request would only last for a moment (fraction of a second), it'd basically write the record and immediately end. There isn't any way that I'm aware of to tell when someone "ends" the whole Atrium portal.
Atrium is a stateless web application. So when you sign on, it's just sending a quick message to IBM i, and then ending. There isn't really any sort of "sign off" that occurs at all. The Atrium jobs are only active for a moment to get the data from the database, then they end.
The tabs you open for either Rich Displays or Genie sessions will keep a job running while they are open -- but you may have dozens or hundreds of these open during the lifetime of the session as users open/close different tabs.
-
- Profound User
- Posts: 42
- Joined: Wed Jun 14, 2017 12:06 pm
- First Name: Dan
- Last Name: Devoe
- Company Name: Boston Warehouse Trading
- State / Province: Massachusetts
- Zip / Postal Code: 02062
- Country: United States
- Contact:
Re: Logging User Signons
Perhaps it wouldn't be done when Atrium itself is launched - at the program / module level, call a procedure (ie. LogStartOfJob(UserID: ProgramID);) that would write the table entry for that program being launched.Scott Klement wrote:How would she write a record when someone signs on to Atrium?
And then have the on-exit opcode to call a procedure that'll update the table record, showing when the program has ended.
Of course, this would require modifying every top-level program that is launched by Atrium (not drill-down programs), and yes, it could result in many records being written as opposed to simply when the user logged in & logged out.
Just an idea...
-
- Experienced User
- Posts: 2711
- Joined: Wed Aug 01, 2012 8:58 am
- First Name: Scott
- Last Name: Klement
- Company Name: Profound Logic
- City: Milwaukee
- State / Province: Wisconsin
Re: Logging User Signons
For Rich DIsplays, there's an exit program that can be run each time one is launched. https://docs.profoundlogic.com/x/BAHdAQ This exit program was intended to be used to allow someone to control whether a program was launched or not based on their own coding logic. But, you could simply always allow it, and write your own logic to log the program start somewhere.
Using that, you wouldn't have to modify each program -- at least not for program startups.
There's nothing equivalent to "on-exit", I'm afraid.
Using that, you wouldn't have to modify each program -- at least not for program startups.
There's nothing equivalent to "on-exit", I'm afraid.
Who is online
Users browsing this forum: Google [Bot] and 5 guests