diff --git a/src/DotNetCore.CAP.NATS/CAP.NATSOptions.cs b/src/DotNetCore.CAP.NATS/CAP.NATSOptions.cs index 1b9ed71e4..b35a718e1 100644 --- a/src/DotNetCore.CAP.NATS/CAP.NATSOptions.cs +++ b/src/DotNetCore.CAP.NATS/CAP.NATSOptions.cs @@ -18,7 +18,7 @@ public class NATSOptions /// Gets or sets the server url/urls used to connect to the NATs server. /// /// This may contain username/password information. - public string Servers { get; set; } = "nats://localhost:4222"; + public string Servers { get; set; } = "nats://127.0.0.1:4222"; /// /// connection pool size, default is 10 diff --git a/src/DotNetCore.CAP.NATS/DotNetCore.CAP.NATS.csproj b/src/DotNetCore.CAP.NATS/DotNetCore.CAP.NATS.csproj index f7fae3e6f..192463c66 100644 --- a/src/DotNetCore.CAP.NATS/DotNetCore.CAP.NATS.csproj +++ b/src/DotNetCore.CAP.NATS/DotNetCore.CAP.NATS.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/DotNetCore.CAP.NATS/IConnectionPool.Default.cs b/src/DotNetCore.CAP.NATS/IConnectionPool.Default.cs index a9d403505..361b959a7 100644 --- a/src/DotNetCore.CAP.NATS/IConnectionPool.Default.cs +++ b/src/DotNetCore.CAP.NATS/IConnectionPool.Default.cs @@ -14,6 +14,7 @@ public class ConnectionPool : IConnectionPool, IDisposable { private readonly NATSOptions _options; private readonly ConcurrentQueue _connectionPool; + private readonly ConnectionFactory _connectionFactory; private int _pCount; private int _maxSize; @@ -54,14 +55,17 @@ public IConnection RentConnection() public bool Return(IConnection connection) { - if (Interlocked.Increment(ref _pCount) <= _maxSize) + if (Interlocked.Increment(ref _pCount) <= _maxSize && connection.State == ConnState.CONNECTED) { _connectionPool.Enqueue(connection); return true; } - connection.Dispose(); + if (!connection.IsReconnecting()) + { + connection.Dispose(); + } Interlocked.Decrement(ref _pCount); @@ -75,7 +79,6 @@ public void Dispose() while (_connectionPool.TryDequeue(out var context)) { context.Dispose(); - } } }