<!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: Create stateless bean from stateful bean
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/piotrekde">piotrekde</a> in <i>Beginner's Corner</i> - <a href="http://community.jboss.org/message/578033#578033">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>Thanks for answer!</p><blockquote class="jive-quote"><p>Never instantiate EJBs (or any server managed components) via the constructor invocation. Doing so will strip off all the server provided services off those components (for example, the instances will no longer be having any transaction or security semantics).</p></blockquote><p>I didn't know it, I'll take it into account in future.</p><blockquote class="jive-quote"><p>You mean same JVM? I would say it doesn't make any difference, but I haven't yet understood the question, so I might be missing something.</p></blockquote><p>Yes, that's what I mean. Please take a look at the example:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Here we've got Stateless bean which is responsible for doing some computations (running on JBoss):</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><pre class="jive-pre"><code class="jive-code jive-java">@Stateless
<font color="navy"><b>public</b></font> <font color="navy"><b>class</b></font> WorkerBean <font color="navy"><b>implements</b></font> WorkerRemote <font color="navy">{</font>
&#160; <font color="navy"><b>public</b></font> <font color="navy"><b>void</b></font> doSomeComputations(<font color="navy"><b>int</b></font> x) <font color="navy">{</font>
&#160;&#160;&#160; <font color="darkgreen">// executing this method takes some time</font>
&#160; <font color="navy">}</font>
<font color="navy">}</font>
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>This is ordinary Java class which runs on my Desktop JVM. It runs 100 times computations, each one with different argument.</p><pre class="jive-pre"><code class="jive-code jive-java"><font color="navy"><b>public</b></font> <font color="navy"><b>class</b></font> ClientPOJO <font color="navy">{</font>
&#160; <font color="navy"><b>public</b></font> <font color="navy"><b>static</b></font> <font color="navy"><b>void</b></font> main(String[] args) <font color="navy">{</font>
&#160;&#160;&#160; Context jndiContext = getInitialContext();
&#160;&#160;&#160; <font color="navy"><b>for</b></font>(<font color="navy"><b>int</b></font> i=0; i&lt;100; i++) <font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160; WorkerRemote r = (WorkerRemote) jndiContext.lookup(<font color="red">"WorkerBean/remote"</font>);
&#160;&#160;&#160;&#160;&#160; r.doSomeComputations(i);
&#160;&#160;&#160; <font color="navy">}</font>&#160;&#160;&#160;&#160; 
<font color="navy">}</font>
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>This code results that stateless beans are taken from the pool. So it might be 1,5,10 or even 20 WorkerBean objects (it depends on JBoss).</p><p>Now I want to do the same what do ClientPOJO#main but using Stateful bean running on JBoss. </p><p>The question is: how to obtain references to WorkerRemote interface appropriately?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><pre class="jive-pre"><code class="jive-code jive-java">@Stateful
<font color="navy"><b>public</b></font> <font color="navy"><b>class</b></font> Manager <font color="navy"><b>implements</b></font> ManagerRemote <font color="navy">{</font>
&#160; <font color="navy"><b>public</b></font> <font color="navy"><b>void</b></font> orderComputations() <font color="navy">{</font>
&#160;&#160;&#160; <font color="navy"><b>for</b></font>(<font color="navy"><b>int</b></font> i=0; i&lt;100; i++) <font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160; WorkerRemote r = <font color="darkgreen">// how to obtain reference? Should I use JNDI as ClientPOJO or @EJB annotation?</font>
&#160;&#160;&#160;&#160;&#160; r.doSomeComputations(i);
&#160;&#160;&#160; <font color="navy">}</font>
&#160; <font color="navy">}</font>
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>(This is not real logic - actually method orderComputations() will be called X times, but I think that this code clearly describes my question.)</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/578033#578033">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in Beginner's Corner at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2075">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


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

</div>

</body>
</html>