26898e4663
When server sends disconnect to the client, the ClientSession schedules a close task on it's ordered executor. Once the close method starts it's waits to check to see if all jobs in it's executor has completed. To do this it adds a job to it's ordered executor, once it is run it knows there is nothing more to do and thus is ready to close. However, this causes a deadlock as both jobs are running in the ordered executor and thus are both waiting on each other. The close eventually timesout which is why we see the logs as reported in the JIRA. This commit runs the close method in it's own ordered executor, thus preventing the two jobs blocking each other. |
||
---|---|---|
.settings | ||
artemis-boot | ||
artemis-cli | ||
artemis-commons | ||
artemis-core-client | ||
artemis-distribution | ||
artemis-dto | ||
artemis-jms-client | ||
artemis-jms-server | ||
artemis-journal | ||
artemis-maven-plugin | ||
artemis-native | ||
artemis-protocols | ||
artemis-ra | ||
artemis-rest | ||
artemis-selector | ||
artemis-server | ||
artemis-service-extensions | ||
artemis-web | ||
artemis-website | ||
docs | ||
etc | ||
examples | ||
integration | ||
scripts | ||
tests | ||
.gitignore | ||
.project | ||
CMakeLists.txt | ||
LICENSE | ||
NOTICE | ||
README.md | ||
RELEASING.md | ||
artemis_doap.rdf | ||
pom.xml |
README.md
ActiveMQ Artemis
This file describes some minimum 'stuff one needs to know' to get started coding in this project.
Source
For details about the modifying the code, building the project, running tests, IDE integration, etc. see our Hacking Guide.
Documentation
Our documentation is always in sync with our releases at the Apache ActiveMQ Artemis website.
Or you can also look at the current master version on github.
Examples
To run an example firstly make sure you have run
$ mvn -Prelease install
If the project version has already been released then this is unnecessary.
then you will need to set the following maven options, on Linux by
$ export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=512m"
and the finally run the examples by
$ mvn verify
You can also run individual examples by running the same command from the directory of which ever example you want to run. NB for this make sure you have installed examples/common.
Recreating the examples
If you are trying to copy the examples somewhere else and modifying them. Consider asking Maven to explicitly list all the dependencies:
# if trying to modify the 'topic' example:
cd examples/jms/topic && mvn dependency:list