这是我的错误,我忘记了 ssl 调试正在运行,它现在非常快并且像魔术一样工作
我有一个使用 Spring JMS 连接到 IBM MQ 的 Spring Boot 应用程序。我意识到与根本不使用 Spring 相比,jmsTemplate 速度非常慢。我确信我有一些配置不正确的地方。希望有人可以提供帮助。
我使用 IBM MQ 8 jar 文件创建连接工厂。
@Bean
public ConnectionFactory connectionFactory() {
properties.getCipherSpec());
MQConnectionFactory factory = new MQConnectionFactory();
try {
factory.setHostName(properties.getHost());
factory.setPort(properties.getPort());
factory.setQueueManager(properties.getQueueManager());
factory.setChannel(properties.getChannel());
factory.setTransportType(WMQConstants.WMQ_CM_CLIENT);
factory.setClientReconnectTimeout(CLIENT_RECONNECT_TIMEOUT);
factory.setClientReconnectOptions(WMQConstants.WMQ_CLIENT_RECONNECT);
if (properties.isEnableSsl()) {
factory.setSSLCipherSuite(properties.getCipherSpec());
factory.setSSLSocketFactory(socketFactory());
}
factory.setUseConnectionPooling(true);
} catch (Exception e) {
throw new RuntimeException(e);
}
return factory;
}
Run Code Online (Sandbox Code Playgroud)
然后我创建一个缓存连接工厂并将目标连接工厂设置为上面的连接工厂。
@Bean(name = "cachingConnectionFactory")
public CachingConnectionFactory cachingConnectionFactory(){
CachingConnectionFactory factory = new CachingConnectionFactory();
factory.setSessionCacheSize(50);
factory.setTargetConnectionFactory(connectionFactory());
factory.setReconnectOnException(true);
factory.afterPropertiesSet();
return factory; …Run Code Online (Sandbox Code Playgroud) 我正在使用 Check 框架对我的 C 代码进行单元测试,但我找不到测试静态方法的正确方法。
我的工作根本不理想,希望有人能指出我正确的方向,如何正确地做到这一点。我的解决方法是添加 #ifdef 宏,将静态方法更改为 extern,以防我在编译时传递 -D DEBUG。
在源文件中
#ifdef DEBUG
unsigned ds_roundup_to_prime (const unsigned bsize) {
#else
static inline unsigned ds_roundup_to_prime (const unsigned bsize) {
#endif
Run Code Online (Sandbox Code Playgroud)
在头文件中我这样做
#ifdef DEBUG
unsigned ds_roundup_to_prime (const unsigned bsize);
#endif
Run Code Online (Sandbox Code Playgroud)
理想情况下,不应更改源代码来适应单元测试。单元测试框架应该能够测试源代码,就像它在生产中的样子一样。
谢谢