EJB エンジンには XA 準拠のロック メカニズムが実装されているので、メソッドの呼び出し時のトランザクションと並行処理管理のために EJB オブジェクトがロックされます。EJB エンジンには、トランザクション内の呼び出しやチェーン内の呼び出しで発生する可能性のあるデッドロックに対応する効率的なデッドロック検出メカニズムも実装しています。デッドロックが検出されると、EJB エンジンはデッドロックを解除し、影響を受けたトランザクションをロールバックするか、またはトランザクション内の呼び出しでない場合は allaire.ejipt.DeadlockException
を返します。
EJB セキュリティ チェックを無効にするには、ejb.allowedIdentities
を定義して all
に設定する env-entry
を追加します。これによって、認証されたユーザも未知のユーザも Bean またはメソッドにアクセスできます。EJB セキュリティを使用しない場合は、常にこの env-entry
を指定してセキュリティ チェックを無効にします。ejb.allowedIdenties
を all
に設定すると、すべての呼び出し者が Bean のすべてのメソッドにアクセスできるようになります。env-entry
の前にメソッド名を付けると、すべての呼び出し者は、そのメソッドにのみアクセスできます。
Java 2 に準拠した SSL パッケージ、つまりクライアント/サーバー RMI ソケット ファクトリを使用している SSL パッケージであれば、ホーム/オブジェクト ソケット ファクトリ プロパティでクラス名を指定するだけで、EJB エンジンと統合できます。
クライアントが JNDI コンテキストを要求すると、使用可能なすべてのホーム オブジェクトの参照がサーバーによってクライアントに送信されます。このため、すべてのクライアントは、サーバーに公開されているすべてのリモートおよびホーム インターフェイスにアクセスできます。
Bean をローカル専用モードで公開することもできます。この場合、ホーム オブジェクトは、どのクライアントにもエクスポートされず、サーバーで同じ場所に配置されている Bean からのみアクセスできます。Bean をローカルとして指定するには、次の env-entry を Bean の公開記述子に含めます。
<env-entry>
<env-entry-name>ejipt.isLocal</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>true</env-entry-value> </env-entry>
ローカル Bean はリモート リソースを消費しません。エンティティ Bean をセッション Bean でラップする場合は、エンティティ Bean をローカルとして指定し、インターフェイスがエクスポートされるのを防ぎます。