「パーティション分割要求」では、要求の優先度を EJB コンポーネントに割り当てることができます。これにより、特定の EJB コンポーネントを、ほかよりも高い優先度で実行させる柔軟性が得られます。
要求優先度が割り当てられた EJB コンポーネントは、その要求 (サービス) を、割り当てられたスレッドプールの内部で実行させます。スレッドプールをその実行に割り当てることにより、EJB コンポーネントはほかの保留中の要求から独立して実行できます。要約すると、要求のパーティション分割により、サービスごとに異なるレベルの優先度が割り当てられたサービスレベルアグリーメントを満たすことが可能になります。
パーティション分割要求は、リモートインタフェースを実装するリモート EJB コンポーネントのみに適用されます。ローカル EJB コンポーネントは、その呼び出しスレッド内で実行されます (たとえば、サーブレットがローカル Bean を呼び出すと、サーブレットのスレッド上でローカル Bean 呼び出しが発生する)。
管理コンソールを使用して、EJB 実行用の追加スレッドプールを設定します。
Application Server の ORB に、追加スレッドプールの ID を追加します。
これは、domain.xml ファイルを編集することによって、または管理コンソールを使用して行うことができます。
たとえば、 priority-1 および priority-2 という名前のスレッドプールを有効にするには、<orb> 要素を次のように編集します。
<orb max-connections="1024" message-fragment-size="1024" use-thread-pool-ids="thread-pool-1,priority-1,priority-2"> |
EJB コンポーネントの配備記述子 sun-ejb-jar.xml の use-thread-pool-id 要素に、スレッドプールの ID を含めます。
たとえば、次に示す sun-ejb-jar.xml は、「TheGreeter」という名前の EJB コンポーネントの配備記述子であり、priority-2 という名前のスレッドプールに割り当てられます。
<sun-ejb-jar> <enterprise-beans> <unique-id>1</unique-id> <ejb> <ejb-name>TheGreeter</ejb-name> <jndi-name>greeter</jndi-name> <use-thread-pool-id>priority-1</use-thread-pool-id> </ejb> </enterprise-beans> </sun-ejb-jar>
Application Server を再起動します。