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 Detail

      • 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'"