Re: [jboss-dev-forums] [JCA Development] - JcaXAResourceRecovery
by Jesper Pedersen
Jesper Pedersen [http://community.jboss.org/people/jesper.pedersen] replied to the discussion
"JcaXAResourceRecovery"
To view the discussion, visit: http://community.jboss.org/message/541069#541069
--------------------------------------------------------------
> I may be misunderstandin ghte model, but it seems that ManagedConnectionFactoryDeployment.getXAResources() creates a new connection on each call, which is good in that if the db crashes and recovers whilst the app servers stays up, the system will effectively reconnect rather than continuing to use a stale connection. However, as far as I can tell, it's never disposing those connections. Since the recovery system will make one pass every two minutes by default, it's going to leak pretty badly. The integration SPI does not allow for explicit disposal, so the best bet is probably to keep a handle on the last connection used and on each call to getXAResources either validate it (i.e. ping the db to make sure it's still there) and reuse it, or explicitly release it and get a new one.
Fixed. Thanks.
As to the explicit close case - I need to know when recovery have been done in order to cleanup and destroy the managed connection, and the JCA API doesn't have an SPI for that (yet). Maybe we could add recoveryBegin() and recoveryEnded() to our interface ?
As to the validate case - I'll think about what we can do to best handle this case and commit something, if we aren't going with the idea above.
> The XAResourceWrapperImpl usage appears to be applied only to XAResources used for recovery, not he ones used during normal transaction usage. It would be helpful to have the same wrapping applied to the XAResource handed out to the transaction manager during normal operation, as that would allow correlation in the logs between the tx run and the recovery. I'm guessing that's a fairly minor cutnpaste type fix - any chance of squeezing it in?
Normal transaction usage is handled in the TxConnectionManager class, where the interface is used (if enabled). So we should be good in that case :)
There is room for a lot of improvements both in the JCA spec and the JCA container to make life easier for our users - I'll keep this in mind for the new implementation.
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/541069#541069]
Start a new discussion in JCA Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years
Re: [jboss-dev-forums] [JBoss Web Services Development] - CXF jms integration
by Richard Opalka
Richard Opalka [http://community.jboss.org/people/richard.opalka%40jboss.com] replied to the discussion
"CXF jms integration"
To view the discussion, visit: http://community.jboss.org/message/541050#541050
--------------------------------------------------------------
Hi Jim,
let me agree with Alessio. We really don't need to introduce
another DD (jbossws-endpoints.xml namely). There are two reasons for that:
* XML configuration duplicity (as Alessio properly said users can just provide jbossws-cxf.xml with all the configuration)
* simplicity (our current SPI facade should be enough for you to do the job).
What you're doing (providing jbossws-endpoints.xml) is just creating WS stack agnostic configuration.
But our SPI is intended exactly for that purpose.
Providing additional DD is the same thing like our SPI (just different XML-ized form of it).
If you will follow my suggestions I wrote few days before you shoudn't face "real" problems.
Another thing/issue is our SPI is not perfect (and we know that).
We will improve/rewrite our SPI once we'll be done with all the
highier priority tasks we have these days.
> Jim Ma wrote:
> I evaluated to make new SPI metadata to extend the current SPI Endpoint. But I did not find benifit from it, as our DeploymentAspects was intended to process the SPI HttpEndpoint. It can not be reused to process JMSEndpoint too.
>
Let me disagree. This is the way you had to go IMHO ;)
We need these abstractions in our SPI:
* Endpoint
- ServletEndpoint -> url address
- JMSEndpoint -> jms address
* DA
- ServletDA
- JMSDA
Our ASIL deployers will accept DA abstraction
and will be able to distinguish between HTTP and JMS.
In deployer, before specifying inputs/outputs,
you should have code like this:
// pseudocode ensuring proper deployers ordering
if (DA instanceof ServletDA) {
this.addInput(WebMetaData.class);
...
} else if (DA instanceof JMSDA) {
this.addInput(JMSMetaData.class);
...
}
Both HTTP and JMS endpoints should use the same deployers flow.
Don't create another deployer flow just for JMS endpoints.
but reuse our current architeture.
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/541050#541050]
Start a new discussion in JBoss Web Services Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years