Hi everyone,

At the moment Sandesha supports two storage managers - a persistent store 
and an immemory store. We would like to generalize this so that sandesha 
can support any number of storage managers.

In more detail, we would like to make the following changes:

1. Change the module.xml to allow for multiple storage managers. Each 
storage manager entry defines a name and a classname. Additionally one 
storage manager can be defined as default. Also, the current RM global 
properties (InOrder etc) are moved inside each storage manager e.g. strg 
mgr 1 has InOrder persistent, strg mgr 2 is not InOrder and inmemory.

2. At module load time the module is parsed into a storage manager map. 
This map can also be manipulated programmatically - adding new stores 
etc.Stores are then looked up by their name. Load time is also when we 
police the module xml - ensuring no duplicate names and not more than one 
default mgr.

3. The runtime behaviour of the code is changed as it now needs to lookup 
the correct store.
Requestor: on application request, we require the operation ctx to have 
been decorated with the correct strg mgr name to use. This can be done by 
the SandeshaClient (or the default strg mgr is used). 

For inbound messages we have to iterate the list to find the owning 
storageManager for a sequence - the new storageManagerMap interface 
exposes a method for us to do this (as well as add new strg mgrs, get by 
name etc). This can be done in the global in handler and the msg ctx then 
decorated with the correct strg mgr to use. The only exception to this is 
processing the CreateSequence and CSResponse, as we have no useful 
sequence info at this point. When the server receives the CS we need to 
perform the strg mgr name lookup based on the name. This could be 
decorated on the service (possibly the port, depending on what is 
"resolvable" by the time we reach the global in handler). We can do this 
using the services.xml file. If there is no decoration and no default 
manager then we want to throw a fault. For the requestor side receiving 
the CSResponse, we have to pre-decorate the op ctx with the correct 
storage manager we used when sending the CreateSequence, and we can then 
look this up.

If there are no objections to this change then I will raise a JIRA to 
accommodate it.

Many thanks,
Thomas McKiernan

----------------------------------
Thomas McKiernan

WebSphere Messaging Development,
IBM United Kingdom Limited

Internal Phone: 248241 
External Phone: +44 (0)1962 818241
Mobile: +44 (0)789 1737497
Email: [EMAIL PROTECTED]

Mail Point 211, IBM, Hursley Park, Winchester, Hampshire, England, SO21 
2JN


Caminante, no hay camino 
Se hace camino al andar.
("Walker, there is no path; the path is made by walking.")  Antonio 
Machado





Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU







---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to