You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Rafal Rusin (JIRA)" <ji...@apache.org> on 2009/02/24 21:47:02 UTC

[jira] Updated: (ODE-483) Add serialize/deserialize process instances in Management API

     [ https://issues.apache.org/jira/browse/ODE-483?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rafal Rusin updated ODE-483:
----------------------------

    Attachment: replayer.diff

I case if somebody needs this, I'm attaching a patch which enables process instance migration by taking it's communications and replaying in a new instance. Current limitation is that this runs only in JBI, on hibernate DAO. But it's quite easy to add it to axis and extend to jpa dao. 

I extended instance management api by following functions:
-getInstanceCommunication
-migrate (given communication and correlation ids, which are used to distinguish migrated instances from working ones)
-migrationStatus (to check whether migration has comleted; this means that every incoming exchange was sent and every outgoing exchnage from INVOKEs was mocked up)

You can apply it to ode1x, revision 738300 to try out, so there won't be any conflicts. 

And a couple of notes:
1. I found it quite impossible to do instance migration from older to newer version of process using state serialization/deserialization. So I decided to do communications replaying. 
2. I'm open to any suggestions and feedback. 
3. In case if you need this too or if you are interested in adding it to ODE, I can extend/improve/document more/provide some samples to this code. 


> Add serialize/deserialize process instances in Management API
> -------------------------------------------------------------
>
>                 Key: ODE-483
>                 URL: https://issues.apache.org/jira/browse/ODE-483
>             Project: ODE
>          Issue Type: New Feature
>    Affects Versions: Wishlist
>            Reporter: Rafal Rusin
>             Fix For: Wishlist
>
>         Attachments: replayer.diff
>
>
> Imagine situation when client has deployed a process with a lot of active, long running instances. Then he finds there's a bug in this process and a simple bugfix is needed. But with current versioning rules, new version is only used when new instances are created. So there's no simple way for doing such bufixes (which are usually possible with eg. java application using database connection). It is a blocking argument for deploying ODE Bpel solution instead of a regular java application.
> I think the best way to deal with such situations is to add serialize/deserialize to/from xml operations for process instances in management API. Also pause/resume ODE operations would be useful. 
> Then, a bugfix procedure would look like this;
> -pause ode
> -serialize instances
> -deploy newer version
> -deserialize instances and fix manually any import errors 
> -resume ODE
> It would also be a benefit of being able to do migration from older to newer ODE and between Hibernate/JPA DAOs, which I saw already in some bug reports. 
> What do you think about it?
> Regards

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.