You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@tomee.apache.org by bu...@apache.org on 2012/07/02 17:14:45 UTC

svn commit: r824085 - in /websites/staging/openejb/trunk: cgi-bin/ content/ content/multipulse-discovery.html content/sitemap.html content/sitemap.xml

Author: buildbot
Date: Mon Jul  2 15:14:44 2012
New Revision: 824085

Log:
Staging update by buildbot for openejb

Added:
    websites/staging/openejb/trunk/content/multipulse-discovery.html
Modified:
    websites/staging/openejb/trunk/cgi-bin/   (props changed)
    websites/staging/openejb/trunk/content/   (props changed)
    websites/staging/openejb/trunk/content/sitemap.html
    websites/staging/openejb/trunk/content/sitemap.xml

Propchange: websites/staging/openejb/trunk/cgi-bin/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Jul  2 15:14:44 2012
@@ -1 +1 @@
-1356050
+1356291

Propchange: websites/staging/openejb/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Jul  2 15:14:44 2012
@@ -1 +1 @@
-1356050
+1356291

Added: websites/staging/openejb/trunk/content/multipulse-discovery.html
==============================================================================
--- websites/staging/openejb/trunk/content/multipulse-discovery.html (added)
+++ websites/staging/openejb/trunk/content/multipulse-discovery.html Mon Jul  2 15:14:44 2012
@@ -0,0 +1,275 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+
+    <meta charset="utf-8">
+      <title>MultiPulse (UDP) Discovery</title>
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="./bootstrap.css" rel="stylesheet">
+    <link href="./prettify.css" rel="stylesheet">
+    <link href="./bootstrap-mods.css" rel="stylesheet">
+
+    <style type="text/css">
+        body {
+          padding-top: 60px;
+        }
+        .sprite {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./images/sprites.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .edit-page {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./images/edit.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .fb-share {
+            background-position: 0px -40px;
+        }
+        .gp-share {
+            background-position: 0px 0px;
+        }
+        .tw-share {
+            background-position: 0px -80px;
+        }
+    </style>
+    <script type="text/javascript">
+      function fbshare () {
+          window.open(
+                  "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+                  'Share on Facebook',
+                  'width=640,height=426');
+      };
+      function gpshare () {
+          window.open(
+                  "https://plus.google.com/share?url="+document.URL,
+                  'Share on Google+',
+                  'width=584,height=385');
+      };
+      function twshare () {
+          window.open(
+                  "https://twitter.com/intent/tweet?url="+document.URL+"&text=MultiPulse (UDP) Discovery",
+                  'Share on Twitter',
+                  'width=800,height=526');
+      };
+    </script>
+
+    <!-- Le fav and touch icons -->
+    <link rel="shortcut icon" href="./images/favicon.ico">
+    <link rel="apple-touch-icon" href="./images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="./images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="./images/apple-touch-icon-114x114.png">
+
+    <script src="./javascript/prettify.js" type="text/javascript"></script>
+    <script src="./javascript/jquery-latest.js"></script>
+    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+    <script src="./javascript/common.js"></script>
+    <script src="./javascript/prettyprint.js"></script>
+
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-2717626-1']);
+      _gaq.push(['_setDomainName', 'apache.org']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+
+
+  </head>
+
+  <body>
+
+    <div class="topbar">
+      <div class="fill">
+        <div class="container">
+          <a class="brand" href="./index.html">Apache TomEE</a>
+          <ul class="nav">
+            <li><a href="./index.html">Home</a></li>
+            <li><a href="./downloads.html">Downloads</a></li>
+            <li><a href="./documentation.html">Documentation</a></li>
+            <li><a href="./support.html">Support</a></li>
+          </ul>
+
+            <!-- Google CSE Search Box Begins  -->
+            <FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
+                <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
+                <INPUT type="hidden" name="cof" value="FORID:0">
+                <INPUT name="q" type="text" placeholder="Search">
+            </FORM>
+            <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
+            <!-- Google CSE Search Box Ends -->
+        </div>
+      </div>
+    </div>
+
+    <div class="container">
+    
+
+<div class="page-header">
+<small><a href="./index.html">Home</a></small><br>
+<h1>MultiPulse (UDP) Discovery
+
+    <div style="float: right; position: relative; bottom: -10px; ">
+        <a onclick="javascript:gpshare()" class="gp-share sprite" title="share on Google+">share [gp]</a>
+        <a onclick="javascript:fbshare()" class="fb-share sprite" title="share on Facebook">share [fb]</a>
+        <a onclick="javascript:twshare()" class="tw-share sprite" title="share on Twitter">share [tw]</a>
+        <a data-toggle="modal" href="#edit" class="edit-page" title="Contribute to this Page">contribute</a>
+    </div>
+</h1>
+</div>
+
+<p>MultiPulse is an alternative multicast lookup that does not use a regular heartbeat.
+Instead, servers listen for a multicast request packet (a pulse) to which a response
+is sent. Multicast network traffic is effectively reduced to an absolute minimum.</p>
+
+<h1>Server Configuration</h1>
+
+<p>When you boot the server there should be a <code>conf/conf.d/multipulse.properties</code> file
+containing:</p>
+
+<pre><code>server      = org.apache.openejb.server.discovery.MulticastPulseAgent
+bind        = 239.255.2.3
+port        = 6142
+disabled    = true
+group       = default
+</code></pre>
+
+<p>You just need to enable the agent by setting <code>disabled = false</code>. It is advisable to
+disable multicast in the multicast.properties file, or at least to use a different
+bind address or port should you wish to use both. </p>
+
+<p>All of the above settings except <code>server</code> can be modified as required.
+The <code>port</code> and <code>bind</code> must be valid for general multicast/udp network communication.</p>
+
+<p>The <code>group</code> setting can be changed to further group servers that may use
+the same multicast channel.  As shown below the client also has a <code>group</code>
+setting which can be used to select an appropriate server from the
+multicast channel.</p>
+
+<p>The next step is to ensure that the advertised services are configured for discovery.
+Edit the <code>ejbd.properties</code> file (and any other enabled services such as http, etc.) and 
+ensure that the <code>discovery</code> option is set to a value that remote clients will be able
+to resolve.</p>
+
+<pre><code>server      = org.apache.openejb.server.ejbd.EjbServer
+bind        = 0.0.0.0
+port        = 4201
+disabled    = false
+threads     = 20
+discovery   = ejb:ejbd://{bind}:{port}
+</code></pre>
+
+<p>NOTE: If either <code>0.0.0.0</code> (IPv4) or <code>[::]</code> (IPv6) wildcard addresses are used then the server
+will actually broadcast all of it's known public hosts to clients. Clients will then cycle
+though and attempt to connect to the provided hosts until successful. If <code>localhost</code> is used
+then only clients on the same machine will actually 'see' the server.</p>
+
+<h1>MultiPulse Client</h1>
+
+<p>The multipulse functionality is not just for servers to find each other in a
+cluster, it can also be used for EJB clients to discover a server.  A
+special <code>multipulse://</code> URL can be used in the <code>InitialContext</code> properties to
+signify that multipulse should be used to seed the connection process.  Such
+as:</p>
+
+<pre><code>Properties p = new Properties();
+p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
+p.put(Context.PROVIDER_URL, "multipulse://239.255.2.3:6142?group=default&amp;timeout=250");
+InitialContext remoteContext = new InitialContext(p);
+</code></pre>
+
+<p>The URL has optional query parameters such as <code>schemes</code> and <code>group</code> and
+<code>timeout</code> which allow you to zero in on a particular type of service of a
+particular cluster group as well as set how long you are willing to wait in
+the discovery process till finally giving up.  The first matching service
+that it sees "flowing" around on the UDP stream is the one it picks and
+sticks to for that and subsequent requests, ensuring UDP is only used when
+there are no other servers to talk to.</p>
+
+<p>Note that EJB clients do not need to use multipulse to find a server.  If
+the client knows the URL of a server in the cluster, it may use it and
+connect directly to that server, at which point that server will share the
+full list of its peers.</p>
+
+<h1>Multicast Servers with TCP Clients</h1>
+
+<p>Note that clients do not need to use multipulse to communicate with servers.
+Servers can use multicast to discover each other, but clients are still
+free to connect to servers in the network using the server's TCP address.</p>
+
+<pre><code>Properties p = new Properties();
+p.put(Context.INITIAL_CONTEXT_FACTORY,  "org.apache.openejb.client.RemoteInitialContextFactory");
+p.put(Context.PROVIDER_URL, "ejbd://192.168.1.30:4201");
+InitialContext remoteContext = new InitialContext(p);
+</code></pre>
+
+<p>When the client connects, the server will send the URLs of all the servers
+in the group and failover will take place normally.</p>
+
+
+
+
+        <div id="edit" class="modal hide fade in" style="display: none; ">
+            <div class="modal-header">
+                <a class="close" data-dismiss="modal">x</a>
+
+                <h3>Thank you for contributing to the documention!</h3>
+            </div>
+            <div class="modal-body">
+                <h4>Any help with the documentation is greatly appreciated.</h4>
+                <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links.  If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it.  Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+                <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+                <!--[if gt IE 6]>
+                <h4>Internet Explorer Users</h4>
+                <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+                <![endif]-->
+
+            </div>
+            <div class="modal-footer">
+                Do you have an Apache ID?
+                <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+                <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+            </div>
+        </div>
+        <script src="./javascript/bootstrap-modal.js"></script>
+
+      <footer>
+        <p>
+        Copyright &copy; 2011 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+        Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+        </p>
+      </footer>
+
+    </div> <!-- /container -->
+
+  </body>
+</html>

Modified: websites/staging/openejb/trunk/content/sitemap.html
==============================================================================
--- websites/staging/openejb/trunk/content/sitemap.html (original)
+++ websites/staging/openejb/trunk/content/sitemap.html Mon Jul  2 15:14:44 2012
@@ -331,6 +331,7 @@
 <li><a href="multipoint-considerations.html">Multipoint Considerations</a></li>
 <li><a href="multipoint-discovery.html">Multipoint (TCP) Discovery</a></li>
 <li><a href="multipoint-recommendations.html">Multipoint Recommendations</a></li>
+<li><a href="multipulse-discovery.html">MultiPulse (UDP) Discovery</a></li>
 <li><a href="new-in-openejb-3.0.html">New in OpenEJB 3.0</a></li>
 <li><a href="openejb-0.9.2.html">OpenEJB 0.9.2</a></li>
 <li><a href="openejb-1.0-beta-1.html">OpenEJB 1.0 Beta 1</a></li>

Modified: websites/staging/openejb/trunk/content/sitemap.xml
==============================================================================
--- websites/staging/openejb/trunk/content/sitemap.xml (original)
+++ websites/staging/openejb/trunk/content/sitemap.xml Mon Jul  2 15:14:44 2012
@@ -1219,6 +1219,9 @@
         <loc>http://tomee.apache.org/multipoint-recommendations.html</loc>
     </url>
     <url>
+        <loc>http://tomee.apache.org/multipulse-discovery.html</loc>
+    </url>
+    <url>
         <loc>http://tomee.apache.org/new-in-openejb-3.0.html</loc>
     </url>
     <url>