UNIX DBMはこちら(GNU gdbm, Berkeley DB etc...)
2 :
名無しさん@お腹いっぱい。 :03/07/01 11:45 ID:U3ZaBIM2
2getすらされていませんよ?
真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
手軽そうだからちょっと興味あり。
ちなみに漏れは Ruby 製の簡易掲示板で使ってる。 OS によってファイル構成が異なるのが嫌かな。
Cでプログラムは組めるが,データベースというとチンプンカンプンなので このスレで勉強したいsage
>>9 Berkeley DBは問い合わせ(クエリ)のインタフェースに
SQLインタプリタみたいな複雑なものは使わないので、
C書ければすぐ使えまつよ。
*BSDなんかのlibc組込のBerkeley DBだと
openしてput/get/delしてcloseくらいのホント質素なもん、
Javaご存知ならimplements java.util.Map, java.io.Serializableって
いえばピンと来ると思いまつ
ドキュメントもよく整備されてるので是非一読を
http://www.sleepycat.com/docs/index.html
11 :
名無しさん@お腹いっぱい。 :03/07/06 06:09 ID:+9jOpiMC
質問なんですが、 perlでGDBMに受け渡したデータをJavaから呼び出すことは可能ですか? 初歩的な質問ですみません。
>>11 何言ってる不明
もっと具体的に書かないと答えられるものも答えられん。
13 :
11 :03/07/06 12:06 ID:+9jOpiMC
perlで野菜の値段データベースを以下のように作りました。 tie %yasai, 'GDBM_File', "yasaiDB", &GDBM_WRCREAT, 0640; $yasai{tomato}=100; $yasai{renkon}=50; untie; これで、ファイル名が"yasaiDB"と書かれたデータベースができました。 私が疑問に思ったのは作成されたこのデータベースはJavaのなかでも 呼び出せるのかというところです。 文字コードの問題などがありそうですが、不明なため質問いたしました。 よろしくお願いします。
あぼーん
あぼーん
漏れは馬DB使ってるのでGDBMはよく知らないんだけど、
言語バインディングごとにDBファイルの互換性が無いなんてこたーないでつ。
#エンディアンは問題になるかも、i368しか持ってないので試せない。
文字コードについては、
http://aurora.rg.iupui.edu/~schadow/dbm-java/pip/gdbm/ 使ってまつか?
Perl側の文字コードがEUC-JPだったりする場合は、RawPacking使って読み書きして
InputStreamReader/OutputStreamWriterで変換すればいいみたいでつ。
>>16 俺も同じく馬DB。
>>13 馬DBだとデータもキーもバイト列として保存するだけなんでエンディアンの影響はあります。
ntohl()とか使って変換しとけばOK。GDBMも同じじゃないかな。
18 :
名無しさん@お腹いっぱい。 :03/07/07 03:26 ID:0iBa7jUE
db3っておれだけか?いや誰か居るはずだ。
>>18 db3って何?
ググってみたけどBerkeley DB version 3 (= db3)が大量に引っかかって探せない。
>>19 それ。でも何故かbdbと言えば皆bdb2なんだよ。
WebSphereでも*BSDでもbdbと言えばbdb2なんだよ。
3使ってる奴いないんだよ。
何故だ?
21 :
19 :03/07/07 04:18 ID:???
>>20 既に4系があるからでは。ウチでは4.1.25使ってる。
どちらかと言うと1.85の方が使われてない?
うむ。3は存在を認識されずに終わったバージョンのようだ。残念。
QDBMかなり速いみたいよ。
s/cdn/cdb/ でつた
確かに早いな、>qdbm ただ、トランザクションとRECNOインタフェースが無いね。 あんま必要性を感じたこたないが。 あんど馬DBも同様なんだが、java バインディングは implements java.util.Mapしてホスイと思うのは漏れだけ?
30 :
19 :03/07/07 13:06 ID:???
>>27 だね。1.86(出てるの知らなかった)まではBSDライセンス。
2.x以降はQtに似たデュアルライセンスでした。
>>29 馬は4.2系でJavaのcollection APIをサポートとか書いてあったよ。
Java詳しくないから違うものかもしれんけど。
Berkeley DB 4.2.XX Change Log
ttp://www.sleepycat.com/update/4.2.XX/if.4.2.XX.html The new Java DBX API for Berkeley DB allows Java programmers to use a familiar
Java Collections style API, including Map, while interacting with the transactional
Berkeley DB core engine. [#6260]
移植性はどうなのだ?
35 :
名無しさん@お腹いっぱい。 :03/07/09 19:42 ID:9zWC4YIG
あなたたちが求めるDBMの機能ってなんなの? ・処理が速い ・データベースファイルのサイズが小さい ってのはもちろんだよね。他に、アクセスメソッドの豊富で(ハッシュ、B木、キューなど)、 トランザクションとかあると嬉しい人もいるのかな。他にもREDOログによる復旧もできると 嬉しいかもね。 一方で、高度な機能は求めてなくて、シンプルで移植性(代替)があって高速なのがDBMの よいところでもあるよね。
初心者質問で悪いんだけど 馬DBって何ですか? Berkeley DBのこと? horse DB とかでググッたけど、何か競走馬のデータベースとか 引っ掛かって??です。
37 :
17 :03/07/10 01:42 ID:???
>>36 馬DBはBerkeley DBです。たぶん。
このスレ
>>16 辺りが初出と思われ。
わかりにくくてスマソ
Linux = リヌクス...いぬくそ...犬糞 BSD = バークレーソフトウェアディストリビューション...ばくそ...馬糞 同じBerkeley繋がりってことで馬DB
ぃぬx
41 :
36 :03/07/10 21:05 ID:OZ1qJzcP
馬DB = Berkeley DB ってことね。了解。 それでは、馬DBユーザに質問 今、私は 馬DB4.0.14 を Java から使ってます。 (Solaris2.6, JDKはJ2SDK1.4.1) 馬DBのRPCの機能を使って、C/S環境でプログラム作っている。 com.sleepycat.db.DbException: DB_NOSERVER_ID: Identifier unrecognized at server: DB_NOSERVER_ID: Identifier unrecognized at server というエラーが出てしまいます。このエラーはクライアントのJava VM でスレッ ドを3つ作って,3つのスレッドでそれぞれ new DbEnv() してると 多発するみたい。しかしエラーが出ないときもあるのがまた困りもの. もしかして,DbEnvオブジェクトってマルチスレッドで使えない? このへんの所,詳しいやつ,おれに教えれ! いや,教えてください.おながいします m(..)m ペコペコ
>>41 お、RPC使ってるのか。人柱よろ。とりあえず、
・馬DB 4.1.25にアップグレード
・ビルド時のconfigure引数晒す
とか。
ところで、DbEnvって1プロセスに複数作れたっけ?
43 :
36 :03/07/11 20:45 ID:u2EvQPDC
先に謝る.長文メンゴ.長文過ぎて怒られたので2つに分けてる
|| ・馬DB 4.1.25にアップグレード
最初は,4.1.25 + patch.4.1.25.1 ってのを使っていたんだけど,4.1.25だと
Java + RPC の環境で使えないようなので 4.0.14 に戻したんだ.
そう思った理由は以下を見てチョ.
* DbEnv.open()の flag 引数の説明ところから抜粋
Db.DB_THREAD
Threading is always assumed in the Java API, so no special flags are
required and Berkeley DB functions will always behave as if the
Db.DB_THREAD flag was specified.
つまり,Java API から使うと Db.DB_THREAD フラグが必ずセットされる.
(
http://www.sleepycat.com/docs/api_java/env_open.html#Db.DB_THREAD )
* RPCプログラミングのイントロから抜粋
The DB_THREAD flag to the DB_ENV->open and DB->open methods may not be
specified, that is, DB_ENV and DB handles used in RPC clients are not
free-threaded.
(
http://www.sleepycat.com/docs/api_c/env_open.html#DB_THREAD )
つまり,RPC環境でDB_THREADがセットされるとダメ(英文解釈間違ってるかも)
もしかして,4.1.25 でわざわざ使えなくなってるってーことは,4.0.14で
Java+RPCの組合せには,バグありってことなのかな.
44 :
36 :03/07/11 20:46 ID:u2EvQPDC
その2 || ・ビルド時のconfigure引数晒す config.log によれば, $ ../dist/configure --prefix=/usr/local/db4 --enable-java --enable-rpc です.ちなみに馬DBのコンパイルに使ったCコンパイラは % cc -V cc: Sun WorkShop 6 update 2 C 5.3 2001/05/15 だった. || ところで、DbEnvって1プロセスに複数作れたっけ? そう,ここが臭ーいのだ.4.0.14のソース(DbEnv.java)の中にこんなのがある んだけど... public class DbEnv { .... public static class RepProcessMessage { public int envid; } .... } これって, 1プロセスで複数のDbEnvオブジェクトを作ったら envid は共有さ れているの? static class つーのが解りません. #ただの Java の質問になってまった
>>44 を読んだだけでソース読まずにカキコ。
envidはRepProcessMessageのインスタンス毎に値を持っている。
DbEnvは無関係。
public class A {
public static class B {
private int value;
}
}
と
public class A {
}
public class B {
private int value;
}
はほとんど同義だよ。
違いは
1.インスタンスの生成は A.B b = new A.B(); と書く
2. 前者はclass AはB.valueにアクセス可能、後者は当然無理
ってとこかな。
46 :
名無しさん@お腹いっぱい。 :03/07/12 20:15 ID:dnxUtIhJ
CygwinでBerkeleyDB使える?
つーかQDBMだろ。日本製だし。
あぼーん
あぼーん
あぼーん
52 :
名無しさん@お腹いっぱい。 :03/07/13 14:04 ID:zd7coiS0
GDBMについて詳しく説明してくれ。 RDBなの? 特徴は? どんな時に使ったりしてる?
53 :
名無しさん@お腹いっぱい。 :03/07/14 02:49 ID:JS73bRQi
キーと値のペアからなるレコードをファイルに保存したり、そうやって作った ファイルからレコードを取り出すことができるようになります。機能はそれだけ。 RDBとはあんまし関係ないです。しいていえば、RDBのインデックスに使うハッシュ とおんなじようなことをしているツールです。 利用法はいろいろありますが、わざわざRDBを使うまでもないようなことに使います。 例えばWebの掲示板とか、アクセスログの記録とか、ユーザアカウントの管理なんかですね。
バカが「低水準関数でのファイル操作が一番速い」とロクな知識もなく 無茶苦茶なファイル操作して大幅な速度低下を起こすのを防ぐのに使います。 いや、使わせます。
55 :
名無しさん@お腹いっぱい。 :03/07/22 21:17 ID:82vtyiOg
BerkeleyDBの、set_pagesize、set_cachesize、set_h_ffactor、set_h_nelem、set_cachesize とかのチューニングのツボがイマイチよくわからん。強者の解説求ム。
 ̄ ̄ ̄\:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\ / l:::::::::::::::::::::::::;;:::ヘ::rv'レ'、::::::::::::::::::ゝ / |::::::;::vrヘl/''"`"_,, ノ 、;;、 ''ヽ;:::::::::::! | 頼 \'' " _,,..-=、''_ >',=-、 ' i:::::::;! ヽ も し. は ア | / ,rニ・L | { ':ニ・i,. |:::::l / て ゲ / 'i ,''≡' | i`== i i;/l > も く 勘 る む /,i | ! r┤ i、 J ,:、!,! |. う れ 弁 の ヽ,! ‐=、;、 | l , , ,`',,`''´,', 〃 |i ヽ ・ r‐-`;- 'ヾ;;''、 ,' , ',,;===; ' ,i/ l ‐=、--' ・ |ヽ__,i , i! , /r──-l! i! /;、_ ``i ・ ___/'´ i ', ' , ' , | ''" ̄ ̄ ̄ !./ i;;;;;``''-、 ``i ;;;;;;;;;;;;;;/ i `''-、, ', , ; , ' , ', ', ' ,', ' ,/' |;;;;;;;;;;;;;;;;;;`''-i ;;;;;;;;;;;;/ i ,' , .`''ー- ' ,. ‐'"/ |;;;;;;;;;;;;;;;;;;;;;;;;;゙ー、
あぼーん
58 :
名無しさん@お腹いっぱい。 :03/07/26 05:28 ID:E/jU4S1T
QDBMのGDBM互換APIがいいぞ。完全なソースコード互換で、速度は5倍以上出るんじゃないかな。
59 :
名無しさん@お腹いっぱい。 :03/07/26 05:46 ID:5DqcDSlZ
∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ
61 :
山崎 渉 :03/08/15 23:04 ID:???
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
Webの掲示板でdbmを使うときってキーは何にするの?記事の番号を文字列で"1", "2", "3"とかするの?
63 :
名無しさん@お腹いっぱい。 :03/08/24 16:41 ID:6jUjlvB1
>>62 単純な掲示版ならそれでいいと思う。
で、"max"みたいな特別なキーに記事番号の最大値をいれておけば、新着順に表示できるはず。
2chのようにフローティング機能を持たせたいのなら、各記事を双方向リンクリストでつないでおいて、
記事を上げる場合はそのつなぎかえをしなきゃならんが。
65 :
名無しさん@お腹いっぱい。 :03/09/22 01:58 ID:wHXY83fg
>>64 CDBって何が優れてるの?
単なるハッシュDBだったらSambaのTDBが最速だと思うんだけど、djb氏はなぜ今さら
yet anotherなものを作る必要があったのだろう。
>DBMファイル直接ダウンロードできてしまうサーバも多いのは、気にしないの? >ついでに、DBMファイルとの接続は、普通のテキストファイルに比べて、3倍〜10倍の時間がかかるのも気にしないの? >おまけに、1件(テキストファイルなら行)あたりの読込み速度が数倍かかるのも気にしないの? ってみたんだけど、テキストやRDBMSほうがいいの?
>DBMファイル直接ダウンロードできてしまうサーバも多いのは、気にしないの?
鯖の設定を知らんアフォですな、テキストならダウンロードできないとでも思ってるのか?
>ついでに、DBMファイルとの接続は、普通のテキストファイルに比べて、3倍〜10倍の時間がかかるのも気にしないの?
>おまけに、1件(テキストファイルなら行)あたりの読込み速度が数倍かかるのも気にしないの?
>>54 に尿意
RECNOみたいに行番号だけで済む探索ならプレーンテキストと優位な差は出んが
ランダムアクセスならハッシュのDBMの方が明らかに速いのが判らん痛い人なのだろう。
68 :
>>66 :03/09/23 22:08 ID:???
数万個のレコードがある場合、ファイルを開く時間に較べれば検索にかかる時間がとても大きくなります。 単なるテキストファイルだと数万回の読みだしとデータ比較を行うことになりますが、DBMを使えばそれが たった数回で済むのです。というわけで、検索キーのあるレコードを保存するにはテキストよりDBMが有利です。 DBMとRDBMSの使い分けに関してですが、検索キーやレコードの構造が複雑な場合はRDBMS、キーとそれに対応 する値がひとつづつといった単純な構造の場合はDBMを使うとよいでしょう。ただし多くのDBMはキーの完全一致 検索しかサポートしていないので注意しましょう。
>>65 > yet anotherなものを作る必要があったのだろう。
元々はqmailとかdjb toolの設定ファイルキャッシュ用に作ったのだとオモタ。
動機はセキュア(=俺が書いたコードでないと安心できない)ってところか?
>>67 >>68 勉強になりました。csvやMySQLは使ったことあるんだけど、dbmはなかったので
これから少し使ってみようと思います。
つまりqmailとか以外の用途はなさそうってことか。
>>71 他にcdb使っているアプリってvpopmailだとかqmail臭いものばっかりだからなぁ。
djb信者じゃなければ、ふつ〜にBerkleyDBやgdbm使ったほうがいいよ。特にBerkleyDB
は3以降で機能の大拡張がなされて、トランザクションまで使えるし。
2つ質問があります。 dbmは連想配列をファイルに保存とイメージしているのだけれども、 検索キーが複数あるような場合はやっぱし使えないですか。キーを適当なセパレータでつないだり するのは別として。 掲示板のデータをdbmに収めたとして、たとえば"dbm"で全文検索して一致した書き込みを表示とかってできますか?
>>73 質問1の回答:キーが複数ある場合は、複数のDBMを使うしかない。
DBM-1は、列1をキー、オブジェクトのIDを値にする。
DBM-2は、列2をキー、オブジェクトのIDを値にする。
...
DBM-nは、列nをキー、オブジェクトのIDを値にする。
で、
DBM-Vは、オブジェクトIDをキーにし、オブジェクトの中身を値にする。
そして、キーに応じて適切なDBM[1..n]を引いてオブジェクトIDを取得してから、DBM-Vを引いて
オブジェクトを取り出せばよい。つまり、リレーショナルDBが暗黙的にやっているようなことを自分
で実装しなければならない。面倒だけど性能は期待できる。
質問2の回答:DBMで全文検索をするのは、そのままでは難しい。
全文検索ってのは、内容にあるパターンを含むレコードの一覧を得る処理なわけだが、DBMはキー
の完全一致しかサポートしていない(Btreeは前方一致が可能だが)。
DBMで無理矢理全文検索を実現するなら、テキストに含まれる語句を切り出して、切り出したパタ
ーンをキーとし、それを含むオブジェクトのIDの配列を値にすることになるだろうな。
"dbm" : [1,3,9,54,98]
"ndbm" : [1,8,53]
"sdbm" : [2,3,9,23]
みたいな構造にするのかな。パターンをどうやって切り出すかを考えるには、自然言語処理
についてちょっと勉強しないといけないだろう。
>>74 ありがとうございます!!
大変参考になりました。
76 :
NAME IS NULL :03/10/30 20:44 ID:HIhyk/qY
ちょっと使ってみたら、速度は CDB >>>>> QDBM > TDB >> GDBM だね。 CDBが圧倒的に速いし、ファイルも小さい。 でも更新と検索が同時にできないのはちょっと使いづらいかな。
NDBMだけはガチ
78 :
NAME IS NULL :03/12/03 15:34 ID:/crs/ZXG
BerkleyDBでは、レコードを削除しても、ファイルサイズが減らない(領域は再利用される)のですが、 元のファイルから古いデータを消して、新しいファイルにダンプするしかダイエットの方法はないですよね? そのデータ移行中に更新がかかると取りこぼすような気がするので、何か良い回避方法はないですかね?
データ移行中には更新をブロックするしかないんじゃないかな。
81 :
NAME IS NULL :04/01/20 17:50 ID:UcaoSa+e
Berkeley DBなんですが、解凍したファイルを作成しておいた /db ディレクトリへFTPして、それからTelnetでbuild_unixまで行って、 そこから../dist/configure と打ったら、こういうエラーが出ました。 bash: ../dist/configure: Permission denied /db/ の属性は777と変更してから行ないました。 なにが問題なのでしょうか・・可能性を教えてください。
それって、bashが「configureが許可がなくて実行できない」って言ってるんじゃない?dist/configureのファイル属性調べてみて。
83 :
NAME IS NULL :04/01/21 00:24 ID:vfEXJDFI
てか、cd ../dist してから ./configureしなきゃ
84 :
NAME IS NULL :04/01/23 01:33 ID:OV9Mrwi6
↑ レ、レベルひくぅー
人のこと馬鹿にする奴は地獄に落ちるぞ。
>>84 は昨日鳥インフルエンザでお亡くなりになりますた。
web上の辞書引きページを作ろうと思ってるんですが、 単語数は、1000から2000で、各単語は発音、品詞、訳語、 例文など6〜7フィールドです。 頻繁にアクセスがあるとすると、どのDBMに格納するのが 吉でしょうか。ポスグレとかの方がいいのでしょうか。
88 :
NAME IS NULL :04/01/30 11:16 ID:NJwR2Fzf
>>87 続きです
それともこのくらいならテキストファイルの方が早いですか。
その程度のサイズならば、ファイル全体がOSのI/Oキャッシュに乗るだろうから、 テキストファイルで問題ないと思います。 速度を追求するならBerkeley DB使った方がいいかな。QDBMもいいかも。
>>89 ありがとうございます。
QDBMって速いっていうレスあったので、テキストと
両方試してみます。
ndbmが最も速いのでは
Berkeley DBにあるRECNOってドンなの? HASHとかBTREEならちょっとはわかるんだが。 実際どういう風に使うもんなんだろ...
俺も使ったことないけど、ぱっと見で、プライオリティキューの永続化に役立つんじゃないかな。
95 :
NAME IS NULL :04/03/20 23:47 ID:5TfEphvL
Berkeley DB って商用で使うとソース公開しないと有料なの?
あ、qdbmってVCじゃビルド出来ないのね・・・
PERLの掲示板スクリプトとかに使ってもOKですかね? MovableTypeでBerkeley DB使えるのを見て思ったのですが。 スレッドとか検索とか付いてくると、色々ごちゃごちゃ してくるし。
>>97 VCでビルドできたよ。
ところで、ベンチマークに「SDBMは100万レコードで壊れた」ってあるけどマジかなぁ。
cdb の場合 * データベースの作成はとても速い! * データベースのサイズも小さい! * データベースの参照もとても速い! * データベースの更新は、全データが必要(実質、再作成と同じなので、速度も再作成と同じ) cdb 以外のgdbm,qdbmなどの場合 * データベースの作成の速度は普通(ものによるが、cdbほど速くはない) * データベースのサイズもものによる(cdbよりは大きい) * データベースの参照もものによる(cdbほど速くはない) * データベースの更新は、他のデータは不要で、cdbより速い! で、理解あってる?
102 :
NAME IS NULL :04/04/06 21:46 ID:GXxkLk8T
いいスレ
だけど、静香杉。
頑張れ。
105 :
NAME IS NULL :04/05/16 07:33 ID:wKgBT2Er
SQLiteに較べてBerkeleyDBやQDBMの方がやっぱ速いんですよね? 試しに置き換えたとしたら、どのくらい速くなるでしょうか。 副問い合わせをDBMのAPIで置き換えるのはちと大変だと思いますが、、、
106 :
NAME IS NULL :04/05/16 14:34 ID:0id9T6PE
DBMって正直分かりづらいですね
SQLもな。
108 :
NAME IS NULL :04/06/29 17:11 ID:ZCOlO+nL
マルチスレッドなプログラムでndbmを使用しようとしたんですが、 やはっりというかMT-unsafeなんですよね。 バークレーDBや、qdbm,cdbmはMT-safeなのか、ご存知の方教えて 頂けませんでしょうか 因みにOSはsolaris8で、プログラムの中では検索しかしません。 (検索だけなのでndbmでもいけそうな気もするのですが、、、)
↑さげわすれました。。。
111 :
NAME IS NULL :04/07/28 09:17 ID:WggAfKYD
dbm_fetchを呼ぶと、以前呼んだ時の戻り値のdatum.dptrが指す先が書き換えられるんだね。 これのせいで昨日からずっと悩む羽目にあった。
112 :
NAME IS NULL :04/07/28 11:14 ID:zDkc3K16
つーか今さらNDBM使うなよ。
114 :
NAME IS NULL :04/08/08 20:40 ID:g7uZ+RUn
berkeley db java editionってどう?
すいません、純粋にjavaだけで動かすことができるDBMっていうのは あるのでしょうか?
いっぱい
117 :
115 :04/08/10 17:01 ID:???
Berkeley DB はJava editonがあるのがわかりました。 ちなみに、話題のqdbmっていうのは、java向けのAPIがあるだけで、 javaだけでは動かないのでしょうか?
Berkeley DB のライセンスって、なんかBSDライセンスとかじゃ 無いみたいんだけど、日本語でライセンスの書いてある説明 とかってないでしょうか?
口調を統一しない人には教えません。
121 :
NAME IS NULL :04/08/13 16:43 ID:K37O/N7H
Berkeley DBの使い方が分かるWeb上のドキュメントがあればURLを教えてください。 db_loadというユーティリティでデータベースファイルを作成することはできたのですが、 いらなくなったkey=dataペア(レコード)を削除する方法が分かりません。 そのつど.dbファイルを作り直さなければいけないのでしょうか。
123 :
NAME IS NULL :04/08/15 22:13 ID:5WUYRlds
>>121 C言語なら
int DB->remove(DB *db, const char *file, const char *database, u_int32_t flags);
という関数がある。C++でもJavaでも同様のメソッドがある。
>>122-123 レスありがとうございます。121です。
付属のユーティリティをつかって簡単に削除できるのだろうとおもっていたのですが
そういう使い方をするモノではないんですね。ちょっと勘違いしておりました。
qdbmっていいの?そんなにいいの? 使うよ?いいの?
荒らすな
128 :
NAME IS NULL :04/09/27 17:52:34 ID:SSEQCMVj
勃起age
cygwin + ruby1.8 + BerkeleyDBでうまくいってる人いる?
130 :
129 :04/09/28 00:09:24 ID:???
おいおい、会社でだめぽだったのに家では余裕でできた。 会社のはbdbがdevel版がインストールされてなかったのかな。
perlでNDBMを使ってたんですけど1日で10倍以上にサイズが肥大化したので Berkeley DBに変更しました。すると肥大化はしなくなったものの負荷が数倍かかるようになりました。 GDBMなんかは肥大化するわ壊れるわで最悪でした。 perlのバージョンを変えてもapacheのバージョンを変えても解決せず。 アクセスが多すぎると駄目なのでしょうか。
qdbm はどう?
>>131 ちゃんとファイルロックしてないだろ。壊れるのあたりまえ。
NDBMにしろGDBMにしろ最初はファイルサイズ大きくなる。
が、後からはデータを追加してもその分しか大きくならない。
134 :
131 :04/10/21 18:43:26 ID:???
flockでファイルロックは行っています。 壊れるというのは、ファイルが飛んでサイズが減るわけではなく サイズはそのままで全てのデータが読み込み出来なくなります。 ぷららのサーバで同じように試してみるとどんどんファイルサイズに差が出てきます。 直ぐに200KBと5MBくらいに差がでました。 1度テキストに変換して全て書き直すとサイズは200KBまで落ちたので異常に肥大化されているような気がします。 QDBMはインストールはしましたが書き込めても読み込めなく、原因が分からなかったので諦めました。
許容できないなら仕方ないが、サイズの肥大化は 索引や効率を考えて前もって領域を確保してる分だから、 動作としてはおかしくない。 あと実装によってはdbm側でロックの機構があるから、 それを使う方が望ましいかもしれない。
136 :
NAME IS NULL :04/10/27 04:38:31 ID:Yk8mNdzM
>>131 GDBMが壊れるあたり、DBとの接続をちゃんと切ってないことない?
CGIとかでも、プロセスが死ぬ前に確実に接続を切る(ハンドルを閉じる)
ようにしないとファイルがおかしくなるよ。
クァキコしとこ。
138 :
NAME IS NULL :05/01/15 00:58:37 ID:vXqd6/Xv
SymbianOSに入るようなメモリ空間100KB以下の DBご存知ないですか?C言語でお願いしまっする。
>138 そんなん(メモリ空間100KB以下)だったらDBいらねーんでは?
>>138 QDBMは? POSIX互換なら動きそうだけど。
141 :
NAME IS NULL :05/01/17 23:44:17 ID:FLVEOjow
solidはどう?商用だけど。 ノキアやOpenViewで使ってるって。
143 :
NAME IS NULL :05/01/25 04:15:25 ID:fFuVLIUL
糞なOSでも使えるDBじゃねえの。組み込みとか。
ヲイヲイ。おめーは携帯電話をつかってねーのか。
145 :
NAME IS NULL :05/02/18 03:15:52 ID:9UHJegbs
BerkeleyDBよく見たらすごいな。 トランザクション使えるし、レプリケーションできるし、 オンラインバックアップできるし、2phase commitできるし。 ただ、ライセンスがきつくて使いづらい。
この前tie初めて使った。感動した。
147 :
NAME IS NULL :2005/04/04(月) 15:27:05 ID:IVXkguN3
BerkeleyDBの料金体系ってどんな感じなんでしょう。 どなたか具体的なお話を聞かせて頂けないでしょうか?
Sleepycatにサポートしてほしいってこと? 直接聞けばいいのに。
149 :
147 :2005/04/05(火) 15:07:31 ID:???
>>148 公表されても構わないことと思われるのに、
ネットで全然その話題に行き着かなかったのです。
BerkeleyDBの利用しづらさって、その辺が全然分からんのもあると思うので、
どなたか情報を放流してもらえないかと期待しての書き込みです。
>>150 いや、そこに載ってるのはサポートの価格で
知りたいのはコマーシャルライセンス自体の価格だと思われ。
Sleepycatのオープンソースライセンスは実質GPL(否LGPL)と同等だから、
製品に組み込もうと思ったら、その製品のソースも何らかの形でオープンにしないと駄目。
http://www.opensource.jp/licenses/sleepycat.html 多分InnoDBと同程度の価格だと思うんだけど、InnoDBはOEMオンリーで
結局MySQLでの価格差でしか見れないし、本当の供給してる値段は判らんね。
保守
153 :
NAME IS NULL :2005/06/10(金) 12:33:06 ID:b9rlejc6
QDBMのVillaで、重複レコードは同じキーのレコードの末尾に格納されるとあるけど これはキーが重複したレコードの中では登録日時順に並ぶという事だよね。 しかし分からないのはその後の「DBのアップデートの為にそのカーソルは使えなくなる」という記述。 どういう事? マニュアルのサンプルコードで重複キーのレコードに対してカーソルを使っているが。
QDBMのVillaの比較関数ってどこに書いてどう使えば良いの? とりあえずVLCFUNC型の変数に自作関数のポインタを入れてみたけど それで自動的に使われるというわけではないみたいだし。
155 :
154 :2005/06/10(金) 19:05:58 ID:???
おー、分かった。 すっげ嬉しい。 openするメソッドの引数で指定するんじゃん。 灯台下暗しだな。 俺は下以外も暗いけどな。
156 :
153 :2005/06/10(金) 19:27:24 ID:???
自己解決しました。
157 :
NAME IS NULL :2005/06/22(水) 18:26:07 ID:+bv5CzNl
qdbmのodeumはWEB上の文書しか扱えないの? アプリケーション内で作った文字列を格納する方法が見当たらないんだが。
個々の文書はwebとは限らないけれど、もとの文書を格納しておくわけじゃな くて、転置インデックスしか管理しない。 estraierの用途を考えればわかるように、元の文書はどっか他の場所にファイ ルとしてあるっていう前提があって、 odeum 側で、いちいちそのファイルの 内容をコピーせずに、そこへの参照(パスとか)だけ持てばいいって発想なんだ ろう。
APIなんだから、対象の文書がどこに保存してあるとか関係ないでしょ。 ODDOCオブジェクトを作ってoddocaddwordで語を入れさえすればいい。
161 :
NAME IS NULL :2005/06/22(水) 22:04:27 ID:Dl2KSbG/
>>161 BSD License だったから あげさせてもらうよ
162 :
157 :2005/06/23(木) 02:59:16 ID:TtVhFLaI
oddocopen("URI")は、実際にそのURIにアクセスしてデータを取得したりしないの?
>>157 しないよ。文書にIDをつけてるだけみたい。実際にはユニークであれば
どんあ文字列をしていしてもいいみたい。
164 :
157 :2005/06/24(金) 11:35:39 ID:???
レスありがとう!
165 :
NAME IS NULL :2005/06/25(土) 04:57:25 ID:IcUs4KvU
QDBMのC用APIにはvistaがあるけどC++用APIには無いのは何故?
166 :
NAME IS NULL :2005/06/26(日) 03:08:08 ID:nz35kzcL
QDBMのODDOC型にunsigned intのポインタを加えようとして、 ODDOC構造体にunsigned int *num;を書き加えて、 アプリケーション側でODDOC->num = unsigned intのポインタ; と書いたのだけど、 odput内でODDOC->numを書くとセグメンテーション違反になってしまう。 oddocopen();を、unsigned int *numを引数として受け取る様にして、この関数内でODDOC->num = num; とする方法も試してみたけど、そうするとポインタの代入が上手く行かない。 oddoc *doc; unsigned int num[10]; cout << num << endl; doc = oddocopen(URI,num); cout << doc->num << endl; で、numとdoc->numの値が異なってしまう。 原因分かる方居たら教えてくれませんか?
古いライブラリとリンクしてるからじゃないの?
168 :
166 :2005/06/29(水) 10:45:23 ID:cQGEb3Tt
>>167 reboot後にコンパイルしても変わらないし、make uninstall して make installしても変わらないし、
変更が一部反映されてるからそれは大丈夫だと思うんだけど。
話は変わるけど、
c++でvistaを使いたくて、
アプリケーションのソースコードに#include<vista.h>を書いてみたり、
xvilla.hやxvilla.ccのvilla.hの部分をvista.hに変えて見たりしたけど
そのアプリケーションを実行してもディレクトリじゃなくvilla用のファイルが生成されてしまう。
qdbmのメーリングリストに参加しようとしても何故かメールが送信出来ないし。
qdbmのマニュアルのサンプルコードをvilla.hからvista.hに変えて使ってみると
ちゃんとディレクトリ生成してvistaとして動くんだけど。
xvista.hというファイルは無いし。
C++ではvistaは使えない仕様なのかな?
169 :
166 :2005/06/30(木) 13:10:03 ID:???
インストール時に発生していた問題に応急処置をしていた事が原因でした_no
バークレーDBをperlで使っていますがファイルロックがよくわかりません。
>>142 氏のリンク先を何度読んでも理解できず…
どなたか簡単に解説をお願いできないでしょうか。
すんまそん…、普通にperldocに日本語で書いてありました。 お時間の許す方は煽ってやってください orz
>これを性能指標とするならば、例えば100万個のレコードを格納するためには50万要素のバケット配列が求められる。 >バケット配列の各要素は4バイトである。 >すなわち、2MバイトのRAMが利用できれば100万レコードのデータベースが構築できる。 QDBMのマニュアルから引用。 これって、バケット配列は2Mしか使わなくてもハッシュが重複してるレコードが50万あるからその為にメモリ使って 2Mバイトじゃ済まないよね? 重複レコードをどう扱ってるのか知らないけど、ポインタとprimary keyが要るから バケット配列と合わせて合計6Mは使いそうな気がするんですが。
> ハッシュ値の衝突はセパレートチェーン法で管理する。チェーンのデータ構造は二分探索木である。 という記述と、 > レコード部はバケット部の直後からファイルの末尾までを占め、各レコードの以下の情報を持つ要素が記録される。 > 1. フラグ : `int' 型の整数である。 > 2. キーの第二ハッシュ値 : `int' 型の整数である。 > 3. キーのサイズ : `int' 型の整数である。 > 4. 値のサイズ : `int' 型の整数である。 > 5. パディングのサイズ : `int' 型の整数である。 > 6. 左の子の位置 : `int' 型の整数である。 > 7. 右の子の位置 : `int' 型の整数である。 > 8. キーの実データ : キーのサイズで定義される長さを持つ一連のバイトである。 > 9. 値の実データ : 値のサイズで定義される長さを持つ一連のバイトである。 > 10. パディング : 値のサイズとアラインメントにより算出される長さを持つ一連のバイトである。 という記述から判断するに、重複レコードのポインタはファイル内に記録してあるっぽい
QDBM以外には、面白データベースは無いのかね?
データベースそんなに更新しないならcdb最強でFA?
sleepcatライセンス面倒だな。orz
177 :
test :2005/12/20(火) 13:38:10 ID:???
test
178 :
test :2005/12/20(火) 13:39:12 ID:BChHfMfC
test
あ〜、本日は hoge なり。
そろそろdbopenします。 やっぱりver1が落ち着く。
ついにBSDにオラクル標準装備か。
Berkeley DBとBSDは全く関係ねーだろ。
185 :
NAME IS NULL :2006/03/10(金) 02:11:43 ID:vhSvdEFS
Berkeley DB メールで値段聞いても無視だったよ なんなんだろうwww
ボラクルに買収されたので人居ません。
187 :
NAME IS NULL :2006/03/21(火) 11:52:13 ID:fF1wwRiT
ボラクルに買収されたから使うのやめよ。。 ボラクル調子こきすぎてなんかむかついてきたぞ。。 BDBオープンソースじゃなくなる日も近いのかな。。
その時はGPL化されてFedora DBになりますからご心配無く。
FSFが買い取って、GNU/DBじゃないの?
FSFにはgdbmがあるからBDBを買い取る理由がない。 Red Hatは自社のLinuxのパッケージデータベースにBDBを使ってる。 おそらくBDBユーザ数としては最大。
QDBMがACIDサポートすればBDB要らなくなるかも
オラクルは InnoDB も買収したが、MySQL の買収には失敗したようだな。
193 :
NAME IS NULL :2006/05/18(木) 23:40:55 ID:237FeIJl
Berkeley DBでデジカメの画像をデータとして入れる時はどうしたらいいの? 教えて下さい。
いや、普通に入れれば入ると思うんだけど。 もうちょっと具体的にどんな言語を使うとかどういう使い方をするとか詳しく。
195 :
193 :2006/05/19(金) 21:35:29 ID:???
>>194 有り難うございます。
いくつか見たサンプルが、いずれもテキスト形式のデータだったので、
バイナリデータは何等かのかたちでエンコードする必要が有るのかなと
思い、確認をしないまま質問してしまいました。
FreeBSD 6.1Rでgccを使っています。
今は郵政公社の郵便番号データをサンプルデータとして、Cで簡単な
プログラムを書きながら使い方を覚えようとしている途中なので、
具体的にこういう使い方をしたいと言えるレベルに達していません。
一応、画像データ、撮影時の情報、データ加工の内容等を
リンクさせて見たいなと思っています。
画像データは結構サイズが大きいのですが(RAWデータだと数十M位)
データの取り扱いで何か注意しなければいけない事など有りますか?
もしよろしければ注意点などお願いします。
画像ファイルはどこかのディレクトリに置いといて、 パスだけDBに入れるってのもアリかもよ。 取り回しが面倒になる欠点はあるが、万一DBが壊れた場合の 復旧とか考えるとそっちの方が安心。
197 :
193 :2006/05/21(日) 22:50:10 ID:???
>>196 先ずはパスを管理するデータベースを作ってみようと思います。
色々質問をしてすみませんでした。
画像データのサイズは数メガの間違いです。
3年掛かりでやっと200レスか。まったりしててよきかな。
あぼーん
200 :
NAME IS NULL :2006/06/16(金) 11:01:21 ID:RZPI+bcx
200get!
もう3年になるのかよ
とっつきにくいからねえ。使ってる香具師も皆無だし、マヌアル本も皆無。
203 :
NAME IS NULL :2006/06/17(土) 15:22:11 ID:UKEJjsFA
>>202 漏れのことを忘れないでくり。
職場のweb上の会議室予約のデータベースに使ってる。
速い、手軽、イイー。
そーすをup汁。 php当たりから呼んでるとか?
>>204 相談に乗りますよ。検索→読みモジュールと書き込みモジュールとあるが
それぞれ20万でどうよ。
perl廚じゃね?
perl cgiで二十万はボッタクリだな。 ハロワに月収18万で募集掛けたほうが安く上がる。
208 :
205 :2006/06/20(火) 02:39:48 ID:tLdLBl3Q
>>206 その通り。モジュール類だけ挙げるとこんなんだす。
#!/usr/bin/perl
use Fcntl;
use SDBM_File;
use Time::Local;
require "cgi-lib.pl";
require "jcode.pl";
&ReadParse;
>>207 吹っかけただけだす。そらあんた、5〜6マソで十分よ。
209 :
NAME IS NULL :2006/06/25(日) 15:14:50 ID:1pslgYqg
499 :心得をよく読みましょう :2006/04/11(火) 20:08:43 ID:YyJFkPDl この文章を見た人には3日後に身の回りで何かとても悪い事が起きます 悪いことを起きなくさせるためにはコレと同じ文を 2日以内に違う所へ5回書き込んでください5書き込まなかった 女子中学生が書き込み見た後 3日後に死にました
210 :
NAME IS NULL :2006/06/27(火) 21:19:12 ID:Q9ml7vJg
やっぱフリーのデータベースなんか流行るとデータベースソフト屋さんは
困っちゃうから、
>>209 みたいな嵐が入るんだろうな。
無料なのにお金が取られることを理解しないクライアントは多いからね。 無料ソフトだと、開発費やサポートも無料か激安になりやすい。
クライアントが有料DBのライセンス料を知っていて、かつ技術畑出身だったりする とまだいいんだけど、オ−プン系技術者募集と称して 「タダソフトみつくろって組み合わせるだけだろ?もったいつけんじゃねえよ」 みたいなとこも(ry
本当にダウンロードしただけのやつにぼったくりの請求する香具師も居るから、客には見分けつかないし。 でも無料ソフトに人件費やサポート料払ってたら、サポート付きの有料ソフトのほうがコストが安かったのは良くある話。 逆にオプソビジネスって、セールソフトを超える利益は見込めない罠。
214 :
NAME IS NULL :2006/08/02(水) 17:37:26 ID:qDpQ3Gjv
>file hoge.db すると、 Berkeley DB (Btree, version 6, native byte-order) と返ってくるファイルがあるのですが、どのようなkeyがあるのか わかりません。 このhoge.dbから、全てのkeyと値のペアを取り出したいのですが、 どのようにすればいいのでしょうか? Cかperlでお願いします。
215 :
214 :2006/08/02(水) 18:15:40 ID:???
use Fcntl; use DB_File; tie my %db, 'DB_File' , "hoge.db", O_RDONLY, 0644, $DB_BTREE or die "$!\n"; foreach (keys %db) { print $_, "\n"; } ↑だと Inappropriate file type or format こんなエラーが出ます。
216 :
214 :2006/08/03(木) 10:45:05 ID:???
あ、ゴメンできたからいいや
どう出来たかぐらい示せばいいのに。 自分だけ良ければいいという自己中ですか?
保守
db_statとかdb_dumpとか使えばよろしい
220 :
NAME IS NULL :2006/11/29(水) 21:23:38 ID:rpmcvwmj
update!
221 :
NAME IS NULL :2006/12/14(木) 10:20:25 ID:0UD4Qre0
臣堕駄だ陀雫 臣 心 仲間 ありがとう 心 臣 神 仲間
222 :
本田 :2006/12/27(水) 19:24:32 ID:E124N8nx
224 :
本田 :2007/01/22(月) 22:18:44 ID:oPb/cak0
225 :
NAME IS NULL :2007/02/16(金) 17:03:13 ID:KreXA7+o
BerkeleyDB.pm からトランザクションサブシステムを有効にしたDBを扱ってるのだけど、 どれだけ使っていてもログファイルが log.0000000001 から進まない。 これってどういう状況なのでしょう。 DB_ENVなどに何か良からぬフラッグが渡っているのではないかと BerkeleyDB.pm の 関連ソースを眺めてもそれらしいことをしている部分はないし、或いは berkeley db 本体の コンパイル時に何か問題があったのでしょうか。。。 どなたか詳しいかたご助言を。
ログ管理は別ソフトなんじゃないの? syslogdみたいなのとかさ。
自前でログ管理の仕組みは無い。 ただテキストファイルにログを吐く単純な機能しかない。
228 :
225 :2007/02/19(月) 14:34:34 ID:???
どうも mod_perl 環境で動かしているのが色々と意図しない動きの原因のような気が… 引き続きさっぱり分からないです…
mod_perlからだと多重で呼ばれると思うが、DB壊れないの?
231 :
225 :2007/02/22(木) 13:32:05 ID:???
>>229 普通に書くとトランザクションがオープンできないですね。
普通に書いて動くようにするために mod_db4 なるものがあるのだけど、
いきなりコンフィグが通らなくて、その先あらゆる苦労をしそうだったので却下しました。
232 :
225 :2007/02/22(木) 13:35:20 ID:???
それで、今は $db=BerkeleyDB::Hash->new(-Filename =>$f, -Flags=>DB_JOINENV); $db->get_env()->txn_begin(); が通るように BerkeleyDB.xs を改造中なのだけど、これが……
コードを示さずに独り言をつぶやかれてもなあ。 と、コードを示されてもわからなそうな俺が独り言をつぶやいてみました。
まあ普通はMySQL経由でbdb4使ったりするね。
dirファイル見て吹いたw --- [depot]^@^K ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ´∀`)< NDBM Compatibility ( ) \_________ | | | (___)_)
Berkeley DB の source みてるんだけどさ、off-page / on-page とか duplicates とかってなに?? 意味和姦ね。おしえて。
OpenLDAP2.3stableに合うBDBがわからねぇYO(´・ω・`)
息の長いスレだな・・・
何ヶ月レスがつかないか見守ってたのにさ! プンプン
勉強しに来ました
最近はBerkeley DBやgdbmではなく、sqlite使う例も増えているのかな?
242 :
NAME IS NULL :2008/07/18(金) 13:04:32 ID:+Axli2lw
>>93 シーケンシャルデータ。
大部分のデータは末尾に追加するだけだから
シーケンシャルデータベースの方がスペース効率がいい。
BerkeleyDBであそんでみたく cpanモジュールを install BerkeleyDB してみたところ BerkeleyDB.xs:74:2: #error db.h is from Berkeley DB 1.x - need at least Berkeley DB 2.6.4 なるエラーが出てとまってしまいました。 Berkeley DBのバージョンが低いようなのですがどうやってバージョンアップすればよいでしょうか。 環境は さくらのスタンダードプランでやっています FreeBSD 6.1 perl 5.8.8 BerkeleyDB バージョン不明(※バージョン調べ方わかるかたいましたら教えて頂けると幸いです)
244 :
NAME IS NULL :2008/10/29(水) 22:37:05 ID:qdal0jl9
dbm_fetch で取得されるデータはfreeしてあげる必要があるんでしょうか?? qdbmでは、「`dptr' の指す領域はハンドルに関連づけられて確保され、 同じハンドルに対して次にこの関数を呼び出すか、ハンドルを閉じるまで、 有効なデータを保持する。」 となっていますが、gdbmではプログラマの責任でfreeしろと書いてあります。 移植性のあるコードを書くためには、どのライブラリを使ってるのかで 処理をわけるべきなんでしょうか?
245 :
NAME IS NULL :2009/01/19(月) 23:14:06 ID:aLajSnjE
RDBMSのようにkeyに複数のvalueを当てるのはどうすればよいのでしょうか。
リストでも突っ込め
データ突っ込む時のキーってどうやって決めてる? R_LASTでseqして得られたキーにインクリメントしてputって感じ? それともデータのハッシュ値とかunix時間でも突っ込むべき?
248 :
本田 :2009/04/14(火) 23:52:37 ID:2S7IsnOh
Oracle Berkeley DB Product Family
http://www.oracle.com/technology/products/berkeley-db/index.html The Oracle Berkeley DB family of open source, embeddable databases provides developers with fast, reliable, local persistence with zero administration.
Often deployed as "edge" databases, the Oracle Berkeley DB family provides very high performance, reliability, scalability, and availability for application use cases that do not require SQL.
249 :
ブラックマジシャン :2009/05/11(月) 19:55:02 ID:Po/EPjmw
岐阜県中津川市立福岡中学校同窓会SNS
250 :
NAME IS NULL :2010/02/27(土) 08:08:24 ID:aPiEjk1k
カキコミテスト
RPM5のDBにsqliteを使うかBerkeleyを使うか悩んでるんだけど、どっちがお薦めですか?
252 :
NAME IS NULL :2011/04/23(土) 21:46:11.58 ID:0ohSTg5e
これ使ってる有名なソフトウェア、ミドルウェアはあるのか?
有名なMTAはどれも使えるだろ
mta程度じゃ実感する事も無いね。テキストファイルでも別に動いてしまいそう。 メール来る度に.forward読んで処理してるくらいだしね。
MTA も規模によるべ。
∧_∧
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ ←
>>155 (_フ彡 /
257 :
NAME IS NULL :2013/01/26(土) 19:36:56.11 ID:Hdv5kXG5
亀レス乙
258 :
NAME IS NULL :
2013/03/20(水) 07:41:36.82 ID:vIKc7Kkm ※本投稿の拡散歓迎です。 違法派遣(偽装請負・多重派遣・偽装出向・事前面接等)についての刑事罰 【告訴権者=業務委託、準委任、共同受注、業務請負契約および特定派遣(契約・正規)、一般派遣、正規社員】 @職業安定法第44条の労働者供給事業の禁止規定に違反(1年以下の懲役または20万円以下の罰金) ■偽装請負・多重派遣・偽装出向・多重出向 ■事前面接(顔合わせ・面談・職場見学等)と履歴書・職務経歴書・スキルシート等提出による労働者の特定(※) (音声録音で立証可能) A労働基準法第6条(中間搾取の禁止) (1年以下の懲役又は50万円以下の罰金) ■多重派遣・多重出向 ※違法派遣(派遣労働者の特定)→派遣法で認められた派遣労働者ではない→労働者供給事業→職業安定法44条違反というの が前提となる法解釈となります。派遣法における罰則が軽微なのは法律の不備や労働者軽視などが原因ではありません。 違法派遣は全て職業安定法44条で裁くことが可能なため、刑罰の重複を避けるために派遣法には軽微な罰則(主に裁量行政による)しかないのです。 使用者に有利な民事訴訟や労働関係諸局への通報等の対極にあるのが書面(告訴状)による刑事告訴(※告訴先は検察の直告班)です。 労働関係諸局への通報・斡旋による軽微な「適正化」や監督・指導に対して、法律に定められた刑事罰を問うことになり、 違法派遣業者にとって有罪は考えられる限り最大の処罰となります。同時に刑事罰を受けた 担当者が取引先に与える悪印象を考慮すれば、通常会社側は告訴が受理された時点で告訴取り下げに 動くのが妥当でしょう。懲役、前科がつく刑罰が下される可能性から、告訴取り下げの和解金は高額となることが多いのです。 告訴の流れとしては、 刑事告訴⇒告訴受理⇒告訴取下げ要請⇒取下げ和解金入金⇒告訴取下げ となります。告訴の懲役刑適応は犯罪者個人に対してのみですので、告訴する対象は 派遣先・派遣元 社長 派遣先・派遣元 担当者・責任者・管理役員・取締役 派遣先・派遣元 人事管理担当者・人事管理役員・取締役 が妥当です。刑事告訴取り下げの和解金額は犯罪者個人と交渉するとよいでしょう。(告訴状は人数分提出する必要あり)