关键字: jboss ejb3
JBoss EJB3.0 RC6 -PFD
http://www.jboss.org/jbossejb3/docs/reference/build/reference/en/html/index.html
1. Session Bean and MDB
1.1 Pooling
Stateless和MDB豆油一个实例池. 标准配置里面用本地线程池来避免同步(org.jboss.ejb3.ThreadLocalPool) (对谁来说的Threadlocal?)。EJB可以别的poolinng机制。比如,JBoss有一个很严格的Pool size实现,只允许固定的并发访问数,其他的请求会被阻塞。配置类为@org.jboss.annotation.ejb.PoolClass
用法举例:
基于jboss.xml的配置方法略
1.2 有状态session bean的缓存
状态bean被存在cache里面。这个缓存要负责在缓存满了或者bean发呆的时候钝化SFSB. 你可能会想设定缓存的最大数量,什么时候才算发呆。有没有cluster的设置会不同。
1.2.1没有cluster
1.2.2 Clustered
name()一般不需要修改。
replicationIsPassivation()指定是否在分布式缓存复制和提取前后是否调用@PrePassivate和@PostActivate。
1.2.3 不要钝化
有时候你希望关掉钝化功能,加上@org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.NoPassivationCache.class)
http://www.jboss.org/jbossejb3/docs/reference/build/reference/en/html/index.html
1. Session Bean and MDB
1.1 Pooling
Stateless和MDB豆油一个实例池. 标准配置里面用本地线程池来避免同步(org.jboss.ejb3.ThreadLocalPool) (对谁来说的Threadlocal?)。EJB可以别的poolinng机制。比如,JBoss有一个很严格的Pool size实现,只允许固定的并发访问数,其他的请求会被阻塞。配置类为@org.jboss.annotation.ejb.PoolClass
- @Retention(RetentionPolicy.RUNTIME)
- @Target({ElementType.TYPE})
- public @interface PoolClass
- {
- Class value(); //Pool实现
- int maxSize() default 30;
- long timeout()default Long.MAX_VALUE;//请求等待调度时间
- }
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface PoolClass
{
Class value(); //Pool实现
int maxSize() default 30;
long timeout()default Long.MAX_VALUE;//请求等待调度时间
}
用法举例:
- @Stateless
- @PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=5, timeout=10000)
- @Remote(StrictlyPooledSession.class)
- public class StrictlyPooledSessionBean implements StrictlyPooledSession
- {
- ...
- }
@Stateless
@PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=5, timeout=10000)
@Remote(StrictlyPooledSession.class)
public class StrictlyPooledSessionBean implements StrictlyPooledSession
{
...
}
基于jboss.xml的配置方法略
1.2 有状态session bean的缓存
状态bean被存在cache里面。这个缓存要负责在缓存满了或者bean发呆的时候钝化SFSB. 你可能会想设定缓存的最大数量,什么时候才算发呆。有没有cluster的设置会不同。
1.2.1没有cluster
- public @interface org.jboss.annotation.ejb.cache.simple.CacheConfig
- {
- int maxSize() default 100000;
- long idleTimeoutSeconds() default 300;
- long removalTimeoutSeconds() default 0;
- }
public @interface org.jboss.annotation.ejb.cache.simple.CacheConfig
{
int maxSize() default 100000;
long idleTimeoutSeconds() default 300;
long removalTimeoutSeconds() default 0;
}
1.2.2 Clustered
- public @interface CacheConfig
- {
- String name() default "jboss.cache:service=EJB3SFSBClusteredCache";
- int maxSize() default 10000;
- long idleTimeoutSeconds() default 300;
- long removalTimeoutSeconds() default 0;
- boolean replicationIsPassivation() default true;
- }
public @interface CacheConfig
{
String name() default "jboss.cache:service=EJB3SFSBClusteredCache";
int maxSize() default 10000;
long idleTimeoutSeconds() default 300;
long removalTimeoutSeconds() default 0;
boolean replicationIsPassivation() default true;
}
name()一般不需要修改。
replicationIsPassivation()指定是否在分布式缓存复制和提取前后是否调用@PrePassivate和@PostActivate。
1.2.3 不要钝化
有时候你希望关掉钝化功能,加上@org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.NoPassivationCache.class)