The performance of this interceptor makes using a seam managed persistence context almost impossible for

many applications (those that need to support more than very few concurrent users).

(In my application it adds overhead of about two seconds per request on some pages.)

 

I am probably being naive, and miss something of importance, but:

I wonder why it is necessary to apply the interceptor on each method call.

During rendering of my pages there are often a dozen or more calls to the same backing bean.

Surely passivation or replication won't happen in between, right?

 

So why can't the interceptor be applied (and "de-appplied") just once for every object that is used during the request?

 

Otherwise: Can't Seam intercept passivation and replication somehow and apply the service only on demand?