Jim,
<vendor>
Our stateful session bean passivation service sits behind a
singleton CORBA object implementing the attached IDL interface.
As such, it is a SMOP to implement this API to sit in front of any
persistence implementation you choose. I have offered a number of
times to provide an implemenation of this interface which sits on
JDBC, if anyone is interested. If you need this, we can easily
provide this as an example with source code in short order.
</vendor>
-jkw
James Cook wrote:
> I have found the Inprise approach to be fast (their all-Java JDataStore
> matches or beats our Sybase performance). However, it can hardly be
> considered to be a failover mechanism. I like the approach of saving state
> to a single datastore, however I would like it to be JDBC-based and
> flexible. If I can route all session state to Sybase or Oracle, that would
> be a better option. Most companies spend a great deal of time and money to
> make sure their database access is highly optimized and always up.
// ejbutil.java
# pragma prefix "inprise.com"
module ejbutil {
module session_storage {
interface Storage;
interface StorageFactory {
Storage create(in string name);
void remove(in string name);
void shutdown();
};
interface Storage {
typedef sequence<octet> Bytes;
/**
* Allocate a key, but don't store anything yet.
* This key should be unique for all time.
*/
Bytes getNextKey();
/**
* Store an object at the specified key location.
* As a side-effect, update the last-modified timestamp.
* @result false if the key timed out.
*/
boolean put(in Bytes key, in Bytes value);
/**
* Retrieve an object at the specified key location.
* @result zero length array if the key timed out.
*/
Bytes get(in Bytes key);
/**
* Remove the object at the specified key location.
* @result false if the key timed out.
*/
boolean remove(in Bytes key);
/**
* Set the LRU timeout. All objects which are older than
* the timeout are removed in the back-ground.
*/
void setTimeout(in long long timeout);
};
};
};