[Design of Messaging on JBoss (Messaging/JBoss)] - Re: Remote replyto functionality - Bridge configuration in p
by thomasra
Continuing the thoughts from the previous post....
Adding two sets of source/destination is pretty trivial (Perhaps differentiate bridges by calling them OneWayBridge and TwoWayBridge?).
Without using temp destinations we could just keep track of original messageid's and original ReplyTo destinations from JBM and their corresponding remote messageid. Then, when the message is received from the remote provider (using JMSCorrelationId to link request/response), we could look up the correlationid on it and find the original data, replacing it before sending to a JBM destination.
A lookup table would need:
originalJBMJMSMessageId - originalJBMReplyTo - remoteJMSMessageId
With temp destinations it becomes even more powerful (but requires more support on the remote side, both client and server). In this case we don't need to keep track of the remote messageid, since we know that messages received on the temp destination are a reply to a specific JBM message. The downside is that the receiving part of the bridge would need to listen to a temp destination (or use unique selectors on a shared destination). Come to think of it, selectors would actually suffice and be cleaner, but maybe theres an anti-pattern there somewhere.
* JMS Message arrives at a JBM destination
* TwoWayBridge receives it, sees that it has a ReplyTo destination, keeps track of the original replyto destination and jmsmessageid
* TWB creates a remote temp destination
* TWB sends the message with the remote temp destination as the ReplyTo value, after send() it adds the remoteJMSMessageId to the same record
* TWB begins listening on the remote temp queue (it now knows which message it is waiting for a response to)
* TWB receives a response from the remote provider on the temp destination
* TWB replaces the correlationid and the replyto values with the original ones
* TWB sends to a JBM destination
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4052056#4052056
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4052056
18 years, 10 months
[Design of JBoss Portal] - Re: Portal 2.4.1
by daniele.acquadro
Hi,
I've made some stress test using openSTA on a portal server installed from jboss-2.4.1sp1 ha bundled.zip. Running the server with jprofiler I noticed that some classes were allocated but never gc'ed.
Those memory leaks brings the server to an outOf memory excetpion.
Mentioned Classes are :
- org.apache.commons.collections.map.LinkedMAp
- org.apache.commons.collections.map.AbstractLinkedMap$LinkEntry
- org.apache.commons.collections.map.AbstractHashedMap$Values
Walking the heap I noticed that they were referenced by org.apache.jackrabbit.core.query.lucene.MultiIndex.
I've upgraded jackrabbit core jar to 1.1.1 and re-run stress tests. o more memory leaks. :-)
ps : stress test consisted in navigating the portal through pages with different cmsportlet instances showing different contents.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4052027#4052027
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4052027
18 years, 10 months
[Design of JBoss jBPM] - Re: Rework of jBPM deployment within JBoss
by tom.baeyens@jboss.com
"bill.burke(a)jboss.com" wrote :
| 1. The hibernate and jbpm xml files are embedded deep within the enterprise archive. These need to be moved up for easy edits by the user
|
one option could be to extract all the .hbm.xml files and put then in the config jar file. would that qualify as 'moved up' ?
i definitely want at least something that is as portable as this solution. if there are jboss specific ways on how to move the configs even up further, i 'm ok with that as long as it's another option that we offer apart from the portable deployment.
"bill.burke(a)jboss.com" wrote :
| a) You need to create the jBPM schema in the database
|
Previously detection and update of the schema was done automatically in a .sar. But i want to move to a portable .rar for this. Would that be an option for you ?
"bill.burke(a)jboss.com" wrote :
| b) You need to modify your ant build to save your .jpdl into the database so that the jBPM server can pick things up. OR you do some other manual or programmatic process to get your process definitions in the database.
|
3 ways of deployment of which you mentioned already 2
* ant task
* API
* file upload in the web console
"bill.burke(a)jboss.com" wrote :
| c) You need to copy and .jar files into the JBoss lib/ directory, WAR archive, or whatever.
|
i don't get what you are referring to here
"bill.burke(a)jboss.com" wrote :
| I want to create a ProcessDefinitionDeployer for jboss. This will work like the SAR, EJB, EAR, etc... deployers. Users would be able to deploy a .jar file named "xxx.bpm" or a foo.jpdl.xml file. The jar file would contain a "META-INF/jbpm.jpdl.xml" file within it and any classes that could possibily be used by the process definition.
|
process definition deployer: yes
META-INF/jbpm.jpdl.xml: we already have a process archive format called process archive. though, we should rename it from .par to .process or something like that to prevent conflicts with the persistence archives.
"bill.burke(a)jboss.com" wrote :
| At deployment time, the JBPM deployer would calculate a hash for hte .xml file. If this hash matches a previously deployed .xml file nothing is done. If it is a new hash, a new version of the process definition is saved to the database.
|
hash in combination with the last update time of the file would be good, i think. i wouldn't trust hash only. chances are small for a collision, but imagine if you have such a collision, then you would have to make sure something in the file is changed to get it deployed.
saving that info in the database is going to be tricky in 3.2.x as we only want to allow updates to the db schema between minor version releases. 3.3 is still some time out.
but it can be done in 3.2.x with a file attachment (see processDefinition.getFileDefinition()) but the query to see if a process is already deployed is going to be based on a binary column... not sure if that is db portable.
on the other hand, it will be a pain to manage separate tables for the jboss deployer i think.
if we have lots of processes (avg would be 10-20 i guess with lots being more then 1000), what will this do to the startup time of jboss ?
"bill.burke(a)jboss.com" wrote :
| A new config structure would look like this:
|
|
| | jbpm.deployer/
| | hibernate.cfg.xml
| | jbpm.cfg.xml
| | jbpm-ds.xml
| | jbpm-jpdl.jar
| | jbpm-enterprise.ear
| | META-INF/
| | jboss-service.xml
| |
that looks good. but consider JCA and a .rar to deploy jbpm separate on the appserver, apart from the deployer. then the .rar would be portable.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4051985#4051985
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4051985
18 years, 10 months