問題タブ [iiop]

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

winsock - SIO_GET_INTERFACE_LIST 制御コードを使用して WSAIoctl によって返されるネットワーク インターフェイスを並べ替える方法

WSAIoctlWin32 WinSock関数の機能によって返されるネットワーク インターフェイスの順序を指定する方法はありSIO_GET_INTERFACE_LISTますか?

バックグラウンド:

Windows で ACE/TAO CORBA 実装を実行するネームサービスに、IIOP.NET CORBA 実装を使用して実装されたクライアントが使用する必要がある ACE/TAO ベースのサービスが登録されている異種 CORBA システムがあります。IIOP.NET ベースのクライアントは、別の Windows マシン上にあります。ACE/TAO マシンには複数のネットワーク インターフェイス (クライアント マシンがアクセスできるのはそのうちの 1 つだけ) があるため、複数の IP アドレスがあります。

IIOP.NET クライアントはネームサービスに接続し、使用する必要がある登録済みサーバー CORBA オブジェクトへのプロキシを取得できますが、プロキシを使用しようとすると例外がスローされます。

デバッグにあまりにも多くの時間を費やしたことに基づいて、IIOP.NET がサービスを要求されたときにネーム サービスが返す CORBA IOR 文字列の最初の IP アドレスにしか接続を試みないことが問題であるという結論に達しました。IOR 文字列は、IP アドレスを含むオブジェクトの説明です。ほとんどの CORBA クライアントは、IOR 文字列内のすべてのアドレスを使用してサーバー オブジェクトに接続しようとしますが、IIOP.NET はそうしないようです。

IOR 文字列を生成する ACE/TAO コードは、WinSockWSAIoctlコマンドと制御コードSIO_GET_INTERFACE_LISTを使用して、ボックス上のネットワーク インターフェイスのリストを返し、それらすべてを IOR 文字列に追加します。問題は、最初の IP アドレスが、IIOP クライアントが使用するネットワーク上にないものであるため、IIOP.NET クライアントがその IP アドレスを使用してサーバー オブジェクトに接続しようとすると、明らかに失敗し、正しい IP アドレス。ACE/TAO などの他の CORBA クライアントはすべての IP アドレスを試し、この構成で動作します。

私はネットワーキング/CORBA の神ではないので、ACE/TAO や IIOP.NET を変更しようとするのは現実的ではありません。このシステムで 2 つの別々のネットワークを使用するのには十分な理由がありますが、最初のデフォルト IPによって返されるアドレスはWSAIOCtl、クライアントが必要とするものであり、その IP アドレスが IOR 文字列の最初の IP アドレスになり、IIOP.NET がその IP アドレスを正常に使用するため、問題が解決します。WSAIoctlでは、ネットワーク インターフェイスを異なる順序で返す信頼できる方法はありますか? 残念ながら、これについて MSDN で文書化されているものは何もありません。

ありがとう、

デイブ

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

glassfish - Glassfish ドメイン間の IIOP で例外メッセージが失われる

ステートレス セッション EJB を含む 2 つの glassfish v2 ドメインを実行しています。場合によっては、あるドメインの EJB が別のドメインの EJB を呼び出さなければならないことがあります。

私の問題は、呼び出された EJB が例外で異常終了した場合、呼び出し元が例外のメッセージを受信せず、代わりに問題の診断にまったく役立たない内部エラーを報告することです。何が起こるかは次のようです:

  • トランスポート層でorg.omg.CORBA.portable.ApplicationExceptionが作成されますが、クラスを除く例外に関する詳細情報はすべて失われています。
  • 内部com.sun.jts.CosTransactions.TopCoordinator.get_txcontext()では、ロールバックされたトランザクションのステータスにより、 aorg.omg.CosTransactions.Unavailableがスローされ、ラップされて数回渡され、最終的に次のエラーがユーザーに表示されます。

    /li>

問題の実際の原因に関する情報を保持するために、ここでできることはありますか?

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

java - jndi ルックアップを実行するときにどの SerialContextProvider を使用する必要があるかを調べるにはどうすればよいですか?

今日、私はこの例外を提示されました

ejb にリモートでアクセスしようとしましたが、問題のコードは

以前にこの例外を見て修正したことがありますが、どのように行ったかを正確に思い出せませんでした。初期、コンテキスト URL、サービス プロバイダーなどにいくつかの環境変数を設定する必要があることはわかっていました。

実際、前回この問題を修正するために使用したコードを見つけることができました。それは次のとおりです。

私の質問は、使用する初期コンテキスト ファクトリをどのように見つけることができるかということです。私は、glassfish v3 で実行されるデータベース用の ejb モジュールを作成しましたが、もちろん を使用する必要があるというヒントはまったく得られませんでしたcom.sun.enterprise.naming.SerialInitContextFactory。これらのコンテキスト ファクトリを作成するのは誰ですか? どちらを使用する必要があるかを誰が決定し、その理由は? さまざまな目的でどれが必要かを示すリストがないのはなぜですか? 誰かが、人間が可能なリソースにアクセスするための最も難解で不可解な方法を作るために道を踏み外したようです。または、ここで何かを完全に誤解しているか、膨大な量の知識が不足しています。

この件についての啓蒙をいただければ幸いです。

皆さん、ありがとうございました。

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

jakarta-ee - リモートサーバーの再起動後にリモートEJBのInitialContext.lookupが失敗する

EJB AがサーバーAで実行され、別のEJBBがサーバーBで実行されているセットアップがあります。EJBAはIIOPを介してEJBBに接続します。このセットアップは通常は機能しますが、サーバーBを再起動すると、サーバーAも再起動されるまでEJBAは失敗します。

