MyST: Setting EJB transaction timeouts on SOA/BPM domain

Working with the Oracle SOA Suite or Oracle BPM Suite sometimes necessitates setting timeout settings to get all components of your solution to play along nicely. Not all timeout settings are created equally, and thus not all timeout settings can be applied in the same way.

This post is part of a Series in which Robert Jan de Groot and I explore the inner and hidden parts of Rubicon Red MyST Studio which might come in handy at times.

In this blog, we’ll show you how to set the EJB timeout settings on your SOA or BPM domain with Rubicon Red MyST Studio. Yes, all of them!

Disclaimer: I’m no SOA/BPM/EJB tuning guru, and therefore do not know the optimal setup for your environment or use case. I don’t even think I know the optimal setup for my own environment(s)!
Any numbers shown in the examples of this blog post should be considered as examples instead of recommended values, and nothing more.
And now, back to our regularly scheduled content.

Global (Domain) EJB Transaction Timeout

This is the easy one, it even has it’s own category in a Platform Model and Platform Blueprint!

Navigate on your Platform Model or (preferably) your Platform Blueprint to the JTA Transaction category.

JTA stands for Java Transaction API.
The default is 30 seconds, and Oracle in many cases recommends setting it to 120 or even 600 seconds.

By default, MyST does not create an entry for this setting, and just lets the configuration be done entirely by Oracle. If this is the case, the Blueprint or Model shows the following screen:

Or, when in edit-mode:

To fix this issue, just click on the button ‘CLICK HERE’, and you’ll have a place to fill in the correct setting:

Now you are ready to save your Platform Blueprint or Platform Model, and you’re all set!

Product EJB Transaction Timeout

Not only is there a global timeout setting, but one can also set this exact same timeout on some products separately.
As the Global EJB Transaction Timeout always gets applied, it should be the ‘longest’. The product specific timeouts should not be greater than the Global timeout. There is no hierarchical relationship between them, the Global timeout is not ‘overwritten’ by the SOA or BPM timeout. They are all applied separately at all times.

SOA EJB Transaction Timeout

The SOA EJB Transaction Timeout setting gets applied by MyST to the environment when it is set on the Product SOA Suite on your Platform Blueprint or Platform Model.
To do this, navigate to Products -> SOA Suite:

Start an edit session by clicking on the button in the top left corner: 

Add a Configuration Parameter and fill in the following:

soa-ejb-timeout = 60

This will set the SOA EJB Timeout to 60 seconds.

BPM EJB Transaction Timeout

Where the SOA setting gets applied to the Product SOA Suite, the BPM setting gets applied to the Product Business Process Management.
All the steps are similar, but on another Product.

Navigate to Products -> Business Process Management:

In your edit session, add a Configuration Parameter and fill in the following:

bpm-ejb-timeout = 60

Now, you’ve set the BPM EJB Timeout to 60 seconds as well!

Making the changes on your environment

After having completed the steps above, you just need to run an Update action on your Platform Instance to have MyST apply the new settings to your environment.
The nice thing is, when a new environment is provisioned or if you reprovision an existing environment, these settings get rolled out automatically as well.
That is where MyST really shines!