Как управлять и перезагружать несколько сессий QuickFIX / J независимо? - PullRequest
2 голосов
/ 05 мая 2020

Я могу настроить несколько сеансов в одном файле настроек QuickFIX / J, а затем запустить их все с одного SocketInitiator. Но я хотел бы иметь возможность изменять конфигурацию одного или нескольких сеансов, а затем перезапускать только эти сеансы, не затрагивая другие.

Я мог бы сделать это, имея несколько файлов настроек и используя один SocketInitiator на сеанс. Но похоже, что QuickFIX / J не предназначен для использования таким образом. Это вызовет у меня проблемы?

1 Ответ

2 голосов
/ 06 мая 2020

Совершенно нормально запускать Initiator за сеанс. Это дело вкуса. В любом случае: наличие отдельного Initiator на сеанс является независимым и не повлияет на другие сеансы.

Если вы хотите следовать подходу с одним Initiator, вы можете попытаться добавить / удалить сеансы динамически через createDynamicSession() / removeDynamicSession(). Тем не менее, есть еще некоторая ручная работа.

  1. Найдите Session, который вы хотите перезагрузить. logout() и close() it.
  2. Для этого позвоните removeDynamicSession() Session.
  3. Получите настройки для SessionID, который вы хотите перезагрузить из запущенного Initiator . Удалите их из запущенного Initiator через removeSetting().
  4. Затем перезагрузите настройки из файла настроек для необходимого Session и поместите их в настройки Initiator.
  5. Затем позвоните createDynamicSession() по номеру SessionID
...