Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Oct 18 23:18

    christopherread on master

    Update Obvs.RabbitMQ.sln (compare)

  • Oct 18 18:26

    christopherread on master

    Minor dependency updates, misse… (compare)

  • Oct 18 18:21

    christopherread on master

    Minor dependency updates (compare)

  • Oct 18 03:19
    christopherread closed #39
  • Oct 18 03:12

    christopherread on master

    Update appveyor.yml (compare)

  • Oct 18 03:03

    christopherread on master

    Updated to Obvs 5.0 (compare)

  • Sep 27 11:02

    megakid on master

    Added publicly visible interfac… Merge pull request #20 from pet… (compare)

  • Sep 27 11:02
    megakid closed #20
  • Sep 27 10:45
    petroemil opened #20
  • Sep 25 11:04

    megakid on master

    Added ability to use the NoLoca… Merge pull request #19 from pet… (compare)

  • Sep 25 11:04
    megakid closed #19
  • Sep 25 10:43
    petroemil edited #19
  • Sep 25 10:42
    petroemil opened #19
  • Sep 15 11:04

    megakid on master

    Ensure we dont make more connec… Merge pull request #18 from meg… (compare)

  • Sep 15 11:04
    megakid closed #18
  • Sep 15 11:03
    megakid opened #18
  • Jun 19 09:06
    christopherread commented #39
  • Jun 19 09:05
    christopherread commented #39
  • Jun 19 09:05
    christopherread commented #39
  • Jun 18 15:43
    julealgon commented #39
Christopher Read
@christopherread
@/all all packages now up to date and on v4.0
Christopher Read
@christopherread
@/all My #GitHub profile is no longer 'inter8ection', it has changed to 'christopherread'. Please update any remote #git repository URL's you may have for #Obvs
https://github.com/christopherread
Christopher Read
@christopherread
eg.
git remote set-url origin https://github.com/christopherread/Obvs
abrassara
@abrassara
@christopherread Hi, I've been using Obvs in a production environment with RabbitMQ transport, it's been working fine so far, the only problem I found is that all Obvs bus instances must be restarted since they do not recover automatically when Rabbit goes down for a while. Is this the expected behaviour? I mean, the library is not responsable to restore connections in case of a failure and this issue must be addressed at an upper tier ? Thanks, Andres.
Christopher Read
@christopherread
@abrassara I'll take a look. I'm not using it in production myself, so if you could advise on the calls you want made within Obvs I can make them, or you can submit a PR with a fix
Christopher Read
@christopherread
@abrassara I have taken a look, and according to this Obvs is doing what is expected
https://www.rabbitmq.com/dotnet-api-guide.html#connection-recovery
George Chatzimanolis
@geochatz
Hello! Thanks for the great library. I am testing Obvs with ActiveMQ. I have a question. Is it possible to provide Username and Password to your connection?
Christopher Read
@christopherread
@geochatz Hi George, welcome! The username/password config is not currently exposed for ActiveMQ but it could be added
Christopher Read
@christopherread
@geochatz check out v4.0.1 of Obvs.ActiveMQ on nuget.org, and use new fluent config extension WithCredentials(userName, password) to pass in credentials for the broker connection
Please feedback with any problems
George Chatzimanolis
@geochatz
@christopherread Wow! That was quick. Thanks. I will check it ASAP!!
James Connor
@megakid
@/all I have also released v4.1 which now has support for .NET Standard - 1.6 if I remember correctly. We will need to update the integrations and serialization libraries in time.
Christopher Read
@christopherread
Nice work @megakid, also I just merged the Obvs ActiveMQ PR with NET Standard 2 commits
James Connor
@megakid
@christopherread have you made a new nuget release Obvs.ActiveMQ 4.1 ?
I'm not desperate, just chipping away
Christopher Read
@christopherread
Nope not yet, but I will tonight
James Connor
@megakid
@christopherread I have lost access to the appveyor account to release nuget packages
maybe during your rename from inter8..
my appveyor acct seems to be JamesConnor
James Connor
@megakid
scrap that
found an account i didnt know I had
James Connor
@megakid
@christopherread have pushed v5
Christopher Read
@christopherread
@megakid yeah I log in using my github account usually
Nice!
Márcio Moreira
@arqeco
Hello, I need to develop an app that discover peers on local network and the communicates with them via messaging. Is Obvs for this kind of things?
Tom May
@tjdecke
Hi folks! Still loving Obvs. I have a large algo trading suite running on it, and am starting to convert most of the backend to Akka.NET, but i dont want to loose the convenience of Obvs in merging event streams etc.. i was wondering if anyone has explored/done some integration between Obvs and Akka.net, for example through Akka streams
James Connor
@megakid
@tjdecke funny you should say that as I’m also running an algo trading type solution on top of Obvs (using ActiveMQ integration and protobuf- May I ask what you’re using?) and we too are experimenting with Akka.NET - we’re not looking to use Akka remoting or clustering yet just for internal queuing/threading etc - were currently not far into that prototype (but have some discovery stories planned) - would be keen to team on any efforts in bridging with Obvs as we’re looking for a decent pattern for that
Tom May
@tjdecke
@megakid protobuf also, rabbitmq and in-memory (for some services we are still running in the same process, but want to potentially be able to split out as separately hosted services later)
happy to collaborate on it :)
ankorus
@ankorus
I use obvs from .net core 2.1 app w/o any problems. Trying to create obvs client bus from .net 4.7.2 winforms app I am getting the following System exception:
Error loading types from assembly 'Anonymously Hosted DynamicMethods Assembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null', please consider using the provided configuration options to filter which assemblies you would like to load your message types from.
Inner exception: The invoked member is not supported in a dynamic assembly.
    private static IServiceBusClient CreateServiceBusClient()
    {
        return ServiceBus.Configure()
            .WithRabbitMQEndpoints<IABCMessage>()
                .Named("ABCServiceObvs")
                .ConnectToBroker("amqp://localhost:5672")
                //.SerializedAsJson()
                .SerializedAsProtoBuf()
                .AsClient()
                .UsingConsoleLogging()
            .CreateClient();
    }
