应该使用哪个 SqlDriver 来记录 SQL 服务器数据库中的 FIX 会话和消息?

Which SqlDriver should be used to log FIX sessions, messages in SQL server database?

我有一个 java 应用程序,我需要在 SQL 服务器数据库中存储日志数据,例如会话、消息和事件日志。我指的是 SQLjdbc4.jar 使用 com.microsoft.sqlserver.jdbc.SQLServerDriver 进行数据库连接。除此之外,我还使用了所有支持的罐子(例如 proxool.jar、com.springsource.org.logicalcobwebs.cglib.core-0.9.1.jar)。 我仍然无法连接并将数据记录到数据库中。 是否使用了他们的代码或 jar 中的任何错误?

异常如下:

INFO: [FIX.4.4:FIXCLIENT->FIXSERVER] daily, 00:00:00-UTC - 00:00:00-UTC
INFO  FXClient - Error in login : error during session initialization
quickfix.ConfigError: error during session initialization
 at quickfix.mina.initiator.AbstractSocketInitiator.createSessions

(AbstractSocketInitiator.java:169)
 at quickfix.mina.initiator.AbstractSocketInitiator.createSessionInitiators

(AbstractSocketInitiator.java:84)
 at quickfix.SocketInitiator.initialize(SocketInitiator.java:86)
 at quickfix.SocketInitiator.start(SocketInitiator.java:64)
 at client.FXClient.login(FXClient.java:137)
 at client.FXClient.startClient(FXClient.java:76)
 at client.FXClient.main(FXClient.java:59)
Caused by: quickfix.RuntimeError: com.microsoft.sqlserver.jdbc.SQLServerException: The connection to 

the host ABC, named instance XYZ_2008 has failed. Error: "java.net.SocketTimeoutException: 

Receive timed out". Verify the server and instance names, check that no firewall is blocking UDP 

traffic to port 1434, and for SQL Server 2005 or later verify that the SQL Server Browser Service is 

running on the host.

正常的数据库连接在同一个 SQl 服务器上工作正常。

这个问题是 quickFixJ JDBC 日志记录的问题。 我已经使用 SQl 数据源解决了这个问题。 我已将 SQL 数据源对象设置为 JDBCStoreFactory 和 JDBCLogFactory 数据源。 QuickFIXJ 提供所有必要的实用程序。 请在下面找到相同的代码片段。

 JdbcStoreFactory objJSF = new JdbcStoreFactory(settings);
            JdbcLogFactory objJLF = new JdbcLogFactory(settings);
            SQLServerDataSource ds = new SQLServerDataSource();
            ds.setServerName(<SERVER_NAME);
            ds.setDatabaseName(<quickfix_database_name>);
            ds.setInstanceName(<INSTANCE_NAME>);               
          ds.setIntegratedSecurity(AUTHMODE.toUpperCase().contains("WINDOW") ? true : false);
            objJSF.setDataSource(ds);
            objJLF.setDataSource(ds);
            storeFactory = objJSF;
            logFactory = objJLF;
        MessageFactory messageFactory = new MessageFactory();
        initiator = new SocketInitiator(application, storeFactory, settings, logFactory, messageFactory);