Product Support > Chauffeur-WDK

Running bash scripts as transaction behaviour

<< < (2/4) > >>

TheKahn:
Hi, after some experimentation I progressed a litte bit further.

I found out that I need to add this line "<interval-count>[ANY POSITIVE INT]</interval-count>" in the <interval-series> configuration to be able to run the transaction.

Also I found out that in my worklet definition I had to chose a different implementation for a scenario factory. I chose the RandomBatchScenario scenario-factory.

Unfortunatley I enouctered another error. I made sure that are created by the userFactory. Unfortunately, the generation of Input and Transaction does not start.

This is the error I encountered:



--- Code: --- Exception during execution
org.spec.chauffeur.common.ProtocolException: Expected command 'startPremeasurement','runPremeasurement', 'startRecording','runMeasurement', 'endRecording','measurementComplete', 'endInterval', 'initializationComplete', 'premeasurementComplete', 'runPostmeasurement', 'postmeasurementComplete', or 'intervalResults' but got 'endSequence'
        at org.spec.chauffeur.host.HostInterval.processCommands(HostInterval.java:304)
        at org.spec.chauffeur.host.HostInterval.runInterval(HostInterval.java:355)
        at org.spec.chauffeur.host.HostSequence.processCommands(HostSequence.java:134)
        at org.spec.chauffeur.host.HostSequence.runSequence(HostSequence.java:195)
        at org.spec.chauffeur.host.HostPhase.processPhaseCommands(HostPhase.java:151)
        at org.spec.chauffeur.host.HostPhase.runPhase(HostPhase.java:245)
        at org.spec.chauffeur.host.HostWorklet.processCommands(HostWorklet.java:140)
        at org.spec.chauffeur.host.HostWorklet.runWorklet(HostWorklet.java:204)
        at org.spec.chauffeur.host.HostWorkload.runWorklet(HostWorkload.java:189)
        at org.spec.chauffeur.host.HostWorkload.processCommands(HostWorkload.java:120)
        at org.spec.chauffeur.host.HostWorkload.runWorkload(HostWorkload.java:173)
        at org.spec.chauffeur.host.HostSuite.runWorkload(HostSuite.java:187)
        at org.spec.chauffeur.host.HostSuite.processCommands(HostSuite.java:115)
        at org.spec.chauffeur.host.HostSuite.runSuite(HostSuite.java:171)
        at org.spec.chauffeur.host.Host.main(Host.java:162)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.spec.chauffeur.Launcher.main(Launcher.java:68)

--- End code ---

Here are my questions:

1. Am I missing some configuration lines for the  FixedIterationsDirectorSequence, if yes which lines are missing?
2. I noticed that neither the transaction in the tutorial or the the transaction in the ChauffeurTest Suite directly call the process method. Am I required to explicitly call the prcoess method in order to get the transaction to run in the FixedIterationsDirectorSequence or not?
3. Am I missing something else I am not aware of?

I have attached my logs and configuration files.

Thank you very much in advance.

Cheers

JeremyArnold:
Glad to see you are making progress.

I believe you've hit a bug in the WDK with the FixedIterationsDirectorSequence.  The simplest workaround may be to switch to the MinIterationsDirectorSequence.  I believe that for what you are running, it will behave the same way as the FixedIterationsDirectorSequence (except that it should work).

The actual fix (not yet tested) would be to edit org/spec/chauffeur/director/FixedIterationsDirectorInterval.  In the runInterval method, find the line:
    Map<String, IntervalResults> results = hosts.readIntervalResults(responses);
Just before that line, add:
    responses = hosts.sendCommand(loader, "intervalResults");

We'll make sure that this fix is included in the next release of the WDK.


You should not need to call the process method explicitly -- Chauffeur will call it for you.

TheKahn:
Hi,

your fix worked. I have found another error but this is a configuration error. At least I persume so.

The FixedIterationDirectorInterval has three variables:


* premeasurementIterations
* measurementIterations
* postmeasurementIterations

However these are not assigned. I have tried the following configurations but none of them worked and some of them throw build errors:

This one could not be parsed!


--- Code: ---<interval-iterations>
   <premeasurementIterations>1</premeasurementIterations>
   <measurementIterations>1</measurementIterations>
   <postmeasurementIterations>1</postmeasurementIterations>
</interval-iterations>
--- End code ---

This configuration could be parsed but the variables were still 0


--- Code: ---<interval-iterations premeasurementIterations="1" measurementIterations="1" postmeasurementIterations="1">3</interval-iterations>
--- End code ---

Same with this one.



--- Code: ---<interval-iterations pre="1" measurement="1" post="1">3</interval-iterations>
--- End code ---
      


What should the correct configuration be?


Thank you very much in advance.

Cheers   

TheKahn:
Hi there,

it works now after  I used the following configuration:


--- Code: ---<interval-iterations>
        <premeasurement>1</premeasurement>
        <measurement>1</measurement>
        <postmeasurement>1</postmeasurement>
</interval-iterations>
--- End code ---

I orientated myself first on the variable names of the IntervallIterations class but this did not work (could it be another bug?).

Interssting thing: You do not have to use different names for the configuration of the IntervallLength class.

Cheers :)

TheKahn:
Hi there,

a late Merry Christmas at first :)

After experimenting a little bit I came into the need of a graduate measurement. As stated it is not possible with the fixedIterationsSequence but is there a suite that could run a SERIES of fixedIterationsSequences?

1. If there is one could you please tell me which one?
2. If there is no one could you please tell me which class is close to the described behaviour (below)?


Behaviour:

1. Running one fixedIterationsSequence completely
2. After finishing the running of the sequence in one, a different sequence will be started and processed.
3. Repeat step 1-2 until every defined sequence in the configuration file has been processed.


Thank you very much in advance

Cheers

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version