As of version 8.5.x of IBM introduced a new service invocation feature called “resumable”.
The intent of this feature was to solve a long standing memory (heap) consumption issue as well as support the service based dashboard capability now available within IBM BPM Portal.
Here is a list of important things to know about this property that are not covered in the official IBM documentation
The “Never Ending Service"The never ending service issue is described here and can result in significant heap use which may impact stability of the BPM environment as a whole. The problem results from a stand alone service, typically a dashboard, that renders a coach. Because the service doesn’t actually hit an end state, the managed bean remains in memory until such time as it times out (default timeout is 2 hours). If a dashboard is used often and includes large arrays of data, it is possible that the accumulation of managed service beans will severely impact available heap to the remainder of the application.Resumable services resolve this problem by allowing a given service been to be re-entered for a given session. This means a new service is not started on each service call and heap usage is significantly reduced.
- IBM BPM Process Portal vs REST API
Knowledge Center doc says you need to configure the "com.ibm.bpm.social.zResumable" property in the WAS Admin Console and include the Process Apps in the value of the property if you want your dashboards form that Process App to be resumable.
Why does running a dashboard using the URL from the REST API appear to be "resumable" even without setting the com.ibm.bpm.social.zResumable property?
The answer is - the "com.ibm.bpm.social.
zResumable" property is only used by the Process Portal (you may notice that if you launch a dashboard from the Process Portal without this parameter set it does not use the zResumable=true.)
So, the property - "com.ibm.bpm.social.zResumable" property is to "make" dashboards resumable when executed from IBM BPM Process Portal only.
Once you add this property and specify process apps that have your dashboards, dashboards will be launched from Process Portal with zResumable=true. Basically you would have to set the "com.ibm.bpm.social.
zResumable" WAS property and update that property to include EVERY Process App that you want to have the "resumable" functionality.
IBM BPM REST API's does NOT take this "com.ibm.bpm.social.
zResumable" WAS property into consideration. This means that ALL dashboards that you execute using the REST API exposed services URL's would be resumable by default. We are working with IBM on this issue and it's not yet confirmed whether it's working as designed and not as desired or whether it's a defect in the Product.
- Heap consumption
Depending on your BPM solution you might see adverse effects when you use this property to try to alleviate never ending service/heap consumption issue(s), e.g. you might start seeing more heap consumption when you set this property for one or multiple of your process applications. So, if you do decide to use this property for your process app(s) then make sure you perform load/performance testing before/after the change and compare results, especially heap consumption statistics.
- Multi page dashboard
Another side effect of resumable services that may not be immediately evident is that of entry point on resumption.Many custom dashboards include multiple coaches which act as either drill downs or other views of a given data set. However, when a resumable service is called, the last saved state of the service is what is presented (rather than the normal service start) which may mean the dashboard immediately renders within a drill down or alternate view. This behavior has caused some confusion and meant rework for existing dashboards that assumed the legacy behavior.
- Feature request
Finally, BP3 Labs team believes that this property would be better to be configured on per dashboard/admin service basis and not per process application basis. We believe it is something that a developer should decide on and code the logic of the dashboard/service accordingly.
We've submitted an RFE to “Make services resumable on per-service basis configurable via PD”. Please vote for it, if interested.