[
https://issues.jboss.org/browse/JBTM-852?page=com.atlassian.jira.plugin.s...
]
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