From: Scott M S. (JIRA) <jir...@jb...> - 2005-03-25 21:00:28
|
[ http://jira.jboss.com/jira/browse/JBAS-1270?page=history ] Scott M Stark closed JBAS-1270: ------------------------------- Resolution: Done Fix Version: JBossAS-5.0 Alpha If you use the org.jboss.naming.NamingContextFactory as the Context.INITIAL_CONTEXT_FACTORY value, the ClientUserTransaction has access to the JNDI env that was used to do the lookup of the UserTransaction and that is the env used during session creation. > UserTransaction with non default ProviderURL > -------------------------------------------- > > Key: JBAS-1270 > URL: http://jira.jboss.com/jira/browse/JBAS-1270 > Project: JBoss Application Server > Type: Bug > Components: Transaction Manager service > Versions: JBossAS-3.2.6 Final > Environment: WinXP Client SP 2, java version 1.4.2_04-b05, jboss-3.2.6 > Reporter: Dirk Niemeier > Assignee: Scott M Stark > Priority: Critical > Fix For: JBossAS-5.0 Alpha, JBossAS-4.0.2 Final, JBossAS-3.2.8 Final > > > Problem to initiate an UserTransaction from client with non default providerURL. > java.util.Hashtable env = new java.util.Hashtable(); > env.put( Context.PROVIDER_URL, "myserver:1199"); > InitialContext ctx = new InitialContext(env); > javax.transaction.UserTransaction tx = (UserTransaction) ctx.lookup("UserTransaction"); > The lookup cause an stacktrace like this : > 08:36:54,531 DEBUG [AWT-EventQueue-0] (NamingContext.java:1192) - Failed to connect to 172.30.1.22:1099 > javax.naming.CommunicationException: Failed to connect to server 172.30.1.22:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server 172.30.1.22:1099 [Root exception is java.net.ConnectException: Connection timed out: connect]] > at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:213) > at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1187) > at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:516) > The provider "172.30.1.22:1099" is the default provider in my jndi properties file which is not online at this time. > I think the problem is in org.jboss.tm.usertx.client.ClientUserTransactionObjectFactory, which will be called in lookup handling. > The getUserTransaction() tries to create an new InitialContext with default parameters. It should use the context available by getObjectInstance(..). > An additional problem to this is in class org.jboss.tm.usertx.client.ClientUserTransaction : > private synchronized void createSession() > { > // Destroy any old session. > if (session != null) > destroySession(); > try { > // Get a reference to the UT session factory. > UserTransactionSessionFactory factory; > factory = (UserTransactionSessionFactory)new InitialContext().lookup("UserTransactionSessionFactory"); > // Call factory to get a UT session. > session = factory.newInstance(); > } catch (Exception ex) { > throw new RuntimeException("UT factory lookup failed: " + ex); > } > } > This occurs when begin() is invoked. Same problem with new InitialContext(). > In class ServerVMClientUserTransaction the same problem. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |