<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<STYLE>
BLOCKQUOTE {
        MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em; MARGIN-TOP: 0px
}
OL {
        MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px
}
UL {
        MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px
}
P {
        MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px
}
BODY {
        FONT-SIZE: 10.5pt; FONT-FAMILY: 微软雅黑; COLOR: #000000; LINE-HEIGHT: 1.5
}
</STYLE>

<META name=GENERATOR content="MSHTML 11.00.9600.18283"></HEAD>
<BODY style="MARGIN: 10px">
<DIV>&nbsp;</DIV>
<DIV>One thing I am not really sure about is if we need a configuration
<DIV>&gt; switch for hold/reject behavior</DIV>
<DIV>&nbsp;</DIV>
<DIV>I think use reject is better. The weblogic server start graceful use reject 
and if use hold option we must set queue to hold request.</DIV>
<DIV>&nbsp;</DIV>
<DIV>I&nbsp; very much looking forward to this feature </DIV></DIV>
<HR style="HEIGHT: 1px; WIDTH: 210px" align=left color=#b5c4df SIZE=1>

<DIV><SPAN>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: verdana; MARGIN: 10px">
<DIV>gaoyonglu@126.com</DIV></DIV></SPAN></DIV>
<DIV>&nbsp;</DIV>
<DIV 
style="BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0cm; PADDING-TOP: 3pt; PADDING-LEFT: 0cm; BORDER-LEFT: medium none; PADDING-RIGHT: 0cm">
<DIV 
style="FONT-SIZE: 12px; FONT-FAMILY: tahoma; BACKGROUND: #efefef; COLOR: #000000; PADDING-BOTTOM: 8px; PADDING-TOP: 8px; PADDING-LEFT: 8px; PADDING-RIGHT: 8px">
<DIV><B>From:</B>&nbsp;<A 
href="mailto:wildfly-dev-request@lists.jboss.org">wildfly-dev-request</A></DIV>
<DIV><B>Date:</B>&nbsp;2016-04-22&nbsp;07:00</DIV>
<DIV><B>To:</B>&nbsp;<A 
href="mailto:wildfly-dev@lists.jboss.org">wildfly-dev</A></DIV>
<DIV><B>Subject:</B>&nbsp;wildfly-dev Digest, Vol 37, Issue 9</DIV></DIV></DIV>
<DIV>
<DIV>Send wildfly-dev mailing list submissions to</DIV>
<DIV>wildfly-dev@lists.jboss.org</DIV>
<DIV>&nbsp;</DIV>
<DIV>To subscribe or unsubscribe via the World Wide Web, visit</DIV>
<DIV>https://lists.jboss.org/mailman/listinfo/wildfly-dev</DIV>
<DIV>or, via email, send a message with subject or body 'help' to</DIV>
<DIV>wildfly-dev-request@lists.jboss.org</DIV>
<DIV>&nbsp;</DIV>
<DIV>You can reach the person managing the list at</DIV>
<DIV>wildfly-dev-owner@lists.jboss.org</DIV>
<DIV>&nbsp;</DIV>
<DIV>When replying, please edit your Subject line so it is more specific</DIV>
<DIV>than "Re: Contents of wildfly-dev digest..."</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>Today's Topics:</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp; 1. Re: Graceful startup (David M. Lloyd)</DIV>
<DIV>&nbsp;&nbsp; 2. question on jboss-app_7_0.xsd intermingling jee 
versions</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Rob Stryker)</DIV>
<DIV>&nbsp;&nbsp; 3. Re: question on jboss-app_7_0.xsd intermingling jee 
versions</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Rob Stryker)</DIV>
<DIV>&nbsp;&nbsp; 4. Re: Graceful startup (Brian Stansberry)</DIV>
<DIV>&nbsp;&nbsp; 5. Re: Graceful startup (John Doyle)</DIV>
<DIV>&nbsp;&nbsp; 6. Re: Graceful startup (Brian Stansberry)</DIV>
<DIV>&nbsp;&nbsp; 7. Re: Graceful startup (Stuart Douglas)</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>----------------------------------------------------------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV>Message: 1</DIV>
<DIV>Date: Thu, 21 Apr 2016 06:50:47 -0500</DIV>
<DIV>From: "David M. Lloyd" &lt;david.lloyd@redhat.com&gt;</DIV>
<DIV>Subject: Re: [wildfly-dev] Graceful startup</DIV>
<DIV>To: wildfly-dev@lists.jboss.org</DIV>
<DIV>Message-ID: &lt;5718BE97.9010405@redhat.com&gt;</DIV>
<DIV>Content-Type: text/plain; charset=utf-8; format=flowed</DIV>
<DIV>&nbsp;</DIV>
<DIV>On 04/20/2016 09:05 PM, Stuart Douglas wrote:</DIV>
<DIV>&gt; Hi,</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; I have come across a few bug reports [1][2] (and a feature request 
from</DIV>
<DIV>&gt; the Swarm team) recently that are essentially caused by an 
application</DIV>
<DIV>&gt; being accessed before it is fully deployed. Basically even though 
we</DIV>
<DIV>&gt; have service dependencies that make sure individual components</DIV>
<DIV>&gt; dependencies are up, once a request has been accepted it can 
potentially</DIV>
<DIV>&gt; programmatically access other parts of the deployment that are not 
up</DIV>
<DIV>&gt; yet (basically the same problem we have with graceful shutdown, but 
in</DIV>
<DIV>&gt; reverse).</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; I propose we solve this using a 'graceful startup' mechanism, that 
holds</DIV>
<DIV>&gt; or rejects new requests until a server or deployment is fully 
started.</DIV>
<DIV>&gt; The specifics of how this would work are:</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; - If the server is booting all external requests will be held or</DIV>
<DIV>&gt; rejected until the the boot process is complete</DIV>
<DIV>&gt; - When deploying a new deployment all requests for that deployment 
will</DIV>
<DIV>&gt; be held or rejected until MSC has attained stability</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; This would be implemented for the following 
endpoints/subsystems:</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; - Undertow will hold requests until the deployment is done (so if 
you</DIV>
<DIV>&gt; try and load a page while deployment is happening it could be a bit of 
a</DIV>
<DIV>&gt; wait)</DIV>
<DIV>&gt; - Remote EJB will hold requests until deployment is done</DIV>
<DIV>&gt; - mod_cluster will not send availability messages until deployment is 
done</DIV>
<DIV>&gt; - JMS will delay message delivery until deployment is done</DIV>
<DIV>&gt; - EJB persistent timers will not fire until deployment is done</DIV>
<DIV>&gt; - Possibly some other cases I can't think of right now</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; One thing I am not really sure about is if we need a 
configuration</DIV>
<DIV>&gt; switch for hold/reject behavior. e.g. for Undertow the request 
holding</DIV>
<DIV>&gt; behavior is very developer friendly, as it means they can just 
hit</DIV>
<DIV>&gt; refresh in their browser and as soon as the redeployment is done 
the</DIV>
<DIV>&gt; page will display, however I am worried that it might not be ideal 
for</DIV>
<DIV>&gt; load balancers that may prefer a quick error response that could then 
be</DIV>
<DIV>&gt; attempted on another node (although if mod_cluster is not sending 
out</DIV>
<DIV>&gt; availability till the deployment is 100% complete this may not be a 
big</DIV>
<DIV>&gt; deal).</DIV>
<DIV>&nbsp;</DIV>
<DIV>I think load balancers should not have a server that is being started up 
</DIV>
<DIV>in the rotation anyway; this already probably doesn't work great 
today.</DIV>
<DIV>&nbsp;</DIV>
<DIV>I like the idea overall.</DIV>
<DIV>&nbsp;</DIV>
<DIV>-- </DIV>
<DIV>- DML</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>------------------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV>Message: 2</DIV>
<DIV>Date: Thu, 21 Apr 2016 12:08:05 -0400</DIV>
<DIV>From: Rob Stryker &lt;rstryker@redhat.com&gt;</DIV>
<DIV>Subject: [wildfly-dev] question on jboss-app_7_0.xsd intermingling 
jee</DIV>
<DIV>versions</DIV>
<DIV>To: "wildfly-dev@lists.jboss.org" &lt;wildfly-dev@lists.jboss.org&gt;</DIV>
<DIV>Message-ID: &lt;5718FAE5.2020307@redhat.com&gt;</DIV>
<DIV>Content-Type: text/plain; charset=utf-8; format=flowed</DIV>
<DIV>&nbsp;</DIV>
<DIV>Hi guys:</DIV>
<DIV>&nbsp;</DIV>
<DIV>I recently opened https://issues.jboss.org/browse/JBMETA-394 because it 
</DIV>
<DIV>seems our application schema are intermingling jee versions between ee6 
</DIV>
<DIV>and ee7,&nbsp; and it's causing problems for our eclipse validators.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Who's in charge of these schema, specifically? Who would be the right 
</DIV>
<DIV>person to ping to get it fixed?</DIV>
<DIV>&nbsp;</DIV>
<DIV>- Rob Stryker</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>------------------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV>Message: 3</DIV>
<DIV>Date: Thu, 21 Apr 2016 12:13:51 -0400</DIV>
<DIV>From: Rob Stryker &lt;rstryker@redhat.com&gt;</DIV>
<DIV>Subject: Re: [wildfly-dev] question on jboss-app_7_0.xsd 
intermingling</DIV>
<DIV>jee versions</DIV>
<DIV>To: wildfly-dev@lists.jboss.org</DIV>
<DIV>Message-ID: &lt;5718FC3F.4020300@redhat.com&gt;</DIV>
<DIV>Content-Type: text/plain; charset=windows-1252; format=flowed</DIV>
<DIV>&nbsp;</DIV>
<DIV>Ok, seems I missed some responses before.</DIV>
<DIV>&nbsp;</DIV>
<DIV>&gt; Max Anderson wrote:&nbsp;&nbsp; Rob - is the error you see on the 
</DIV>
<DIV>jboss-application.xml you wrote or in&nbsp; the included xsd ?</DIV>
<DIV>&nbsp;</DIV>
<DIV>I opened https://issues.jboss.org/browse/JBMETA-394&nbsp; for a more clear 
</DIV>
<DIV>explanation as to the specific error. The error is in a user's </DIV>
<DIV>jboss-application.xml.</DIV>
<DIV>&nbsp;</DIV>
<DIV>&gt; Marek wrote:&nbsp; I guess you mixed Java EE 6 with JBoss AS 7 
versions here.</DIV>
<DIV>&nbsp;</DIV>
<DIV>I'll try to find out where the example is coming from. If it's from one 
</DIV>
<DIV>of our published examples, then I would guess it needs to be fixed </DIV>
<DIV>there. Looking at the released versions of jboss-app_x_y.xsd,&nbsp; it 
would </DIV>
<DIV>seem Marek is probably right and the versions there match the jboss/wf 
</DIV>
<DIV>releases, and not the ee version.</DIV>
<DIV>&nbsp;</DIV>
<DIV>I'll dig deeper. Thanks.</DIV>
<DIV>&nbsp;</DIV>
<DIV>On 04/21/2016 12:08 PM, Rob Stryker wrote:</DIV>
<DIV>&gt; Hi guys:</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; I recently opened https://issues.jboss.org/browse/JBMETA-394 because 
it</DIV>
<DIV>&gt; seems our application schema are intermingling jee versions between 
ee6</DIV>
<DIV>&gt; and ee7,&nbsp; and it's causing problems for our eclipse 
validators.</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; Who's in charge of these schema, specifically? Who would be the 
right</DIV>
<DIV>&gt; person to ping to get it fixed?</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; - Rob Stryker</DIV>
<DIV>&gt; _______________________________________________</DIV>
<DIV>&gt; wildfly-dev mailing list</DIV>
<DIV>&gt; wildfly-dev@lists.jboss.org</DIV>
<DIV>&gt; https://lists.jboss.org/mailman/listinfo/wildfly-dev</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>------------------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV>Message: 4</DIV>
<DIV>Date: Thu, 21 Apr 2016 13:44:48 -0500</DIV>
<DIV>From: Brian Stansberry &lt;brian.stansberry@redhat.com&gt;</DIV>
<DIV>Subject: Re: [wildfly-dev] Graceful startup</DIV>
<DIV>To: wildfly-dev@lists.jboss.org</DIV>
<DIV>Message-ID: &lt;57191FA0.9070800@redhat.com&gt;</DIV>
<DIV>Content-Type: text/plain; charset=windows-1252; format=flowed</DIV>
<DIV>&nbsp;</DIV>
<DIV>On 4/20/16 9:05 PM, Stuart Douglas wrote:</DIV>
<DIV>&gt; Hi,</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; I have come across a few bug reports [1][2] (and a feature request 
from</DIV>
<DIV>&gt; the Swarm team) recently that are essentially caused by an 
application</DIV>
<DIV>&gt; being accessed before it is fully deployed. Basically even though 
we</DIV>
<DIV>&gt; have service dependencies that make sure individual components</DIV>
<DIV>&gt; dependencies are up, once a request has been accepted it can 
potentially</DIV>
<DIV>&gt; programmatically access other parts of the deployment that are not 
up</DIV>
<DIV>&gt; yet (basically the same problem we have with graceful shutdown, but 
in</DIV>
<DIV>&gt; reverse).</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; I propose we solve this using a 'graceful startup' mechanism, that 
holds</DIV>
<DIV>&gt; or rejects new requests until a server or deployment is fully 
started.</DIV>
<DIV>&gt; The specifics of how this would work are:</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; - If the server is booting all external requests will be held or</DIV>
<DIV>&gt; rejected until the the boot process is complete</DIV>
<DIV>&gt; - When deploying a new deployment all requests for that deployment 
will</DIV>
<DIV>&gt; be held or rejected until MSC has attained stability</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; This would be implemented for the following 
endpoints/subsystems:</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; - Undertow will hold requests until the deployment is done (so if 
you</DIV>
<DIV>&gt; try and load a page while deployment is happening it could be a bit of 
a</DIV>
<DIV>&gt; wait)</DIV>
<DIV>&gt; - Remote EJB will hold requests until deployment is done</DIV>
<DIV>&gt; - mod_cluster will not send availability messages until deployment is 
done</DIV>
<DIV>&nbsp;</DIV>
<DIV>Isn't this what mod_cluster does on a per-deployment basis anyway? The 
</DIV>
<DIV>basic idea of mod_cluster is the LB isn't notified the context is </DIV>
<DIV>available on a backend server until it's....available.</DIV>
<DIV>&nbsp;</DIV>
<DIV>&gt; - JMS will delay message delivery until deployment is done</DIV>
<DIV>&gt; - EJB persistent timers will not fire until deployment is done</DIV>
<DIV>&gt; - Possibly some other cases I can't think of right now</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; One thing I am not really sure about is if we need a 
configuration</DIV>
<DIV>&gt; switch for hold/reject behavior. e.g. for Undertow the request 
holding</DIV>
<DIV>&gt; behavior is very developer friendly, as it means they can just 
hit</DIV>
<DIV>&gt; refresh in their browser and as soon as the redeployment is done 
the</DIV>
<DIV>&gt; page will display, however I am worried that it might not be ideal 
for</DIV>
<DIV>&gt; load balancers that may prefer a quick error response that could then 
be</DIV>
<DIV>&gt; attempted on another node (although if mod_cluster is not sending 
out</DIV>
<DIV>&gt; availability till the deployment is 100% complete this may not be a 
big</DIV>
<DIV>&gt; deal).</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; If you want to see this in action I have a very simple PR at [3] 
that</DIV>
<DIV>&gt; enables this for Undertow at server boot.</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; Thoughts?</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; Stuart</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; [1] https://issues.jboss.org/browse/WFLY-6402</DIV>
<DIV>&gt; [2] https://issues.jboss.org/browse/JBEAP-867</DIV>
<DIV>&gt; [3] https://github.com/wildfly/wildfly/pull/8858</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; _______________________________________________</DIV>
<DIV>&gt; wildfly-dev mailing list</DIV>
<DIV>&gt; wildfly-dev@lists.jboss.org</DIV>
<DIV>&gt; https://lists.jboss.org/mailman/listinfo/wildfly-dev</DIV>
<DIV>&gt;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>-- </DIV>
<DIV>Brian Stansberry</DIV>
<DIV>Senior Principal Software Engineer</DIV>
<DIV>JBoss by Red Hat</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>------------------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV>Message: 5</DIV>
<DIV>Date: Thu, 21 Apr 2016 15:07:18 -0400</DIV>
<DIV>From: John Doyle &lt;jdoyle@redhat.com&gt;</DIV>
<DIV>Subject: Re: [wildfly-dev] Graceful startup</DIV>
<DIV>To: Brian Stansberry &lt;brian.stansberry@redhat.com&gt;</DIV>
<DIV>Cc: wildfly-dev@lists.jboss.org</DIV>
<DIV>Message-ID:</DIV>
<DIV>&lt;CAKSM3ocU+B0gXue4fu6JUZ=wA_Ov9F3kPRhEeAFU-OAO5GgNNQ@mail.gmail.com&gt;</DIV>
<DIV>Content-Type: text/plain; charset=UTF-8</DIV>
<DIV>&nbsp;</DIV>
<DIV>On Thu, Apr 21, 2016 at 2:44 PM, Brian Stansberry</DIV>
<DIV>&lt;brian.stansberry@redhat.com&gt; wrote:</DIV>
<DIV>&gt; On 4/20/16 9:05 PM, Stuart Douglas wrote:</DIV>
<DIV>&gt;&gt; Hi,</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt; I have come across a few bug reports [1][2] (and a feature request 
from</DIV>
<DIV>&gt;&gt; the Swarm team) recently that are essentially caused by an 
application</DIV>
<DIV>&gt;&gt; being accessed before it is fully deployed. Basically even though 
we</DIV>
<DIV>&gt;&gt; have service dependencies that make sure individual 
components</DIV>
<DIV>&gt;&gt; dependencies are up, once a request has been accepted it can 
potentially</DIV>
<DIV>&gt;&gt; programmatically access other parts of the deployment that are not 
up</DIV>
<DIV>&gt;&gt; yet (basically the same problem we have with graceful shutdown, 
but in</DIV>
<DIV>&gt;&gt; reverse).</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt; I propose we solve this using a 'graceful startup' mechanism, that 
holds</DIV>
<DIV>&gt;&gt; or rejects new requests until a server or deployment is fully 
started.</DIV>
<DIV>&gt;&gt; The specifics of how this would work are:</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt; - If the server is booting all external requests will be held 
or</DIV>
<DIV>&gt;&gt; rejected until the the boot process is complete</DIV>
<DIV>&gt;&gt; - When deploying a new deployment all requests for that deployment 
will</DIV>
<DIV>&gt;&gt; be held or rejected until MSC has attained stability</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt; This would be implemented for the following 
endpoints/subsystems:</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt; - Undertow will hold requests until the deployment is done (so if 
you</DIV>
<DIV>&gt;&gt; try and load a page while deployment is happening it could be a 
bit of a</DIV>
<DIV>&gt;&gt; wait)</DIV>
<DIV>&gt;&gt; - Remote EJB will hold requests until deployment is done</DIV>
<DIV>&gt;&gt; - mod_cluster will not send availability messages until deployment 
is done</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; Isn't this what mod_cluster does on a per-deployment basis anyway? 
The</DIV>
<DIV>&gt; basic idea of mod_cluster is the LB isn't notified the context 
is</DIV>
<DIV>&gt; available on a backend server until it's....available.</DIV>
<DIV>&nbsp;</DIV>
<DIV>True, but not everyone is using mod_cluster.</DIV>
<DIV>&nbsp;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&gt; - JMS will delay message delivery until deployment is done</DIV>
<DIV>&gt;&gt; - EJB persistent timers will not fire until deployment is 
done</DIV>
<DIV>&gt;&gt; - Possibly some other cases I can't think of right now</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt; One thing I am not really sure about is if we need a 
configuration</DIV>
<DIV>&gt;&gt; switch for hold/reject behavior. e.g. for Undertow the request 
holding</DIV>
<DIV>&gt;&gt; behavior is very developer friendly, as it means they can just 
hit</DIV>
<DIV>&gt;&gt; refresh in their browser and as soon as the redeployment is done 
the</DIV>
<DIV>&gt;&gt; page will display, however I am worried that it might not be ideal 
for</DIV>
<DIV>&gt;&gt; load balancers that may prefer a quick error response that could 
then be</DIV>
<DIV>&gt;&gt; attempted on another node (although if mod_cluster is not sending 
out</DIV>
<DIV>&gt;&gt; availability till the deployment is 100% complete this may not be 
a big</DIV>
<DIV>&gt;&gt; deal).</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt; If you want to see this in action I have a very simple PR at [3] 
that</DIV>
<DIV>&gt;&gt; enables this for Undertow at server boot.</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt; Thoughts?</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt; Stuart</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt; [1] https://issues.jboss.org/browse/WFLY-6402</DIV>
<DIV>&gt;&gt; [2] https://issues.jboss.org/browse/JBEAP-867</DIV>
<DIV>&gt;&gt; [3] https://github.com/wildfly/wildfly/pull/8858</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt; _______________________________________________</DIV>
<DIV>&gt;&gt; wildfly-dev mailing list</DIV>
<DIV>&gt;&gt; wildfly-dev@lists.jboss.org</DIV>
<DIV>&gt;&gt; https://lists.jboss.org/mailman/listinfo/wildfly-dev</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; --</DIV>
<DIV>&gt; Brian Stansberry</DIV>
<DIV>&gt; Senior Principal Software Engineer</DIV>
<DIV>&gt; JBoss by Red Hat</DIV>
<DIV>&gt; _______________________________________________</DIV>
<DIV>&gt; wildfly-dev mailing list</DIV>
<DIV>&gt; wildfly-dev@lists.jboss.org</DIV>
<DIV>&gt; https://lists.jboss.org/mailman/listinfo/wildfly-dev</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>------------------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV>Message: 6</DIV>
<DIV>Date: Thu, 21 Apr 2016 15:39:56 -0500</DIV>
<DIV>From: Brian Stansberry &lt;brian.stansberry@redhat.com&gt;</DIV>
<DIV>Subject: Re: [wildfly-dev] Graceful startup</DIV>
<DIV>To: John Doyle &lt;jdoyle@redhat.com&gt;</DIV>
<DIV>Cc: wildfly-dev@lists.jboss.org</DIV>
<DIV>Message-ID: &lt;57193A9C.1040103@redhat.com&gt;</DIV>
<DIV>Content-Type: text/plain; charset=utf-8; format=flowed</DIV>
<DIV>&nbsp;</DIV>
<DIV>On 4/21/16 2:07 PM, John Doyle wrote:</DIV>
<DIV>&gt; On Thu, Apr 21, 2016 at 2:44 PM, Brian Stansberry</DIV>
<DIV>&gt; &lt;brian.stansberry@redhat.com&gt; wrote:</DIV>
<DIV>&gt;&gt; On 4/20/16 9:05 PM, Stuart Douglas wrote:</DIV>
<DIV>&gt;&gt;&gt; Hi,</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt; I have come across a few bug reports [1][2] (and a feature 
request from</DIV>
<DIV>&gt;&gt;&gt; the Swarm team) recently that are essentially caused by an 
application</DIV>
<DIV>&gt;&gt;&gt; being accessed before it is fully deployed. Basically even 
though we</DIV>
<DIV>&gt;&gt;&gt; have service dependencies that make sure individual 
components</DIV>
<DIV>&gt;&gt;&gt; dependencies are up, once a request has been accepted it can 
potentially</DIV>
<DIV>&gt;&gt;&gt; programmatically access other parts of the deployment that are 
not up</DIV>
<DIV>&gt;&gt;&gt; yet (basically the same problem we have with graceful 
shutdown, but in</DIV>
<DIV>&gt;&gt;&gt; reverse).</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt; I propose we solve this using a 'graceful startup' mechanism, 
that holds</DIV>
<DIV>&gt;&gt;&gt; or rejects new requests until a server or deployment is fully 
started.</DIV>
<DIV>&gt;&gt;&gt; The specifics of how this would work are:</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt; - If the server is booting all external requests will be held 
or</DIV>
<DIV>&gt;&gt;&gt; rejected until the the boot process is complete</DIV>
<DIV>&gt;&gt;&gt; - When deploying a new deployment all requests for that 
deployment will</DIV>
<DIV>&gt;&gt;&gt; be held or rejected until MSC has attained stability</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt; This would be implemented for the following 
endpoints/subsystems:</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt; - Undertow will hold requests until the deployment is done (so 
if you</DIV>
<DIV>&gt;&gt;&gt; try and load a page while deployment is happening it could be 
a bit of a</DIV>
<DIV>&gt;&gt;&gt; wait)</DIV>
<DIV>&gt;&gt;&gt; - Remote EJB will hold requests until deployment is done</DIV>
<DIV>&gt;&gt;&gt; - mod_cluster will not send availability messages until 
deployment is done</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt; Isn't this what mod_cluster does on a per-deployment basis anyway? 
The</DIV>
<DIV>&gt;&gt; basic idea of mod_cluster is the LB isn't notified the context 
is</DIV>
<DIV>&gt;&gt; available on a backend server until it's....available.</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; True, but not everyone is using mod_cluster.</DIV>
<DIV>&gt;</DIV>
<DIV>&nbsp;</DIV>
<DIV>Sure, but the statement I was commenting on was about proposed new </DIV>
<DIV>behavior of our mod_cluster subsystem. But the proposed new behavior </DIV>
<DIV>sounds like what the existing behavior should already be. So I wonder if 
</DIV>
<DIV>I'm missing something.</DIV>
<DIV>&nbsp;</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt; - JMS will delay message delivery until deployment is 
done</DIV>
<DIV>&gt;&gt;&gt; - EJB persistent timers will not fire until deployment is 
done</DIV>
<DIV>&gt;&gt;&gt; - Possibly some other cases I can't think of right now</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt; One thing I am not really sure about is if we need a 
configuration</DIV>
<DIV>&gt;&gt;&gt; switch for hold/reject behavior. e.g. for Undertow the request 
holding</DIV>
<DIV>&gt;&gt;&gt; behavior is very developer friendly, as it means they can just 
hit</DIV>
<DIV>&gt;&gt;&gt; refresh in their browser and as soon as the redeployment is 
done the</DIV>
<DIV>&gt;&gt;&gt; page will display, however I am worried that it might not be 
ideal for</DIV>
<DIV>&gt;&gt;&gt; load balancers that may prefer a quick error response that 
could then be</DIV>
<DIV>&gt;&gt;&gt; attempted on another node (although if mod_cluster is not 
sending out</DIV>
<DIV>&gt;&gt;&gt; availability till the deployment is 100% complete this may not 
be a big</DIV>
<DIV>&gt;&gt;&gt; deal).</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt; If you want to see this in action I have a very simple PR at 
[3] that</DIV>
<DIV>&gt;&gt;&gt; enables this for Undertow at server boot.</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt; Thoughts?</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt; Stuart</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt; [1] https://issues.jboss.org/browse/WFLY-6402</DIV>
<DIV>&gt;&gt;&gt; [2] https://issues.jboss.org/browse/JBEAP-867</DIV>
<DIV>&gt;&gt;&gt; [3] https://github.com/wildfly/wildfly/pull/8858</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;&gt; _______________________________________________</DIV>
<DIV>&gt;&gt;&gt; wildfly-dev mailing list</DIV>
<DIV>&gt;&gt;&gt; wildfly-dev@lists.jboss.org</DIV>
<DIV>&gt;&gt;&gt; https://lists.jboss.org/mailman/listinfo/wildfly-dev</DIV>
<DIV>&gt;&gt;&gt;</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt;</DIV>
<DIV>&gt;&gt; --</DIV>
<DIV>&gt;&gt; Brian Stansberry</DIV>
<DIV>&gt;&gt; Senior Principal Software Engineer</DIV>
<DIV>&gt;&gt; JBoss by Red Hat</DIV>
<DIV>&gt;&gt; _______________________________________________</DIV>
<DIV>&gt;&gt; wildfly-dev mailing list</DIV>
<DIV>&gt;&gt; wildfly-dev@lists.jboss.org</DIV>
<DIV>&gt;&gt; https://lists.jboss.org/mailman/listinfo/wildfly-dev</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>-- </DIV>
<DIV>Brian Stansberry</DIV>
<DIV>Senior Principal Software Engineer</DIV>
<DIV>JBoss by Red Hat</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>------------------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV>Message: 7</DIV>
<DIV>Date: Thu, 21 Apr 2016 22:59:54 +0000</DIV>
<DIV>From: Stuart Douglas &lt;stuart.w.douglas@gmail.com&gt;</DIV>
<DIV>Subject: Re: [wildfly-dev] Graceful startup</DIV>
<DIV>To: Brian Stansberry &lt;brian.stansberry@redhat.com&gt;,</DIV>
<DIV>wildfly-dev@lists.jboss.org</DIV>
<DIV>Message-ID:</DIV>
<DIV>&lt;CAAoo=c5DAg+yCzMxpzK4BDxfViQDTJnb_vMZz22k4_WwZrHikg@mail.gmail.com&gt;</DIV>
<DIV>Content-Type: text/plain; charset="utf-8"</DIV>
<DIV>&nbsp;</DIV>
<DIV>&gt; &gt; - Undertow will hold requests until the deployment is done (so if 
you</DIV>
<DIV>&gt; &gt; try and load a page while deployment is happening it could be a 
bit of a</DIV>
<DIV>&gt; &gt; wait)</DIV>
<DIV>&gt; &gt; - Remote EJB will hold requests until deployment is done</DIV>
<DIV>&gt; &gt; - mod_cluster will not send availability messages until 
deployment is</DIV>
<DIV>&gt; done</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; Isn't this what mod_cluster does on a per-deployment basis anyway? 
The</DIV>
<DIV>&gt; basic idea of mod_cluster is the LB isn't notified the context 
is</DIV>
<DIV>&gt; available on a backend server until it's....available.</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>At the moment it is sent when the Undertow service comes up. It is 
still</DIV>
<DIV>possible that there could be other services (especially in a multi 
module</DIV>
<DIV>EAR deployment) that have not come up yet.</DIV>
<DIV>&nbsp;</DIV>
<DIV>In practice for a lot of deployments this window will be very small or 
even</DIV>
<DIV>non existent, and the behavior will be basically indistinguishable.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Stuart</DIV>
<DIV>-------------- next part --------------</DIV>
<DIV>An HTML attachment was scrubbed...</DIV>
<DIV>URL: 
http://lists.jboss.org/pipermail/wildfly-dev/attachments/20160421/52d3edbd/attachment.html 
</DIV>
<DIV>&nbsp;</DIV>
<DIV>------------------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV>_______________________________________________</DIV>
<DIV>wildfly-dev mailing list</DIV>
<DIV>wildfly-dev@lists.jboss.org</DIV>
<DIV>https://lists.jboss.org/mailman/listinfo/wildfly-dev</DIV>
<DIV>&nbsp;</DIV>
<DIV>End of wildfly-dev Digest, Vol 37, Issue 9</DIV>
<DIV>******************************************</DIV></DIV></BODY></HTML>