Hi Devs,

I have a long running process instance which runs on a loop. It handles
hundreds of message exchanges ( both invokes and receives ) per day and
designed to runs years until business logic ends.

Now the problem is, I am seeing database is growing with mex data related
to this process instance. With my experiences with ODE, I have seen
performance degradation with database size increases. (I am using ODE
1.3.5.) So I am thinking writing a clean up script to clean up following
tables.

ODE_MEX_PROP,
ODE_MESSAGE,
ODE_MESSAGE_EXCHANGE

So I want to identify the old message exchanges ( let's say created 2
months before) in order to clean from the database.

So I considered following scenarios.

   - MyRole message exchange with request-only and request-response pattern
   - PartnerRole message exchange with request-only and request-response
   pattern

I used following filter to filter out old message exchanges.

SELECT *
FROM ODE_MESSAGE_EXCHANGE MEX
WHERE MEX.PROCESS_INSTANCE_ID IN ('3752')
AND
(
  (
    -- Completed MyRole Message Exchanges
    MEX.CORRELATION_STATUS IN ('MATCHED')
    AND MEX.DIRECTION             = '77'
  )
  OR
  (
    -- Partner Role Message Exchanges.
    MEX.DIRECTION             = '80'
  )
)
AND
(
  (
    -- Handeling REQUEST_RESPONSE message exchanges.
    MEX.PATTERN         = 'REQUEST_RESPONSE'
    AND MEX.STATUS      IN ('RESPONSE' , 'FAULT' , 'FAILURE' ,
'COMPLETED_OK' , 'COMPLETED_FAULT', 'COMPLETED_FAILURE')
  )
  OR
  (
    -- Handeling REQUEST_ONLY message exchanges.
    MEX.STATUS          IN ( 'ASYNC' , 'FAULT' , 'FAILURE' , 'COMPLETED_OK'
, 'COMPLETED_FAULT', 'COMPLETED_FAILURE')
    AND MEX.PATTERN     = 'REQUEST_ONLY'
  )
);

I have done some tests to verify whether this is possible and found that we
can clean up old message exchanges/messages without affecting process
execution. I though get advice from the ODE developers to improve my logic
on filtering old message exchanges. Appreciate your input on this.

Thanks,
Hasitha.

*Hasitha Aravinda*
Blog: http://tryitnw.blogspot.com/
Linkedin: http://www.linkedin.com/in/hasithaaravinda

Reply via email to