問題タブ [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.
erlang - Erlang Mnesia で複数列のインデックスを作成して使用 (またはシミュレート) するにはどうすればよいですか?
私は Mnesia のドキュメントと 3 つの有名な Erlang の本に目を通しました。単一列のプライマリ インデックスとセカンダリ インデックスのみを作成して使用できるようです。それとも、例がカバーしているだけなのでしょうか? 各列に個別のインデックスを作成した場合、Mnesia は複数列のキー インデックス検索をシミュレートするためにそれらをインテリジェントに使用できますか? もしそうなら、パフォーマンスは単純なテーブルスキャンよりもはるかに優れていますか?
複数列のインデックス作成が Mnesia でサポートされていない場合、そのネイティブ dbms を考えると、Erlang でこの機能をシミュレートした人がいます。
2 番目の質問: 制約 (参照、チェック)、トリガー、およびイベントベースの通知をシミュレートするのはどうですか?
erlang - ejabberd の初心者が完全に機能する ejabberd サーバーをセットアップするにはどうすればよいですか?
私はejabberdに完全に慣れていません。Windows と Linux (Ubuntu) の両方のインストールをダウンロードしました。Web のどこかで、インストール方法とセットアップ方法のデモを見たことがありますが、インストールは「デモ」として構成されていました。pidgin XMPP クライアントを使用していますが、ejabberd のセットアップで問題が発生しています。
もう 1 つの問題は、バックエンドに Nitrogen のコメット プールと erlang ETS テーブルを備えたチャット システムを開発しようとしたことです (現在、ets テーブルに組み込まれているフェイルオーバー メカニズムのおかげです)。
だから今、私はejabberdに決めました。バックエンド エンジンとして ejabberd を使用して内部組織のチャット システムをカスタマイズするにはどうすればよいですか。組織内の全員がクライアントとして Pidgin をダウンロードするのではなく、Web インターフェイスにチャット機能を組み込みたいと考えています。
Erlang、Yaws、Mnesia、Inets、Mochiweb などでは問題がないので、ejabberd の上にいくつかの Gen サーバーを使用して erlang アプリケーションを開発する必要があるとしても、それは問題になりません。
erlang - erlangノードが応答していません
私はfirst@localhostノードのerlangcondoseでそのようなメッセージを受け取りました
私の質問は-この場合のタイムアウトとは何ですか?このイベントが発生するまでにどのくらいの時間がかかりますか?この「恐怖」を防ぐ方法は?ノードを再起動するだけで通常の作業に復元/回復できます...しかし、正しい方法は何ですか?
ありがとう、そして明けましておめでとうございます!
erlang - localhost で ejabberd を実行してテストしていますか?
HP パビリオン (Windows 7 を実行しているエンターテイメント ラップトップ) に ejabberd をインストールしましたが、インストール中にサーバー ドメインに入るように求められました。試してみたかったので、「localhost」と入力しました。起動しようとすると、Web管理インターフェイスにエラーが発生したことが示されます。3つのログファイルを確認しても、エラーが見つかりません。一部のポートがブロックされているようです。しかし、ログにエラーはありません。XMMP クライアントまたは jabberlang-XMPP ドライバーを使用してローカルホストでテストできるようにするには、どうすれば起動して実行できますか。
br>Firefox でこのクライアントを実行していて、ログインすると、作成した processOne IM フリー サーバー [username@name.p1.im] ではなく、Gmail にいる友人のプレゼンス情報が提供されます。しかし、私はこれらの友人と、Gmail アカウントで直接チャットすることができました。独自の ejabberd サーバーをインストールした場合、これをどのように使用できるかを理解する必要があります。jabberlang XMMP クライアント ライブラリに関するリソースを教えてください。ありがとう
/joshmuza@gmail.com
erlang - mnesia DBMS で増分カウンターを管理していますか?
mnesia は、MySQL や他の RDBMS のように自動インクリメント機能をサポートしていないことに気付きました。mnesia のドキュメントで説明されているカウンターは、あまりよく説明されていません。たとえば、ドキュメント全体でカウンターを操作する関数が1つ見つかりました
したがって、これはしばらくの間、タイプのレコードで機能するため、私を悩ませていました
れも不明確であり、おそらく Erlang の本や mnesia のドキュメントで説明する例が提供されていないためです.これにより、私は独自のカウンター操作 API を実装する必要がありました.私のレコードに「カウンター」と呼ばれるフィールドを含めてから、カウンターを持つことを目的としたテーブルにレコードを追加する時点で、私は次のようにします:カウンタ フィールドの位置は重要ではありません。API は次のように実装されます。
これを説明するために、カウンターフィールドがテーブルの属性でない場合、このコードを実行しようとしているプロセスを強制的に終了させます。 catch ...) of body 、彼らは何が悪いのか簡単にわかります。または、このコード フラグメントがトランザクション内で実行されているかどうかを確認することもできます。mnesia:is_transaction()
これが true を返す場合は を呼び出しmnesia:abort/1
、false の場合は理由を付けて終了できます。また、mnesia アクティビティ関数で mnesia_frag を使用します。テーブルの断片化プロパティに関係なく動作します。 を使用するmnesia:transaction(Fun)
と、この呼び出しは最初のフラグメント (ベース テーブル) にのみアクセスするため、断片化されたテーブルの一貫性が失われます。
ここで、カウンターを含むテーブルからレコードが削除されると、テーブル内の順序を再配置する必要があります。この操作は、テーブル全体での反復が必要なため、コストがかかります。カウンター = 5 のレコードを削除すると、カウンター = 6 のレコードをカウンター = 5 にする必要があるため、パターンに従います。カウンターが削除されたものより大きかったすべてのレコードは、デクリメントする必要があります。したがって、削除されたカウンター値と TableName を渡すことで、mnesia:foldl/3 or mnesia:foldr/3 , the difference between these two comes in only with ordered table types
これを処理する関数を使用してテーブルを反復処理できます。
レコードからカウンター フィールドの位置を動的に見つけるのに役立つコードがあることに気付きました。これを行うのに役立つコードを以下に示します。
これは、このモジュールがプログラマーのカウンターを支援するために、プログラマーのレコードを認識してはならないためですelement(N::integer(),Tuple::tuple())
。レコードの表現を動的に。
たとえば、qlc (クエリ リスト内包表記) を使用して、動的な制約を持つテーブルをクエリする場合、次のコードを検討してください。
在庫管理システムでは、これは機能しています...
これは私のために働いています。他にどのようにカウンターを処理すればよいか教えてください。または、その側でそれらをどのように処理するか教えてください.
erlang - 力負荷記憶喪失
私が理解しているように、force_load_table/1 を使用して mnesia でテーブルを強制的にロードできます。
この機能の使用例を示していただけますか?
erlang - mnesia: 集中使用表
このようなメッセージを受け取ると、次のようになります。
どのテーブルが集中的に使用されているかを知るためのアプローチは何ですか? どのような種類のデバッグを行う必要がありますか?
ありがとう。
mysql - Ejabberdmnesiaデータベースをmysqlに
ejabberdサーバー(DCD、DCL、およびDATファイル)からmnesiaデータベースダンプがあり、このデータベースから可能なデータを回復しようとしています。それをある種のSQLデータベースに変換するのが理想的ですが、私は単純なテキストダンプに落ち着きます(そこからおそらくデータベースを再構築できます)。
私はerlang/mnesiaの初心者ですが、オンラインドキュメントから何とかできました:
テレビが起動すると、テーブル名が表示され、レコードが0であると表示されます。もう一度メモリにロードする方法があると思いますが、ドキュメントに基づいてその方法をまだ理解していません。
私が持っていた別の考えは、ejabberdの別のインストールを使用してロードしようとすることでしたが、ejabberdctlを使用してこれを行う唯一の方法は、テキストファイルからロードすることです。
このデータベースをロードしてSQLにダンプするか、SQLでインポートできる形式にダンプするにはどうすればよいですか?私は何が欠けていますか?
更新:私はこのデータベースを次のような一時的なejabberdサーバーに復元しようとしています:
最初のコマンドは失敗し、私は人と機械の間の戦争にすぐに負けていると結論せざるを得ませんでした。私は前向きではありませんが、ホストとしてejabberdを使用すると、ノードとしてlocalhostが使用されると思います。何か案は?
更新:デフォルトのejabberd dbをエクスポートしようとすると、{{badmatch,{error,eacces}}
他のエラーが発生するため、権限の問題である可能性があります。 このメールにはエラーが表示されていますが、理由はわかりません。
erlang - ファイル パスの問題により、Rabbitmq erlang クライアントのビルドが失敗しましたか?
ubuntu Linuxでrabbitmqサーバーを構築できました。あらかじめパッケージ化されており、作成後にサービスとして開始できます。クライアントソースを入手したとき、./deps/rabbitmq-server というフォルダーが必要なように見えたため、作成に失敗しました。コードを分析すると、クライアントの作成者は、「amqp_client.hrl」というヘッダー ファイルで include_lib("rabbit.hrl へのパスなど") を使用して、サーバーにあるのと同じヘッダー ファイルにアクセスしていたことがわかりました。次に、vm の起動時にそのパスが自動的に追加されるように、erlang の lib ディレクトリに rabbitmq_server を追加することにしました。しかし、それでもこれは役に立ちませんでした。クライアントが参照する「rabbit_common」という別のフォルダーもあり、インクルード フォルダーにはすべての .hrl ファイルが含まれていると想定されます。
また、誰かが IM に RabbitMQ サーバーを使用したことがある場合は、そのスループット、速度、およびユーザー数に関するベンチマークおよび/または調査結果を提供してください。ejabberd とどのように比較できますか。Web 機能用の AJAX/Jquery/Javascript クライアントを作成するにはどうすればよいですか? ありがとう
database - メールボックスの構造
私は単純な pop3 サーバーをアーランで書いています。ここで、mnesia などのデータベースを使用してメール ボックス ストアを作成したいと考えています。メールボックスのテーブルとデータスキームの最適な構造は何ですか?
2 番目の質問です。db にアドバイスが必要です。この点について、mnesia についてどう思いますか?
返信ありがとうございます。
そして最後の質問:
MAILDIR 形式または MAILDIR の小さな mod を使用する場合、たとえばサンダーバードなどのメールクライアントが MAILDIR を使用して pop3 サーバーとどのように連携するかについての情報はどこで入手できますか? または、サーバー内のメールストアに依存せず、すべてのクライアントが RETR num pop3 コマンドでメールを取得しますか?
ありがとうございました