小编Leo*_*Leo的帖子

QuickFix序列重置不起作用

我正在使用QuickFix/J(FIX 4.2)将订单提交给接受器FIX引擎.基本上我需要两个帐户的帮助:

  1. 当我第一次尝试与接受者建立连接时,接受者拒绝初始登录请求"Msg Seq No too Low".在此之后,我的发起者继续将输出序列号递增一,当此序号为.和没有.通过接受器引擎匹配,我获得了稳定的连接.为了加快这个过程,我开始提取预期的seq.没有.来自接受器引擎发送的拒绝消息并更改了传出序列号.为我的引擎使用

    session.setNextTargetMsgSeqNum(expectedSeqNo).
    
    Run Code Online (Sandbox Code Playgroud)

    但是,稍后,如果我的引擎发现传入序列号.高于预期,它发送重发请求.作为响应,另一方发回序列重置消息(35 = 4,123 = Y).现在收到这个消息后,传入的seq没有.我的引擎应自动设置为从Seq Reset msg收到的引擎.但这没有发生,我的引擎继续要求消息重发请求,而没有改变传入的seq号.有趣的是,当我没有在第一个地方显式更改传出的seq no时(使用setNextTargetMsgSeqNum),我发现这个东西能够工作.

    为什么我的引擎在获得Sequence Reset Msg时没有显示预期的行为?

  2. 我已经与另一方交谈,他们的配置中不会有ResetOnLogon = Y. 所以每次我的引擎启动时,它都会发送一个seq no的Logon请求.低于预期(从1开始).有没有更好的方法快速建立连接?就像我可以以某种方式使我的引擎使用序列号.从它倒塌前的那一点开始恢复?什么应该是理想的方法?

所以我现在将消息保存在一个处理序列号的文件中.然而,令人不安的是,我的quickfix启动器引擎没有响应序列重置消息.现在根本没有管理员回拨.

我注意到,当我从一个服务器连接到接受器然后关闭该会话,并使用不同的服务器连接到接收器时,几乎总是没有对序列重置消息的响应,使用相同的会话ID.一旦登录被接受,我希望事情能够正常工作.然而,当另一个引擎将序列重置发送到特定数字(基本上是间隙填充)时,我的修复引擎不响应它,这意味着它不会重置其预期的序列号并继续向接受者发送重发请求.任何帮助将不胜感激!

numbers sequence reset matching quickfix

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

Hibernate持久对象行为

我试图了解Hibernate中不同的对象状态.我尝试了以下操作,无法找到所显示行为的解释.有人可以帮忙吗?

以下是我要做的事情:在Employee表中插入一条新记录(empId是主键).在同一事务中,更新新添加的记录(使用查询,修改empName).然后当我检查持久对象的empName属性时,它继续显示旧的empName值.作为一个持久对象,我希望它能反映数据库中所做的更改.我不明白为什么没有.(我的hibernate配置文件已将所有设置为默认值,但"hibernate.hbm2ddl.auto"属性设置为更新)但是,在执行更新后,当我使用getEmpName返回的值设置持久对象的empName时(显示为旧的)由sysout表示的empName值,表中的最终数据显示了新的empName值(即我使用hql更新的值).请参考以下代码:

Transaction tx = session.getTransaction();
    tx.begin();

    Employee e1 = new Employee();
    e1.setEmpId(1);
    e1.setEmpName("Jack");
    e1.setEmpAge(25);
    session.save(e1);
    System.out.println("before: "+e1.getEmpName()); //prints Jack
    session.createQuery("update Employee set empName = \'Jack_new\' where id=1").executeUpdate();
    System.out.println("after: "+e1.getEmpName()); //prints Jack
    e1.setEmpName(e1.getEmpName()); //should update database
    tx.commit(); //sets empName value to Jack_new, as seen in table
    System.out.println("last: "+e1.getEmpName()); //prints Jack
Run Code Online (Sandbox Code Playgroud)

java persistence hibernate

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

标签 统计

hibernate ×1

java ×1

matching ×1

numbers ×1

persistence ×1

quickfix ×1

reset ×1

sequence ×1