竹伟饶 wrote:

> plist[i].getResultState().getState() is "active "  and 
> plist[i].getStatus().getState() is "completing".

> But,in fact,the state of 
> coordinate and participant have been "completed"(participant will send 
> "completed" message automatically).

The contents of the plist are *not* updated, but reflect the states at
the point in time the plist was returned. In this case, this is
immediately after the coordinator sent out the "Complete" messages to
the participants.
New messages from the participants do not change the contents of this
plist instance anymore.

But: you can at any time fetch an updated plist from the coordinator
with plist = coordIProxy.listParticipants();


> So I think the  ResultState() shoule 
> be  "completing"  and Status should be "completed".

The "ResultState" reflects what actually happened on a business level.
Please see the javadoc on AbstractCoordParticipant#getResultState and
the WS-BAI specification (linked at
http://ws.apache.org/kandula/1/publications.html ) what this means.

In short: this value is only important when the participant has already
reached the Ended state (and .getStatus().getState() returns "Ended").
Without ResultState you would not be able to know whether the
participant completed (= executed your work) or exited (= did nothing).


> what I mean is the true current state.

The true current state can only be fetched by obtaining a current
participant list through coordIProxy.listParticipants() and examining
the .getStatus().getState() return value of the desired participant.



I hope I could explain this?

-hannes

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to