我们正在将数据库从Sybase转换为Oracle,我们遇到了性能问题.在Sybase中,我们有一个TEXT字段,并用Oracle中的CLOB替换它.
这就是我们在java代码中访问数据的方式:
while(rs.next()) {
String clobValue = rs.getString(1); // This takes 176ms in Oracle!
.
.
}
Run Code Online (Sandbox Code Playgroud)
该数据库遍布全国各地,但我们仍然没有Sybase的任何性能问题及其对TEXT数据的检索.
我们可以采取哪些措施来提高这种性能?
我有一个系统列表,我正在尝试获取IP地址.我已成功使用perl的Net :: DNS模块为单个主机名执行IP地址查询.我有1000个系统,但我需要ip地址.
有没有办法通过一个查询获取所有这些IP地址?
如果没有,有没有办法获得整个DNS条目列表,比如说,对于单个域?如果我得到了,那么我可以简单地将其放入哈希并以这种方式引用IP地址.
我已经阅读了关于如何在Web应用程序中创建复合组件和自定义标签的各种博客文章和stackoverflow帖子,并且已经让事情正常工作.我现在正试图将所有内容移动到可重用的JAR文件中.
mylib.jar层次结构:
src/main/java
com.example.MyComposite.java
src/main/resources/
META-INF
faces-config.xml
my.taglib.xml
META-INF/resources/components
myComposite.xhtml
META-INF/tags
myTag.xhtml
Run Code Online (Sandbox Code Playgroud)
my.taglib.xml:
<facelet-taglib version="2.2"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facelettaglibrary_2_2.xsd">
<namespace>http://www.example.com/components</namespace>
<tag>
<tag-name>myTag</tag-name>
<source>
tags/myTag.xhtml
</source>
</tag>
<tag>
<tag-name>myComposite</tag-name>
<component>
<resource-id>
components/myComposite.xhtml
</resource-id>
</component>
</tag>
</facelet-taglib>
Run Code Online (Sandbox Code Playgroud)
我将它构建为一个jar并在我的web-app中使用它,自定义标记和复合组件都很好用.我花了100个不同的层次结构来让它工作.
我的问题是我不喜欢我似乎必须将自定义标签放在一个地方(/ tags)和复合组件放在另一个地方(/ resources/components).另外,我必须引用带有源标记的自定义标记和带有component/resource-id标记的复合组件.例如,我尝试将myTag.xhtml放入/ resources/components并使用resource-id引用它,但是当我尝试使用它时,我得到了NPE.
那么标签和组件必须在不同的目录中吗?我只需要忍受这种等级制度吗?
我的组件库目录树设置如下:
resources
mylib
css
mycomponent.css
properties
mycomponent.properties
mycomponent.xhtml
Run Code Online (Sandbox Code Playgroud)
我想加载 mycomponent.xhtml 中的属性文件以用于消息。这样做的正确方法是什么?是否有 f:loadbundle 类型的解决方案?
我使用Chrome的审核功能试图在我的网站上找到一些性能瓶颈.我发现了很多关于不可缓存资源的报告.
我用一个包含库中样式表的单页进行了干运行,发现了同样的事情:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html" >
<h:head>
<h:outputStylesheet library="default" name="style.css"/>
</h:head>
<h:body>
<div><h:outputText value="test"/></div>
</h:body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是审计日志条目:
The following resources are explicitly non-cacheable. Consider making them cacheable if possible:
style.css.jsf
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我从库中删除它,这条消息就会消失.因此,看起来在库中缓存资源存在问题.
有没有办法来解决这个问题?
编辑:根据本回答中的一条评论,如果在页面上执行正常刷新,可能不会缓存CSS: 正确设置HTTP标头以强制缓存JS,CSS和PNG文件
那可能是对的吗?为什么书签或键入的URL不能重新使用缓存副本?
我正在尝试跟踪视图使用情况(达到默认的 15 计数限制),但不太确定从哪里获取此信息。它在 FacesContext 中可用吗?
使用 JSF 2.2、ICEfaces 3.3 和 Omnifaces 2.2。
我很沮丧:我想yum install ruby安装Ruby 2.4.1或2.3.0.相反,似乎我必须使用RVM或rbenv来获得2.0.0之后的任何版本,并且这两个工具都需要一些艰巨的过程.
为什么这么复杂?我不能用一个yum命令安装Ruby并使用'/ usr/bin/ruby'就像我'/ usr/bin/java'一样吗?
jsf ×3
jsf-2.2 ×2
clob ×1
css ×1
custom-tag ×1
dns ×1
http-caching ×1
jdbc ×1
omnifaces ×1
oracle ×1
performance ×1
perl ×1
ruby ×1
sybase ×1
unix ×1
view-scope ×1