<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>Part of the problem is this issue that we just discovered:&nbsp;<a href="https://issues.jboss.org/browse/AS7-4092">https://issues.jboss.org/browse/AS7-4092</a>, where empty transactions cannot be committed or rolled back.&nbsp;</div><div><br></div><div>I am just testing a fix now.</div><div><br></div><div>Stuart</div><br><div><div>On 08/03/2012, at 5:54 AM, Wolf-Dieter Fink wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
  
    <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
  
  <div text="#000000" bgcolor="#FFFFFF">
    =====&nbsp;&nbsp; Regarding node-name.&nbsp;&nbsp; =====<br>
    In standalone I supposed it is the name of
    jboss-ejb-client.properties<br>
    &nbsp;&nbsp;&nbsp; remote.connection.<b>default</b>.host=localhost<br>
    But I have to set it by -Djboss.node.name=&lt;&gt;.<br>
    ???&nbsp; it is not possible to add a system-property to the
    standalone.xml for that, or do I something wrong with the
    system-property element in configuration???<br>
    ??? What is the name in domain mode? Is the &lt;server name=""
    ...&gt; attribute for each defined server used???<br>
    ??? Is it possible to see the node name with the management
    console???<br>
    <br>
    The section for remote invoking EJB's note that a node name must be
    set unique, but I did not see any problem if I start two instances
    (same machine) without jboss.node.name?<br>
    Is here a default created?<br>
    <br>
    <br>
    ====&nbsp; UserTransaction&nbsp; =====<br>
    If I do this in my client:<br>
    {code}<br>
    1:&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; UserTransaction uTx = EJBClient.getUserTransaction("Wolf");<br>
    2:&nbsp; &nbsp;&nbsp;&nbsp; LOG.debug("UserTransaction ="+uTx);<br>
    3:&nbsp; &nbsp;&nbsp;&nbsp; uTx.begin();<br>
    4:&nbsp; &nbsp;&nbsp;&nbsp; LOG.debug("Tx.begin() ok");<br>
    5:&nbsp; &nbsp;&nbsp;&nbsp; bmtSession.checkTransaction(); // call a SLSB to use Tx<br>
    6:&nbsp; &nbsp;&nbsp;&nbsp; uTx.commit();<br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; LOG.debug("Tx.commit() ok");<br>
    {code}<br>
    <br>
    Line 1 and 3 works nevertheless whether there is a server (with or
    without a correct node.name) or not. The line 5: will fail 'No EJB
    receiver with 'node.name'<br>
    If I remove getUserTransaction I can execute the code nevertheless
    whether a node name is set or not.<br>
    <br>
    ???&nbsp; So I suppose the getUTx will attach the next EJB call to that
    server ???<br>
    <br>
    If a server is available the commit will fail (also the EJB
    checkTransaction show the TxState=6 (NO-Tx)<br>
    java.lang.IllegalStateException: BaseTransaction.commit -
    ARJUNA016074: no transaction!<br>
    &nbsp;&nbsp;&nbsp; at
com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:113)<br>
    &nbsp;&nbsp;&nbsp; at
com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)<br>
    &nbsp;&nbsp;&nbsp; at
org.jboss.as.ejb3.remote.protocol.versionone.UserTransactionCommitTask.manageTransaction(UserTransactionCommitTask.java:47)<br>
    &nbsp;&nbsp;&nbsp; at
org.jboss.as.ejb3.remote.protocol.versionone.UserTransactionManagementTask.run(UserTransactionManagementTask.java:64)<br>
    &nbsp;&nbsp;&nbsp; at
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)<br>
    &nbsp;&nbsp;&nbsp; at
    java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)<br>
    &nbsp;&nbsp;&nbsp; at java.util.concurrent.FutureTask.run(FutureTask.java:166)<br>
    &nbsp;&nbsp;&nbsp; at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)<br>
    &nbsp;&nbsp;&nbsp; at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)<br>
    &nbsp;&nbsp;&nbsp; at java.lang.Thread.run(Thread.java:679)<br>
    &nbsp;&nbsp;&nbsp; at org.jboss.threads.JBossThread.run(JBossThread.java:122)<br>
    <br>
    <br>
    ??? My question what is wrong with my assumption or code???<br>
    <br>
    <br>
    - Wolf<br>
    <br>
    <br>
    On 03/06/2012 06:28 PM, David M. Lloyd wrote:
    <blockquote cite="mid:4F564937.2050500@redhat.com" type="cite">
      <pre wrap="">On 03/06/2012 11:17 AM, Wolf-Dieter Fink wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">Is it possible to lookup and use UserTransaction from a remote-client as
in AS5?
Or is it planned for further release?
</pre>
      </blockquote>
      <pre wrap="">In AS 7, you can have a connection to more than one server at once. 
Thus you have to specify which server node you want to talk to.  The 
method you want is 
org.jboss.ejb.client.EJBClient#getUserTransaction(String), where the 
argument is the node name.  Note that your connection must already be 
established at this point.

We do not presently have a way to pull a UserTransaction out of JNDI, 
though that could be considered for an enhancement.

</pre>
    </blockquote>
    <br>
  </div>

_______________________________________________<br>jboss-as7-dev mailing list<br><a href="mailto:jboss-as7-dev@lists.jboss.org">jboss-as7-dev@lists.jboss.org</a><br>https://lists.jboss.org/mailman/listinfo/jboss-as7-dev<br></blockquote></div><br></body></html>