<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
Re: ServerManager-Server(-ProcessManager) communication
</h3>
<span style="margin-bottom: 10px;">
created by <a href="http://community.jboss.org/people/bstansberry%40jboss.com">Brian Stansberry</a> in <i>JBoss AS7 Development</i> - <a href="http://community.jboss.org/message/561853#561853">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><blockquote class="jive-quote"><p>Kabir Khan wrote:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><blockquote class="jive-quote"><p>Brian Stansberry wrote:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I agree it makes more sense to handle a failure of 1) by using the PM to tell the server(s) to reconnect. Stopping and starting the SM's listening socket gives me a bit of a queasy feeling though; it could interrupt other on-going communication. Is the advantage mainly simplicity (stop and start the socket triggers the existing 6.3.4 logic above instead of requiring the SM to send a command to the PM)?</p></blockquote><p>I suggested restarting the listener for two reasons. It sounded simpler, and I am not sure in what situations the SM listener would be well and truly broken. But I can definitely send a command to PM instead (and then if we find scenarios where we need to restart SM's listener I'll deal with those later).</p></blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Sounds good.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><blockquote class="jive-quote">The PM needs to consume each process' stdout and stderr anyway.<blockquote class="jive-quote"><div> </div></blockquote><p>Not sure what you mean here? We still consume stderr for logging but I have done away with the stdout consumption. If you mean for monitoring whether the process is still alive, that is now done by a simple Process.waitFor().</p></blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>A key thing the PM needs to do is handle the last sentence in this bit from the java.lang.Process class javadoc:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>"The created subprocess does not have its own terminal or  console. All its standard io (i.e. stdin, stdout, stderr)  operations  will be redirected to the parent process through three streams  (<a class="jive-link-external-small" href="http://download.oracle.com/javase/6/docs/api/java/lang/Process.html#getOutputStream%28%29"><code>getOutputStream()</code></a>,  <a class="jive-link-external-small" href="http://download.oracle.com/javase/6/docs/api/java/lang/Process.html#getInputStream%28%29"><code>getInputStream()</code></a>,  <a class="jive-link-external-small" href="http://download.oracle.com/javase/6/docs/api/java/lang/Process.html#getErrorStream%28%29"><code>getErrorStream()</code></a>).  The parent process uses these streams to feed input to and get output  from the subprocess. Because some native platforms only provide  limited buffer size for standard input and output streams, failure  to promptly write the input stream or read the output stream of  the subprocess may cause the subprocess to block, and even deadlock."</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>So, whatever comes out of stdout or stderr needs to be consumed promptly.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Using stdin all the time for PM -> Process sounds good.</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/561853#561853">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss AS7 Development at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2225">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>