http2Server HandleStreams failure - grpc-go

I have a bidirectional streaming RPC and on the server side I see following failure message
http2Server.HandleStreams failed to read frame: read tcp4 192.168.122.155:57400->192.168.122.1:16150: read: connection reset by peer
Both Client and Server are written in golang.
I am trying to gracefully close the stream from the client side by calling stream.CloseSend() API.

Related

Biztalk - MSMQ messages are being lost intermittently while receiving from queue in remote server

I keep receiving below warning messages in event viewer . If there is any message being received from the queue at the time of warning then message is being lost . Surprisingly while sending message to the queue he message is not getting lost . Biztalk ports are configured to send and receive message from queue .
The description for Event ID 5740 from source BizTalk Server cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
If the event originated on another computer, the display information had to be saved with the event.
The following information was included with the event:
MSMQ The remote procedure call failed and did not execute.
The handle is invalid
this is happening in production Can not afford more message loss.
there are some known issues, look at this thread :
https://social.msdn.microsoft.com/Forums/en-US/519e915a-488e-48bf-bd6c-8e5892689e83/failed-to-connect-to-remote-private-queue?forum=biztalkgeneral

SQLException when deploying ASP.NET Boilerplate application to Azure

I've been trying to deploy an ASP.NET Boilerplate application to Azure for the last couple of days and I haven't been able to do so. I keep stumbling upon this error:
First I make a Web App + SQL resource and then publish my project to it from inside Visual Studio using the right click -> deploy option, and then importing the publication profile I got from Azure. I make sure the database connection string in the appsettings.production.json are correct but I can't seem to connect to the database. If I try to connect to the database through the SQL Server Management Studio I get a similar error. This means something is wrong with the database itself.
Do I need to create a separate SQL database in Azure that makes use of the SQL database server that comes with the Web App + MySQL resource?
Any help would be greatly appreciated! I have been spending way too much time on this problem already.
This is a screenshot of all the resources in the Azure portal, these were created while creating the Web app + MySQL resource:
Edit: This is the error I am getting:
Win32Exception: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. Unknown location SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.) Microsoft.Data.ProviderBase.DbConnectionPool.CheckPoolBlockingPeriod(Exception e) InvalidOperationException: An exception has been raised that is likely due to a transient failure. Consider enabling transient error resiliency by adding 'EnableRetryOnFailure()' to the 'UseSqlServer' call. Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute<TState, TResult>(TState state, Func<DbContext, TState, TResult> operation, Func<DbContext, TState, ExecutionResult<TResult>> verifySucceeded) Win32Exception: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
Since you mentioned you can't access db in any other way, I provided step-by-step instruction
You can get your connection string from Azure resource panel
Navigate to Connection security tab and enable access from other Azure resources. This way WebApp will be able access database server inside Azure network. I also added my client IP to test db connection from my PC later. Click Save at the top when you are done
On the same page there is setting called configure SSL connection. Certificate can be downloaded from https://learn.microsoft.com/uk-ua/azure/mysql/howto-configure-ssl. I used this file https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem . Optionally, you could disable this feature for now.
Now we have everything to test db connection. I will show it with the use of HeidiSQL client.
Click open and see your databases
According to this you need to have CACertificateFile parameter appended to connection string to use SSL, so you need to put file into repository and provide its relative path in connection string
This was all caused by a stupid mistake, in the Azure portal I selected the Web App + MySQL resource instead of the Web App + SQL resource. For the ASP.NET Boilerplate project I am using you need a Web App + SQL resource.

How to fix too many connection request call to ejabber server?

Facing too many connection calls while trying to connect my react application with Ejabberd server. I am using strophe library for the connection between React end to Ejabberd server
Due to this problem, Ejabber server blocked some amount of time and unblocked after some time.
Error message in Ejabber while too many connections "Too many requests from the same IP"

Message passing from rabbitmq channel to java NIO channel

I am building a chat component(where all discussions are saved) for an application and I planned to have a long-polling server as an interface between the client machines and the rabbitmq server, that will parse format and enqueue messages in a job queue(on rabbitmq) to be handled by celery, which will then check if posting is allowed via checking the db for some information, etc, save the messages to a db, and enqueue them in rabbitmq again, this time to be consumed by the long-polling server to be pushed out to the client machines.
I planned to have one connection from the rabbit server to the long-polling server, containing many channels, that will each correspond to a nio socket channel, where a client machine is listening in on the other end.
The long polling server will be written using the Java Nio libraries. My question is, what would be an efficient way of sending the messages from the AMQP channel to the socketchannel to be pushed out to the clients?
From my understanding of NIO, the only time a selectionkey should be registered for OP_WRITE, is when a previously attempted write() call returned 0. In this case though, I am interested in writing to a socketchannel when information is present on the corresponding AMQP channel. How can I alert the socket channel once data comes in on its corresponding amqp channel so that I may send data through the socketchannel to the client?
Just call write()! No need to 'tell' the SocketChannel anything. Then if write() returns zero, do the OP_WRITE stuff.

Websocket RFC6455 connections - How is this handled server side?

I am would like to create a websocket server. I understand that the client will make a request and that a partially encrypted response needs to be sent back to the client. My question is does that connection need to stay open to handle the websocket messages after the connection is made. Or does the client establish a new connection after receiving the response from the server?
Thanks,
-ren
Here's an article on the websockets handshake.
And, a sample implementation of a websockets server in PHP.
The socket stays open.
The whole protocol is described in RFC 6455.