Packages:

<?xml version="1.0" encoding="utf-8"?>

<packages>
<package id="Microsoft.Diagnostics.Tracing.EventSource.Redist" version="1.1.28" targetFramework="net472" />
<package id="Obvs" version="5.0.0.26" targetFramework="net472" />
<package id="Obvs.RabbitMQ" version="4.1.0.5" targetFramework="net472" />
<package id="Obvs.Serialization.ProtoBuf" version="5.0.0.22" targetFramework="net472" />
<package id="protobuf-net" version="2.4.0" targetFramework="net472" />
<package id="RabbitMQ.Client" version="5.1.0" targetFramework="net472" />
<package id="System.Reactive" version="4.2.0-preview.102" targetFramework="net472" />
<package id="System.Reactive.Core" version="4.2.0-preview.102" targetFramework="net472" />
<package id="System.Reactive.Linq" version="4.2.0-preview.102" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="net472" />
<package id="System.Threading.Tasks.Extensions" version="4.5.2" targetFramework="net472" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net472" />
</packages>

Please, help!
ankorus
@ankorus
It has something to do with protobuf. If un-comment .SerializedAsJson (and comment .SerializedAsProtoBuf) it works. SerializedAsProtoBuf works in .net core 2.1 'though.
Christopher Read
@christopherread
@ankorus that error is being thrown when it's trying to scan all assemblies in dir to find your message types, via reflection. As the error message suggests, there is a method to help, called .FilterMessageTypeAssemblies()
Christopher Read
@christopherread
Use that to only include your own assemblies, by passing in a lambda that checks assembly name, eg a => a.GetName().Name.StartsWith("MyProject")
I'm not sure which assembly is causing the error when you use protobuf, but hopefully the above should fix it
ankorus
@ankorus
Here is the list of assemblies filtered from framework: -mscorlib
ConsObvsApp
Obvs
-System.Reactive
Obvs.RabbitMQ
Obvs.Serialization.ProtoBuf
protobuf-net
-Anonymously Hosted DynamicMethods Assembly
RabbitMQ.Client
-System.Core
-System
Those marked with '-' are not getting listed when called from .net core. It looks like the problem is caused by Anonymously Hosted DynamicMethods Assembly. In another project I have seen Microsoft.GeneratedCode assembly. FilterMessageTypeAssemblies helps. Thx.
ankorus
@ankorus
Is there any way to influence queue name? It looks like obvs creates queue name using the following pattern: 'service name'.Requests-'hostname'-'user name'-'generated number'-1. Can this pattern be changed? Can at least the generated number be preset?
ankorus
@ankorus
Rx question:
response = serviceBusClient.GetResponses(request)
.SkipWhile(res => res.RequestId != request.RequestId)
.Take(1)
.Single()
Is there any way to add timeout here to wait for response with matching requestid only for certain time?
ankorus
@ankorus
Figured out my last rx question: Timeout after SkipWhile will do it.
Christopher Read
@christopherread
@ankorus some transport extensions may have implementations for queue/topic names
Christopher Read
@christopherread
but in general no, there is no configuration option for queue names - you can use MessageSource directly if you want, but then you lose a lot
there's no reason you cant connect to Obvs generated queues and messages from C++, provided you adhere to the conventions
ankorus
@ankorus
Thx, Chris. Could you, please, explain then the pattern: 'service name'.Requests-'hostname'-'user name'-'some number'-1. Is there a versioning on request/response contracts? What would happen if service/client refer to diff versions of contracts?
Christopher Read
@christopherread
Process process = Process.GetCurrentProcess();
string userName = identity;
string hostName = Dns.GetHostName();
return string.Format("{0}-{1}-{2}-{3}", process.ProcessName, hostName, userName, process.Id);
That code is in Obvs.Configuration.RequesterId