ダウンロードリスト

プロジェクト概要

Rhino(java)を使ったServer-side JavaScript(MaachangComet)を開発しています。

システム要件

システム要件が設定されていません

リリース時刻: 2008-01-18 17:28
MaachangDBM b1.01 (1 個のファイル 非表示)

リリースノート

MaachangDbmとは、javaで作成されたDBM[データベースマネージャ]で、
Key,Value形式の内容を永続化させます.
データ管理最大数は、4250000件(425万件)です。

MaachangDbmの利用方法について説明します。
MaachangDbmを利用するには、まず最初に、以下のように、MaachangDbmを初期化する
必要があります。

--------------------------------------------------------------------------------
MaachangDbm dbm = new MaachangDbmImpl( "dbm" ) ;

--------------------------------------------------------------------------------

第一引数には、MaachangDbmの内容を保持するディレクトリ名を指定します。

これで、MaachangDbmが利用可能になります。

また、MaachangDbmを操作するには、

<例>
--------------------------------------------------------------------------------
MaachangDbm dbm = new MaachangDbmImpl( "dbm" ) ;

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操作用オブジェクトとして、別途[MaachangDbmOp]が用意されて
います。
利用方法としては、以下の通りです。

<例>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MaachangDbm dbm = new MaachangDbmImpl( "dbm" ) ;
MaachangDbmOp op = new MaachangDbmOp( dbm ) ;

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
または、

--------------------------------------------------------------------------------
MaachangDbmOp op = new MaachangDbmOp( "dbm" ) ;

--------------------------------------------------------------------------------
のようにMaachangDbmOpを初期化します。
そして、MaachangDbmOpの利用方法は、下記の通りです。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
op.put( "hoge","moge" ) ;

String a = op.getString( "hoge" ) ;

op.remove( "hoge" ) ;

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

あと、いろいろ利用できますので、詳しくはJavaDocを参照してください。

変更履歴

org.maachang.dbm.engine.Flagオブジェクトは、メモリー上で
空きブロックを管理していたが、この場合、ちゃんと終了処理を
実行しないと、空きブロック内容を保存できない。
これでは、耐障害性にすこぶる悪くなるので、java.nio.MappedByteBufferで、
空きブロック管理をおこなうように変更。

また、この修正に伴い、org.maachang.dbm.engine.MDbmThreadで、
裏からorg.maachang.dbm.engine.Flagを保存するように仕組みを
作っていたが、必要なくなったので、削除。