Thanks for responding back.

Technically, it sounds as though you want to block process 2 until process
1 completes.
You're asking for mutual exclusion (or 'mutex').  I don't have a specific
suggestion in java,
but you might google 'mutex in java'.  Semaphores may offer one way of
putting together
a mutex function.

Bruce B.

On Wed, Sep 23, 2015 at 11:15 AM, Mallder, Valerie <
[email protected]> wrote:

> Hi Bruce,
>
> Thank you for your well thought out response. Now I feel bad because my
> question is not nearly as big as your answer! :( I should have been a
> little bit more clear with my question. I am looking for a way within OODT
> to prevent a second instance of a workflow from starting before the first
> instance of the same workflow has finished.  I have been looking at the
> examples for using WorkflowConditions to control the operation of a
> workflow, but there are no specific examples that do what I would like to
> do. So, if anyone has an example of doing this kind of thing, please let me
> know. Otherwise I will have to grow my own.  I am currently building a
> custom WorkflowCondition and from within that condition class I will try to
> see if I can query the workflow manager to get information about the last
> running workflow.
>
> Thanks,
>
> Val
>
>
>
>
> Valerie A. Mallder
> New Horizons Deputy Mission System Engineer
> Johns Hopkins University/Applied Physics Laboratory
>
> > -----Original Message-----
> > From: Bruce Barkstrom [mailto:[email protected]]
> > Sent: Tuesday, September 22, 2015 8:29 AM
> > To: [email protected]
> > Subject: Re: workflow control question
> >
> > The usual approach to this kind of problem is to use techniques from
> concurrent
> > programming that involve scheduling.  I'm most familiar with Ada, where
> there's a
> > long history of work in this area.
> > A classic text is
> >
> > Klein, M. H., et al., 1993: A Practitioner's Handbook for Real-Time
> > Analysis: Guide to Rate Monotonic Analysis for Real-Time Systems, Kluwer,
> > Boston, MA
> >
> > These scheduling problems are usually divided into soft problems, where
> the
> > consequences of missing the schedule are not catastrophic and hard
> problems,
> > where missing the schedule causes a system failure that is capable of
> hurting
> > people.  The analysis in this reference suggests that there are two
> kinds of
> > approaches to scheduling that can be guaranteed to work: Rate Monotonic
> with
> > Earliest Deadline First (EDF) which allows you to take up about 70% of
> the
> > production capacity and scheduling with homogeneous processes which
> allows
> > you to move to nearly 100% of capacity.
> > You can think of these as the difference between the traffic flow of an
> interstate
> > highway and a railroad.  In the former, each car has some average
> distance
> > between itself and the other vehicles, but the car can move around
> within that
> > average distance.
> > In the latter, the distance between cars is pretty close to fixed.
> >
> > Two more recent works are
> >
> > Burns, A. and Wellings, A., 2007: Concurrent and Real-Time Programming
> in Ada,
> > Cambridge Univ. Press, Cambridge, UK
> >
> > and
> >
> > McCormick, J. W., Singhoff, F., and Hugues, J., 2011: Building Parallel,
> > Embedded, and Real-Time Applications with Ada, Cambridge Univ. Press,
> > Cambridge, UK
> >
> > Both of these works cover various approaches to building a production
> scheduling
> > environment.  The concerns include deadlock, resource starvation, and
> system
> > component failures.  In cases where the system uses priorities to help
> derive the
> > schedule, you can also have priority inversion.
> >
> > The scheduling problem has a pretty large literature since it shows up
> not just in
> > the IT environment, but also in any organization that has to deal with
> scheduling
> > scarce resources.  You might also want to take a look at the work by
> Leslie
> > Lamport:
> >
> > <http://research.microsoft.com/en-us/um/people/lamport/pubs/pubs.html>
> >
> > Lamport has an analysis tool known as TLA+ that has been used for formal
> > analysis of scheduling requirements.  This tool is available online.
> > You can go to the TLA Home Page
> >
> > <http://research.microsoft.com/en-us/um/people/lamport/tla/tla.html>
> >
> > and download it from there.
> >
> > As you might expect, this kind of problem is not trivial - and even
> experienced
> > people make design mistakes.
> >
> > I don't have an easy solution to suggest to you.  To do this kind of
> work properly,
> > you'll need to conduct an analysis based on the environment you'll be
> working in.
> > Also, as Lamport explains, you have to worry about the basic scheduling
> issues -
> > and then you need to deal with scheduling in the presence of unreliable
> > components.  The difference between professional scheduling analysis and
> simple
> > analysis is in whether the consequences of failure can kill people or
> just simply
> > manually restarting the system and then figuring out what got corrupted.
> >
> > Bruce B
> >
> >
> > On Mon, Sep 21, 2015 at 5:27 PM, Mallder, Valerie <
> [email protected]>
> > wrote:
> >
> > > Hi All,
> > >
> > > What is the easiest way to prevent an improper start of workflow?
> > >
> > > I have a cron job that sends an event (i.e. once an hour) to my
> > > workflow manager telling workflow manager to start a workflow. But,
> > > the workflow could take a long time to run depending on how many files
> > > are available to be processed at that time. If the workflow takes
> > > longer than an hour to complete, the cron job is going to send another
> > > event to workflow manager telling it to start the workflow again. But
> > > I don't want it to start the workflow again if the previous workflow
> > > hasn't completed yet. It's perfectly OK for workflow manager to ignore
> > > that second request to start the workflow again and just wait for the
> > > next event to be sent by the cron job.
> > >
> > > I don't want to reinvent the wheel. Has anyone already done something
> > > this?  I've looked into the workflow preconditions, and I created a
> > > WorkflowStatusCondition class to use as a precondition. But, I can't
> > > tell if it is possible to check the status of the first workflow
> > > instance from within a WorkflowConditionInstance object in a second
> workflow
> > instance.
> > >
> > > Does anyone know how I would do that?
> > >
> > > Val
> > >
> > >
> > > Valerie A. Mallder
> > >
> > > New Horizons Deputy Mission System Engineer The Johns Hopkins
> > > University/Applied Physics Laboratory
> > > 11100 Johns Hopkins Rd (MS 23-282), Laurel, MD 20723
> > > 240-228-7846 (Office) 410-504-2233 (Blackberry)
> > >
> > >
>

Reply via email to