[jbossts-issues] [JBoss JIRA] Commented: (JBTM-852) Setting SettingVolatile store still creates an ObjectStore directory on the disk

Michael Musgrove (JIRA) jira-events at lists.jboss.org
Fri Jun 17 06:20:23 EDT 2011

    [ https://issues.jboss.org/browse/JBTM-852?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12609404#comment-12609404 ] 

Michael Musgrove commented on JBTM-852:

Firstly some background. It is possible to configure different stores for different purposes. Each store is a singleton so each store type is shared.

We currently use at least four stores (XTS uses some others):
- an action store for transaction and participant logs;
- a recovery store (which defaults to the action store);
- a state store for use with TxOj and is not used with JTA (or JTS);
- a communications store for storing connectivity information such as ORB endpoints or transaction manager status items.

Calling arjPropertyManager.getObjectStoreEnvironmentBean() looks up the default store and is equivalent to:
BeanPopulator.getNamedInstance(ObjectStoreEnvironmentBean.class, "default") and is used to configure the action store.

The other stores can be configured by looking up a specific named ObjectStoreEnvironmentBean.
Use "default" or "stateStore" to configure the action and state stores respectively.
Use "communicationStore" to configure the communications store.

So the actual bug/feature is that looking up the default store environment bean via the properties manager (arjPropertyManager.getObjectStoreEnvironmentBean()) should return a bean that will configure all stores. Howeve this could be risky (for example it could interfere with XTS behaviour) so my preference would be to force the user to be specific about which stores he wants an environment bean for by making the getObjectStoreEnvironmentBean call take the store name as a parameter. But that leaves the difficult issue of how to specify which store to use in the properties file  
  <entry key="ObjectStoreEnvironmentBean.objectStoreType">XYZStore</entry>
since this entry is only applied to the default store.

We could simply document the behaviour in jbossts-properties.xml and tell users to explicitly set the communications store programatically if required.
So the communications store type would have to be set as follows:
BeanPopulator.getNamedInstance(ObjectStoreEnvironmentBean.class, "communicationStore").setObjectStoreType(com.arjuna.ats.internal.arjuna.objectstore.VolatileStore.class.getName());

Is this latter approach acceptable to all concerned?


> Setting SettingVolatile store still creates an ObjectStore directory on the disk 
> ---------------------------------------------------------------------------------
>                 Key: JBTM-852
>                 URL: https://issues.jboss.org/browse/JBTM-852
>             Project: JBoss Transaction Manager
>          Issue Type: Feature Request
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 4.15.0
>            Reporter: Mircea Markus
>            Priority: Minor
> Even when configuring {code:java} arjPropertyManager.getObjectStoreEnvironmentBean().setObjectStoreType(VolatileStore.class.getName()) {code} an "ObjectStore" directory is created on the disk. After discussing with JTM team this doesn't cause any real problem in the sense that nothing is written to the disk, but this is annoying and might create confusion between the users.
> A workaround would be to add the following configuration together with the previously mentioned one:
> {code:java} BeanPopulator.getNamedInstance(ObjectStoreEnvironmentBean.class, "communicationStore").setObjectStoreType(VolatileStore.class.getName()) {code}

This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jbossts-issues mailing list