← Zurück

Можно ли запускать 2 и более приложний которые используют Quik коннектор с одним запущенным Quik'ом ?

Можно ли запускать 2 и более приложний которые используют Quik коннектор с одним запущенным Quik'ом ?

Расчитал ли на это коннектор S#?

Kommentare (13)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Marat
Marat

Добрый день. Для решения данной задачи Вы можте воспользоваться Hydra в режиме Эмуляции, подробнее здесь.

rappersmerti
rappersmerti Autor

@Marat, мне нужно в боевом режиме. Это возможно?

Marat
Marat

rappersmerti: @Marat, мне нужно в боевом режиме. Это возможно?

Добрый день. Эмуляция на это и расчитана, что с одной учетке Вы одновременно торгуете с двух прог.

rappersmerti
rappersmerti Autor

@Marat 2 приложения получается запускать, но не получается 3. При запуске 3-го приложения получаю ошибку

FIX 28.09.2021 17:29:29 +03:00 Error System.IO.IOException: Unable to write data to the transport connection: Программа на вашем хост-компьютере разорвала установленное подключение.. ---> System.Net.Sockets.SocketException (10053): Программа на вашем хост-компьютере разорвала установленное подключение. at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) at StockSharp.Fix.Native.BaseFixWriter.WriteByte(Byte value) at StockSharp.Fix.Native.TextFixWriter.Write(FixTags tag) at StockSharp.Fix.Native.Extensions.WriteFixMessage(IFixWriter writer, IFixWriter bodyWriter, String version, String msgType, String senderCompId, String targetCompId, FastDateTimeParser sendingTimeParser, Int64 seqNum, Action`1 handler) at StockSharp.Fix.Dialects.BaseFixDialect.SendInMessage(Message message) at StockSharp.Fix.FixMessageAdapter.OnSendInMessage(Message message)

Marat
Marat

rappersmerti: @Marat 2 приложения получается запускать, но не получается 3. При запуске 3-го приложения получаю ошибку

FIX 28.09.2021 17:29:29 +03:00 Error System.IO.IOException: Unable to write data to the transport connection: Программа на вашем хост-компьютере разорвала установленное подключение.. ---> System.Net.Sockets.SocketException (10053): Программа на вашем хост-компьютере разорвала установленное подключение. at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) at StockSharp.Fix.Native.BaseFixWriter.WriteByte(Byte value) at StockSharp.Fix.Native.TextFixWriter.Write(FixTags tag) at StockSharp.Fix.Native.Extensions.WriteFixMessage(IFixWriter writer, IFixWriter bodyWriter, String version, String msgType, String senderCompId, String targetCompId, FastDateTimeParser sendingTimeParser, Int64 seqNum, Action`1 handler) at StockSharp.Fix.Dialects.BaseFixDialect.SendInMessage(Message message) at StockSharp.Fix.FixMessageAdapter.OnSendInMessage(Message message)

Мы рассмотрели данные которые Вы прислали, в них проблем с гидрой или коннектором мы не обнаружили. Гидра позволяет работать больше чем с 3 приложениями через один коннектор. Не моглди бы Вы создать наиболее простые приложения с минимальным кодом, на которых будет воспроизводиться ошибка?

Marat
Marat

rappersmerti: @Marat 2 приложения получается запускать, но не получается 3. При запуске 3-го приложения получаю ошибку

