<!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;">
    InitialContext#lookup does not timeout
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/stianst">Stian Thorgersen</a> in <i>JNDI and Naming</i> - <a href="http://community.jboss.org/message/600583#600583">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>I've got an issue where InitialContext#lookup will hang forever doing a lookup if there is a problem with the network. I appreciate this is the default settings of the TCP sockets to wait forever, so I've tried to configure the timeout using 'jnp.timeout' and 'jnp.sotimeout', but it still waits forever.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><pre class="jive-pre"><code class="jive-code jive-java">Hashtable&lt;String, String&gt; env = <font color="navy"><b>new</b></font> Hashtable&lt;String, String&gt;();
env.put(<font color="red">"java.naming.factory.initial"</font>, <font color="red">"org.jnp.interfaces.NamingContextFactory"</font>);
env.put(<font color="red">"java.naming.provider.url"</font>, <font color="red">"jnp://10.9.1.11:1099"</font>);
env.put(<font color="red">"java.naming.factory.url.pkgs"</font>, <font color="red">"org.jboss.naming"</font>);
env.put(<font color="red">"jnp.socketFactor"</font>, <font color="red">"org.jnp.interfaces.TimedSocketFactory"</font>);
env.put(<font color="red">"jnp.timeout"</font>, <font color="red">"1000"</font>);
env.put(<font color="red">"jnp.sotimeout"</font>, <font color="red">"1000"</font>);
&#160;
InitialContext ctx = <font color="navy"><b>new</b></font> InitialContext(env);
&#160;
HelloWorld world = (HelloWorld) ctx.lookup(<font color="red">"HelloWorldBean/remote"</font>);
world.sayHello(<font color="red">"hello"</font>);
&#160;
<font color="darkgreen">// disconnect network here</font>
&#160;
world = (HelloWorld) ctx.lookup(<font color="red">"HelloWorldBean/remote"</font>);
world.sayHello(<font color="red">"hello"</font>);
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>In the above example if the network is disconnected before the first lookup it times out as expected, but if the network is disconnected between the first and the second lookup it doesn't timeout at all (waited 10 min+).</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/600583#600583">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JNDI and Naming at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2083">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>