문제

연결 손실을 감지하는 좋은 방법을 찾으려고 노력하고 있습니다.

내 어댑터는 예 중 하나를 기반으로 Fix :: 응용 프로그램으로 구현됩니다. 소켓 개시제를 사용하여 수정 게이트웨이에 연결합니다.

인터넷을 뽑으면 Fix :: Application의 Onlogout 메소드를 발사하는 데 약 30 초가 걸립니다. 일부 기본 클래스는 소켓에 훨씬 더 일찍 문제가 있음을 알고있는 것 같습니다. 이것에 빠르게 갈망하는 방법이 있습니까?

도움이 되었습니까?

해결책

이를 해결하는 가장 좋은 방법은 아마도 심장 박동 간격을 줄이려면 더 빨리 알 수있을 것입니다. TCP 연결 손실로 인해 발사되는 메시지는 모르지만 QuickFix가 OS 이벤트를 듣고 있다고 생각하지 않습니다. 그러나 그러한 메시지가 있으면 Fromadmin 이벤트를 통해 흐를 것입니다.

QuickFix DL에 질문을 게시 했습니까?

다른 팁

TCP가 연결이 끊어 졌을 때 사용중인 수정 엔진이 다시 호출되지 않거나 Onlogout 이외의 다른 항목을 다시 호출 할 수 있습니다. 수정을 사용하고 있기 때문에 심장 박동이 누락되어 로그 아웃을 강요 할 것입니다.

빠른 방법은 코드를 조사하고 소켓 닫기가 어디에서 처리되는지, 그리고 이런 일이 발생할 때 어떤 경로가 실행되는지 확인하는 것입니다.

TCP 자체에는 네이티브 하트 비트 메커니즘이 있습니다 SO_KEEPALIVE. 문제는이 심장 박동의 기본 간격이 2 시간 정도 높을 수 있다는 것입니다. 이것은 OS 레벨에서 구성됩니다. 따라서 이론적으로 SO_KEEPALIVE를 켜고 OS 레벨에서 합리적인 하트 비트 간격을 구성하고 행복 할 수 있습니다. 그러나 이것은 매우 OS 의존적이기 때문에 대부분의 응용 프로그램은 응용 프로그램 수준에서 심장 박동을 구현하기로 선택하며 수정도 예외는 아닙니다. 수정 하트 비트 간격을 줄이는 것은 여기에가는 방법입니다. 특히 취소에 대한 취소에 의존하고 여분의 감지 된 연결 손실이 원치 않는 주문 실행으로 이어질 수 있습니다. 모든 수정 엔진 위에 구현 된 수정 게이트웨이는 하트 비트 구성을 기본적으로 지원해야합니다. 살펴보세요 Coralgateway 예를 들어. (면책 조항 : 저는 Coralgateway의 개발자 중 하나입니다)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top