WSO2 Integrator: How to setup FIX Initiator failover?
up vote
0
down vote
favorite
How can I configure a WSO2 Integrator FIX initiator endpoint which utilizes automatic session failover supported by Quickfix/J?
In Quickfix/J, it is possible to configure automatic failover of the initiator session using the FIX config file as follows (assuming two localhost FIX servers listening on ports 9997,9998)
[SESSION]
SenderCompID=SYNAPSE
TargetCompID=EXEC
SocketConnectHost=localhost
SocketConnectPort=9997
SocketConnectHost1=localhost
SocketConnectPort1=9998
ReconnectInterval=5
All examples in WSO2 documentation show FIX endpoints configured with a hardcoded host such as:
<send>
<endpoint>
<address uri="fix://localhost:9997?BeginString=FIX.4.4&SenderCompID=SYNAPSE&TargetCompID=EXEC"/>
</endpoint>
</send>
This pattern is not possible for us because the target FIX server is on a remote server with a hostname that is different per environment, so I never want to hardcore the target host like this.
Ideally I would like to do something like this:
<send>
<address uri="fix://<dynamic hostname>:9997?BeginString=FIX.4.4&SenderCompID=SYNAPSE&TargetCompID=EXEC"/>
// the endpoint representing the above FIX Session
// where the target host is dynamically defined
// and not hardcoded anywhere in my car application
</send>
On the receiver/listener side as a Proxy Service this works fine, because in the proxy service it lifts the configuration from the supplied initiator config URL parameter, so the failover happens "under the hood" by the FIX engine.
<parameter name="transport.fix.InitiatorConfigURL">quickfix.cfg</parameter>
However it doesn't look like it's possible to do the same when you are sending a message to the target FIX server.
Does anyone have a good suggestion or an example for how to achieve this?
wso2 wso2esb fix wso2ei
add a comment |
up vote
0
down vote
favorite
How can I configure a WSO2 Integrator FIX initiator endpoint which utilizes automatic session failover supported by Quickfix/J?
In Quickfix/J, it is possible to configure automatic failover of the initiator session using the FIX config file as follows (assuming two localhost FIX servers listening on ports 9997,9998)
[SESSION]
SenderCompID=SYNAPSE
TargetCompID=EXEC
SocketConnectHost=localhost
SocketConnectPort=9997
SocketConnectHost1=localhost
SocketConnectPort1=9998
ReconnectInterval=5
All examples in WSO2 documentation show FIX endpoints configured with a hardcoded host such as:
<send>
<endpoint>
<address uri="fix://localhost:9997?BeginString=FIX.4.4&SenderCompID=SYNAPSE&TargetCompID=EXEC"/>
</endpoint>
</send>
This pattern is not possible for us because the target FIX server is on a remote server with a hostname that is different per environment, so I never want to hardcore the target host like this.
Ideally I would like to do something like this:
<send>
<address uri="fix://<dynamic hostname>:9997?BeginString=FIX.4.4&SenderCompID=SYNAPSE&TargetCompID=EXEC"/>
// the endpoint representing the above FIX Session
// where the target host is dynamically defined
// and not hardcoded anywhere in my car application
</send>
On the receiver/listener side as a Proxy Service this works fine, because in the proxy service it lifts the configuration from the supplied initiator config URL parameter, so the failover happens "under the hood" by the FIX engine.
<parameter name="transport.fix.InitiatorConfigURL">quickfix.cfg</parameter>
However it doesn't look like it's possible to do the same when you are sending a message to the target FIX server.
Does anyone have a good suggestion or an example for how to achieve this?
wso2 wso2esb fix wso2ei
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
How can I configure a WSO2 Integrator FIX initiator endpoint which utilizes automatic session failover supported by Quickfix/J?
In Quickfix/J, it is possible to configure automatic failover of the initiator session using the FIX config file as follows (assuming two localhost FIX servers listening on ports 9997,9998)
[SESSION]
SenderCompID=SYNAPSE
TargetCompID=EXEC
SocketConnectHost=localhost
SocketConnectPort=9997
SocketConnectHost1=localhost
SocketConnectPort1=9998
ReconnectInterval=5
All examples in WSO2 documentation show FIX endpoints configured with a hardcoded host such as:
<send>
<endpoint>
<address uri="fix://localhost:9997?BeginString=FIX.4.4&SenderCompID=SYNAPSE&TargetCompID=EXEC"/>
</endpoint>
</send>
This pattern is not possible for us because the target FIX server is on a remote server with a hostname that is different per environment, so I never want to hardcore the target host like this.
Ideally I would like to do something like this:
<send>
<address uri="fix://<dynamic hostname>:9997?BeginString=FIX.4.4&SenderCompID=SYNAPSE&TargetCompID=EXEC"/>
// the endpoint representing the above FIX Session
// where the target host is dynamically defined
// and not hardcoded anywhere in my car application
</send>
On the receiver/listener side as a Proxy Service this works fine, because in the proxy service it lifts the configuration from the supplied initiator config URL parameter, so the failover happens "under the hood" by the FIX engine.
<parameter name="transport.fix.InitiatorConfigURL">quickfix.cfg</parameter>
However it doesn't look like it's possible to do the same when you are sending a message to the target FIX server.
Does anyone have a good suggestion or an example for how to achieve this?
wso2 wso2esb fix wso2ei
How can I configure a WSO2 Integrator FIX initiator endpoint which utilizes automatic session failover supported by Quickfix/J?
In Quickfix/J, it is possible to configure automatic failover of the initiator session using the FIX config file as follows (assuming two localhost FIX servers listening on ports 9997,9998)
[SESSION]
SenderCompID=SYNAPSE
TargetCompID=EXEC
SocketConnectHost=localhost
SocketConnectPort=9997
SocketConnectHost1=localhost
SocketConnectPort1=9998
ReconnectInterval=5
All examples in WSO2 documentation show FIX endpoints configured with a hardcoded host such as:
<send>
<endpoint>
<address uri="fix://localhost:9997?BeginString=FIX.4.4&SenderCompID=SYNAPSE&TargetCompID=EXEC"/>
</endpoint>
</send>
This pattern is not possible for us because the target FIX server is on a remote server with a hostname that is different per environment, so I never want to hardcore the target host like this.
Ideally I would like to do something like this:
<send>
<address uri="fix://<dynamic hostname>:9997?BeginString=FIX.4.4&SenderCompID=SYNAPSE&TargetCompID=EXEC"/>
// the endpoint representing the above FIX Session
// where the target host is dynamically defined
// and not hardcoded anywhere in my car application
</send>
On the receiver/listener side as a Proxy Service this works fine, because in the proxy service it lifts the configuration from the supplied initiator config URL parameter, so the failover happens "under the hood" by the FIX engine.
<parameter name="transport.fix.InitiatorConfigURL">quickfix.cfg</parameter>
However it doesn't look like it's possible to do the same when you are sending a message to the target FIX server.
Does anyone have a good suggestion or an example for how to achieve this?
wso2 wso2esb fix wso2ei
wso2 wso2esb fix wso2ei
asked Nov 19 at 18:19
Petteri Pertola
1582417
1582417
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
As you are using a normal 'address endpoint' you should also be able to use the normal failover configurations: see https://docs.wso2.com/display/ESB500/Configuring+Failover+Endpoints for info.
Hi Jan, that would still require me to hardcode the hostname. This is different per environment, so I want to inject it from environment variables or similar. Also, I would like to use the QuickfixJ native session failover and not the physical failover as done by ESB.
– Petteri Pertola
Nov 28 at 16:24
I am not too familiar with FIX but the config is also configured locally right? So essentially you configure the endpoint still per environment. There are several solutions each with their own drawback: you can define a registry file 'dynamic_hostname' with the hostname there and then define the endpoint dynamically or use a 'Endpoint' artifact in the registry and refer to that endpoint using 'key=..'
– Jan
Nov 30 at 15:31
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
As you are using a normal 'address endpoint' you should also be able to use the normal failover configurations: see https://docs.wso2.com/display/ESB500/Configuring+Failover+Endpoints for info.
Hi Jan, that would still require me to hardcode the hostname. This is different per environment, so I want to inject it from environment variables or similar. Also, I would like to use the QuickfixJ native session failover and not the physical failover as done by ESB.
– Petteri Pertola
Nov 28 at 16:24
I am not too familiar with FIX but the config is also configured locally right? So essentially you configure the endpoint still per environment. There are several solutions each with their own drawback: you can define a registry file 'dynamic_hostname' with the hostname there and then define the endpoint dynamically or use a 'Endpoint' artifact in the registry and refer to that endpoint using 'key=..'
– Jan
Nov 30 at 15:31
add a comment |
up vote
0
down vote
As you are using a normal 'address endpoint' you should also be able to use the normal failover configurations: see https://docs.wso2.com/display/ESB500/Configuring+Failover+Endpoints for info.
Hi Jan, that would still require me to hardcode the hostname. This is different per environment, so I want to inject it from environment variables or similar. Also, I would like to use the QuickfixJ native session failover and not the physical failover as done by ESB.
– Petteri Pertola
Nov 28 at 16:24
I am not too familiar with FIX but the config is also configured locally right? So essentially you configure the endpoint still per environment. There are several solutions each with their own drawback: you can define a registry file 'dynamic_hostname' with the hostname there and then define the endpoint dynamically or use a 'Endpoint' artifact in the registry and refer to that endpoint using 'key=..'
– Jan
Nov 30 at 15:31
add a comment |
up vote
0
down vote
up vote
0
down vote
As you are using a normal 'address endpoint' you should also be able to use the normal failover configurations: see https://docs.wso2.com/display/ESB500/Configuring+Failover+Endpoints for info.
As you are using a normal 'address endpoint' you should also be able to use the normal failover configurations: see https://docs.wso2.com/display/ESB500/Configuring+Failover+Endpoints for info.
answered Nov 28 at 12:28
Jan
41137
41137
Hi Jan, that would still require me to hardcode the hostname. This is different per environment, so I want to inject it from environment variables or similar. Also, I would like to use the QuickfixJ native session failover and not the physical failover as done by ESB.
– Petteri Pertola
Nov 28 at 16:24
I am not too familiar with FIX but the config is also configured locally right? So essentially you configure the endpoint still per environment. There are several solutions each with their own drawback: you can define a registry file 'dynamic_hostname' with the hostname there and then define the endpoint dynamically or use a 'Endpoint' artifact in the registry and refer to that endpoint using 'key=..'
– Jan
Nov 30 at 15:31
add a comment |
Hi Jan, that would still require me to hardcode the hostname. This is different per environment, so I want to inject it from environment variables or similar. Also, I would like to use the QuickfixJ native session failover and not the physical failover as done by ESB.
– Petteri Pertola
Nov 28 at 16:24
I am not too familiar with FIX but the config is also configured locally right? So essentially you configure the endpoint still per environment. There are several solutions each with their own drawback: you can define a registry file 'dynamic_hostname' with the hostname there and then define the endpoint dynamically or use a 'Endpoint' artifact in the registry and refer to that endpoint using 'key=..'
– Jan
Nov 30 at 15:31
Hi Jan, that would still require me to hardcode the hostname. This is different per environment, so I want to inject it from environment variables or similar. Also, I would like to use the QuickfixJ native session failover and not the physical failover as done by ESB.
– Petteri Pertola
Nov 28 at 16:24
Hi Jan, that would still require me to hardcode the hostname. This is different per environment, so I want to inject it from environment variables or similar. Also, I would like to use the QuickfixJ native session failover and not the physical failover as done by ESB.
– Petteri Pertola
Nov 28 at 16:24
I am not too familiar with FIX but the config is also configured locally right? So essentially you configure the endpoint still per environment. There are several solutions each with their own drawback: you can define a registry file 'dynamic_hostname' with the hostname there and then define the endpoint dynamically or use a 'Endpoint' artifact in the registry and refer to that endpoint using 'key=..'
– Jan
Nov 30 at 15:31
I am not too familiar with FIX but the config is also configured locally right? So essentially you configure the endpoint still per environment. There are several solutions each with their own drawback: you can define a registry file 'dynamic_hostname' with the hostname there and then define the endpoint dynamically or use a 'Endpoint' artifact in the registry and refer to that endpoint using 'key=..'
– Jan
Nov 30 at 15:31
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53380521%2fwso2-integrator-how-to-setup-fix-initiator-failover%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown