Hi Klaus,
I have just committed http://bknr.net/trac/changeset/2600 which adds multiple store support through the WITH-TRANSACTION macro. You need to use the :MAKE-DEFAULT NIL as initarg when making a store instance to prevent setting the *STORE* special variable. WITH-STORE must then be used to select a store to work with:
DATASTORE> (defvar *state* 0)
*STATE*
DATASTORE> (defvar store1 (make-instance 'store :directory "/tmp/store1/" :make-default nil))
STORE1
DATASTORE> (defvar store2 (make-instance 'store :directory "/tmp/store2/" :make-default nil))
STORE2
DATASTORE> (deftransaction foo (value) (setf *state* value))
FOO
DATASTORE> (with-store (store1) (foo 1))
1
DATASTORE> (with-store (store2) (foo 2))
2
DATASTORE> (with-store (store1) (restore) *state*)
reading store random state
restoring #<STORE DIR: "/tmp/store1/">
loading transaction log /tmp/store1/current/transaction-log
1
DATASTORE> (with-store (store2) (restore) *state*)
reading store random state
restoring #<STORE DIR: "/tmp/store2/">
loading transaction log /tmp/store2/current/transaction-log
2
DATASTORE>
Let me know if that suits and works for you.
-Hans