問題タブ [mnesia]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
988 参照

transactions - Erlang Mnesia のネストされたトランザクションが中止されました

私は次のコードを持っています:

そして、私はこのエラーを受け取ります:

私はただ走ることができた

しかし、テーブル名が複数のノードに断片化されているため、mnesia_frag モジュールを使用する必要があると考えました。

私は何を間違っていますか?そして、それはどのように正しいでしょうか?ありがとうございました。

0 投票する
2 に答える
854 参照

database - mnesiaからランダムレコードを選択

t単一のフィールドを持つレコードを含むmnesiaテーブルがありますx。ランダムな値を選択するにはどうすればよいxですtか?

数学的衒学のプロセス全体を回避するために、乱数生成の詳細は気にせず、結果が毎回同じにならないようにしたいだけです。

ありがとう、
-tjw

0 投票する
1 に答える
758 参照

erlang - これは、マルチクライアントアプリ用のErlangネットワークサーバーを構築する正しい方法ですか?

Erlangを使用してマルチプレイヤーボードゲーム用の小さなネットワークサーバーを構築しています。このネットワークサーバーは、Mnesia DBのローカルインスタンスを使用して、接続されている各クライアントアプリのセッションを保存します。このローカルMnesiaに保存されている各クライアントのレコード(セッション)内に、クライアントのPIDとNODE(クライアントがログインしているノード)を保存します。

このネットワークサーバーを少なくとも2台の接続されたサーバー(ノードAとB)に展開する予定です。したがって、ノードAにログインしているクライアントAがノードBにログインしているクライアントBを検索(Mnesiaへのクエリ)できるようにするために、MnesiaセッションテーブルをノードAからノードBに、またはその逆に複製します。 。

クライアントAがクライアントBのPIDとNODEを照会した後、クライアントAとBは互いに直接通信できます。

これは、2つの異なるErlangノードにログインしている2つのクライアントアプリ間の接続を確立する正しい方法ですか?

0 投票する
1 に答える
996 参照

erlang - Mnesiaレコードの時間関連の制約を効率的に処理するにはどうすればよいですか?

私は記録をmnesiaに書き込んでいますが、それは許可された時間(24時間)だけそこに保持する必要があります。24時間後、ユーザーがそれらの一部を変更する前に、システムはそれらを自動的に削除する必要があります。たとえば、ユーザーには、特定の時間に使用する必要のある無料の通話時間(音声通話用)が与えられます。使用しない場合は、24時間後に、システムはこれらのリソース予約をユーザーレコードから削除する必要があります。

さて、これはタイマーをもたらしました。レコード構造の例は次のとおりです。

レコード内のタイマーオブジェクトは重要です。ユーザーがタイムアウトする前に予約されたリソースを最終的に使用した場合(またはタイムアウトした場合)、システムはtimer:cancel/1このオブジェクトからタイマーサーバーを解放するために呼び出すことができます。問題は、これらのレコードのタイマーを処理する2つの方法があります。

オプション1:トランザクション内で処理されるタイマー

上記のオプションについて。

Mnesiaのドキュメントによると、トランザクションは(何らかの理由で)成功するまでtmマネージャーによって繰り返されるio:format/2可能性があるため、書き込みや読み取りとは関係のないコードを配置すると、トランザクションが数回実行される可能性があります。このステートメントにより、この時点で一時停止し、トランザクション自体からタイマーを処理する方法を考えたので、コードを次のように変更しました。

オプション2:トランザクション外で処理されるタイマー

予約のタイムアウトを処理するためのコード:

オプション2では、理由によりmnesia_tmがトランザクションを再実行した場合でも、タイマー処理コードを除外する方が安全だと思いました。このコードは2回実行されません(同じものに対して複数のタイマーオブジェクトを使用しないようにします)。記録)。

質問1:これら2つの実装のどちらが正しいですか?および/または間違っていますか?(また)両方が間違っているかどうか教えてください

質問2:モジュールタイマー、本番環境で多数のタイマージョブを処理するのに適していますか?

質問3: mnesia上で実行されるSean Hindeのtimer_mn-1.1と比較して、タイマーモジュール(おそらくEtsテーブル上で実行される)は本番環境で(実際には)機能が劣っていますか?(それ自体がmnesiaを使用しているシステムでSean Hindeのtimer_mnを使用することは、スキーマの変更、ノードの問題などの点で問題があるように見えるため、これを求めています)

