小编Chr*_*ohn的帖子

是什么导致 QuickFIX/J 中出现“Disconnecting: E​​ncountered END_OF_STREAM”会话消息?

我在Apache Camel 2.17.0 中使用QuickFIX/J版本 1.6.4并且我收到会话消息。这不是错误,但在我的情况下,它会导致无意的LogoffDisconnecting: Encountered END_OF_STREAM

什么情况会导致此消息,我如何分析我的案例中的哪种情况是原因?

quickfix fix-protocol quickfixj camel-quickfix

4
推荐指数
2
解决办法
2097
查看次数

QuickFIX/J:连接失败时如何检测?

当我通过 initiator.start() 方法使用 SSL 将启动器连接到 FIX 服务器时,它会启动一个单独的线程来建立连接。现在,当此失败(例如由于 SSL 握手问题或服务器连接问题)时,错误将被抛出到日志中,但似乎无法被捕获在代码中并进行管理。当错误发生时如何检测/捕获?

Disconnecting: Socket exception (<server ip>): java.net.SocketException: Connection reset.
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪的底部是线程池执行器。

我在 start 方法周围有一个 try-catch,但是当异常发生在另一个线程中时,它无法捕获它。

quickfixj

3
推荐指数
1
解决办法
2326
查看次数

如何使用自定义标签排序发送 FIX 消息?

订单请求在 FIX 服务器上发送,并且标签的顺序已更改。

如果我想要序列的输出,因为它是由我安排的(而不是被服务器修改)。

