私のアプリケーションでは、JBoss(バージョン5)に基づいてUDPパケットをリッスンする必要があります。Java EE(EJB 3.0)環境でDatagramSocketから読み取る
最も簡単な方法は、特定のポート(JBoss @ServiceシングルトンBeanを使用)でDatagramSocketを開き、receive(...)メソッドを呼び出すことです。最初の部分はかなり簡単です - 私はそれをテストし、期待どおりに動作します。 2番目の部分 - 受信パケットはより複雑です。
私はそのようなコードの設計について疑問に思います。 DatagramSocket javadocに記述されているように、receiveはブロック操作です。パケットが取得されるまでブロックされます。それが速く、スケーラブルで、スレッドセーフであることを確認するためにコードを作成する方法は?
シングルトンへの参照を保持しているコネクションを持つステートレスBeanの作成について考えましたが、これらのBeanはreceiveメソッドを呼び出していますが、JBossがどのようにそれらを管理するかはよく分かりません(1つのBeanはReceive()ブロックされます)。 使用するパターンはありますか?
ありがとうございました。残念ながら、それは他の多くの機能を備えた大きなプロジェクトの一部です。一般的に、非ネイティブEJBソリューションを使用することはお勧めしません。 –
@ Piotrek-De - 私はあなたのアプリケーションにリソースアダプタとしてcamelをデプロイできると信じています。これは仕様に準拠しており、リソースアダプタはこれらの用途に適したJ2EEソリューションです。 –