Hello,
After many tries to get the list of logged in users in portal, I found a simple solution. Maybe this solution is not the better but it worked fine for me.
I'm was looking for a solution like Session Management functionality of SAP NW.
Attention:
I used an internal SAP API without any documentation and support. So, if SAP change the code of API, the functionality may not work properly.
Let's go to the solution:
1 - I picked the JAR application "sap.com~tc~lm~itsam~ui~session~mngt~wd.jar" in folder "/usr/sap/<SID>/J<NN>/j2ee/cluster/bin/ext/tc~jmx/lib/private/"
2 - In NWDS I created a new Portal Application and a new Portal Application Object:
a) Portal Application:
b) Portal Application
3 - Put the JAR into the lib folder:
4 - Adjust the Build Path:
Another necessary JARs:
sap.com~tc~bl~pj_jmx~Impl.jar(/usr/sap/<SID>/J<NN>/j2ee/cluster/bin/ext/tc~jmx/lib/private)
5 - Put the below code in JSP created file(LoggedInUserInformation.jsp):
<%@page import="com.sap.jmx.ObjectNameFactory"%>
<%@page import="com.sap.jmx.remote.JmxConnectionFactory"%>
<%@page import="com.sap.tc.logging.Location"%>
<%@page import="java.util.*"%>
<%@page import="javax.management.*"%>
<%@page import="javax.management.openmbean.CompositeData"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.management.openmbean.CompositeData"%>
<%@page import="javax.management.MBeanServer"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="java.util.Set"%>
<%@page import="com.sap.tc.lm.ui.itsam.session.mnt.SessionManagementModel"%><br>
<table border="1">
<tr>
<td>UserName</td>
<td>IP</td>
</tr>
<%
SessionManagementModel model = new SessionManagementModel();
CompositeData data[] = model.getSessions();
for(int i=0;i<data.length;i++){
%>
<tr>
<td><%=data[i].get("UserName").toString().toLowerCase()%></td>
<%
if(data[i].get("RootContextID") != null){
String rootContextID = data[i].get("RootContextID").toString();
CompositeData details[] = model.GetSessionsForAggSession(rootContextID);
for(int j=0;j<details.length;j++){
%>
<td><%=details[j].get("IP") %></td>
<% }
}
%>
<%
}
%>
</table>
6 - Create EAR file:
7 - Deploy EAR in Portal
8 - Test Application:
Log in Portal > Content Administration
Result:
All information are available like in Session Management. For use then, the CompositeData parameters must be knowed. For this, is possible to use toString to show all parameters.
Example:
<%
CompositeData data[] = model.getSessions();
for(int i=0;i<data.length;i++){ %>
<%= data[i].toString()%><br>
<% } %>
The parameters will be displayed like this:
javax.management.openmbean.CompositeDataSupport(compositeType=javax.management.openmbean.CompositeType(name=Aggregated session data,items=((itemName=ActiveRequests,itemType=javax.management.openmbean.SimpleType(name=java.lang.Integer)),(itemName=ClusterNodeId,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=Cpu,itemType=javax.management.openmbean.SimpleType(name=java.lang.Integer)),(itemName=IncommingTime,itemType=javax.management.openmbean.SimpleType(name=java.lang.Long)),(itemName=ProfileZipDataName,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=ProfileZipDataPath,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=Requests,itemType=javax.management.openmbean.SimpleType(name=java.lang.Integer)),(itemName=ResponceTime,itemType=javax.management.openmbean.SimpleType(name=java.lang.Integer)),(itemName=RootContextID,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=UserName,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=allocMemory,itemType=javax.management.openmbean.SimpleType(name=java.lang.Long)),(itemName=dbTime,itemType=javax.management.openmbean.SimpleType(name=java.lang.Integer)),(itemName=lastAccessed,itemType=javax.management.openmbean.SimpleType(name=java.util.Date)))),contents={ActiveRequests=0, ClusterNodeId=null, Cpu=0, IncommingTime=0, ProfileZipDataName=null, ProfileZipDataPath=null, Requests=0, ResponceTime=0, RootContextID=null, UserName=Administrator, allocMemory=0, dbTime=0, lastAccessed=Wed Feb 12 15:37:44 BRST 2014})
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
12 | |
12 | |
7 | |
5 | |
5 | |
4 | |
4 | |
3 | |
3 | |
3 |