public void send50(Order order) {

    quickfix.fix50sp1.NewOrderSingle newOrderSingle = new quickfix.fix50sp1.NewOrderSingle(new ClOrdID(order.getID()),
            sideToFIXSide(order.getSide()), new TransactTime(), typeToFIXType(order.getType()));
    newOrderSingle.set(new OrderQty(order.getQuantity()));
    newOrderSingle.set(new Symbol(order.getSymbol()));
    newOrderSingle.set(new Price(order.getSharePrice()));
    newOrderSingle.set(new Account("13501100"));
    newOrderSingle.setField(new NoPartyIDs(1));
    newOrderSingle.setField(new PartyIDSource('C'));
    newOrderSingle.setField(new PartyRole(12));
    newOrderSingle.setField(new PartyID("13501100"));**
Run Code Online (Sandbox Code Playgroud)

这是用户给服务器的顺序,服务器将其安排为:

8=FIXT.1.1|9=173|35=D|34=5|49=135|52=20200131-05:35:12.956|56=PSE|1=13501100|11=1580448912440|38=10=10 1|44=10.78|54=1|55=AGI|59=0|60=20200131-13:35:12.956|447=C|448=13501100|452=12|453=1|10=213|

那么,如果我希望输出与发送的顺序相同,该怎么办?

fix-protocol quickfixj

2
推荐指数
1
解决办法
1135
查看次数

QuickFIX/J 启动器 - 在登录时设置用户名和密码

我正在开发使用 FIX 协议和 quickfixj 框架连接到金融市场的解决方案。具体来说,我正在实现一个发起者,我需要连接到接受者,指定用户名和密码。关于如何将 Logon 消息中的这些字段传递给服务器,quickfixj 文档在这方面不是很清楚。

经过我发现它是放在函数toAdmin中的,我在这个函数中放入了以下代码:

@Override
public void toAdmin(Message message, SessionID sessionId) {

    Session.lookupSession(sessionId).setTargetDefaultApplicationVersionID(new ApplVerID("9"));

    final Message.Header header = message.getHeader();      

     try {
        if ( header.getField(new BooleanField(MsgType.FIELD)).equals(MsgType.LOGON) ) {                  
                message.setField(new StringField(Username.FIELD, "user")); 
                message.setField( new StringField(Password.FIELD, "pass"));
                System.out.println(">>> " + message.toRawString()); 
             }
    } catch (FieldNotFound e) {
        // TODO Auto-generated catch block

        e.printStackTrace();
    } 
}
Run Code Online (Sandbox Code Playgroud)

但是我仍然无法执行登录过程,并且在尝试登录时它会向我显示下一个日志。

<20190313-14:44:33, FIXT.1.1:aaa->bbb, outgoing> (8=FIXT.1.1 9=74 35=A 34=1 49=aaa 52=20190313-14:44:33.431 56=bbb 98=0 108=30 1137=9 10=131 )
<20190313-14:44:33, FIXT.1.1:aaa->bbb, event> (Initiated logon request)
<20190313-14:44:33, …
Run Code Online (Sandbox Code Playgroud)

java fix-protocol quickfixj

1
推荐指数
2
解决办法
1797
查看次数

如何将快速修复列表写入文件

我正在寻找一种将 quickfix 窗口的内容写入具有特定格式的文件的方法,最好采用易于编写脚本的方式。

我想要实现的是 Vim 和 ipdb 的轻量级集成:

  1. 我将“断点”设置为带有映射的快速修复列表中的项目: nmap <leader>s :call setqflist([], 'a', {'items': [{'filename': @%, 'lnum':line('.'), 'text':'break'}]})
  2. .pdbrc使用break file_path:line_number格式将快速修复的内容写入文件
  3. 在指定的脚本上运行 ipdb

vim ipdb

1
推荐指数
1
解决办法
56
查看次数

Glassfish 启动域错误。不支持认可的目录

我在 Mac Os X 10.14.6 上启动 glassfish 时遇到问题。

我安装了它

brew install glassfish
Run Code Online (Sandbox Code Playgroud)

然后我添加了

AS_JAVA="/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home"
Run Code Online (Sandbox Code Playgroud)

在asenv.conf中以解决java空指针异常。

现在我收到以下错误:

$ ./asadmin start-domain domain1

Waiting for domain1 to start .Error starting domain domain1.
The server exited prematurely with exit code 1.
Before it died, it produced the following output:

-Djava.endorsed.dirs=/usr/local/Cellar/glassfish/5.1.0/libexec/glassfish/modules/endorsed:/usr/local/Cellar/glassfish/5.1.0/libexec/glassfish/lib/endorsed is not supported. Endorsed standards and standalone APIs
in modular form will be supported via the concept of upgradeable modules.
Java HotSpot(TM) 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0 …
Run Code Online (Sandbox Code Playgroud)

glassfish endorsed

0
推荐指数
1
解决办法
1587
查看次数

FIX 协议:指定的标签不符合要求

我收到 35=D (NewOrderSingle) 请求的拒绝响应。想知道可能是什么问题。我正在关注这个文件

FIX.4.4:Paragxxxx_FIX->CfhDemoPrices:Trade------client toApp-----------8=FIX.4.4 9=163 35=D 34=2 49=Paragxxxx_FIX 52=20200227-04:30:02.863 56=CfhDemoPrices 11=FGQ_MLM_01_20200225-08:48:28 21=1 38=10000 40=1 54=1 55=EURUSD 60=20200227-04:30:02.861 10=182

FIX.4.4:Paragxxxx_FIX->CfhDemoPrices:Trade------client else fromAdmin--------8=FIX.4.4 9=136 35=3 34=2 49=CfhDemoPrices 52=20200227-04:30:05.925 56=Paragxxxxx_FIX 45=2 58=Tag specified out of required order 371=50 372=D 373=14 10=042
Run Code Online (Sandbox Code Playgroud)

添加 SenderSubid ( 50 ) 后,下面是请求和响应

8=FIX.4.4 9=183 35=D 34=2 49=Paragxxxxxx_FIX 50=L6UtbRZvhwEFuZft 52=20200301-23:20:52.088 56=CfhDemoPrices 11=FGQ_MLM_01_20200225-08:48:28 21=1 38=10000 40=1 54=1 55=EURUSD 60=20200301-23:20:52.087 10=056

8=FIX.4.49=136 35=3 34=2 49=CfhDemoPrices 52=20200301-23:20:52.172 56=Paragxxxxxx_FIX 45=2 58=Tag specified out of required order 371=50 372=D 373=14  10=031
Run Code Online (Sandbox Code Playgroud)

fix-protocol quickfixj

0
推荐指数
1
解决办法
546
查看次数

请求 ICE TradeCaptureReport 时,FIX 消息被“截断”

当请求 ICE TradeCaptureReport 消息时,FIX 消息被“截断”。这导致我们没有使用消息的“重复组”(如派对、腿详细信息)。

我们还没有使用任何数据字典。解决此问题的任何解决方案。

ice quickfix fix-protocol quickfixj

0
推荐指数
1
解决办法
102
查看次数