問題タブ [opensplice]

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 に答える
949 参照

c++ - org::opensplice::core::DWDeleter::DWDeleter への未定義の参照

私は OpenSplice を初めて使用し、ここから簡単なチュートリアルに準拠したいと考えていました。

https://github.com/PrismTech/dds-tutorial-cpp-ex

私は OpenSplice Community Edition をダウンロードし、release.com ファイルを入手しました。

次に、dds-tutorial-cpp-ex git リポジトリのクローンを作成し、ch1 のビルドを試みました。

残念ながら、「org::opensplice::core::DWDeleter::DWDeleter(std::shared_ptr const&) への未定義の参照があります。

ライブラリは、この参照を定義libdcpsisocpp.soするリンク ターゲット ( https://github.com/PrismTech/dds-tutorial-cpp-ex/blob/master/cmake/FindOpenSplice.cmake#L56を参照) に追加されます。

HDE/x86_64.linux/custom_libフォルダーに変更して実行することで、ライブラリを再構築しましたが、make -f Makefile.Build_DCPS_ISO_Cpp_Libエラーは発生しませんでした。

なぜこのエラーが発生するのですか? どうすれば修正できますか?

私のシステムは Ubuntu 14.04 amd64 です。

OpenSplice のバージョン: OpenSplice HDE リリース V6.4.140407OSS for x86_64.linux、日付 2014-04-15

編集: 同じ問題が OpenSplice OpenSplice HDE Release V6.5.0p1 For x86_64.linux、Date 2015-03-19 に存在します。

エラーは次のとおりです。


注: クロスポスト (回答なし): http://forums.opensplice.org/index.php?/topic/2517-undefined-reference-to-orgopensplicecoredwdeleterdwdeleter/

0 投票する
0 に答える
551 参照

java - JNI コードがクラスローダー全体で env->FindClass() を使用する場合の Tomcat segfault

Oracle JRE (1.8u40) を使用して Tomcat (8.0.21) 内で OpenSplice DDS (6.1.0p5、PrismTech ディストリビューション) を使用する Web アプリケーションを実行するのに問題があります。

バックグラウンド

私たちのコードは OpenSplice ライブラリ dcpscj.jar、dcpssaj.jar、dlrlsaj.jar を使用しています。ライセンスとメンテナンスの理由から、これらは通常の WEB-INF/lib の WAR ファイルに組み込まれるのではなく、外部ディレクトリ /opt/OpenSpliceDDS/V6.1.0p6/HDE/x86.linux2.6/jar にホストされます。

setenv.sh

tomcat classloading documentationに従って、conf/catalina.properties の common.loader プロパティを介してライブラリを利用できるようにすることにも成功しました。

問題

CLASSPATH と common.loader の両方のアプローチで、WAR がデプロイされると、Tomcat は一貫して SIG_SEGV でクラッシュします。

スタックの上部

分析

この問題は、JAR が WEB-INF/lib の外部にある場合にのみ発生します。JAR が WEB-INF/lib に「埋め込まれている」場合、Tomcat はクラッシュしません。

org.example.dds.example_topic_typeTypeSupport (anonymised) は、OpenSplice によって生成されたコードであり、WEB-INF/lib に個別の JAR としてパッケージ化されています。

example_topic_typeTypeSupportFooTypeSupportImpl.registerType()を呼び出し、クラス名を IDL 形式 "org::example::dds:example_topic_type" の文字列として JNI 部分saj_fooTypeSupport.cに渡します。

理解するのは難しいですが、最終的に env->FindClass は Java バリアント、つまり org.example.dds.example_topic_type で呼び出されると思います。これは、segfault を引き起こす jni_GetMethodID に渡される NULL を返しているようです。

FindClass のドキュメントによると、使用されるクラスローダーはネイティブ メソッドをホストするものです。

FindClass は、現在のネイティブ メソッドに関連付けられているクラス ローダーを見つけます。つまり、ネイティブ メソッドを宣言したクラスのクラス ローダーです。ネイティブ メソッドがシステム クラスに属している場合、クラス ローダーは関与しません。

これは、クラスローダが dcpssaj.jar にある FooTypeSupportImpl をロードするために使用されるものであることを意味します。このクラスローダーは、WEB-INF/lib/topics.jar にあるトピック定義を認識できません。

Tomcatクラスローディングのドキュメントでは、各モジュールのプライベート クラスローダーについて説明しています。

質問

  • Tomcat に追加の JAR ファイルを含め WEB-INF/lib で他の JAR をロードするために使用される同じクラスローダーによってそれらをロードする方法はありますか? クリーンな構成ベースのソリューションを探しています。シンボリックリンクを含む回避策や、展開時にスクリプトを介して DDS JAR を WAR ファイルに移植することを既に検討しています。
  • この問題を回避するために OpenSplice DDS を構成する方法はありますか?
0 投票する
1 に答える
388 参照

data-distribution-service - OpenSplice (DDS) へのデータの送信

私はDDSとopenspliceを初めて使用するので、これは簡単かもしれませんが、理解できません。

私は、opensplice のドキュメントでリーダー キャッシュとライター キャッシュについて読んでいます。データが datawriter キャッシュに入り、datareader キャッシュに送信されることを理解しています。しかし、そもそもどのようにして持っている情報を datawriter キャッシュにプッシュするのでしょうか?

そのための別のコマンドはありますか?それとも、デバイスまたはアプリケーションをトピックに発行またはサブスクライブするときに、データが自動的にキャッシュに送信されますか?

全体として、私の質問は、どのようにしてデータが opensplice/datawriter キャッシュに入るのかということです。

助けていただければ幸いです。私が言ったように、私はチュートリアルとリファレンス ガイドを読んでいます。情報がopenspliceにあるときに何が起こるかについてはよくわかりますが、そこにどのように配置するかわかりません. 可能であれば、例にもリンクしていただけますか?

ありがとう

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

data-distribution-service - ワイルドカードを使用して類似の DDS トピックのグループにサブスクライブする方法

私はデータ配信サービス (DDS) を初めて使用します。ワイルドカードを使用して DDS のトピックのグループにサブスクライブできるかどうか知りたいです。似たような名前のトピックからまとめてデータを受信できるようにします。たとえば、IN_Temperature、NEP_Temperature という 2 つのトピックがあります。温度を持つ名前を持つすべてのトピックをサブスクライブする方法があります。

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

iot - 渦霧渦ゲートウェイ統合

データ配信サービスは初めてです。DDS に PrismTech 製品を使用しています。ネットワークに vortex lite があります。パブリック クラウドで vortex ゲートウェイと対話するために、vortex fog サービスを使用しています。しかし、相互作用を確立することができませんでした。誰でも同じことを入力してください。

ネットワークで実行されている DDS サブシステムがあり、そこからのデータをクラウドで実行されている vortex ゲートウェイと共有する必要があります。この目的のために、vortex fog を使用しようとしています。ボルテックス フォグの構成で、クラウド サーバーのパブリック IP について言及しました。ネットワークで実行されているサブシステムから dds データを受信するために、クラウドで実行されている vortex ゲートウェイ サブスクライバー ジョブがあります。

フォグ サービスは、NAT の背後の LAN で実行されています。フォグサービスを実行するための構成を以下に設定しました

クラウド サーバーでは、さまざまなトピックにサブスクライブする渦ゲートウェイを実行しています。

この問題を解決するために私を修正/ガイドしてください

0 投票する
3 に答える
5572 参照

c# - DDS - OpenSplice と CoreDX のどちらが推奨されますか?

DDS(データ配信サービス)を使用するには、C#winformアプリとAndroidネイティブアプリケーションが必要です。それぞれがサブスクライバーおよびライターになることができます。私にとって重要なこと:
- 高性能。
- 使いやすく、ドキュメントも簡単です。
- サポート。
- 低価格。

OpenSplice と CoreDX のどちらを使用することをお勧めしますか?
それらの違いは何ですか?

感謝

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

c++ - OpenSplice DDS: 発行、タイムアウトまで

私は毎日 dds について学んでいるので、私の質問は奇妙に聞こえます。それが理にかなっていることを願っています。

私が書いている一部の dds ラッパーの要件の 1 つは、書き込みに失敗した場合、一定のタイムアウト期間の後にタイムアウトすることです。私の質問:どうすればそれを行うことができますか?

Prism Tech の Web サイトのチュートリアルでは、a を使用して読み取り操作をブロックする方法が説明されていますWaitSetが、書き込みはどうでしょうか。

質問を含むいくつかのコードを次に示します。

API に関数が存在することに気付きましたが、これは書き込みの特定の呼び出しではなくDataWriter::wait_for_acknowledgements(int timeout)、オブジェクトにバインドされているようです。DataWriter上記の呼び出しでバインドできますか?