Interface AcquireAction
-
- All Superinterfaces:
AbstractAction
,AbstractInternalControlFlowAction
,org.eclipse.emf.cdo.CDOObject
,org.eclipse.emf.cdo.common.id.CDOWithID
,Entity
,EObject
,de.uka.ipd.sdq.identifier.Identifier
,NamedElement
,Notifier
- All Known Implementing Classes:
AcquireActionImpl
public interface AcquireAction extends AbstractInternalControlFlowAction
A representation of the model object 'Acquire Action'.In an RDSEFF, component developers can specify an AcquireAction, which references a passive resource types. Once analysis tools execute this action, they decrease the amount of items available from the referenced passive resource type by one, if at least one item is available. If none item is available, because other, concurrently executed requests have acquired all of them, analysis tools enqueue the current request (first-come-first-serve scheduling policy) and block it's further execution.
Acquisition and release of passive resources happen instantaneously and do not consume any time except for waiting delays before actual acquisition. Resource locking may introduce deadlocks when simulating the model, however, for performance analysis with the PCM it is assumed that no deadlocks occur. Otherwise, the model first needs to be fixed accordingly before carrying out the performance prediction.
A reliability-related extension is the timeout mechanism that may be associated to an AcquireAction through the "timeout" and "timeoutValue" attributes. See the documentation of the "timeout" attribute for further information.
The following features are supported:
- See Also:
SeffPackage.getAcquireAction()
- Generated class or method.
- EMF model class or method.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description PassiveResource
getPassiveresource_AcquireAction()
Returns the value of the 'Passiveresource Acquire Action' reference.double
getTimeoutValue()
Returns the value of the 'Timeout Value' attribute.boolean
isTimeout()
Returns the value of the 'Timeout' attribute.void
setPassiveresource_AcquireAction(PassiveResource value)
Sets the value of the 'Passiveresource Acquire Action
' reference.void
setTimeout(boolean value)
Sets the value of the 'Timeout
' attribute.void
setTimeoutValue(double value)
Sets the value of the 'Timeout Value
' attribute.boolean
TimeoutValueOfAcquireActionMustNotBeNegative(DiagnosticChain diagnostics, Map<Object,Object> context)
-
Methods inherited from interface org.palladiosimulator.pcm.seff.AbstractAction
getPredecessor_AbstractAction, getResourceDemandingBehaviour_AbstractAction, getSuccessor_AbstractAction, setPredecessor_AbstractAction, setResourceDemandingBehaviour_AbstractAction, setSuccessor_AbstractAction
-
Methods inherited from interface org.palladiosimulator.pcm.seff.AbstractInternalControlFlowAction
getInfrastructureCall__Action, getResourceCall__Action, getResourceDemand_Action
-
Methods inherited from interface org.eclipse.emf.cdo.CDOObject
cdoConflict, cdoDirectResource, cdoHistory, cdoID, cdoInvalid, cdoLockState, cdoPermission, cdoPrefetch, cdoReadLock, cdoReload, cdoResource, cdoRevision, cdoRevision, cdoState, cdoView, cdoWriteLock, cdoWriteOption
-
Methods inherited from interface org.eclipse.emf.ecore.EObject
eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset
-
Methods inherited from interface org.palladiosimulator.pcm.core.entity.NamedElement
getEntityName, setEntityName
-
Methods inherited from interface org.eclipse.emf.common.notify.Notifier
eAdapters, eDeliver, eNotify, eSetDeliver
-
-
-
-
Field Detail
-
copyright
static final String copyright
- See Also:
- Constant Field Values
- Generated class or method.
-
-
Method Detail
-
getPassiveresource_AcquireAction
PassiveResource getPassiveresource_AcquireAction()
Returns the value of the 'Passiveresource Acquire Action' reference.If the meaning of the 'Passiveresource Acquire Action' reference isn't clear, there really should be more of a description here...
- Returns:
- the value of the 'Passiveresource Acquire Action' reference.
- See Also:
setPassiveresource_AcquireAction(PassiveResource)
,SeffPackage.getAcquireAction_Passiveresource_AcquireAction()
- Generated class or method.
- EMF model class or method.
- required="true"
-
setPassiveresource_AcquireAction
void setPassiveresource_AcquireAction(PassiveResource value)
Sets the value of the 'Passiveresource Acquire Action
' reference.- Parameters:
value
- the new value of the 'Passiveresource Acquire Action' reference.- See Also:
getPassiveresource_AcquireAction()
- Generated class or method.
-
isTimeout
boolean isTimeout()
Returns the value of the 'Timeout' attribute.Indicates if the AcquireAction has a timeout. If yes, a simulation through SimuCom with the "simulate failures" option switched on will consider the timeout as follows: Any acquiring thread waits no longer than the duration specified in "timeoutValue". If the maximum waiting time is reached,& nbsp;the thread is removed from the waiting queue and cancelled by a timeout failure.
The reliability Markov analysis does not consider AcquireAction timeouts.
As any failure-on-demand occurrence, timeout failures can be handled by "RecoveryBlockActions" at any higher level in the caller hierarchy. To achieve this, the modeller must specify a "ResourceTimeoutFailureType" pointing to the "PassiveResource" that the AcquireAction is related to. The specified "ResourceTimeoutFailureType" can then be added to the list of handled failure types of any "RecoveryBlockAlternativeBehaviour".
Please notice the following limitation of the current implementation of timeout handling: Timeouts are only considered by SimuCom if the executing software component is allocated to a resource container with an operating system set to "ABSTRACT" (i.e. no specific OS schedulers are supported). The timeout handling implementation can be found in de.uka.ipd.sdq.simucomframework.resources.SimSimpleFairPassiveResource.
- Returns:
- the value of the 'Timeout' attribute.
- See Also:
setTimeout(boolean)
,SeffPackage.getAcquireAction_Timeout()
- Generated class or method.
- EMF model class or method.
- required="true"
-
setTimeout
void setTimeout(boolean value)
Sets the value of the 'Timeout
' attribute.- Parameters:
value
- the new value of the 'Timeout' attribute.- See Also:
isTimeout()
- Generated class or method.
-
getTimeoutValue
double getTimeoutValue()
Returns the value of the 'Timeout Value' attribute.Specifies a timeout value, in case the AcquireAction has a timeout (see the documentation of the "timeout" attribute for further information).
- Returns:
- the value of the 'Timeout Value' attribute.
- See Also:
setTimeoutValue(double)
,SeffPackage.getAcquireAction_TimeoutValue()
- Generated class or method.
- EMF model class or method.
- required="true"
-
setTimeoutValue
void setTimeoutValue(double value)
Sets the value of the 'Timeout Value
' attribute.- Parameters:
value
- the new value of the 'Timeout Value' attribute.- See Also:
getTimeoutValue()
- Generated class or method.
-
TimeoutValueOfAcquireActionMustNotBeNegative
boolean TimeoutValueOfAcquireActionMustNotBeNegative(DiagnosticChain diagnostics, Map<Object,Object> context)
- Parameters:
diagnostics
- The chain of diagnostics to which problems are to be appended.context
- The cache of context-specific information.- Generated class or method.
- EMF model class or method.
- annotation= "http://www.eclipse.org/uml2/1.1.0/GenModel body='self.timeoutValue.oclAsType(Real) >= 0.0'"
-
-