2010/1/19 Andreas Fritzler <[email protected]>: > Hi, > > How exactly is an execution state of a process instance persisted? > saveState() in the BpelRuntimeContextImpl class seems to store it with > the help of the RuntimeInstanceImpl class in the soup. > > public Object saveState(OutputStream bos) throws IOException { > if (bos != null) _soup.write(bos); > return _soup; > } > > I want to serialize the state in the management api. The only way I > can retrieve it there is by getting it as a ByteArrayOutputStream. Is > there a way to get the execution state in a more structured way? I was > thinking of using XStream to serialize that.
You can use soup to convert between byte array and Object tree. You can check out code where it's created, in BpelRuntimeContextImpl. As for XStream, you can do this, but bear in mind that there will be huge output, since deserialization connects execution state with compiled process (CBP). I did this for analysis and for converting execution states between 64 bit and 32 JVMs, and I got a few megabytes of xml. Regards, -- Rafał Rusin http://rrusin.blogspot.com http://www.touk.pl http://top.touk.pl
