|
From: Alex W. <ale...@gm...> - 2018-11-19 12:13:08
|
Hi,
We have been using DynamicAcceptorSessionProvider in our project for quite
sometime now.
After a recent upgrade to Quickfix 2.1.0 (from 1.5.3), we saw some errors
that I believe is caused by Quickfix being unable to find the session
settings.
The stack trace looks like below:
-----
2018-11-19 00:01:13,236|| ERROR |||| org.quickfixj.QFJException:
quickfix.ConfigError: Missing ConnectionType | NioProcessor-23 |
q.m.a.AcceptorIoHandler
org.quickfixj.QFJException: quickfix.ConfigError: Missing ConnectionType
at
quickfix.mina.acceptor.DynamicAcceptorSessionProvider.getSession(DynamicAcceptorSessionProvider.java:153)
~[quickfixj-core-2.1.0.jar:2.1.0]
at
quickfix.mina.acceptor.AcceptorIoHandler.findQFSession(AcceptorIoHandler.java:118)
~[quickfixj-core-2.1.0.jar:2.1.0]
at
quickfix.mina.AbstractIoHandler.messageReceived(AbstractIoHandler.java:129)
~[quickfixj-core-2.1.0.jar:2.1.0]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:997)
~[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:641)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1114)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:437)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:256)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:641)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1114)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:121)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:641)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:634)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:539)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$1200(AbstractPollingIoProcessor.java:68)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1242)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1231)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:683)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
[mina-core-2.0.19.jar:?]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:1.8.0-zing_18.06.0.0]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:1.8.0-zing_18.06.0.0]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0-zing_18.06.0.0]
Caused by: quickfix.ConfigError: Missing ConnectionType
at
quickfix.DefaultSessionFactory.create(DefaultSessionFactory.java:102)
~[quickfixj-core-2.1.0.jar:2.1.0]
at
quickfix.mina.acceptor.DynamicAcceptorSessionProvider.getSession(DynamicAcceptorSessionProvider.java:148)
~[quickfixj-cor
----
I find this very strange, as we definitely have the session configuration,
and the session configuration specifies the 'ConnectionType' (which is an
'acceptor').
Also, earlier in the log we found the following error:
----
2018-11-19 23:00:34,836|| ERROR |||| org.quickfixj.QFJException: Connector
MBean postregistration failed | NioProcessor-23 | q.m.a.AcceptorIoHandler
org.quickfixj.QFJException: Connector MBean postregistration failed
at
org.quickfixj.jmx.mbean.connector.ConnectorAdmin.registerSessions(ConnectorAdmin.java:188)
~[quickfixj-core-2.1.0.jar:2.1.0]
at
org.quickfixj.jmx.mbean.connector.ConnectorAdmin.lambda$postRegister$0(ConnectorAdmin.java:170)
~[quickfixj-core-2.1.0.jar:2.1.0]
at
java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:335)
~[?:1.8.0_172]
at
java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:327)
~[?:1.8.0_172]
at
java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:263)
~[?:1.8.0_172]
at
quickfix.mina.SessionConnector.addDynamicSession(SessionConnector.java:166)
~[quickfixj-core-2.1.0.jar:2.1.0]
at
quickfix.mina.acceptor.DynamicAcceptorSessionProvider.getSession(DynamicAcceptorSessionProvider.java:150)
~[quickfixj-core-2.1.0.jar:2.1.0]
at
quickfix.mina.acceptor.AcceptorIoHandler.findQFSession(AcceptorIoHandler.java:118)
~[quickfixj-core-2.1.0.jar:2.1.0]
at
quickfix.mina.AbstractIoHandler.messageReceived(AbstractIoHandler.java:129)
~[quickfixj-core-2.1.0.jar:2.1.0]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:997)
~[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:641)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1114)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:437)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:256)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:641)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1114)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:121)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:641)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:634)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:539)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$1200(AbstractPollingIoProcessor.java:68)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1242)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1231)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:683)
[mina-core-2.0.19.jar:?]
at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
[mina-core-2.0.19.jar:?]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:1.8.0_172]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:1.8.0_172]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_172]
Caused by: javax.management.InstanceAlreadyExistsException:
org.quickfixj:type=Settings,beginString=FIX.4.2,senderCompID=AU_MD,targetCompID=esp-peak-33
at
com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)
~[?:1.8.0_172]
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)
~[?:1.8.0_172]
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966)
~[?:1.8.0_172]
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)
~[?:1.8.0_172]
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)
~[?:1.8.0_172]
at
com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
~[?:1.8.0_172]
at
org.quickfixj.jmx.JmxExporter.registerMBean(JmxExporter.java:131)
~[quickfixj-core-2.1.0.jar:2.1.0]
at
org.quickfixj.jmx.mbean.session.SessionJmxExporter.register(SessionJmxExporter.java:45)
~[quickfixj-core-2.1.0.jar:2.1.0]
at
org.quickfixj.jmx.mbean.connector.ConnectorAdmin.registerSessions(ConnectorAdmin.java:181)
~[quickfixj-core-2.1.0.jar:2.1.0]
... 29 more
---
I'm not 100% sure if they are related though (i..e whether the mbean
registration failure caused the session configuration error).
I know that we can change the JMX Exporter behaviour to get around the jmx
registration. But right now it is set as default (which I believe is
'REGISTRATION_FAIL_ON_EXISTING').
Thanks in advance!
--
Best regards,
Alex Wibowo
|