我遇到以下设置问题:
Java应用程序将电子邮件msg发送到JMS队列,然后侦听队列的MDB使用onMessage方法获取电子邮件msg,它在Gmail SMTP上打开连接,将电子邮件发送到SMTP并关闭连接.对JMS队列中的所有消息执行此操作.
当我在队列中同时拥有最多5条消息时,它工作得很好.5个不同的MDB实例同时拾取所有邮件,因此我有5个并发连接到Gmail SMTP服务器.但是当JMS队列中有更多消息时,我从Gmail SMTP服务器收到连接错误.5个第一个消息是正确发送的,但不是其余的,所以其他消息丢失,因为它们不再在队列中.
所以我的问题是,是否可以限制将侦听JMS队列的MDB实例的数量?如果我最多有5个MDB,那么即使队列中有1000个消息,也只需要更长的时间来清空队列,但至少我不会丢失任何消息.
任何其他建议来解决这个问题将非常感谢.
这是Jboss版本:
[服务器]版本ID:JBoss [Trinity] 4.2.3.GA(build:SVNTag = JBoss_4_2_3_GA date = 200807181417)
MDB的配置如下:
@MessageDriven(activationConfig = {
@ActivationConfigProperty( propertyName = "destinationType", propertyValue = "javax.jms.Queue" ),
@ActivationConfigProperty( propertyName = "destination", propertyValue = "queue/emailQueue")
})
Run Code Online (Sandbox Code Playgroud)
你需要更多吗?
谢谢
编辑2011-02-14
也许我想错误地限制MDB实例的数量.我看到了一个关于JMS线程数量的配置.如果我限制将发布到MDB的线程数,也许它会解决我的问题?在再次发布消息之前,JMS是否会等到MDB可用?这样做会有副作用吗?你虽然请.谢谢
结束编辑
在POJO Java bean中,这样的代码可能是有益的,尤其是对于集合:
class POJO {
private Collection<X> col;
public Collection<X> getCol() {
if (col == null)
col = new SomeCollection<X>();
return col;
}
}
Run Code Online (Sandbox Code Playgroud)
它使代码可以POJO在pojo.getCol().isEmpty()没有额外空值检查的情况下调用,从而使代码更清晰.
假设POJO该类是JPA实体,这样做是否仍然安全?通过将集合从null初始化为空的集合,持久性数据将不会被更改,但是,我们仍在修改对象,因此持久性提供程序可能会在刷新持久性上下文时产生一些副作用.我们有什么风险?便携性可能吗?
我在连接到访问MDB数据库的VBScript时遇到问题.我的平台是Vista64,但其中大部分资源都用于ASP/IIS7.
很简单,我无法连接它.我收到以下错误:800A0E7A - "无法找到提供程序.可能未正确安装"
我的代码是:
Set conn = CreateObject("ADODB.Connection")
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\database.MDB"
conn.Open strConnect
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经运行了%WINDIR%\ System32\odbcad32.exe来尝试在32位模式下配置驱动程序,但它还没有完成.任何建议将不胜感激
作为一个补充,我试图让这个.vbs脚本通过双击运行,并让它做它的事情.此代码未嵌入到另一个lang /脚本中.
我使用一个使用log4j写日志的旧库.我的默认log4j.properties文件将日志定向到控制台,但在我的主程序的某些特定功能中,我想完全禁用日志记录(来自所有类).
我试过这个:
Logger.getLogger(BasicImplementation.class.getName()).setLevel(Level.OFF);
Run Code Online (Sandbox Code Playgroud)
其中"BasicImplementation"是执行日志记录的主要类之一,但它不起作用 - 日志仍然写入控制台.
这是我的log4j.properties:
log4j.rootLogger=warn, stdout
log4j.logger.ac.biu.nlp.nlp.engineml=info, logfile
log4j.logger.org.BIU.utils.logging.ExperimentLogger=warn
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %-5p %d{HH:mm:ss} [%t]: %m%n
log4j.appender.logfile = ac.biu.nlp.nlp.log.BackupOlderFileAppender
log4j.appender.logfile.append=false
log4j.appender.logfile.layout = org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern = %-5p %d{HH:mm:ss} [%t]: %m%n
log4j.appender.logfile.File = logfile.log
Run Code Online (Sandbox Code Playgroud) 因为视频播放器需要时间来加载mp4视频.HTML5是否支持在加载视频时播放"加载"徽标?

因为我的asp.net应用程序是一个移动页面,它需要用户点击视频才能播放视频(android,iphone不支持自动播放).这样我就不能将"加载"标识作为海报,否则,用户会对此感到困惑.我想在用户点击iPad上的播放按钮时显示加载徽标.
谢谢
乔
在处理功能分支时,我使用此Git命令将我的"develop"分支更新为最新状态,在将我的功能分支与"develop"合并之前:
git fetch origin develop:develop
Run Code Online (Sandbox Code Playgroud)
这是有效的,即本地"开发"指向与"原点/开发"相同的提交,并且处于最新的起源状态.
不知何故,当检查"develop"分支时,此命令失败:
fatal: Refusing to fetch into current branch refs/heads/develop of non-bare repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
如果我知道为什么会发生这种情况,那将有助于我更好地理解Git.
在Ms-Access MDB中,它是否会节省磁盘空间以限制可变长度文本字段的大小?
例如.如果我有一个可变长度的Text字段大小,20并且该字段的所有实际值都在10字符下,那么我是否在浪费空间?
将字段的大小设置为10或者没有任何区别会更好吗?
<servlet-mapping>
<servlet-name> s1</servlet-name>
<url-pattern> /abc </url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name> s2</servlet-name>
<url-pattern> /abc </url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name> s3</servlet-name>
<url-pattern> /* </url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
如果请求/ abc到来,将调用哪个servlet?为什么?
我正在分析我可以在以下configuration部分内配置的Maven插件plugin:
<plugin>
...
<executions>...</executions>
<configuration>
<!-- items placed here are visible to the MOJO -->
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
该插件完全忽略了一个配置项execution,但是:
<plugin>
...
<executions>
<execution>
<id>execution1</id>
<phase>test</phase>
<goals><goal>test</goal></goals>
<configuration>
<!-- items placed here are ignored -->
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我和Maven一起跑mvn test.我确信执行发生,因为Maven id正确打印,但插件未配置 - 打印有关在<configuration>移出部分时不存在的错误设置的警告<executions>.
问题是:它是插件实现的方式,它只接受"顶级"配置吗?我研究了它的源代码,在我看来,它是Maven在MOJO类上调用setter而且它对插件是透明的,选项来自哪个部分.
MOJO注释为:
* @component
* @goal test
* @phase test
* @execute phase="jasmine-process-test-resources"
Run Code Online (Sandbox Code Playgroud) 在Confluence中是否有一种方法可以指定对文本段落的引用 - 例如,以与维基百科上类似的方式提供引用文本的来源,以便它像这样呈现:
Lorem ipsum dolor坐下来1
[下页]
1西塞罗
理想情况下,下标"1"应该是内部超链接