我的应用程序和内存存在很大问题.应用程序(带有jsf/richfaces/facelet的java)同时被大约7000个用户使用.
默认情况下,变量com.sun.faces.numberOfViewsInSession在web.xml中设置为15.此变量创建一个视图树,jsf在向后点击15次时检索特定视图.
例如,我有3个屏幕用于应用程序,我使用Firefox.我在第一个标签中进入第三个屏幕.在第二个选项卡中,我有第一个屏幕,然后单击下一个按钮,jsf检索第一个屏幕并转到第二个屏幕.
这个机制很棒,但它消耗了大量的内存(对于我来说会话需要25Mo),当你将这个数字乘以7000时,我需要175 Go的内存,这是不可能的.
所以我试着设置com.sun.faces.numberOfViewsInSession等于1(3Mo by session).
但是以我的例子为例,当我点击下一个按钮的第二个标签时,我得到了下一个错误:
javax.servlet.ServletException: viewId:/private/pages/data/dataView.faces - View /private/pages/data/dataView.faces could not be restored.
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:270)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at fr.generali.mezzo.front.commun.performance.filters.PerformanceFilter.doFilter(PerformanceFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:420)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
Run Code Online (Sandbox Code Playgroud)
此错误是合乎逻辑的,因为我的numberOfViewsInSession为1.
所以,我的问题是: …
我们有两个未排序的数组,每个数组的长度为n.这些数组包含0-n 100范围内的随机整数.如何找出这两个数组在O(n)/线性时间内是否有任何共同元素?不允许排序.
是否有可能在Java中编写虚拟方法,就像在C++中一样?
或者,是否有适当的Java方法可以实现,产生类似的行为?我能举一些例子吗?
我正在尝试使用 XmlSchema.Read 加载 xsd 文件。它运行没有错误,我可以看到它从文件中读取命名空间,但我无法从 xsd 文件中读取任何其他数据。
这是我的代码:
public XmlSchema GetXSDFileAsXMLSchema()
{
FileStream fs = new FileStream(path, FileMode.Open);
XmlSchema schema = XmlSchema.Read(fs, new ValidationEventHandler(ValidationCallBack));
return schema;
}
private void ValidationCallBack(object sender, ValidationEventArgs args)
{
return;
}
Run Code Online (Sandbox Code Playgroud)
有人知道为什么元素数是0吗?
本周我一直在学习有关ContentProvider的所有内容,并使用SQLiteOpenHelper类来管理提供程序内部数据库的创建和升级.具体来说,我一直在阅读sdk的samples目录中的NotePad示例.
现在,我可以看到SQLiteOpenHelper有一个close()方法.我知道将空闲数据库打开是不好的做法,可能导致内存泄漏等等(除非这个讨论朝着正确的方向发展).如果我在Activity中使用该类,那么我只需在onDestroy()方法中调用close(),但据我所知,ContentProvider与活动没有相同的生命周期.NotePad的代码似乎永远不会调用close(),所以我想假设它是由SQLiteOpenHelper或其他一些拼图处理的,但我真的很想知道.我真的不太相信示例代码,要么...
问题摘要:我们何时应该关闭提供商中的数据库,如果有的话?
如何在同一个表上更新后更新触发器中的表列?
这是触发器:
CREATE TRIGGER upd_total_votes AFTER UPDATE ON products_score
FOR EACH ROW
UPDATE
products_score
SET
products_score.votes_total =
(SELECT
(votes_1 + votes_2 + votes_3 + votes_4 + votes_5)
FROM
products_score
WHERE
id = new.id)
现在当我更新表格时
UPDATE products_score SET votes_1 = 5 WHERE id = 0
这不起作用,因为我得到以下内容:
#1442 - Can't update table 'products_score' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
那么我怎么能让这个工作呢?
我正在使用Visual Studio 2008为Windows XP/Vista/7编写C++应用程序.我的一些结构使用位字段,如示例所示.
typedef struct myStruct_tag
{
BYTE myVar1;
WORD myVar2;
WORD myVar3;
union
{
struct
{
BYTE :1;
BYTE field1 :1;
BYTE field2 :1;
BYTE reserved :5;
} myBitField;
BYTE myVar4;
};
BYTE myVar5;
BYTE myVar6;
} myStruct_t;
Run Code Online (Sandbox Code Playgroud)
该领域的哪一端是最重要的位?
我正在编写一个多线程桌面应用程序.
我不确定多线程对架构的影响.有很多关于架构的文献,但我知道没有考虑多线程的文献.有很多关于多线程(互斥,信号量等)的低级文献的文献,但我知道没有描述这些概念是如何嵌入到架构中的.
您建议哪些文献填补这一空白?
我的申请包括
Presentation 使用GUI工具包创建和管理对话框,Kernel 知道应用程序域的所有内容,Controller虽然知道Kernel和Presentation这两个之间和温和派.更准确地说,这是文件的打开方式:
Presentation信号FileOpenCommand.ApplicationController临危这个信号
ApplicationKernel创建一个File对象,ApplicationPresentation创建一个FilePresentation对象,FileController对象,传递File和FilePresentation给构造函数.FileController自身注册为它的观察员File和FilePresentation.假设File提供了一个Init()不应该阻止用户界面的长时间运行操作.我想到了两种方法:
File::Init()返回一个封装了一个线程的对象,可用于注册一个被通知进度,错误,完成等的观察者.这FileController会给(谁将成为观察者)带来很多责任,因为它现在可以从主线程以及工作线程.Controller.File::Init()什么都不会返回,但是ApplicationKernel会在主线程中发出长时间运行操作的信号创建,进度和错误信号.这会拖累很多通信ApplicationKernel,把它变成类似神对象的东西.这两个中的哪一个是桌面应用程序中多线程的常用方法(如果有的话)?您推荐哪种替代方法?
language-agnostic architecture multithreading desktop-application
我正在尝试搜索文件列表,并仅对名称包含数组中的几个值的文件执行工作.我希望每次有新文件名时都不必遍历数组.
翼-
$needle = array('blah', 'bleh');
foreach($file_list as $file)
{
foreach($needle as $need)
if(strstr($file, $need) !== false)
{
// do something...
}
}
Run Code Online (Sandbox Code Playgroud)
我只需要知道数组中的一个字符串是否在文件名中,而不是字符串的位置.
我想使用类似的东西,strstr()但它不允许使用数组作为针.
即 -
if(strstr($haystack, array('blah', 'bleh')))
{
// do something...
}
Run Code Online (Sandbox Code Playgroud)
我宁愿远离正规表达,似乎是锤子工作的雪橇.有任何想法吗?
我有一个完整的操作区域设置django应用程序,但我在迁移到site5服务器时遇到麻烦.
当我启动django的syncdb命令时,我的所有模型表都被创建了,但是(我猜它在创建关系表时),我得到以下错误:
_mysql_exceptions.OperationalError: (1071, 'Specified key was too long; max key length is 1000 bytes')
Run Code Online (Sandbox Code Playgroud)
当我要求django同步locale db时,我没有任何问题,此错误仅发生在服务器中...
任何的想法?