<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
===== Regarding node-name. =====<br>
In standalone I supposed it is the name of
jboss-ejb-client.properties<br>
remote.connection.<b>default</b>.host=localhost<br>
But I have to set it by -Djboss.node.name=<>.<br>
??? 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 <server name=""
...> 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>
==== UserTransaction =====<br>
If I do this in my client:<br>
{code}<br>
1: UserTransaction uTx = EJBClient.getUserTransaction("Wolf");<br>
2: LOG.debug("UserTransaction ="+uTx);<br>
3: uTx.begin();<br>
4: LOG.debug("Tx.begin() ok");<br>
5: bmtSession.checkTransaction(); // call a SLSB to use Tx<br>
6: uTx.commit();<br>
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>
??? 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>
at
com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:113)<br>
at
com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)<br>
at
org.jboss.as.ejb3.remote.protocol.versionone.UserTransactionCommitTask.manageTransaction(UserTransactionCommitTask.java:47)<br>
at
org.jboss.as.ejb3.remote.protocol.versionone.UserTransactionManagementTask.run(UserTransactionManagementTask.java:64)<br>
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)<br>
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)<br>
at java.util.concurrent.FutureTask.run(FutureTask.java:166)<br>
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)<br>
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)<br>
at java.lang.Thread.run(Thread.java:679)<br>
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>
</body>
</html>