jtopenlite.com.ibm.jtopenlite.command.program.workmgmt.RetrieveSystemStatus Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400-jdk9 Show documentation
Show all versions of jt400-jdk9 Show documentation
The Open Source version of the IBM Toolbox for Java
The newest version!
///////////////////////////////////////////////////////////////////////////////
//
// JTOpenLite
//
// Filename: RetrieveSystemStatus.java
//
// The source code contained herein is licensed under the IBM Public License
// Version 1.0, which has been approved by the Open Source Initiative.
// Copyright (C) 2011-2012 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.jtopenlite.command.program.workmgmt;
import com.ibm.jtopenlite.*;
import com.ibm.jtopenlite.command.*;
/**
* QWCRSSTS
* This class fully implements the V5R4 specification of QWCRSSTS.
**/
public class RetrieveSystemStatus implements Program
{
private static final byte[] ZERO = new byte[4];
public static final int FORMAT_SSTS0100 = 0;
public static final int FORMAT_SSTS0200 = 1;
public static final int FORMAT_SSTS0300 = 2;
public static final int FORMAT_SSTS0400 = 3;
public static final int FORMAT_SSTS0500 = 4;
private int inputLength_;
private int inputFormat_;
private String inputReset_;
private int bytesAvailable_;
private int bytesReturned_;
private long currentDateAndTime_;
private String systemName_;
// Format 0100.
private int usersCurrentlySignedOn_;
private int usersTemporarilySignedOff_;
private int usersSuspendedBySystemRequest_;
private int usersSuspendedByGroupJobs_;
private int usersSignedOffWithPrinterOutputWaitingToPrint_;
private int batchJobsWaitingForMessages_;
private int batchJobsRunning_;
private int batchJobsHeldWhileRunning_;
private int batchJobsEnding_;
private int batchJobsWaitingToRunOrAlreadyScheduled_;
private int batchJobsHeldOnAJobQueue_;
private int batchJobsOnAHeldJobQueue_;
private int batchJobsOnAnUnassignedJobQueue_;
private int batchJobsEndedWithPrinterOutputWaitingToPrint_;
// Format 0200.
private String elapsedTime_;
private int percentProcessingUnitUsed_;
private int jobsInSystem_;
private int percentPermanentAddresses_;
private int percentTemporaryAddresses_;
private int systemASP_;
private int percentSystemASPUsed_;
private int totalAuxiliaryStorage_;
private int currentUnprotectedStorageUsed_;
private int maximumUnprotectedStorageUsed_;
private int percentDBCapability_;
private int mainStorageSize_;
private int numberOfPartitions_;
private int partitionIdentifier_;
private int currentProcessingCapacity_;
private byte processorSharingAttribute_;
public static final byte DEDICATED = (byte)0xF0;
public static final byte SHARED_CAPPED = (byte)0xF1;
public static final byte SHARED_UNCAPPED = (byte)0xF2;
private int numberOfProcessors_;
private int activeJobsInSystem_;
private int activeThreadsInSystem_;
private int maximumJobsInSystem_;
private int percentTemporary256MBSegmentsUsed_;
private int percentTemporary4GBSegmentsUsed_;
private int percentPermanent256MBSegmentsUsed_;
private int percentPermanent4GBSegmentsUsed_;
private int percentCurrentInteractivePerformance_;
private int percentUncappedCPUCapacityUsed_;
private int percentSharedProcessorPoolUsed_;
private long mainStorageSizeLong_;
// Format 0300.
private int numberOfPools_;
private RetrieveSystemStatusPoolListener poolListener_;
// Format 0400.
private int minimumMachinePoolSize_;
private int minimumBasePoolSize_;
private String poolSelectionTypeOfPool_;
private String poolSelectionSharedPoolName_;
private int poolSelectionSystemPoolIdentifier_;
public static final String TYPE_SHARED = "*SHARED";
public static final String TYPE_SYSTEM = "*SYSTEM";
public static final String SELECT_ALL = "*ALL";
public static final String SELECT_MACHINE = "*MACHINE";
public static final String SELECT_BASE = "*BASE";
public static final String SELECT_INTERACT = "*INTERACT";
public static final String SELECT_SPOOL = "*SPOOL";
// Format 0500.
private int numberOfSubsystemsAvailable_;
private int numberOfSubsystemsReturned_;
private byte[] tempData_;
public RetrieveSystemStatus(int format, boolean resetStatistics)
{
inputFormat_ = format;
inputReset_ = resetStatistics ? "*YES" : "*NO";
inputLength_ = getFormatSize();
}
public final byte[] getTempDataBuffer()
{
int maxSize = 0;
for (int i=0; i maxSize) maxSize = len;
len = getParameterInputLength(i);
if (len > maxSize) maxSize = len;
}
if (tempData_ == null || tempData_.length < maxSize)
{
tempData_ = new byte[maxSize];
}
return tempData_;
}
public String getProgramName()
{
return "QWCRSSTS";
}
public String getProgramLibrary()
{
return "QSYS";
}
public void newCall()
{
bytesAvailable_ = 0;
bytesReturned_ = 0;
currentDateAndTime_ = 0;
systemName_ = null;
// Format 0100.
usersCurrentlySignedOn_ = 0;
usersTemporarilySignedOff_ = 0;
usersSuspendedBySystemRequest_ = 0;
usersSuspendedByGroupJobs_ = 0;
usersSignedOffWithPrinterOutputWaitingToPrint_ = 0;
batchJobsWaitingForMessages_ = 0;
batchJobsRunning_ = 0;
batchJobsHeldWhileRunning_ = 0;
batchJobsEnding_ = 0;
batchJobsWaitingToRunOrAlreadyScheduled_ = 0;
batchJobsHeldOnAJobQueue_ = 0;
batchJobsOnAHeldJobQueue_ = 0;
batchJobsOnAnUnassignedJobQueue_ = 0;
batchJobsEndedWithPrinterOutputWaitingToPrint_ = 0;
// Format 0200.
elapsedTime_ = null;
percentProcessingUnitUsed_ = 0;
jobsInSystem_ = 0;
percentPermanentAddresses_ = 0;
percentTemporaryAddresses_ = 0;
systemASP_ = 0;
percentSystemASPUsed_ = 0;
totalAuxiliaryStorage_ = 0;
currentUnprotectedStorageUsed_ = 0;
maximumUnprotectedStorageUsed_ = 0;
percentDBCapability_ = 0;
mainStorageSize_ = 0;
numberOfPartitions_ = 0;
partitionIdentifier_ = 0;
currentProcessingCapacity_ = 0;
processorSharingAttribute_ = 0;
numberOfProcessors_ = 0;
activeJobsInSystem_ = 0;
activeThreadsInSystem_ = 0;
maximumJobsInSystem_ = 0;
percentTemporary256MBSegmentsUsed_ = 0;
percentTemporary4GBSegmentsUsed_ = 0;
percentPermanent256MBSegmentsUsed_ = 0;
percentPermanent4GBSegmentsUsed_ = 0;
percentCurrentInteractivePerformance_ = 0;
percentUncappedCPUCapacityUsed_ = 0;
percentSharedProcessorPoolUsed_ = 0;
mainStorageSizeLong_ = 0;
// Format 0300.
numberOfPools_ = 0;
// Format 0400.
minimumMachinePoolSize_ = 0;
minimumBasePoolSize_ = 0;
// Format 0500.
numberOfSubsystemsAvailable_ = 0;
numberOfSubsystemsReturned_ = 0;
}
public int getNumberOfParameters()
{
return poolSelectionTypeOfPool_ == null ? 5 : 7;
}
public void setPoolListener(RetrieveSystemStatusPoolListener listener)
{
poolListener_ = listener;
}
public int getLengthOfReceiverVariable()
{
return inputLength_;
}
public void setLengthOfReceiverVariable(int length)
{
inputLength_ = length <= 0 ? 1 : length;
}
public void setFormat(int format)
{
inputFormat_ = format;
if (getFormatSize() > inputLength_) inputLength_ = getFormatSize();
}
public void setResetStatistics(boolean resetStatistics)
{
inputReset_ = resetStatistics ? "*YES" : "*NO";
}
public int getBytesAvailable()
{
return bytesAvailable_;
}
public int getBytesReturned()
{
return bytesReturned_;
}
/**
* All formats.
**/
public String getSystemName()
{
return systemName_;
}
/**
* All formats.
**/
public long getCurrentDateAndTime()
{
return currentDateAndTime_;
}
/**
* FORMAT_SSTS0100.
**/
public int getUsersCurrentlySignedOn()
{
return usersCurrentlySignedOn_;
}
/**
* FORMAT_SSTS0100.
**/
public int getUsersTemporarilySignedOff()
{
return usersTemporarilySignedOff_;
}
/**
* FORMAT_SSTS0100.
**/
public int getUsersSuspendedBySystemRequest()
{
return usersSuspendedBySystemRequest_;
}
/**
* FORMAT_SSTS0100.
**/
public int getUsersSuspendedByGroupJobs()
{
return usersSuspendedByGroupJobs_;
}
/**
* FORMAT_SSTS0100.
**/
public int getUsersSignedOffWithPrinterOutputWaitingToPrint()
{
return usersSignedOffWithPrinterOutputWaitingToPrint_;
}
/**
* FORMAT_SSTS0100.
**/
public int getBatchJobsWaitingForMessages()
{
return batchJobsWaitingForMessages_;
}
/**
* FORMAT_SSTS0100.
**/
public int getBatchJobsRunning()
{
return batchJobsRunning_;
}
/**
* FORMAT_SSTS0100.
**/
public int getBatchJobsHeldWhileRunning()
{
return batchJobsHeldWhileRunning_;
}
/**
* FORMAT_SSTS0100.
**/
public int getBatchJobsEnding()
{
return batchJobsEnding_;
}
/**
* FORMAT_SSTS0100.
**/
public int getBatchJobsWaitingToRunOrAlreadyScheduled()
{
return batchJobsWaitingToRunOrAlreadyScheduled_;
}
/**
* FORMAT_SSTS0100.
**/
public int getBatchJobsHeldOnAJobQueue()
{
return batchJobsHeldOnAJobQueue_;
}
/**
* FORMAT_SSTS0100.
**/
public int getBatchJobsOnAHeldJobQueue()
{
return batchJobsOnAHeldJobQueue_;
}
/**
* FORMAT_SSTS0100.
**/
public int getBatchJobsOnAnUnassignedJobQueue()
{
return batchJobsOnAnUnassignedJobQueue_;
}
/**
* FORMAT_SSTS0100.
**/
public int getBatchJobsEndedWithPrinterOutputWaitingToPrint()
{
return batchJobsEndedWithPrinterOutputWaitingToPrint_;
}
/**
* FORMAT_SSTS0200, FORMAT_SSTS0300.
**/
public String getElapsedTime()
{
return elapsedTime_;
}
/**
* FORMAT_SSTS0200.
**/
public int getPercentProcessingUnitUsed()
{
return percentProcessingUnitUsed_;
}
/**
* FORMAT_SSTS0200.
**/
public int getJobsInSystem()
{
return jobsInSystem_;
}
/**
* FORMAT_SSTS0200.
**/
public int getPercentPermanentAddresses()
{
return percentPermanentAddresses_;
}
/**
* FORMAT_SSTS0200.
**/
public int getPercentTemporaryAddresses()
{
return percentTemporaryAddresses_;
}
/**
* FORMAT_SSTS0200.
**/
public int getSystemASP()
{
return systemASP_;
}
/**
* FORMAT_SSTS0200.
**/
public int getPercentSystemASPUsed()
{
return percentSystemASPUsed_;
}
/**
* FORMAT_SSTS0200.
**/
public int getTotalAuxiliaryStorage()
{
return totalAuxiliaryStorage_;
}
/**
* FORMAT_SSTS0200.
**/
public int getCurrentUnprotectedStorageUsed()
{
return currentUnprotectedStorageUsed_;
}
/**
* FORMAT_SSTS0200.
**/
public int getMaximumUnprotectedStorageUsed()
{
return maximumUnprotectedStorageUsed_;
}
/**
* FORMAT_SSTS0200.
**/
public int getPercentDBCapability()
{
return percentDBCapability_;
}
/**
* FORMAT_SSTS0200, FORMAT_SSTS0400.
**/
public int getMainStorageSize()
{
return mainStorageSize_;
}
/**
* FORMAT_SSTS0200.
**/
public int getNumberOfPartitions()
{
return numberOfPartitions_;
}
/**
* FORMAT_SSTS0200.
**/
public int getPartitionIdentifier()
{
return partitionIdentifier_;
}
/**
* FORMAT_SSTS0200.
**/
public int getCurrentProcessingCapacity()
{
return currentProcessingCapacity_;
}
/**
* FORMAT_SSTS0200.
**/
public byte getProcessorSharingAttribute()
{
return processorSharingAttribute_;
}
/**
* FORMAT_SSTS0200.
**/
public int getNumberOfProcessors()
{
return numberOfProcessors_;
}
/**
* FORMAT_SSTS0200.
**/
public int getActiveJobsInSystem()
{
return activeJobsInSystem_;
}
/**
* FORMAT_SSTS0200.
**/
public int getActiveThreadsInSystem()
{
return activeThreadsInSystem_;
}
/**
* FORMAT_SSTS0200.
**/
public int getMaximumJobsInSystem()
{
return maximumJobsInSystem_;
}
/**
* FORMAT_SSTS0200.
**/
public int getPercentTemporary256MBSegmentsUsed()
{
return percentTemporary256MBSegmentsUsed_;
}
/**
* FORMAT_SSTS0200.
**/
public int getPercentTemporary4GBSegmentsUsed()
{
return percentTemporary4GBSegmentsUsed_;
}
/**
* FORMAT_SSTS0200.
**/
public int getPercentPermanent256MBSegmentsUsed()
{
return percentPermanent256MBSegmentsUsed_;
}
/**
* FORMAT_SSTS0200.
**/
public int getPercentPermanent4GBSegmentsUsed()
{
return percentPermanent4GBSegmentsUsed_;
}
/**
* FORMAT_SSTS0200.
**/
public int getPercentCurrentInteractivePerformance()
{
return percentCurrentInteractivePerformance_;
}
/**
* FORMAT_SSTS0200.
**/
public int getPercentUncappedCPUCapacityUsed()
{
return percentUncappedCPUCapacityUsed_;
}
/**
* FORMAT_SSTS0200.
**/
public int getPercentSharedProcessorPoolUsed()
{
return percentSharedProcessorPoolUsed_;
}
/**
* FORMAT_SSTS0200, FORMAT_SSTS0400.
**/
public long getMainStorageSizeLong()
{
return mainStorageSizeLong_;
}
/**
* FORMAT_SSTS0300, FORMAT_SSTS0400.
**/
public int getNumberOfPools()
{
return numberOfPools_;
}
/**
* FORMAT_SSTS0400.
**/
public int getMinimumMachinePoolSize()
{
return minimumMachinePoolSize_;
}
/**
* FORMAT_SSTS0400.
**/
public int getMinimumBasePoolSize()
{
return minimumBasePoolSize_;
}
/**
* FORMAT_SSTS0500.
**/
public int getNumberOfSubsystemsAvailable()
{
return numberOfSubsystemsAvailable_;
}
/**
* FORMAT_SSTS0500.
**/
public int getNumberOfSubsystemsReturned()
{
return numberOfSubsystemsReturned_;
}
/**
* FORMAT_SSTS0400, FORMAT_SSTS0500.
**/
public void setPoolSelectionInformation(String typeOfPool, String sharedPoolName, int systemPoolIdentifier)
{
poolSelectionTypeOfPool_ = typeOfPool;
poolSelectionSharedPoolName_ = sharedPoolName;
poolSelectionSystemPoolIdentifier_ = systemPoolIdentifier;
}
public int getParameterInputLength(final int parmIndex)
{
switch (parmIndex)
{
case 0: return 0;
case 1: return 4;
case 2: return 8;
case 3: return 10;
case 4: return 4;
case 5: return 24;
case 6: return 4;
}
return 0;
}
public int getParameterOutputLength(final int parmIndex)
{
switch (parmIndex)
{
case 0: return inputLength_;
case 4: return 4;
}
return 0;
}
private int getFormatSize()
{
switch (inputFormat_)
{
case FORMAT_SSTS0100: return 80;
case FORMAT_SSTS0200: return 148;
case FORMAT_SSTS0300: return 128; // Just a guess. Minimum to hold info for one pool entry.
case FORMAT_SSTS0400: return 244; // Just a guess. Minimum to hold info for one pool entry.
case FORMAT_SSTS0500: return 74; // Just a guess. Minimum to hold info for one subsystem entry.
}
return 0;
}
private String getFormatName()
{
switch (inputFormat_)
{
case FORMAT_SSTS0100: return "SSTS0100";
case FORMAT_SSTS0200: return "SSTS0200";
case FORMAT_SSTS0300: return "SSTS0300";
case FORMAT_SSTS0400: return "SSTS0400";
case FORMAT_SSTS0500: return "SSTS0500";
}
return null;
}
public int getParameterType(final int parmIndex)
{
switch (parmIndex)
{
case 0: return Parameter.TYPE_OUTPUT;
case 4: return Parameter.TYPE_INPUT_OUTPUT;
}
return Parameter.TYPE_INPUT;
}
public byte[] getParameterInputData(final int parmIndex)
{
final byte[] tempData = getTempDataBuffer();
switch (parmIndex)
{
case 1: Conv.intToByteArray(inputLength_, tempData, 0); return tempData;
case 2: Conv.stringToEBCDICByteArray37(getFormatName(), tempData, 0); return tempData;
case 3: Conv.stringToBlankPadEBCDICByteArray(inputReset_, tempData, 0, 10); return tempData;
case 4: return ZERO;
case 5: Conv.stringToBlankPadEBCDICByteArray(poolSelectionTypeOfPool_, tempData, 0, 10); Conv.stringToBlankPadEBCDICByteArray(poolSelectionSharedPoolName_, tempData, 10, 10); Conv.intToByteArray(poolSelectionSystemPoolIdentifier_, tempData, 20); return tempData;
case 6: Conv.intToByteArray(24, tempData, 0); return tempData;
}
return null;
}
public void setParameterOutputData(final int parmIndex, final byte[] data, final int maxLength)
{
switch (parmIndex)
{
case 0:
bytesAvailable_ = Conv.byteArrayToInt(data, 0);
bytesReturned_ = Conv.byteArrayToInt(data, 4);
int numRead = 8;
final char[] c = new char[50];
switch (inputFormat_)
{
case FORMAT_SSTS0100:
currentDateAndTime_ = Conv.byteArrayToLong(data, numRead);
numRead += 8;
systemName_ = Conv.ebcdicByteArrayToString(data, numRead, 8, c);
numRead += 8;
usersCurrentlySignedOn_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
usersTemporarilySignedOff_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
usersSuspendedBySystemRequest_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
usersSuspendedByGroupJobs_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
usersSignedOffWithPrinterOutputWaitingToPrint_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
batchJobsWaitingForMessages_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
batchJobsRunning_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
batchJobsHeldWhileRunning_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
batchJobsEnding_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
batchJobsWaitingToRunOrAlreadyScheduled_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
batchJobsHeldOnAJobQueue_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
batchJobsOnAHeldJobQueue_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
batchJobsOnAnUnassignedJobQueue_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
batchJobsEndedWithPrinterOutputWaitingToPrint_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
break;
case FORMAT_SSTS0200:
currentDateAndTime_ = Conv.byteArrayToLong(data, numRead);
numRead += 8;
systemName_ = Conv.ebcdicByteArrayToString(data, numRead, 8, c);
numRead += 8;
elapsedTime_ = Conv.ebcdicByteArrayToString(data, numRead, 6, c);
numRead += 6;
numRead += 2;
percentProcessingUnitUsed_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
jobsInSystem_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
percentPermanentAddresses_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
percentTemporaryAddresses_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
systemASP_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
percentSystemASPUsed_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
totalAuxiliaryStorage_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
currentUnprotectedStorageUsed_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
maximumUnprotectedStorageUsed_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
percentDBCapability_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
mainStorageSize_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
numberOfPartitions_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
partitionIdentifier_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
numRead += 4;
currentProcessingCapacity_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
processorSharingAttribute_ = data[numRead];
numRead += 4;
numberOfProcessors_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
activeJobsInSystem_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
activeThreadsInSystem_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
maximumJobsInSystem_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
percentTemporary256MBSegmentsUsed_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
percentTemporary4GBSegmentsUsed_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
percentPermanent256MBSegmentsUsed_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
percentPermanent4GBSegmentsUsed_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
percentCurrentInteractivePerformance_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
percentUncappedCPUCapacityUsed_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
percentSharedProcessorPoolUsed_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
if (bytesReturned_ >= numRead+8)
{
mainStorageSizeLong_ = Conv.byteArrayToLong(data, numRead);
numRead += 8;
}
break;
case FORMAT_SSTS0300:
currentDateAndTime_ = Conv.byteArrayToLong(data, numRead);
numRead += 8;
systemName_ = Conv.ebcdicByteArrayToString(data, numRead, 8, c);
numRead += 8;
elapsedTime_ = Conv.ebcdicByteArrayToString(data, numRead, 6, c);
numRead += 6;
numRead += 2;
numberOfPools_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
int offsetToPoolInfo = Conv.byteArrayToInt(data, numRead); numRead += 4;
int lengthOfPoolInfoEntry = Conv.byteArrayToInt(data, numRead); numRead += 4;
int skip = numRead - offsetToPoolInfo;
numRead += skip;
if (poolListener_ != null)
{
//final byte[] b10 = new byte[10];
// final char[] c10 = new char[10];
while (numRead+lengthOfPoolInfoEntry <= maxLength)
{
readBasicPoolInfo(data, numRead, c);
numRead += 84;
skip = lengthOfPoolInfoEntry - 84;
numRead += skip;
}
}
break;
case FORMAT_SSTS0400:
currentDateAndTime_ = Conv.byteArrayToLong(data, numRead);
numRead += 8;
systemName_ = Conv.ebcdicByteArrayToString(data, numRead, 8, c);
numRead += 8;
elapsedTime_ = Conv.ebcdicByteArrayToString(data, numRead, 6, c);
numRead += 6;
numRead += 2;
mainStorageSize_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
minimumMachinePoolSize_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
minimumBasePoolSize_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
numberOfPools_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
offsetToPoolInfo = Conv.byteArrayToInt(data, numRead); numRead += 4;
lengthOfPoolInfoEntry = Conv.byteArrayToInt(data, numRead); numRead += 4;
mainStorageSizeLong_ = Conv.byteArrayToLong(data, numRead); numRead += 8;
skip = numRead - offsetToPoolInfo;
numRead += skip;
if (poolListener_ != null)
{
while (numRead+lengthOfPoolInfoEntry <= maxLength)
{
int systemPoolIdentifier = readBasicPoolInfo(data, numRead, c);
numRead += 84;
int definedSize = Conv.byteArrayToInt(data, numRead); numRead += 4;
int currentThreads = Conv.byteArrayToInt(data, numRead); numRead += 4;
int currentIneligibleThreads = Conv.byteArrayToInt(data, numRead); numRead += 4;
int tuningPriority = Conv.byteArrayToInt(data, numRead); numRead += 4;
int tuningMinimumPoolSizePercent = Conv.byteArrayToInt(data, numRead); numRead += 4;
int tuningMaximumPoolSizePercent = Conv.byteArrayToInt(data, numRead); numRead += 4;
int tuningMinimumFaults = Conv.byteArrayToInt(data, numRead); numRead += 4;
int tuningPerThreadFaults = Conv.byteArrayToInt(data, numRead); numRead += 4;
int tuningMaximumFaults = Conv.byteArrayToInt(data, numRead); numRead += 4;
String description = Conv.ebcdicByteArrayToString(data, numRead, 50, c);
int status = data[numRead] & 0x00FF;
numRead += 2;
int tuningMinimumActivityLevel = Conv.byteArrayToInt(data, numRead); numRead += 4;
int tuningMaximumActivityLevel = Conv.byteArrayToInt(data, numRead); numRead += 4;
poolListener_.extraPoolInfo(systemPoolIdentifier, definedSize, currentThreads, currentIneligibleThreads,
tuningPriority, tuningMinimumPoolSizePercent, tuningMaximumPoolSizePercent,
tuningMinimumFaults, tuningPerThreadFaults, tuningMaximumFaults, description,
status, tuningMinimumActivityLevel, tuningMaximumActivityLevel);
skip = lengthOfPoolInfoEntry - 180;
numRead += skip;
}
}
break;
case FORMAT_SSTS0500:
currentDateAndTime_ = Conv.byteArrayToLong(data, numRead);
numRead += 8;
systemName_ = Conv.ebcdicByteArrayToString(data, numRead, 8, c);
numRead += 8;
final int systemPoolIdentifier = Conv.byteArrayToInt(data, numRead); numRead += 4;
numberOfSubsystemsAvailable_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
numberOfSubsystemsReturned_ = Conv.byteArrayToInt(data, numRead); numRead += 4;
int offsetToSubsystemInfo = Conv.byteArrayToInt(data, numRead); numRead += 4;
int lengthOfSubsystemInfoEntry = Conv.byteArrayToInt(data, numRead); numRead += 4;
String poolName = Conv.ebcdicByteArrayToString(data, numRead, 10, c);
numRead += 10;
skip = numRead - offsetToSubsystemInfo;
numRead += skip;
if (poolListener_ != null)
{
for (int i=0; i
© 2015 - 2025 Weber Informatics LLC | Privacy Policy