[Design of JCA on JBoss] - Re: JBAS-1437 RARMetaDataRepository
by weston.price@jboss.com
anonymous wrote :
| The basic feature is you just tell it the name. i.e. the ObjectName or name
| in the microcontainer as a dependency.
| e.g. rar-name in the -ds.xml or resource-adapter-name in jboss.xml
|
Whew. Ok, this makes sense then as it is what I am already doing ;-)
anonymous wrote :
| But if you want to "guess" the rar to use from properties
| e.g. Who implements the message listener for inbound (don't specify the rar name)
| then you are going to need what I described above.
|
I don't ;-) Unless I actually see a need.
anonymous wrote :
| Stage (1) parsing - populate the rar repository
| Stage (2) "real deployer" - resolve the dependency name from the properties
| (once you know all the rar parsing has been done)
| Stage (3) runtime - only start when the dependency exists (the rar is deployed)
|
Yep, cool. This is what is already in place I just didn't convey it well enough.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4013729#4013729
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4013729
19 years, 1 month
[Design of JCA on JBoss] - Re: JBAS-1437 RARMetaDataRepository
by adrian@jboss.org
The whole 'guess the RAR' thing to me seems to be unnecessarily complicated and I am not quite sure of the point being that a JCA deployment MCF, ActivationSpec, AdminObject should always know to what RAR it belongs.
The basic feature is you just tell it the name. i.e. the ObjectName or name
in the microcontainer as a dependency.
e.g. rar-name in the -ds.xml or resource-adapter-name in jboss.xml
This doesn't require anything new and should just work like the old stuff.
But if you want to "guess" the rar to use from properties
e.g. Who implements the message listener for inbound (don't specify the rar name)
then you are going to need what I described above.
Stage (1) parsing - populate the rar repository
Stage (2) "real deployer" - resolve the dependency name from the properties
(once you know all the rar parsing has been done)
Stage (3) runtime - only start when the dependency exists (the rar is deployed)
The other stuff I described just turns stages 2 and 3 into one stage
with a custom dependency implementation.
To emulate the old stuff, stage 2 is a no-op. You've been told the dependency name
in the xml (or it is hardwired in the xslt :-).
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4013723#4013723
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4013723
19 years, 1 month
[Design of JCA on JBoss] - Re: JBAS-3321 - TransactionTimeout from EJB container
by adrian@jboss.org
"weston.price(a)jboss.com" wrote :
| The 'it's not generic' answer doesn't fly with me because the MEF solution isn't necessarily generic either.
|
It's more generic than the current solution which only works for the JBoss inbound jms rar
and requires at least the two EJB containers to understand (hardwire) the ActivationSpec
format of that rar.
Given that the server project can't even reference connector classes
(circular dependency in the build) you'd either have to
1) Use reflection
2) Implement a proprietory interface in the activation spec
| public interface TransactionTimeoutSetter
| {
| void setTransactionTimeout(long timeout);
| }
|
3) Annotate the property
| @org.jboss.resource.annotation.TransactionTimeout
| public void setTransactionTimeout(long timeout) {}
|
All of which is pretty ugly, given it only solves the problem for one usecase. :-)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4013704#4013704
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4013704
19 years, 1 month
[Design of JCA on JBoss] - Re: JBAS-1437 RARMetaDataRepository
by weston.price@jboss.com
Ok. Let me put this a different way:
I have a working implementation of the ManagedConnectionFactoryParser and the ManagedConnectionFactoryDeployer. The repository is also set up and working to contain all the metadata that is being constructed on the deployment chain.
I also have a working implementation where I can construct the MCF/Pool/Binding etc. Right now all I do is simply emulate what the XSL deployer does in setting the appropriate MBean attributes that allows the
| org.jboss.resource.connectionmanager.RARDeployment
|
to start, create the ManagedConnectionFactory, set the properties and associate the MCF with the ResourceAdapter (if it supports it). The Pool, CM ,Binding all other MBeans that may arbitrarily appear in the *-ds.xml file follow in the same manner.
It's at this point I am not clear on your vision for doing this differently. The whole 'guess the RAR' thing to me seems to be unnecessarily complicated and I am not quite sure of the point being that a JCA deployment MCF, ActivationSpec, AdminObject should always know to what RAR it belongs.
If something above doesn't appeal to you (as I am sure it doesn't) don't hesitate letting me know in that warm and loving way of yours ;-)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4013693#4013693
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4013693
19 years, 1 month
[Design of JCA on JBoss] - Re: JBAS-3321 - TransactionTimeout from EJB container
by weston.price@jboss.com
anonymous wrote :
| The vast majority of inflow rars don't do this. With the exception of transaction inflow
| there is no way for them to start a transaction, there's no spec defined integration
| point to get the transaction manager.
|
Correct. I I hope to remedy this in JCA (1.6) ;-)
anonymous wrote :
| They leave it to the container (message endpoint) to start the transaction from the ejb metadata. What they do is pass the XAResource to the MessageEndpoint
| so they can take part in the transaction.
| i.e. the XAResource is automatically enlisted in the transaction when the
| beforeDelivery or "deliver" starts the transaction.
|
Also, correct. Unfortunately, there are some JMS providers (that shall remain nameless) that will not work in this manner. So, we also have to have some way to allow for the timeout prior to the actual delivery of the message. This can easily be remedied with AOP which is probably the *right* way to do this anyway.
anonymous wrote :
| If we start the transaction, we should apply the configuration from jboss.xml
| or the relevant ejb3 annotation.
|
This is what's in place now via the ActivationSpec. This was the point of the *fix*. You are simply proposing moving it to the MEF. I don't necessarily disagree with this I am simply wondering why.
The 'it's not generic' answer doesn't fly with me because the MEF solution isn't necessarily generic either. It's simply another way to achieve the same thing with the benefit that it can be leveraged by all inbound RARS that we write which has some merit, I agree.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4013689#4013689
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4013689
19 years, 1 month
[Design of JCA on JBoss] - Re: JBAS-3321 - TransactionTimeout from EJB container
by adrian@jboss.org
The only transactions we don't control are the ones where we don't write the
rars and/or the rar starts the transaction before it hits the message endpoint.
The vast majority of inflow rars don't do this. With the exception of transaction inflow
there is no way for them to start a transaction, there's no spec defined integration
point to get the transaction manager.
They leave it to the container (message endpoint) to start the transaction from the ejb metadata. What they do is pass the XAResource to the MessageEndpoint
so they can take part in the transaction.
i.e. the XAResource is automatically enlisted in the transaction when the
beforeDelivery or "deliver" starts the transaction.
If we start the transaction, we should apply the configuration from jboss.xml
or the relevant ejb3 annotation.
If we start the transaction from our rars we should also use the same
integeration point, the message endpoint factory.
You asked before, why the message endpoint factory?
The answer is because that is the object in the JCA api that represents the
container and where different containers (EJB2, EJB3, POJO JCA)
can decide how the parameter is derived.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4013680#4013680
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4013680
19 years, 1 month