問題タブ [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.
websphere - org.omg.CORBA.TRANSIENT: 初期および転送された IOR にアクセスできません
Lotus Notes API (NCSOW.jar) を使用して Java クラスからリモート Domino サーバーに接続し、Lotus Notes データベースに書き込みます。しかし、接続できない可能性があることを示唆する特定のエラーが発生しています。
これは、そのエラーの原因となっている行です。URL は、ドミノ サーバーの資格情報としてのドミノ サーバー名、ユーザー名、パスワードです。セッション セッション = NotesFactory.createSession(props.getProperty("LotusNotes.URL"), props.getProperty("LotusNotes.UID"), props.getProperty("LotusNotes.PWD"));
スタンドアロンの Java プログラムを使用して、ローカル マシンからこれを介して接続できます。しかし、QA マシン上の特定の Websphere サーバー (v6.1) から、このエラーが発生します。ポート、ファイアウォールを確認しようとしましたが、その側ではすべて問題ありません。そのサーバー マシンからリモートの Domino Server マシンに正しく接続できます。
以下はエラーのスタックトレースです。
org.omg.CORBA.TRANSIENT: 初期および転送された IOR にアクセスできません: 転送された IOR が失敗しました: ORB_CONNECT_ERROR (5) - サーバー サブコントラクトを取得できませんでした: org.omg.CORBA.INTERNAL: CREATE_LISTENER_FAILED_4 vmcid: 0x49421000 マイナー コード: 56 完了: いいえ最初の IOR が次のエラーで失敗しました: ORB_CONNECT_ERROR (5) - サーバー サブコントラクトを取得できませんでした:org.omg.CORBA.INTERNAL: CREATE_LISTENER_FAILED_4 vmcid: 0x49421000 マイナー コード: 56 完了: いいえ vmcid: IBM マイナー コード: E07 完了: いいえ
これについて何か提案はありますか?
ありがとうございます
rmi - GlassfishをIIOPで使用する場合の完全なプロトコル階層は何ですか
セットアップはGlassfish2.1.1とJavaスタンドアロンクライアントです。接続はIIOP経由です。私たちのクライアントはネットワーク上で膨大な量のトラフィックを生成しており、私はこれがどこから来ているのかを調べようとしています。
私の理解では、プロトコル階層は次のようになります。
GIOPまでは、これはWiresharkで見られるものですが、GIOPメッセージのペイロードは不明です。
残念ながら、WiresharkはGIOPメッセージのペイロードを分析しません。GIOPメッセージには、CORBAシリアル化であるため、CORBACDRでシリアル化されたJavaオブジェクトが含まれている必要があると思いました。(結局のところ、Java以外のクライアントの場合、IDLを生成する必要があったので、CDRはどこでも使用する必要があります)。
Wiresharkで見たものは、たくさんあります
その後に16進文字列と数バイトのバイナリデータが続き、次にXRMI:....。
このことから、これはRMIであり、IIOPよりもRMIが高いと思います。
ただし、GIOPペイロードがRMIの場合、CDRはどこに適合しますか。
GIOPメッセージのペイロードをどのように解釈できますか?また、IIOPを介したRMIの仕様はどこにありますか?
interop - CORBAサーバーとクライアントのIDLにはどのような違いがありますか?
これまで私が知っていると思うのは、CORBA仕様自体では、サーバープログラムが使用するIDLとクライアントプログラムが使用するIDLの違いは認められていないということです。
ただし、実際には、基礎となる通信メカニズムはおそらくGIOP(少なくともIIOP)であり、一部の違いはIIOPを介して検出できないため、特定の違いは(かなり)普遍的に機能します。
私が確立したいのは、GIOP / IIOPが使用されている限り、サーバーとクライアントのIDL間で任意のORB間で普遍的にどのような違いが許容されるかということです。
例:これまでのところ、次のように機能すると思います。
- クライアントIDLが認識しているタイプが変更されていないか、不明な新しいタイプがクライアントに返送されない限り、サーバーIDLにタイプ/インターフェイスを追加します。
- サーバー側の既存のインターフェースにメソッドを追加します。クライアントは、IDLにメソッドがリストされていなくても、このインターフェースを使用してオブジェクトの呼び出しを続行できる必要があります。(これはここでyesで答えられるようです。)
- クライアントがこの新しい値を決して見ない限り、列挙型の最後にメンバーを追加します。
- 識別子が新しい値に設定されたこのUnionタイプがクライアントに表示されない限り、メンバーをユニオンに追加します。
私の目的は、既存のIDLで実行できるものの短いリストのようなものに到達し、変更されたIDLを使用して既存のクライアントを再コンパイルすることなく「サーバー」を新しいもので拡張することです。
jakarta-ee - Glassfish 3.1.2.2: IIOP1002: プリンシパルの伝播: 件名にプリンシパル情報が見つかりません
ログファイルを汚染しているグラスフィッシュの迷惑なメッセージの原因を突き止めようとしています.
セットアップを簡素化するために、3.1.2.2 を実行する 2 つの glassfish サーバーがあります。
サーバー A には Web サービスがデプロイされており、Web サービスの役割と、sun-ejb-jar.xml および sun-application.xml のマッピングを使用して定義された証明書ベースのセキュリティを使用しています。
サーバー B にはリモート EJB がデプロイされており、セキュリティは構成されていません。
次のようなコードを使用して、サーバー A の Web サービスからサーバー B のリモート EJB を呼び出す場合:
サーバー A のログには次のログが記録されますが、EJB 呼び出しは期待どおりに機能します。
このエラーの経験があり、この問題を解決する方法を知っている人はいますか?
メッセージに関するOracle ドキュメントはあまり役に立ちません。
IIOP1002 プリンシパルの伝播: サブジェクトにプリンシパル情報が見つかりません
原因: サブジェクトにプリンシパル情報が見つかりません。
処置: ID伝播の構成設定を確認してください
java - Lotus Domino データベースで openWithFailover() を使用するにはどうすればよいですか?
Java Domino API (NCSO.jar を使用) を使用して、IIOP 経由で Domino データベースに接続する Java コードをいくつか入手しました。新しい要件は、接続先のサーバーがクラスター化されている場合、これを利用して、現在接続されているサーバーに障害が発生した場合にクラスター内のフェールオーバー サーバーに切り替えることができるようにすることです。
残念ながら、Domino Java API はまったく不可解であり、API をローカルで使用する場合と IIOP を介してリモートで使用する場合では微妙な違いがあり、本当に明確な説明はほとんどなく、メソッドに与える引数に応じた奇妙な違いがあります。
ここから何とか情報を収集できました... openWithFailoverMethod は機能しますか?
IBM インフォセンターのドキュメントも確認しました。
私が最初に試したのはこれでした:
の最初の引数 (getDatabase
サーバー名) は、IIOP 操作では明らかに null でなければなりません。すでにセッションに入っているのに、メソッドでサーバー名を再度指定する必要があることにかなり戸惑いましたがopenWithFailover
、セッションでクラスターに接続し、open メソッドでプライマリ サーバーを指定できると思います。ただし、データベース名を 2 回指定する必要がある理由は明確ではありませんでした。最後の引数は、データベースにアクセスできない場合はデータベースを作成しないことを示しています (それを省略すると、デフォルトで true になります。すばらしいことです)。
NotesException: This database object is already open as E:\Lotus\Domino\data\mail-in\EDITEST.nsf
残念ながら、これは私の顔に例外を吐き出しました。メソッドのある行で発生しopenWithFailover
ます。
どうやら最初の呼び出しでgetDatabase
既に開いており、実際に開かずにオブジェクトを取得するだけの close メソッドやオプションはありません。クラスはインターフェースであるため、そのDatabase
ようなオブジェクトを取得するための静的メソッドや、インスタンス化する方法はありません。私は周りをチェックしましたが、私が見つけた唯一の代替手段はopenDatabase
in classを使用することですDbDirectory
。それが何をするかを推測してください。現在、そのメソッドには、フェイルオーバーを使用するかどうかを示すブール値を持つ代替手段がありますが、ドキュメントによると、 IIOP 操作では常に false です。
このページによると、 null 引数を 2 つ指定Database
して呼び出すと、空のオブジェクトを取得できます。getDatabase
だから私はこれを試しました:
どのプロンプトが私に例外を与えますかNotesException: A database name must be provided
。2 行目を に変更してDatabase db = session.getDatabase(null, null);
も違いはありません。
リモート操作にはデータベース名が必須であるとしか思えませんか? しかし、リモート接続時にフェールオーバーを使用するにはどうすればよいでしょうか。それとも私はこれを間違ってやっていますか?サーバー自体ではなくクラスターに接続する必要があり、フェイルオーバーは自動的に処理されますか? それとも、リモート接続のフェイルオーバーは明らかに不可能ですか? ノーツ クライアントでできるので、独自の Java コードでもできると思います。
ドキュメントだけでは十分な情報が得られないため、誰か助けてください。
java - CORBA::IIOPを使用してクライアントのORBアドレスとポートを取得します
IIOPプロトコルを使用してCORBAでアプリケーションを使用していますが、別のORB実装であるJDK6のJavaIDLコンポーネントを使用しています。
Java言語でのクライアントとサーバーの両方の実装。
JDK ORBの実装に、サーバー(ORB)コードからクライアントORBのホストとポートを取得する方法はありますか?
または
IIOPプロトコルを使用して、クライアントにホストとポートを取得する方法はありますか?
これは、要求された人を追跡するためにクライアントを識別するために行っています
java - JBoss IIOPスタブ生成、クラスローディングの問題を診断する方法は?
ORB PortableInterceptorを使用したいので、JBoss6.1で実行されている10年前のEJB2アプリケーションをJNPプロトコルからCORBARMI/IIOPに移行しています。
最初のJBossはorg.jboss.iiop.rmi.RMIIIOPViolationExceptionで文句を言います私は今修正しました。
現在、JBossのWebCLサーブレットは、ホームインターフェイスとリモートインターフェイスのスタブをクライアントに配信できず、何が問題になっているのかわかりません。私の唯一の残りの仮説は、RMICコンパイラがサイレントに失敗するというものです。私が受け取る唯一のエラーメッセージは
このクラスの読み込みエラーの原因を突き止めて修正するにはどうすればよいですか?
java - IIOP プロトコル マネージャーの障害 Glassfish 3.1.2
Glassfish の起動中に、次のエラーが発生します。が存在vbjorb.jar
するドメインのクラスパスに がありorg.omg.CORBA.InterfaceDef
ます。
jakarta-ee - JNDI から Websphere キューを検索する
JNDI (Configured SIB) から websphere 7 キューを検索する必要があります。最初に、リモート Websphere サーバーにアクセスするクライアント プログラムを作成しました。com.ibm.ws.admin.client、com.ibm.ws.runtime、com.ibm.ws.sib.client.thin.jms、com.ibm.ws.webservices.thinclient jar ファイルを追加しました。
コードは次のとおりです。
リモートクライアントとしてアクセスしているため、これはうまく機能しません。したがって、これを追加しました。
これは今のところうまくいきます。次に、上記の行を削除し、ターゲット JDK を IBM JDK に移動しました。その場合も問題なく動作します。
サーバープログラムで上記のキューにアクセスする必要があるときに直面する実際の問題。これは別の JVM で実行されます。リモート JNDI キューにアクセスしようとすると、クラス キャスト例外が発生します。IBM ではなく、デフォルトの Sun ORB 実装をロードするためだと思います。com.ibm.ws.orb jar を追加しましたが、まだ運がありません。Sun ORB をロードします。したがって、クラスキャスト例外が発生します。
上記のように、org.omg.CORBA.ORB をロードする機能がありません。これを実行する方法はありますか?何か不足していますか?Websphere 8.5 からのフィードバックも歓迎します。
注: これは Websphere MQ ではありません。Websphere アプリケーション サーバー キューについて言及しています。
java - CORBA IDL ハッシュマップ
たとえば、次のものを格納するための Hashmap のスタブを生成する CORBA IDL を作成する方法はありますか?