問題は、サーバーBが再起動された場合、サーバーAが再起動されるまで、EJB AによるInitialContext.lookupへのすべての呼び出しが「java.io.IOException:End-of-stream」例外で失敗することです。アプリサーバー(GlassFish)がInitialContext.lookupに対して何らかのキャッシュを実行するかどうかに関する情報を見つけることができませんでした。サーバーが再起動するまでルックアップが失敗する他の理由はありますか?InitialContext.lookupが接続をキャッシュする場合、どうすればそれを回避できますか?

当社のサーバーはSunApplicationServer9.1を実行しています。ルックアップは実際にはorg.springframework.jndi.JndiTemplateを介して実行されますが、スタックトレースは、JndiTemplateがInitialContext.lookup()を呼び出していることを示しています。

洞察をありがとう。

PSサーバーBを再起動するたびに、サーバーAを再起動する必要がないかどうかを理解しようとしていることを明確にする必要があります。

JndiTemplateの定義(一部のテキストは「x」と「#」で黒く塗りつぶされています)

そして、スタックトレース(一部が「[アプリケーションメソッド]」に置き換えられています):

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

python - IIOPでのPythonまたはその他のスクリプト言語の使用

私はIIOPクライアントのJavaバージョンを持っていますが、接続に関してあらゆる種類の問題があります。Pythonでクライアントを構築したいのですが、それを可能にするものが見つかりませんでした。そんなことありますか?

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

.net - corba idl の非標準の名前空間

Corba サーバーへの接続に IIOP.NET を使用しています。サーバーはエンタープライズ レベルのマシンであり、世界的に有名なベンダーによって展開されているため、すべて標準の corba IDL ファイルを実装しています。具体的には、それらはすべて 3gpp 標準に準拠しています。

3gpp 標準 idl ファイルでは、プラグマ接頭辞は3pggsa5.orgと定義されています。IIOP.NET に付属する IDL to CLS コンパイラを使用して dll を生成しました。同じ名前空間、つまり3pggsa5.orgで生成されます。ただし、名前空間が整数で始まるため、この dll は .NET では使用できません。

3 の前にアンダースコアを付けようとすると、.NET はそれを認識しますが、インターフェイスまたは IDL が変更されたため、corba サーバーに接続できません。また、corba idl から Java クラス用に生成された名前空間は、corba/idl 名前空間と同じであることもどこかで読みました。したがって、これも問題になるはずです。確かに 3gpp 標準は業界レベルの標準であり、機能しないということはありえません。何か不足していますか?

親切に助けてください。ありがとう。

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

jboss - JBossでのCORBAインターフェースの実装

CORBAを介してEJB(または基盤となるMBean)にアクセスできるようにする方法に関するチュートリアルまたは追加情報を探しています。

これが私が見つけたすべてです: http ://www.jboss.org/jbossiiop

既存のCORBAサーバー(Javaベースですが非標準)があり、JBossMBeanへの呼び出しを許可したいと思います。このMBeanは、EJB(v2.1)を使用したRMIを介してすでに公開されています。

現在のAppServerターゲットバージョンはjboss-eap-4.3です。


編集:私の質問が曖昧すぎて答えられないことを願っていますので、ここに更新があります:

JBossで実行されているEJBを、リモートの別のサーバーで実行されているCorbaORBに登録したいと思います。少なくとも私はすると思う。既存のCORBAクライアントは、JBossEJBを介して実装しようとしている定義済みのIDL/インターフェースを介してサービスに接続します。この時点で、上記のクライアントは同じインターフェイスの複数のインスタンスに接続して、このインターフェイスを介して情報を取得し、ローカル(同じプロセス)サービスを管理します。このCORBAIDLの単なる別の実装として、JBossEJBをドロップインしたいと思います。

私のCORBAの理解は、そもそも錆びていて弱いので、それほど遠くはありません。JBossでORBを簡単に実行できますが、「レガシー」CORBAORBがそれを見つけられるようにバインディングを設定する方法がわかりません。これを機能させるためにJBoss実装の任意の部分を変更できますが、他のサーバーを変更することは困難です。

EJBがそれ自体をリモートサーバー(ala jndi)に登録する方法はありますか?既存のクライアントは、jboss固有のクラスを追加せずにJacorbに接続できますか?

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

http - Hypertext Inter-ORB Protocol (HTIOP) の仕様はどこにありますか?

ウィキペディアによると、HTIOP は HTTP を介した IIOP の実装です。IIOP は、TCP/IP を介した CORBA の GIOP (一般的な ORB 間プロトコル) の特定のインスタンスです。

しかし、このプロトコルの仕様は Web のどこにも見つかりません!

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

java - ユニキャストとポータブルリモートオブジェクト

java.rmi.server.UnicastRemoteObjectとの基本的な違いは何ですかjava.rmi.PortableRemoteObject

1つはJRMPに使用され、もう1つはIIOPに使用されることは知っていますが、誰でも一般の人の言語で説明できます。私はJavaを初めて使用します。また、JRMPにProtable Remote Objectを使用できますか?そうでない場合、なぜですか?

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

c# - C# Remoting のカスタム メイン ループ

C# で C++ と通信するために IIOP.NET を使用しています。現在、C# Remoting Framework は独自のスレッドを使用するため、C++ 呼び出しはいつでも発生する可能性があります。

私はそれをしたくありません。

他のいくつかのミドルウェアがコールバックを提供し、このコールバック中に CORBA 関数を実行することしか許可されていません (おそらく同じスタック上で実行されるため、単純にスレッドを同期するだけでは機能しません)。

そう :

C# Remoting でそのようなことを行う方法はありますか:

代わりにThread.Sleep(Timeout.Infinite)?それとも別の方法がありますか?