我有一个使用ActiveMQ版本5.10的Spring JMS应用程序.我正在执行简单的并发测试.我使用Spring Boot,当前版本和注释来配置JMSListener和消息生成器.
消息生成器只是尽可能快地在队列上抛出消息.消息侦听器将消息从队列中拉出,但在获取消息后休眠1秒钟 - 模拟消息侦听器在获取消息后需要执行的一些工作.
我将JMSListener设置为100-1000个并发线程.如果我开始在同一时间的消息生产者和消费者(无论是在自己的JVM上运行),消费者从来没有得到最低配置的螺纹上方,尽管最大范围设为1000.
如果我让生产者首先开始并在队列上放置几千条消息,然后启动一个或多个消费者实例,它将稳定地提升线程,从100开始,然后每秒20个左右的线程,直到达到状态队列中有大约20-30条消息在飞行中.它永远不会捕获生成器 - 即使消费者没有接近其maxConcurrency计数,也总会有一些消息在队列中.
为什么消息使用者没有突然进入一堆额外的线程来清空队列而不是让队列中有20-30条消息呢?消费者是否有办法继续快速添加线程以便赶上队列中的消息?
以下是代码的相关部分.
消息制作者
@Component
public class ClientServiceImpl implements ClientService {
private static final String QUEUE="message.test.queue";
@Autowired
private JmsTemplate jmsTemplate;
@Override
public void submitMessage(ImportantMessage importantMessage) {
System.out.println("*** Sending " + importantMessage);
jmsTemplate.convertAndSend(QUEUE, importantMessage);
}
}
Run Code Online (Sandbox Code Playgroud)
消息消费者
@SpringBootApplication
@EnableJms
public class AmqConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(AmqConsumerApplication.class, args);
}
@Value("${JMSHost}")
private String JMS_BROKER_URL;
@Autowired
static Command command;
@Bean
public ConnectionFactory connectionFactory() {
ConnectionFactory factory= new ActiveMQConnectionFactory(JMS_BROKER_URL);
((ActiveMQConnectionFactory)factory).setTrustAllPackages(true);
((ActiveMQConnectionFactory)factory).setOptimizeAcknowledge(true);
((ActiveMQConnectionFactory)factory).setAlwaysSessionAsync(false); …Run Code Online (Sandbox Code Playgroud) 我遇到了JFreeChart重叠图的问题.我正在使用JFreeChart 1.0.13.我想要做的似乎是在早期版本的JFreeChart中更容易做到?
该图显示折线图和条形图.由Y轴的折线图绘制的数据范围在0-100范围内,条形图的轴在0-5范围内.
单独地,当我布置每个图表并绘制它时,它们看起来很棒.这是一个例子:
条形图
折线图
但是当我覆盖它们时,条形图缩小到看起来非常无用......大概是因为两个数据集的比例是如此不同.
例:

我真正想要的是分割两个数据集的系列数据,并在左侧Y轴上显示折线图的0-100范围,并使条形图显示为完整尺寸,如下面的第一个示例所示,但是标尺0-5显示在图表的右侧Y轴侧.
要创建图形,我首先使用XYSeriesCollection创建条形图,添加数据并创建绘图...
XYSeriesCollection histogramDataset= new XYSeriesCollection();
XYSeries xy= new XYSeries("Temp");
xy.add(100,0.0);
xy.add(101,0.3769791404875597);
histogramDataset.addSeries(xy);
...
final NumberAxis xAxis = new NumberAxis("Temperature C");
xAxis.setAutoRangeIncludesZero(false);
final ValueAxis yAxis = new NumberAxis("Percent Time above Temperature");
final XYItemRenderer renderer = new XYBarRenderer();
final XYPlot plot = new XYPlot((XYDataset) histogramDataset, xAxis, yAxis, renderer);
Run Code Online (Sandbox Code Playgroud)
然后我以类似的方式创建折线图并将第二个系列添加到图中......
final XYSeries xy = new XYSeries("First");
final XYDataset xySeriesData = new XYSeriesCollection();
final XYItemRenderer xyLineRenderer = new XYLineAndShapeRenderer();
xyLineRenderer.setSeriesShape(0, new Line2D.Double(0.0, 0.0, 0.0, 0.0)); …Run Code Online (Sandbox Code Playgroud) 这看起来像是一个傻瓜问题,但我一直在一棵树周围追逐我的尾巴.我有一个Struts 2 + Spring3/JPA/Hibernate应用程序,它将一个大型集合插入到数据库中.在集合中是Java util日期.我在Dao插入行之前检查了日期,所有日期都有正确的时间.插入后,Oracle DB中的所有行都没有时间,只有日期.就像时间被截断一样,但事务中没有出现错误.
在我发布任何代码之前我想过,我会问这个问题,看看是否有人可以提出我可能忽略的内容?数据库是Oracle 10g.JPA 2.0.列上有注释:
@Column(name = "READING_DATE")
@Temporal(TemporalType.DATE)
private Date readingDate;
Run Code Online (Sandbox Code Playgroud)
将Column类型设置为TemporalType.TIMESTAMP会导致Hibernate异常
column READING_DATE. Found: date, expected: timestamp
Run Code Online (Sandbox Code Playgroud)
任何/所有回复表示赞赏.
我似乎无法找到如何在 Struts 操作中获取对 Spring Security (V3) SessionRegistry 的引用。
我已经在 web.xml 文件中配置了监听器:
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)
我尝试使用 @Autowired 注释将其带入操作:
@Autowired
private SessionRegistry sessionRegistry;
@Override
public String execute() throws Exception {
numberOfUsersLoggedin= sessionRegistry.getAllPrincipals().size();
return SUCCESS;
}
public SessionRegistry getSessionRegistry() {
return sessionRegistry;
}
public void setSessionRegistry(SessionRegistry sessionRegistry) {
this.sessionRegistry = sessionRegistry;
}
Run Code Online (Sandbox Code Playgroud)
http 配置如下所示:
<session-management invalid-session-url="/public/login.do?login_error=expired"
session-authentication-error-url="/public/login.do"
session-fixation-protection="newSession">
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/>
</session-management>
Run Code Online (Sandbox Code Playgroud)
一般来说,我更愿意自己连接 Spring bean,但不确定如何使用命名空间公开它。每次执行操作时,会话注册表都为空。
谁能指出我在这里做错了什么,或者告诉我一个例子的方法?
提前感谢您的任何/所有回复!
自从使用DB2已有好几年了,但是我只是继承了一个遗留应用程序,该应用程序通过JDBC读取/写入DB2,并在AS400上运行。我还没有关于平台或版本的很多细节,但是我想知道一般是否可以将数据库的副本迁移到Windows或Linux版本的DB2?该应用程序通过一个非常慢的管道访问数据,我希望能够剪切该数据库的副本以进行本地开发。使用的JDBC驱动程序是:
com.ibm.as400.access.AS400JDBCDriver
Run Code Online (Sandbox Code Playgroud)
如果有帮助...
任何/所有答复表示赞赏!
更新:我刚刚发现DB2版本是7.1,平台是iSeries(我是否需要有关该平台的更多详细信息?)
~~干杯~~
使用Spring Security 3以及Struts 2和Tiles 2,我有一个登录页面,当它应该出现并按预期执行登录时 - 但是当我输入错误的用户凭据时,我返回到登录页面而没有关于什么地方出了错.我已经检查了所有配置参数,但我看不出问题出在哪里.
我的Spring Security XML配置如下:
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/" access="permitAll" />
<intercept-url pattern="/css/**" access="permitAll" />
<intercept-url pattern="/images/**" access="permitAll" />
<intercept-url pattern="/js/**" access="permitAll" />
<intercept-url pattern="/public/**" access="permitAll" />
<intercept-url pattern="/home/**" access="permitAll" />
<intercept-url pattern="/user/**" access="hasRole('AUTH_MANAGE_USERS')" />
<intercept-url pattern="/group/**" access="hasRole('AUTH_MANAGE_USERS')" />
<intercept-url pattern="/**" access="isAuthenticated()" />
<access-denied-handler error-page="/403.html"/>
<form-login login-page="/public/login.do" always-use-default-target="false"/>
<logout invalidate-session="true" logout-success-url="/public/home.do"/>
</http>
Run Code Online (Sandbox Code Playgroud)
我的Struts Action看起来像这样:
<package name="public" namespace="/public" extends="secure">
<action name="login">
<result name="success" type="tiles">tiles.login.panel</result>
<result name="input" type="tiles">tiles.login.panel</result>
<result name="error">/WEB-INF/jsp/error.jsp</result>
</action>
<action name="logout">
<result name="success" type="redirect">/j_spring_security_logout</result> …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用一个简单的Spring示例来使用Activiti 5.5,并遇到一些麻烦.我正在使用在%activiti_home%/ apps/apache-tomcat-6.0.32/webapps/activiti-rest下配置了activiti的流程引擎.
我修改了spring配置文件,以便它执行我的自定义spring配置文件的include:
<import resource="classpath*:applicationContext*.xml"/>
Run Code Online (Sandbox Code Playgroud)
我将applicationContext.xml文件部署到activiti-rest/WEB-INF/classes文件夹.Activiti启动正常,我在我的bean构造函数中看到System.out.println,所以我知道正在读取我的spring配置并且正在构造bean.我为实现JavaDelegate的类创建了一个spring bean,并将bean注入其中,并且它总是为null.
这是我的Spring配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<bean id="myBean" class="org.bpmn.examples.MyBean"/>
<bean id="taskBean" class="org.bpmn.examples.GetBeanTest">
<property name="myBean" ref="myBean"/>
</bean>
</beans>
Run Code Online (Sandbox Code Playgroud)
这是我的豆子:
package org.bpmn.examples;
import java.io.Serializable;
public class MyBean implements Serializable {
public MyBean() {
super();
System.out.println("<========================== myBean ===========================>");
System.out.println("<========================== myBean ===========================>");
System.out.println("<========================== myBean ===========================>");
}
/**
*
*/
private static final long serialVersionUID = -2867207654072787909L;
Long id;
String description;
public Long getId() {
return id; …Run Code Online (Sandbox Code Playgroud) 使用蟾蜍9.7.2对网络Oracle数据库(10克),我看不出在使用我的DBA提供给我的帐户信息架构浏览器的任何物体.使用本地安装的Oracle 10g,我使用我创建的具有所有权限的帐户查看本地Oracle实例中的所有对象.我相信这是一个实例,我的DBA提供给我的帐户在DB或Oracle目录中没有足够的权限?
是否有特定的权限我需要我的DBA请求此用户帐户能够使用Toad的模式浏览器对共享数据库?
在此先感谢任何/所有回复.
使用Spring Security 3.1.0,我似乎无法使并发会话控制功能起作用.当我使用IE和FireFox(使用我的本地工作站)同时登录我的系统时,我在会话注册表中看到我的用户原则两次.我期待并发会话控制将我退出或抛出异常或做一些事情表明我多次登录该网站并且不允许这样做.
对于它的价值,即使指定我的站点使用自定义登录表单,我也无法使用HTTP名称空间元素的自动配置来使用并发控制.我想知道这可能是因为我的身份验证是通过LDAP提供的吗?
这是我的安全配置.
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd">
<http auto-config="false" use-expressions="true" entry-point-ref="authenticationProcessingFilterEntryPoint">
<custom-filter position="CONCURRENT_SESSION_FILTER" ref="concurrencyFilter" />
<custom-filter position="FORM_LOGIN_FILTER" ref="myAuthFilter"/>
<session-management session-authentication-strategy-ref="sas"/>
<intercept-url pattern="/" access="permitAll" />
<intercept-url pattern="/css/**" access="permitAll" />
<intercept-url pattern="/images/**" access="permitAll" />
<intercept-url pattern="/js/**" access="permitAll" />
<intercept-url pattern="/public/**" access="permitAll" />
<intercept-url pattern="/home/**" access="permitAll" />
<intercept-url pattern="/admin/user/**" access="hasRole('AUTH_MANAGE_USERS')" />
<intercept-url pattern="/admin/group/**" access="hasRole('AUTH_MANAGE_USERS')" />
<intercept-url pattern="/**" access="isAuthenticated()" />
<access-denied-handler error-page="/403.html"/>
<logout invalidate-session="true" logout-success-url="/public/home.do"/>
</http>
<beans:bean id="authenticationProcessingFilterEntryPoint"
class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint">
<beans:property name="loginFormUrl" value="/public/login.do"/>
<beans:property name="forceHttps" value="false"/> …Run Code Online (Sandbox Code Playgroud) 我有一个div,它联合CSS类如下:
<div id="tp" class="ui-hidden-on-load ui-tablepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible">
...
</div>
Run Code Online (Sandbox Code Playgroud)
如何创建一个CSS样式,我可以将所有这些类组合成一个具有谨慎名称的单个类?
例:
<div class="myCustomClass">
...
<div>
Run Code Online (Sandbox Code Playgroud)
我的自定义类是所有组合类的交集?我似乎无法找到一个例子或如何做到这一点的良好解释.
提前感谢您阅读我的问题!