誰かがmnesiaのタイマー関連の問題を処理する別の方法を持っているなら、私に更新してくださいありがとうみんな...

0 投票する
1 に答える
2257 参照

erlang - DCD/DCL を扱う記憶喪失症

私は私のejabberdを爆破しました。何が壊れているのか本当にわかりません。とにかく、後でそれを見てみましょう。私が必要としているのは私の名簿です。すべてが mnesia db に保存されます。

連絡先を抽出したい (覚えておいてください、ejabberd を開始できません。erl は動作しています)

どうすればこれを最善の方法で行うことができますか? 私は erlang や mnesia を使ったことはありません。ファイル roster.DCD に自分の名簿が含まれていると思われます。

今のところ、そのファイルの内容をテキストファイルにダンプするだけで十分です...

どんな助けでも大歓迎です:-)

敬具

0 投票する
1 に答える
522 参照

erlang - プロセスを簡素化する方法または分散型記憶喪失を開始する方法

現在、私はゲームサーバーを開発しています。私のアーキテクチャは、各ゲームサーバーが最初に起動したときに mnesia db をインスタンス化することです。2 番目のノードを作成したいとします。私の計画は、単純に同じゲーム サーバーをその 2 番目のノードにデプロイすることです。

私の問題は、ゲーム サーバーの 2 番目の展開で、最初のノードで mnesia のインスタンスを自動的に検出し、そのデータベース スキーマをコピーして、最初のノードにクラスターになることです。

http://code.google.com/p/schemafinder/で schemafinder プロジェクトを確認しましたが、その方法を実装したいのですが、かなり複雑に思えます。

私に何らかの啓蒙を与えてくれる人がいるなら、私はもっと感謝します.

前もって感謝します

0 投票する
1 に答える
219 参照

erlang - 窒素リッスンIPアドレスについて混乱

Windows 7 Home Premium、HP PavilionEntertainmentPCラップトップでNitrogen2.0.Xを実行しています。窒素はinetsで始まり、WebサーバーのIPアドレスを変更または指示できませんでした。起動すると、ブラウザに移動して、http://localhost:8000以下のシェル出力を押すように指示されます。

利用可能なほとんどすべてのブラウザでリンクを押すと、ページが見つからなかったことがわかります。エミュレーターにポートについて尋ねると、これがその出力です。

whileinet6_tcpを使用するということを意味する強い考えを持っていますが、これについてはよくわかりません。しかし、全体として、私は自分の窒素に接続できません。以下は実行中のアプリケーションですIPv6inet_tcpIPv4

http://localhost:8000上記の観察結果を踏まえて、ブラウザを押すだけではローカル窒素フレームワークに到達できない理由を誰かが説明できますか?また、ブラウザから接続するにはどうすればよいですか?

0 投票する
1 に答える
649 参照

erlang - 同じ列を持つ複数の Mnesia テーブルを作成する

Mnesia で以下のスキーマを作成したいと考えています。t1、t2、および t3 と呼ばれる 3 つのテーブルがあり、それぞれに次のレコードの要素が格納されます。

私はテーブルを作成しようとしました:

次に、次の行を使用してコンテンツを書き込みます (P と E には値があります)。

しかし、私は悪い型エラーを受け取りました。(関連するコマンドはトランザクションに渡されたので、同期の問題ではありません。)

Mnesia の教科書の例はすべて、異なるレコードに対して異なるテーブルを作成する方法を示しています。誰かが同じレコードに対して異なるテーブルを作成する例で返信できますか?

0 投票する
5 に答える
2250 参照

javascript - Erlang と JavaScript MD5 ダイジェストの一致

ここで MD5 の Javascript 実装をテストします。http://www.webtoolkit.info/javascript-md5.htmlは、次の出力を提供します。

私のアーラン シェルに行き、同じ値の MD5 を計算すると、次のようになります。

2つを比較するにはどうすればよいですか?JavaScript フロントエンド アプリからの MD5 の結果が Erlang バックエンドに届いた場合、2 つのダイジェストを比較できるようにしたいと考えています。JavaScript MD5 ダイジェストを Erlang のダイジェストと一致させるにはどうすればよいですか?

0 投票する
1 に答える
166 参照

erlang - OTP14B02構成エラー

OpenSolarisにOTP14B02をインストールしようとしましたが、呼び出し時に次のエラーが発生します./configure

この問題の原因は何で、どうすれば解決できますか?