If CMP is an option for you you could use the container configuration "Standard CMP 2.x EntityBean with cache invalidation" defined in standardjboss.xml. This configuration has an interceptor that removes a bean instance from the cache cluster-wide, once it is written.
This would probably give the cleanest solution unfortunately the data to the mainframe is marshalled through a third party request/response style API which is why I was thinking BMP would be the way to go.
If ther's an abstraction in the container where I could do mapping of entity fields CMP would give me the caching/transaction for free. The data is a simple bean with well defined key and nothing nested and no relationships.
Does anyone know if I could write a custom connector or bridge to map to a custom persistence API? Are there any docs/samples covering this?
I don't get your rationale of not to depend on TreeCache version. The minute you run clustering, you get vendor specific tie in already.
Nothing against TreeCache, it looks great from what I've read, I simply didn't want the application codebase dependant on specific vendors API. I could abstract caching as a service, although wasn't that the point of JSR-107. Does anyone know where that stands nowadays I haven't been following is there a published API?
I'm not sure I agree with you on being vendor specific once you run clustering. I know it's not in J2EE spec and obviously you have to account for replication/latency concerns but I should be able to design for a clustered Session or Entity bean and leave binding/policies as something that is dealt with in configuration right?
BTW I don't want this to degrade into a religious thread I was simply looking for input on current best practice for 4.0.1sp1. By sounds of things JBoss line is to use TreeCache in BMP right Ben?