Class SaveHandlers
This class is responsible for converting LINE network models into JMT XML format for discrete-event simulation. It provides comprehensive support for translating various network components including nodes, routing strategies, service disciplines, and performance metrics.
The class supports both JSIMg (JMT Simulation Graph) and JSIM (JMT Simulation) XML formats, with JSIMg being the default format that includes additional simulation parameters such as confidence intervals, maximum relative error, and stopping criteria.
Key Features:
- Conversion of LINE Network models to JMT XML format
- Support for complex routing strategies and class switching
- Handling of various node types (Sources, Queues, Delays, Sinks, etc.)
- Translation of service disciplines and scheduling strategies
- Cache modeling with different replacement strategies
- Fork-join synchronization patterns
- Performance metric collection and measurement configuration
Supported Node Types:
- Sources with various arrival processes
- Queues with different scheduling disciplines
- Delay stations for pure delays
- Sinks for job termination
- Routers for probabilistic routing
- Forks and Joins for synchronization
- Caches with replacement strategies
- Transitions for Petri net models
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionSaveHandlers(Network simModel) Constructs a SaveHandlers instance with default simulation parameters.SaveHandlers(Network simModel, double simMaxRelErr, double simConfInt, SolverAvgHandles avgHandles, long seed, String simFileName, long maxEvents, long maxSamples, double maxSimulatedTime) Constructs a SaveHandlers instance with full simulation parameter control. -
Method Summary
Modifier and TypeMethodDescriptionboolean[]Returns a boolean array indicating which classes should be exported to JMT.booleanisHeterogeneousStation(int stationIdx) Checks if a station has heterogeneous server configuration.saveArrivalStrategy(DocumentSectionPair documentSectionPair, int ind) saveBufferCapacity(DocumentSectionPair documentSectionPair, int ind) Saves buffer capacity for JMT XML.saveCache(ElementDocumentPair elementDocumentPair) saveCacheStrategy(DocumentSectionPair documentSectionPair, int ind) saveClasses(ElementDocumentPair elementDocumentPair) saveClassSwitchStrategy(DocumentSectionPair documentSectionPair, int ind) saveDelayOffStrategy(DocumentSectionPair documentSectionPair, int ind) Saves delay-off and setup time strategies for Queue nodes.saveDropRule(DocumentSectionPair documentSectionPair, int ind) saveDropStrategy(DocumentSectionPair documentSectionPair, int ind) saveEnablingConditions(DocumentSectionPair documentSectionPair, int ind) saveFCRMetrics(ElementDocumentPair elementDocumentPair) Saves performance metrics for Finite Capacity Regions (blocking regions).saveFiringOutcomes(DocumentSectionPair documentSectionPair, int ind) saveFiringPriorities(DocumentSectionPair documentSectionPair, int ind) saveFiringWeights(DocumentSectionPair documentSectionPair, int ind) saveForkStrategy(DocumentSectionPair documentSectionPair, int ind) saveGetStrategy(DocumentSectionPair documentSectionPair) saveGetStrategy(DocumentSectionPair documentSectionPair, int ind) saveHeterogeneousServerConfig(DocumentSectionPair documentSectionPair, int ind) Saves all heterogeneous server configuration to JMT XML.saveHeteroSchedPolicy(DocumentSectionPair documentSectionPair, int ind) Saves heterogeneous scheduling policy to JMT XML.saveImpatience(DocumentSectionPair documentSectionPair, int ind) saveInhibitingConditions(DocumentSectionPair documentSectionPair, int ind) saveJoinStrategy(DocumentSectionPair documentSectionPair, int ind) saveLinks(ElementDocumentPair elementDocumentPair) saveLogTunnel(DocumentSectionPair documentSectionPair, int ind) saveMetric(ElementDocumentPair elementDocumentPair, AvgHandle handles) saveMetrics(ElementDocumentPair elementDocumentPair) saveModeNames(DocumentSectionPair documentSectionPair, int ind) saveNumberOfServers(DocumentSectionPair documentSectionPair, int ind) saveNumbersOfServers(DocumentSectionPair documentSectionPair, int ind) savePlaceCapacities(DocumentSectionPair documentSectionPair, int ind) savePreemptiveStrategy(DocumentSectionPair documentSectionPair, int ind) savePreemptiveWeights(DocumentSectionPair documentSectionPair, int ind) savePutStrategies(DocumentSectionPair documentSectionPair, int ind) savePutStrategy(DocumentSectionPair documentSectionPair, int ind) saveRegions(ElementDocumentPair elementDocumentPair) saveRetrialDistributions(DocumentSectionPair documentSectionPair, int ind) saveRoutingStrategy(DocumentSectionPair documentSectionPair, int ind) saveServerCompatibilities(DocumentSectionPair documentSectionPair, int ind) Saves server-class compatibility matrix to JMT XML.saveServersPerType(DocumentSectionPair documentSectionPair, int ind) Saves the number of servers per server type to JMT XML.saveServerTypeNames(DocumentSectionPair documentSectionPair, int ind) Saves heterogeneous server type names to JMT XML.saveServerVisits(DocumentSectionPair documentSectionPair) saveServiceStrategy(DocumentSectionPair documentSectionPair, int ind) saveSwitchoverStrategy(DocumentSectionPair documentSectionPair, int ind) saveTimingStrategies(DocumentSectionPair documentSectionPair, int ind) saveTotalCapacity(DocumentSectionPair documentSectionPair, int ind) saveXMLHeader(String logPath) setPollingServerClassName(DocumentSectionPair documentSectionPair, int ind) voidUpdates the internal network structure used for model conversion.
-
Constructor Details
-
SaveHandlers
public SaveHandlers(Network simModel, double simMaxRelErr, double simConfInt, SolverAvgHandles avgHandles, long seed, String simFileName, long maxEvents, long maxSamples, double maxSimulatedTime) Constructs a SaveHandlers instance with full simulation parameter control.This constructor allows complete customization of all simulation parameters for JMT model generation. It is typically used when specific simulation configuration is required beyond the default settings.
- Parameters:
simModel- The LINE network model to be converted to JMT formatsimMaxRelErr- Maximum relative error for simulation stopping criterion (e.g., 0.03 for 3%)simConfInt- Confidence interval for simulation results (e.g., 0.99 for 99%)avgHandles- Collection of performance metric handlers to be included in the simulationseed- Random number generator seed for reproducible simulation resultssimFileName- Output filename for the simulation model (empty string for default naming)maxEvents- Maximum number of events to simulate (0 for unlimited)maxSamples- Maximum number of samples to collect for each metricmaxSimulatedTime- Maximum simulation time (use GlobalConstants.Inf for unlimited)
-
SaveHandlers
Constructs a SaveHandlers instance with default simulation parameters.This convenience constructor uses SolverJMT default values for all simulation parameters, making it suitable for most standard simulation scenarios. The default configuration provides reasonable accuracy and performance for typical queueing network analysis.
Default Parameters:
- Maximum relative error: 3%
- Confidence interval: 99%
- Random seed: 23000
- Maximum samples: 10,000
- Maximum events: unlimited
- Maximum simulation time: unlimited
- Parameters:
simModel- The LINE network model to be converted to JMT format
-
-
Method Details
-
updateNetworkStruct
Updates the internal network structure used for model conversion.This method allows updating the network structure after the SaveHandlers instance has been created. This is useful when the network model has been modified or when working with multiple network configurations.
- Parameters:
sn- The new network structure to use for subsequent conversions
-
getExportableClasses
public boolean[] getExportableClasses()Returns a boolean array indicating which classes should be exported to JMT. Classes with 0 customers are normally skipped unless they are used as cache hit/miss classes (since jobs will switch into them) or can receive jobs via class-switching from another class in the same chain.- Returns:
- boolean array of length nclasses, true for classes to export
-
saveArrivalStrategy
-
saveBufferCapacity
Saves buffer capacity for JMT XML. LINE uses Kendall notation where cap = K = total system capacity (queue + in-service). JMT's "size" parameter also represents total capacity K. -
saveCache
-
saveCacheStrategy
-
saveClassSwitchStrategy
public DocumentSectionPair saveClassSwitchStrategy(DocumentSectionPair documentSectionPair, int ind) -
saveClasses
-
saveDropRule
-
saveDropStrategy
-
saveEnablingConditions
-
saveFiringOutcomes
-
saveFiringPriorities
-
saveFiringWeights
-
saveForkStrategy
-
saveGetStrategy
-
saveGetStrategy
-
setPollingServerClassName
public DocumentSectionPair setPollingServerClassName(DocumentSectionPair documentSectionPair, int ind) -
saveSwitchoverStrategy
-
saveDelayOffStrategy
Saves delay-off and setup time strategies for Queue nodes. This exports the switchoverStrategies, delayOffTime and setUpTime parameters to JMT XML format when the queue has delay-off times enabled.JMT's Server constructor expects parameters in order: switchoverStrategies, delayOffStrategies, setUpStrategies
- Parameters:
documentSectionPair- the document/section pair to append toind- the node index- Returns:
- updated document/section pair
-
saveInhibitingConditions
public DocumentSectionPair saveInhibitingConditions(DocumentSectionPair documentSectionPair, int ind) -
saveJoinStrategy
-
saveLinks
-
saveLogTunnel
-
saveMetric
-
saveMetrics
-
saveFCRMetrics
Saves performance metrics for Finite Capacity Regions (blocking regions). Requests QLen, RespT, ResidT, and Tput metrics for each FCR. -
saveModeNames
-
saveNumberOfServers
-
isHeterogeneousStation
public boolean isHeterogeneousStation(int stationIdx) Checks if a station has heterogeneous server configuration.- Parameters:
stationIdx- the station index- Returns:
- true if the station has heterogeneous servers
-
saveServerTypeNames
Saves heterogeneous server type names to JMT XML. Generates the serverNames parameter array.- Parameters:
documentSectionPair- the document/section pairind- the node index- Returns:
- updated document/section pair
-
saveServersPerType
Saves the number of servers per server type to JMT XML. Generates the serversPerServerType parameter array.- Parameters:
documentSectionPair- the document/section pairind- the node index- Returns:
- updated document/section pair
-
saveServerCompatibilities
public DocumentSectionPair saveServerCompatibilities(DocumentSectionPair documentSectionPair, int ind) Saves server-class compatibility matrix to JMT XML. Generates the serverCompatibilities parameter array.- Parameters:
documentSectionPair- the document/section pairind- the node index- Returns:
- updated document/section pair
-
saveHeteroSchedPolicy
Saves heterogeneous scheduling policy to JMT XML. Generates the schedulingPolicy parameter.- Parameters:
documentSectionPair- the document/section pairind- the node index- Returns:
- updated document/section pair
-
saveHeterogeneousServerConfig
public DocumentSectionPair saveHeterogeneousServerConfig(DocumentSectionPair documentSectionPair, int ind) Saves all heterogeneous server configuration to JMT XML. This is a convenience method that calls all hetero save methods.- Parameters:
documentSectionPair- the document/section pairind- the node index- Returns:
- updated document/section pair
-
saveNumbersOfServers
-
savePlaceCapacities
-
savePreemptiveStrategy
-
savePreemptiveWeights
-
savePutStrategies
-
savePutStrategy
-
saveImpatience
-
saveRetrialDistributions
public DocumentSectionPair saveRetrialDistributions(DocumentSectionPair documentSectionPair, int ind) -
saveRegions
-
saveRoutingStrategy
-
saveServerVisits
-
saveServiceStrategy
-
saveTimingStrategies
-
saveTotalCapacity
-
saveXMLHeader
- Throws:
ParserConfigurationException
-