Rhino(java)を使ったServer-side JavaScript(MaachangComet)を開発しています。
MaachangDbmとは、javaで作成されたDBM[データベースマネージャ]で Key,Value形式の
内容を永続化させます.
データ管理最大数は、4250000件(425万件)です.
MaachangDbmの利用方法について説明します.
MaachangDbmを利用するには、まず最初に、以下のように、MaachangDbmマネージャを
初期化する 必要があります.
--------------------------------------------------------------------------------
MDbmManager.getInstance().open( "directory" ) ;
--------------------------------------------------------------------------------
第一引数には、永続化内容を保持するディレクトリ名を指定します.
これで、MaachangDbmが利用可能になります.
また、MaachangDbmを操作するには、
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MDbm dbm = MDbmManager.getInstance().getMDbm() ;
dbm.put( "hoge".getBytes( "UTF8" ),"hogehoge".getBytes( "UTF8" ) ;
byte[] b = dbm.get( "hoge".getBytes( "UTF8" ) ) ;
System.out.println( new String( b,"UTF8" ) ) ;
dbm.remove( "hoge".getBytes( "UTF8" ) ) ;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
などで、利用できますが、この場合["hoge".getBytes( "UTF8" )]などと記述するのは、
面倒です.
このため、MaachangDbm操作用オブジェクトとして、別途[MDbmOp]が用意されています.
利用方法としては、以下の通りです.
--------------------------------------------------------------------------------
MDbmOp op = MDbmManager.getInstance().getMDbmOp() ;
--------------------------------------------------------------------------------
のようにMaachangDbmOpを取得します.そして、MaachangDbmOpの利用方法は、下記の
通りです.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
op.put( "hoge","moge" ) ;
String a = op.getString( "hoge" ) ;
op.remove( "hoge" ) ;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
また、MaachangDbmは、トランザクションをサポートしており、利用方法は以下のように
なります。
--------------------------------------------------------------------------------
// MDbmをトランザクションモードで取得.
MDbm dbm = MDbmManager.getInstance().getMDbm( true ) ;
// コミット.
dbm.commit() ;
// ロールバック.
dbm.rollback() ;
--------------------------------------------------------------------------------
また、2フェイスコミットなどを実施したい場合は、下記のように、commitの前に、
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// MDbmをトランザクションモードで取得.
MDbm dbm = MDbmManager.getInstance().getMDbm( true ) ;
// データ書き込み可能かチェック.
dbm.check() ;
// コミット.
dbm.commit() ;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
このようにして書き込み可能かチェックできます.
あと、いろいろ利用できますので、詳しくはJavaDocを参照してください.
トランザクション機能を追加しました。
DBMの管理マネージャを追加しました。