FIX 28.09.2021 17:29:29 +03:00 Error System.IO.IOException: Unable to write data to the transport connection: Программа на вашем хост-компьютере разорвала установленное подключение.. ---> System.Net.Sockets.SocketException (10053): Программа на вашем хост-компьютере разорвала установленное подключение. at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) at StockSharp.Fix.Native.BaseFixWriter.WriteByte(Byte value) at StockSharp.Fix.Native.TextFixWriter.Write(FixTags tag) at StockSharp.Fix.Native.Extensions.WriteFixMessage(IFixWriter writer, IFixWriter bodyWriter, String version, String msgType, String senderCompId, String targetCompId, FastDateTimeParser sendingTimeParser, Int64 seqNum, Action`1 handler) at StockSharp.Fix.Dialects.BaseFixDialect.SendInMessage(Message message) at StockSharp.Fix.FixMessageAdapter.OnSendInMessage(Message message)

Мы рассмотрели данные которые Вы прислали, в них проблем с гидрой или коннектором мы не обнаружили. Гидра позволяет работать больше чем с 3 приложениями через один коннектор. Не моглди бы Вы создать наиболее простые приложения с минимальным кодом, на которых будет воспроизводиться ошибка?

Marat
Marat

Добрый день. Мы уже рассматриваем вашу проблему.

rappersmerti
rappersmerti Autor

Воспроизвел проблему на приложении из урока 02_MarketDepths_Trades. Приложил скрин на котором 2 этих приложения запущены и на одном стакан обновляется а на другом нет. Не смотря на то что инструмент выбран в обоих. Hydra_bug.PNG

Marat
Marat

rappersmerti: Воспроизвел проблему на приложении из урока 02_MarketDepths_Trades. Приложил скрин на котором 2 этих приложения запущены и на одном стакан обновляется а на другом нет. Не смотря на то что инструмент выбран в обоих. Hydra_bug.PNG

То есть запущены два одинаковых приложения? Какие логи у Вас выходят?

rappersmerti
rappersmerti Autor

в логе гидры единственное сообщение (сейчас воспроизвел когда запустил 3 приложения. Иногда 2 а иногда 3 требуется):

Unhandled Exception 04.10.2021 22:38:56 +03:00 Error System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (Операция ввода/вывода была прервана из-за завершения потока команд или по запросу приложения.) ---> System.Net.Sockets.SocketException (995): Операция ввода/вывода была прервана из-за завершения потока команд или по запросу приложения. at System.Net.Sockets.Socket.GetException(SocketError error, Boolean wrapExceptionsInIOExceptions) at System.Net.Sockets.Socket.CompleteAccept(Socket s, TaskSocketAsyncEventArgs1 saea) at System.Net.Sockets.Socket.<>c.<AcceptAsync>b__281_0(Object s, SocketAsyncEventArgs e) at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e) at System.Net.Sockets.SocketAsyncEventArgs.OnCompletedInternal() at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationAsyncFailure(SocketError socketError, Int32 bytesTransferred, SocketFlags flags) at System.Net.Sockets.SocketAsyncEventArgs.HandleCompletionPortCallbackError(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) at System.Net.Sockets.SocketAsyncEventArgs.<>c.<.cctor>b__179_0(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) at System.Threading.ThreadPoolBoundHandleOverlapped.CompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pNativeOverlapped) --- End of stack trace from previous location --- at System.Net.Sockets.TcpListener.<AcceptTcpClientAsync>g__WaitAndWrap|29_0(Task1 task) --- End of inner exception stack trace ---

Да, запущены 2 одинаковых приложения. С этим какието проблемы? Нельзя одинаковые? Если нельзя то скажите насколько разные можно пожалуйста

rappersmerti
rappersmerti Autor

Да, запущены 2 одинаковых приложения. С этим какието проблемы? Нельзя одинаковые? Если нельзя то скажите насколько разные можно пожалуйста

Marat
Marat

rappersmerti: Да, запущены 2 одинаковых приложения. С этим какието проблемы? Нельзя одинаковые? Если нельзя то скажите насколько разные можно пожалуйста

Добрый день. Используйте в разных приложениях разные значение параметров SenderCompId. Например, в первом приложении: marketDataAdapter.SenderCompId = "app1" transactionAdapter.SenderCompId = "app1"

Во втором приложении: marketDataAdapter.SenderCompId = "app2" transactionAdapter.SenderCompId = "app2" и т.д. image_2021-10-13_14-21-15.png

Support
Support

небольшое уточнение. используя разные значение SenderCompId, можно подключаться напрямую к квику. нет необходимости подключаться через гидру.