Update existing TIBCO factory connection when changing the exception settings.
Refactor the parsing of connection URL into single function.
Fixes [AMQNET-511]. (See https://issues.apache.org/jira/browse/AMQNET-511)
diff --git a/src/main/csharp/ConnectionFactory.cs b/src/main/csharp/ConnectionFactory.cs
index ba5959c..2b7f10b 100644
--- a/src/main/csharp/ConnectionFactory.cs
+++ b/src/main/csharp/ConnectionFactory.cs
@@ -89,11 +89,9 @@
{
try
{
- this.brokerUri = ParseUriProperties(serverUrl);
- this.tibcoConnectionFactory = new TIBCO.EMS.ConnectionFactory(TrimParens(this.brokerUri.AbsolutePath), clientId, properties);
this.clientId = clientId;
this.properties = properties;
- ConfigureConnectionFactory();
+ this.BrokerUri = serverUrl;
}
catch(Exception ex)
{
@@ -133,13 +131,21 @@
public bool ExceptionOnFTEvents
{
get { return this.exceptionOnFTEvents; }
- set { this.exceptionOnFTEvents = value; }
+ set
+ {
+ this.exceptionOnFTEvents = value;
+ TIBCO.EMS.Tibems.SetExceptionOnFTEvents(value);
+ }
}
public bool ExceptionOnFTSwitch
{
get { return this.exceptionOnFTSwitch; }
- set { this.exceptionOnFTSwitch = value; }
+ set
+ {
+ this.exceptionOnFTSwitch = value;
+ TIBCO.EMS.Tibems.SetExceptionOnFTSwitch(value);
+ }
}
public int ConnAttemptCount
@@ -251,19 +257,21 @@
}
else
{
+ string brokerPath = TrimParens(this.brokerUri.AbsolutePath);
+
if(null == this.clientId)
{
- this.tibcoConnectionFactory = new TIBCO.EMS.ConnectionFactory(TrimParens(this.brokerUri.AbsolutePath));
+ this.tibcoConnectionFactory = new TIBCO.EMS.ConnectionFactory(brokerPath);
}
else
{
if(null == this.properties)
{
- this.tibcoConnectionFactory = new TIBCO.EMS.ConnectionFactory(TrimParens(this.brokerUri.AbsolutePath), this.clientId);
+ this.tibcoConnectionFactory = new TIBCO.EMS.ConnectionFactory(brokerPath, this.clientId);
}
else
{
- this.tibcoConnectionFactory = new TIBCO.EMS.ConnectionFactory(TrimParens(this.brokerUri.AbsolutePath), this.clientId, this.properties);
+ this.tibcoConnectionFactory = new TIBCO.EMS.ConnectionFactory(brokerPath, this.clientId, this.properties);
}
}
}