Skip to main content

[jsr352-public] Re: any attribute can be substituted?

  • From: Christopher Vignola < >
  • To:
  • Subject: [jsr352-public] Re: any attribute can be substituted?
  • Date: Mon, 25 Mar 2013 17:01:12 -0400

Michael,

Maybe I'm wrong,  but I think you may be overstating the ramifications.   You cannot substibute the 'id' attribute,  so the inherent identify of the job and the steps cannot change.   A JobInstance represents the executions of an instance of a job with a particular 'id'.  A JobExecution is a particular attempt to execute that instance and has a set of StepExecutions that reflect which steps were executed/attempted.  I think that is essentially the conventional understanding of JobInstance, JobExecution, and StepExecution we've had all along.   I don't think substitution changes any of that.

It is true without constraint on which (non-id) attributes you can substitute you can alter the defined flow sequence,  but to what consequence?   One certainly cannot alter the past,  so steps that have previously run have run,  no matter what one attempts via substitution.   All that transition substitutions affects is the sequence in which the steps are re-visited during restart.  I contend that is harmless.   The stop element already has that effect from run to run.   If there are specific scenarios you can point out where this substitution is clearly problematic,  that would be helpful.    


If you really really feel strongly about this,  I'm not opposed to the spec stating that transition elements (next, to attributes for example) cannot be substituted.  In the end, I just didn't feel it was necessary.  If we impose constraints, the RI would have to catch up,  but that's a separate issue.

Chris Vignola, STSM, IBM
JSR 352 Spec Lead
WebSphere Systems Management Architect
phone: 1+(720) 396-7501
email:

http://chris.vignola.googlepages.com


Inactive hide details for Michael Minella ---03/25/2013 04:41:14 PM---Scott, This is a very disturbing to hear.  By taking thisMichael Minella ---03/25/2013 04:41:14 PM---Scott, This is a very disturbing to hear.  By taking this approach (unless I'm

From: Michael Minella < >
To: " " < >
Date: 03/25/2013 04:41 PM
Subject: [jsr352-public] Re: any attribute can be substituted?





Scott,

This is a very disturbing to hear.  By taking this approach (unless I'm missing something) you could have a job that is defined purely by placeholders which means that the state saved between JobExecution and JobExecution becomes meaningless.  How can you say that a JobInstance that is started with one set of batch artifacts is the same as another one if I can change everything about it?  In this case, what is a JobInstance?

I feel that the idea of allowing any value to be substituted goes way too far.

Thanks,
Michael Minella

" target="_blank">
http://www.michaelminella.com


On Mon, Mar 25, 2013 at 3:29 PM, Scott Kurz < " target="_blank"> > wrote:
    Michael,

    No, we have not constrained the @next or @on values and disallowed substitutions.  


    Let me explain a bit.... sorry again on behalf of Chris and myself that we could not have more of this conversation in public, in bugzilla and the ML, etc.    
    We did run out of time to submit the final approval ballot, so made an effort to resolve open questions like this based on the RI/TCK experience without going through the bugzilla comments.


    The decision I'm describing ended up in PFD v1.7, Sec. 8.8.1.8 and 10.8.


    Anyway the motivation for the idea of disallowing "pathological substitutions"  was the case where providing different values on restart that radically altered the transition sequence on restart compared to the original execution.


    However, like you pointed out, to disallow on restart you'd have to disallow altogether (on start too).


    This seemed artificially constraining.. what if I want my "good" exit code (i.e. @on value) to come from a job-level properties or job parameter?  


    We were left with the question... does allowing substitutions on restart leave us with a bad practice on the part of the developer, maybe, but still with a well-defined behavior to spec and implement?  Or does it introduce such pathology that it really needs to be thrown out and disallowed?


    It seemed in could indeed be well-defined, and we ended up with the behavior in Sec. 10.8, shown in some of the restart tests (e.g.. BatchletRestartStateMachine) in the TCK update we're dropping today based on the Maven 1.0-b21 version).  Please take a look and see...


    The only thing we "threw out" was overriding the number of partitions.  We declared this to be persisted, and so invariant... though here the partition mapper API provides a way to programmatically throw out the earlier execution's partitions and "start over".



    ------------------------------------------------------
    Scott Kurz
    WebSphere Batch / Compute Grid Development
    T/L 295-5649;
    External Phone
    845-435-5649
    " target="_blank">
    --------------------------------------------------------


    Inactive hide details for Michael Minella ---03/25/2013 04:00:14 PM---I was under the understanding that there were some limitsMichael Minella ---03/25/2013 04:00:14 PM---I was under the understanding that there were some limits to what could be substituted.  For example

    From:
    Michael Minella < " target="_blank"> >
    To:
    " " target="_blank"> " < " target="_blank"> >,
    Date:
    03/25/2013 04:00 PM
    Subject:
    [jsr352-public] Re: any attribute can be substituted?





    I was under the understanding that there were some limits to what could be substituted.  For example, anything that controls the flow would not be available for substation.  Is that not the case?

    Thanks,
    Michael Minella

    " target="_blank">
    http://www.michaelminella.com


    On Mon, Mar 25, 2013 at 2:52 PM, Scott Kurz <
    " target="_blank"> > wrote:
      Cheng,

      We are absolved of having to worry about this level of complexity by the recent switch to xs:ID as the type.

      Since I believe all the substitution syntax involves one or more characters not allowed in xs:ID (was it '#'  ?),  it effectively cannot be left for substitution.

      Perhaps it would be better to more clearly and simply state this isn't allowed though.

      ------------------------------------------------------
      Scott Kurz
      WebSphere Batch / Compute Grid Development
      T/L 295-5649;
      External Phone
      845-435-5649
      " target="_blank">
      --------------------------------------------------------


      Inactive hide details for Cheng Fang ---03/25/2013 03:40:30 PM---The spec says " Job XML supports substitution as part of any aCheng Fang ---03/25/2013 03:40:30 PM---The spec says " Job XML supports substitution as part of any attribute value."

      From:
      Cheng Fang < " target="_blank"> >
      To:
      " target="_blank"> ,
      Date:
      03/25/2013 03:40 PM
      Subject:
      [jsr352-public] any attribute can be substituted?





      The spec says "

      Job XML supports substitution as part of any attribute value." 

      So it means job id, step id, property name, etc can all be substituted, for example, 

      <job id="#{systemProperties['job.id']}"... 

      <property name="#{systemProperties['prop.name']}" value="foo"/> 

      <step id="#{systemProperties['step.id']}" 

      <listener ref="#{systemProperties['listener.ref']}"/> 

      Are these all required to be supported?  If so, do we plan to cover all such substitutions in TCK? 

      Thanks,
      Cheng
       



GIF image



[jsr352-public] any attribute can be substituted?

Cheng Fang 03/25/2013

[jsr352-public] Re: any attribute can be substituted?

Scott Kurz 03/25/2013

[jsr352-public] Re: any attribute can be substituted?

Michael Minella 03/25/2013

[jsr352-public] Re: any attribute can be substituted?

Scott Kurz 03/25/2013

[jsr352-public] Re: any attribute can be substituted?

Michael Minella 03/25/2013

[jsr352-public] Re: any attribute can be substituted?

Christopher Vignola 03/25/2013

[jsr352-public] Re: any attribute can be substituted?

Michael Minella 03/27/2013

[jsr352-public] Re: any attribute can be substituted?

Christopher Vignola 03/28/2013

[jsr352-public] Re: any attribute can be substituted?

Christopher Vignola 03/25/2013

[jsr352-public] Re: any attribute can be substituted?

Christopher Vignola 03/25/2013
 
 
Close
loading
Please Confirm
Close