Jboss 7.1.1.final を使用しており、JMS を多用するアプリケーションを使用しています。いくつかのパフォーマンス テストを行った後、特定の量のメッセージに達すると、十分なキュー セッションがないため、アプリケーションが失敗し始めることがわかりました。
調査の結果、この JMS 属性は jboss バージョン 7.1.2 でのみ公開されていることがわかりました (こちらを参照)。
法的な理由により、現在このバージョン (または修正された特定のビルド) を使用できないため、それを変更する他の唯一の方法は、リフレクションを使用することです。そこで、Jboss のソース コードをダウンロードして、試してみましたが、いくつか質問があります。
まず最初に、必要なクラスorg.jboss.as.messaging.CommonAttributes
が実際にはインターフェイスであり、次の行があることを発見しました。
SimpleAttributeDefinition CONNECTION_THREAD_POOL_MAX_SIZE = new SimpleAttributeDefinition("thread-pool-max-size",
new ModelNode().set(HornetQClient.DEFAULT_THREAD_POOL_MAX_SIZE), ModelType.INT, true, MeasurementUnit.NONE);
- クラスをロードするために必要なclassLoader
ClassLoader.getSystemClassLoader()
を教えてくれますか? - リフレクションを使用してインターフェイス フィールド値を設定するにはどうすればよいですか? (
Field.set()
メソッドにはオブジェクトインスタンスが必要であり、それはインターフェイスであるため、インスタンス化できません)