[Design of JCA on JBoss] - Re: AOP/JCA
by weston.price@jboss.com
Next steps
More design documents work
Finish creating jca project structure (still need to resolve some Maven stuf)
Check into SVN
Start porting pieces of new JCA over to new project. This will be a combination (at least the spirit) of the JCA prototype in CVS as well as my current work.
New links on the Wiki in the hopes of generating more contributor interest
I haven't quite decided yet if the adapters should be a completely separate project, or should they be included as a sub-project of jca. Maven2 seems to support parent/child poms, so this should not be that big of a deal either way.
Some tasks, programmtic deployment, RAR repository rely should be done against the new code base rather than having to shoehorn the existing JMX implementation to use this.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3990778#3990778
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3990778
18 years, 1 month
[Design of JBoss ESB] - Multithreaded services and their EPR(s)
by kurt.stam@jboss.com
If a service is multithreaded, should each thread be registered as a separate EPR, or should there only be 1 EPR for the entire set of threads for this service?
The current issue we have is the following:
In the current implementation we only have one EPR for each service, which currently eventhough we only allow 1 thread, is sometimes causing us issues when the configuration is reloaded. It turns out that in this case the new thread B is created before thread A has ended, and the same EPR gets registered twice. Upon unregistering thread A both these EPRs are removed from the registry and upon unregistering thread B the registry throws an exception since no matching EPR exists any longer.
The issue can be resolved by registering each thread as it's own EPR. This is easily done simply by adding a UID to the EPR, since upon unregistering we simply do a string comparison on the xml-serialized EPR. However personally I am worried that we will end up with a lot of 'dead' EPRs. If an unclean shutdown happens, the EPRs will never be removed from the registry. Therefore personally I think that the parent of all the threads should be responsible for registering the service with it's EPR and it should not get unregistered until the last thread ends. Can this be done in the current implentation?
Any other ideas are welcome!
Cheers,
--Kurt
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3990768#3990768
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3990768
18 years, 1 month
[Design of Messaging on JBoss (Messaging/JBoss)] - Re: Branch 1_0_XARecovery
by timfox
"juha(a)jboss.org" wrote : "timfox" wrote :
| | 1) The call to persistenceManager.associateTxCallbackToPreparedTx() in TransactionRepository::loadPreparedTransactions()
| |
| | seems to be redundant since the callback will be automatically created when the refs / acks are replayed.
| |
|
| However, removing it will cause the recovery to fail (messages are not delivered).
|
|
Should definitely be redundant. If stuff fails when it's removed, then that points to another problem.
"Juha" wrote :
| Right. I was suspecting this based on the API but couldn't find any clear indication of this in the code.
|
What you want to do is basically this:
for the acks:
select message_id from jms_message_reference where transaction_id=? and state ="+"
this gives you all the message ids you want to load
then call persistenceManager.getMessages(List ids) to get the actual messages for those ids.
Then call messageStore.reference(Message m) for each of those messages - this will give you a reference for each of the messages.
Once you have your references you can call channel.handle(ref, tx) to replay them through the channel.
(This will create any callbacks).
A similar procedure applies for acks, except the query to get them is different:
select message_id from jms_message_reference where transaction_id=? and state ="-"
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3990753#3990753
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3990753
18 years, 1 month
[Design of Messaging on JBoss (Messaging/JBoss)] - Re: Branch 1_0_XARecovery
by juha@jboss.org
"timfox" wrote :
| 1) The call to persistenceManager.associateTxCallbackToPreparedTx() in TransactionRepository::loadPreparedTransactions()
|
| seems to be redundant since the callback will be automatically created when the refs / acks are replayed.
|
However, removing it will cause the recovery to fail (messages are not delivered).
So if you think it is redundant then that failure to work correctly without the call needs to be investigated. That's why I've kept the related JIRA task on this still open.
"timfox" wrote :
|
| 2) TransactionRepository::handleReferences():
|
| call to persistenceManager.getMessageIdForRef(txId)
|
| you only seem to be returning the first message id, the transaction may contain many message adds - so
| you need to retrieve them all.
|
Right. I was suspecting this based on the API but couldn't find any clear indication of this in the code.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3990752#3990752
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3990752
18 years, 1 month