On Mon, Oct 13, 2008 at 10:55 AM, Chris Taylor <[EMAIL PROTECTED]> wrote:
> Thanks, Matthieu. Some background: > > we're running ODE 1.2 on Websphere 6.1, with Oracle 10g as the process > store. > > This scenario consistently fails in the manner I described, but it seems > only for certain processes. > > So, for example, if i have the following: > > ProcessA-20 > ProcessB-21 > ProcessC-22 > > deployed in my environment, the scenario would be that something causes > ProcessA-20 to hang - at which point it goes into recovery mode and spawns > an ode job to retry. From this point on, new requests to (not just) > ProcessA get routed to the now-retired ProcessA-19, but also new requests to > ProcessB get routed to (now-retired) ProcessB-20! The weird thing is, > ProcessC-22 is apparently unaffected. It still gets calls legitimately > routed to its latest versioned deployment, ProcessC-22. > > I do not know if this happens under other scenarios unrelated to recovery. > I think I just do not have enough data points yet to say. > > If you have a reproducible test scenario, it would be great if you could try it with the current stable branch. I've fixed something related to what you're describing a couple of months ago. If doing a build is an issue for you, I can upload the WAR to a public place. Thanks, Matthieu > > > > ----- Original Message ---- > From: Matthieu Riou <[EMAIL PROTECTED]> > To: [email protected] > Sent: Monday, October 13, 2008 12:33:18 PM > Subject: Re: Client calling retired process? > > On Mon, Oct 13, 2008 at 8:17 AM, Chris Taylor <[EMAIL PROTECTED]> wrote: > > > Thanks, Alexis, but i'm no closer to fully understanding why this occurs. > > It happens periodically now almost everyday with different deployed > > processes. Although I don't understand it, I have done some research > into > > the behaviour. Here's a scenario: > > > > we'll deploy ProcessA-19, then retire it with ProcessA-20 deployment. At > > some point it, or another, process will fail and attempt to go into > recovery > > mode (excuse me if I state this incorrectly), at this point ODE will > create > > a scheduled job in an attempt to retry the service later. > > > > Here's where it gets screwy. From then on, all new calls to ProcessA > will > > not route to ProcessA-20, but ode will attempt to route them to > ProcessA-19, > > which is of course retired. Ode does not recover from this. It seems the > > only way to compensate is to redeploy ProcessA as ProcessA-21. New > requests > > will then route correctly. > > > > Any idea here? > > > > I'll have to ask a few more questions to narrow it down and make sure I > understand correctly: > > * Does the exact same scenario sometimes works and sometimes doesn't? > * Is it always happening in relation with recovery and retry or did you > see it happen in other situations as well? > * Which version of ODE are you using? Have you tried with a recent 1.X > branch? > > Thanks, > Matthieu > > > > > > > > > > ----- Original Message ---- > > From: Alexis Midon <[EMAIL PROTECTED]> > > To: [email protected] > > Sent: Wednesday, October 8, 2008 7:26:54 PM > > Subject: Re: Client calling retired process? > > > > Hi Chris, > > > > No new executions can be started on a retired process, but running > > instances > > can still finish their job. [1] > > > > I'm not really familiar with this part of the code, but after looking at > > it, > > it seems to me that the deployment of a new version is not atomic. > Meaning > > that a process could be flagged as retired while the creation of a new > > instance is in progress, hence you're exception. > > > > does it make sense regarding your scenario? is it possible that the > process > > gets retired while messages are coming in? > > > > [1] further details here: > > http://ode.apache.org/user-guide.html#UserGuide-Versioning > > > > > > > > On Wed, Oct 8, 2008 at 11:37 AM, Chris Taylor <[EMAIL PROTECTED]> > wrote: > > > > > Okay, I've a deployment (called GetCodes) bundle that includes 5 > > > processes. 4 of the processes make calls to the fifth (it's an > > abstraction > > > layer of process business logic). When I deploy this "GetCodes" bundle > > > using the DeploymentService utility, I can see an incremented > deployment > > > (say, GetCodes-40) alongside previous iterations. > > > > > > Occasionally, I'll have a client making soap calls to one of the > > processes > > > under this logical bundle that will fail with the following error: > > > > > > InvalidProcessException: Process is retired. > > > > > > In the logs, it's clear that ODE is directing this client call to > > > GetCodes-39 - though the client isn't explicitly attempting to call a > > > specific version (is that even possible?). Any clue why some clients > > > periodically - erroneously - are directed by ODE to a retired process > > > version? > > > > > > > > > > > > > > > > > > > > > > > >
