[ 
https://issues.apache.org/activemq/browse/AMQNET-204?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=55167#action_55167
 ] 

Jeff Smith commented on AMQNET-204:
-----------------------------------

Ok - I see what you are saying.  I thought I had my project setup to use CF-2.0 
but apparently I wasn't, so that is why the activator wasn't complaining.

If I need to take this to a forum, let me know - but - the behavior I am trying 
to troubleshoot is when running on my mobile device with CF, I am using the 
sample code to connect to a message queue on a remote machine.  When I get to 
the line:

  using (ISession session = connection.CreateSession())

I end up in a couple of threads that appear to be looping non-stop (or maybe to 
some max interation that I am too impatient to wait for).  The main thread is 
in FailoverTransport.cs down in the Oneway method. 

The other thread is in the doConnect() method.  It is in this method where I 
can inspect the connectList and see a URI that is tcp://localhost:61616 - which 
is not correct.  I had specified my URI in my original code to be:

Uri connecturi = new Uri("activemq:tcp://N274105:61616");
// NOTE: ensure the nmsprovider-activemq.config file exists in the executable 
folder.
IConnectionFactory factory = new NMSConnectionFactory(connecturi);
using (IConnection connection = factory.CreateConnection())
using (ISession session = connection.CreateSession())

So something is forcing a "localhost" in there and not honoring my URI hostname 
of N274105.  I will continue to examine the #if's and see how the 
DEFAULT_BROKER_URL value is being put in there instead of the one I am 
specifying.

> ConnectionFactory for NETCF is always returning DEFAULT_BROKER_URL which is 
> localhost
> -------------------------------------------------------------------------------------
>
>                 Key: AMQNET-204
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-204
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: NMS
>         Environment: Discovered when testing on a Windows CE device running 
> CF2.0 - reproduced in Visual Studio but using NETCF
>            Reporter: Jeff Smith
>            Assignee: Jim Gomes
>
> In NMSConnectionFactory.cs, there is # define for NETCF that is causing this 
> line of code to execute:
> connectionFactory = (IConnectionFactory) 
> Activator.CreateInstance(factoryType);
> But that signature for CreateInstance does not take the parameters like the 
> line in the #else:
> object[] parameters = MakeParameterArray(uriProvider, constructorParams);
> connectionFactory = (IConnectionFactory) 
> Activator.CreateInstance(factoryType, parameters);
> Because of that, the ConnectionFactory.cs class is returning the 
> DEFAULT_BROKR_URL which contains "localhost".  This is bad.  This is assuming 
> that the broker is running on the mobile device which is not our case.  We 
> need our mobile devices to connect to a centralized message broker.  
> We removed the #if and let it run the version in the #else and it seems to 
> work correctly now without adverse effects but I did not study all the 
> ramifications of removing this #if.  Is the developer who put this in able to 
> tell us why that was there?
> I see the #if in ConnectionFactory where you stop CF from doing the 
> Environment call.  I guess mobile devices do not have Environment variables?  
> But that #if doesn't matter in our case.  The root cause of the problem is 
> the fact that we need to call the right version of CreateInstance that passes 
> parameters.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to