Day 24
The tide is high
Let us say that you do not have Sterling Control Center to run the High Water Mark report for maximum concurrent sessions.
You might want this for determining if you are making optimum use of the number of concurrent sessions that you are licensed for.
You may not have enough Connect:Direct nodes that you feel justifies the need for Sterling Control Center.
For Windows
The following script
water-mark.vbs
is an example of how to do this using VBScript and the Connect:Direct Windows SDK.
In fact this is a fairly simple example of how to use the Connect:Direct Windows SDK.
'
' Script to report on the high water mark for the number of concurrent Connect:Direct sessions
'
Dim node ' Represents the Connect Direct Node we are using.
Dim stats ' A collection of statistic records.
Dim stat ' An individual statistic record.
' Make the OLE/COM connection to Connect:Direct
Set node = CreateObject("CD.Node")
' Sign on using defaults from the Client Connection Utility
node.Connect "CD.NICKE","",""
' Get start and end sessions statistics records since yesterday
set stats = node.SelectStats("select statistics startt=(today) recids=(SSTR,SEND) ccode=(eq,0)")
currentNumberOfSessions = 0
highWaterMark = 0
For Each stat in stats
Select Case stat.RecId
Case "SSTR" currentNumberOfSessions=currentNumberOfSessions+1
Case "SEND" currentNumberOfSessions=currentNumberOfSessions-1
End Select
If currentNumberOfSessions > highWaterMark Then
highWaterMark = currentNumberOfSessions
End If
Next
Wscript.echo "Concurrent sessions high water mark = " & highWaterMark
Set node = nothing
Set stats = nothing
Set stat = nothing
If you have the Connect:Direct Windows SDK installed and default sign on credentials registered with the Client Connection Utility you can run the script as follows:
C:\Users\nicke> cscript /nologo water-mark.vbs
Concurrent sessions high water mark = 5
The above script is minimal in that it is only meant to be run interactively as it does not itself check for every error.
You run the script on a Windows machine with the SDK installed, but the node in question can be a remote Windows or UNIX (I have not tested other platforms) Connect:Direct node as long as the node is registered with the Client Connection Utility.
For UNIX
If all you have are UNIX machines then you can use the following shell function for convenience:
function watermark
{
# Usage: cd work/UNIX.NODE ; cat S201712* | watermark
egrep "RECI=(SSTR|SEND)" | grep CCOD=0 | awk '
BEGIN{
currentNumberOfSessions=0
highWaterMark=0
}
/RECI=SSTR/ { currentNumberOfSessions++ }
/RECI=SEND/ { currentNumberOfSessions-- }
{
if(currentNumberOfSessions > highWaterMark){
highWaterMark=currentNumberOfSessions
}
}
END{
print "Concurrent sessions high water mark = " highWaterMark
}'
}
Put the above shell function definition either in your
.profile
or just paste it into a terminal session. You will need to be in the work directory for your UNIX node where the statistics files are. Then you can run it as follows by piping whatever period of statistics files you want through the watermark
shell function:[work/CD.UNIX] $ cat S201712* | watermark
Concurrent sessions high water mark = 8
Now you will know whether the number of sessions you use is appropriate for your licensing of these nodes.
1 comment:
Good article, Nick!
Post a Comment