Bug 361971 - Session failover does not work with Virgo-Tomcat
Summary: Session failover does not work with Virgo-Tomcat
Status: NEW
Alias: None
Product: Virgo
Classification: RT
Component: runtime (show other bugs)
Version: 3.0.1.RELEASE   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Violeta Georgieva CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 353117
  Show dependency tree
 
Reported: 2011-10-25 13:23 EDT by Rüdiger Herrmann CLA
Modified: 2015-06-11 16:05 EDT (History)
4 users (show)

See Also:


Attachments
Artefacts to reproduce the issue (7.42 KB, application/octet-stream)
2011-10-25 13:32 EDT, Rüdiger Herrmann CLA
no flags Details
Shortened virgo-server/log.log (222.78 KB, text/plain)
2011-10-25 14:00 EDT, Rüdiger Herrmann CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Rüdiger Herrmann CLA 2011-10-25 13:23:14 EDT
Currently it seems not possible to have two Virgo-Tomcat instances form a session failover cluster when the application is deployed as web-bundles. A ClassNotFoundException occurs, the first class from the web bundle cannot be found.

The configuration we tried is as follows:
* download the virgo-tomcat-server
* unzip the download twice, once with a root folder "node1" and a second time with "node2"
* replace the config/tomcat-server.xml files with the ones from the attached zip file. They configure a SimpleTcpCluster and change the port of the HTTP connector to 8080 (node1) and 9090 (node2)
* to deploy the application from the web-bundles folder of the attached zip, we started the servers separately and used the admin web UI to upload the bundles (there are certainly more efficient ways to do that)

To simulate the session failover, we used rinetd [1] which can be used to redirect ports. For those who prefer Apache, that should work equally.
To reproduce the ClassNotFoundException, follow these steps:
1. launch node1 and node2. Before launching node2 change the JMX_PORT to not conflict with the one from node1.
2. setup rinetd to redirect from port 7070 to 8080
3. open a browser at http://localhost:7070/demo/rap
4. you should see a UI with a button called "push". Click the button several times, it shows a counter.
-> the node2/servicability/logs/virgo-server/log.log will show the exception
For the sake of completeness you may follow the remainig steps
5. stop rinetd and restart it to redirect from port 7070 to 9090
6. in the browser, click the "push" button again
-> an error message is displayed in the browser

[1] http://www.boutell.com/rinetd
Comment 1 Rüdiger Herrmann CLA 2011-10-25 13:32:54 EDT
Created attachment 205940 [details]
Artefacts to reproduce the issue

The dependency of the org.eclipse.rap.rwt.demo we-bundle didn't fit into the 2MB limit for attachments of the Eclipse Bugzilla.
Please download the dependency from http://eclipse.org/downloads (go to RAP Runtime -> nightly builds -> zipped version). Copy the org.eclipse.rap.rwt bundle from the download zip to the we-bundles folder.
Comment 2 Violeta Georgieva CLA 2011-10-25 13:41:06 EDT
Could you please attach also <Virgo-Home>/servicability/logs/virgo-server/log.log file?

Thanks
Violeta
Comment 3 Rüdiger Herrmann CLA 2011-10-25 14:00:33 EDT
Created attachment 205946 [details]
Shortened virgo-server/log.log

Please let me know if this is not sufficient
Comment 4 Florian Waibel CLA 2015-06-11 16:05:08 EDT
Changed component to runtime.