Menu

Tree [8525de] master /
 History

HTTPS access


File Date Author Commit
 doc 2010-03-26 Francesco Feltrinelli Francesco Feltrinelli [e277fa] added README file and javadoc generation in Mak...
 src 2010-02-20 Francesco Feltrinelli Francesco Feltrinelli [1e0e52] fixes to concurrency, admin, Makefile
 .classpath 2009-12-28 Francesco Feltrinelli Francesco Feltrinelli [bba121] first sketch complete
 .gitignore 2010-03-26 Francesco Feltrinelli Francesco Feltrinelli [e277fa] added README file and javadoc generation in Mak...
 .project 2009-12-28 Francesco Feltrinelli Francesco Feltrinelli [bba121] first sketch complete
 Makefile 2010-03-26 Francesco Feltrinelli Francesco Feltrinelli [e277fa] added README file and javadoc generation in Mak...
 README 2010-03-26 Francesco Feltrinelli Francesco Feltrinelli [8525de] jndi.properties info on README

Read Me

HOW TO COMPILE BINARIES AND JAVADOC

1) Extract BullyJMS archive in an arbitrary directory.
2) Make sure you installed Joram in your system.
3) Modify joram_dir variable in Makefile to be the top directory of your Joram installation, or export JORAM_TOP shell variable.
4) "make"

To clean: "make clean"

HOW TO EXECUTE SAMPLE APPLICATION

A BullyJMS sample application has been implemented. The coordinator keeps waiting for reception of any string from any other process, reversing them and sending them back to sender. Non-coordinator processes keep generating random strings and sending them to coordinator when the user presses Enter at keyboard. Coordinator's status is the vector of received strings, updated every time a new string is received.

To start application:

1) "make singleserver" to start a single Joram/JNDI server on localhost
2) "make admin NUM=<number of processes>" to create and bound administered objects (queues, connection factory) to Joram server for the maximum specified number of processes
3) "make simpleclient PID=<pid>" to start a process with specified pid. Note that a process' pid must be between 0 and max_proc_num-1. Be careful not to use an already used pid. "jndi.properties" in "bin" folder is by default configured to connect to a JNDI server on localhost; if you need to connect to a remote JNDI server modify "java.naming.factory.host" property.

A simple scenario of execution with just two processes with pid 0 (P0) and 1 (P1) would be:

1) Start P0. It should become coordinator and start waiting for requests.
2) Start P1. It should become the new coordinator (because of its higher pid), and P0 should agree about that.
3) Press Enter at P0. P0 creates a random string and send it to P1; P1 reverses it, send it back to P0, updates status; P0 receives reversed string.
4) Stop P1.
5) Press Enter at P0. P0 realizes that P1 is down, start a new election after which it is (auto)elected as the new coordinator. Previous coordinator's status is restored.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.