小编Jay*_*Jay的帖子

Oracle T4CPreparedStatement内存泄漏?

关于应用程序的一些背景,我将在接下来的几行中讨论:

XYZ是一个数据屏蔽工作台eclipse RCP应用程序:你给它一个源表列和一个目标表列,它将应用一个trasformation(加密/ shuffling/etc)并将行数据从源表复制到目标表.现在,当我一次屏蔽n个表时,该应用程序将启动n个线程.

这是问题:

我在第一次推出上述应用程序时遇到了生产问题.不幸的是,我没有任何日志来到根.但是,我尝试在测试区域运行此应用程序并进行压力测试.

当我收集.hprof文件并通过分析器(yourKit)运行它时,我注意到oracle.jdbc.driver.T4CPreparedStatement的对象保留了堆.分析还告诉我,我的一个类正在持有对这个preparedstatement对象的引用,因此,n个线程有n个这样的对象.T4CPreparedStatement似乎有字符数组:lastBoundChars和bindChars,每个都是char [300000].

所以,我研究了一下(google!),获得了ojdbc6.jar并尝试反编译T4CPreparedStatement.我看到T4CPreparedStatement扩展了OraclePreparedStatement,它动态地管理lastBoundChars和bindChars的数组大小.

所以,我的问题是:

  1. 你遇到过像这样的问题吗?
  2. 你知道lastBoundChars/bindChars的意义吗?
  3. 我是剖析的新手,所以你认为我做得不对吗?(我也通过MAT运行hprofs - 这是主要确定的问题 - 所以,我真的不认为我错了吗?)

我在网上找到了类似的东西:http: //forums.oracle.com/forums/thread.jspa?messageID = 2860681

感谢您的建议/意见.

java performance memory-leaks oracle10g

5
推荐指数
2
解决办法
1万
查看次数

Java泛型和反思!

我有一个看起来像这样的课程:

public class UploadBean {


    protected UploadBean(Map<String,?> map){ 
        //do nothing.
    }
}
Run Code Online (Sandbox Code Playgroud)

要通过调用相应的构造函数来使用反射并创建对象,我编写了如下代码:

Class<?> parTypes[] = new Class<?>[1];
parTypes[0] = Map.class;
Constructor ct = format.getMappingBean().getConstructor(parTypes);
Object[] argList  = new Object[1];
argList[0] = map;
Object retObj = ct.newInstance(argList);
Run Code Online (Sandbox Code Playgroud)

此代码在运行时因"无此方法异常"而失败.现在,如何正确设置参数类型?!这样可以识别构造函数中的泛型map参数?

java generics reflection

4
推荐指数
1
解决办法
1万
查看次数

Java中的Bluray Burner - 从哪里开始?

就像这篇文章的主题所暗示的那样,我正在研究开发一个像nero这样的套件来帮助刻录蓝光光盘.关于从哪里开始,我有点无能为力.Java API中有什么可以让你这样做吗?如果我从头开始,我需要从蓝光光盘规格开始吗?是否有任何开源工具已经在做这个?我尝试在sourceforge.net上搜索,但没有发现任何有用的东西.任何帮助深表感谢.

java cd-burning blu-ray

4
推荐指数
1
解决办法
1578
查看次数

使用Spring注入运行时值?

我正在为示例Web应用程序尝试spring-security.在声明LDAPAuthenticationProvider时,我注意到您必须在applicationContext.xml文件中声明所有设置!

作为一个春天新手,我明白必须在applicationContext文件中声明dependecies.但是,在典型的企业方案中,您可以让管理员配置您的ldap设置.因此,您需要将数据库中的ldap服务器相关信息加载到应用程序中,然后连接到配置的服务器.如果是这种情况,我如何在Spring中处理这个问题?

java spring

4
推荐指数
1
解决办法
4793
查看次数

业务规则 - 他们在OOP中的位置?

我有一节课:时间表.

public class Schedule {

private int locationNum;
private int cost;
private String costReason; 
private Date weekOfChange;
private Date dayOfChange;
private String changeReason; 

// and all those getters and setters

public Schedule(int locationNum, int cost, String costReason, Date weekOfChange, Date dayOfChange, String changeReason) throws ApplicationException {
//change is all or nothing - all attributes are present or none
if((weekOfChange!=null && dayOfChange!=null && changeReason!=null) || (weekOfChange==null  && dayOfChange == null && changeReason == null))  {
this.weekOfChange = weekOfChange;
this.dayOfChange = dayOfChange; …
Run Code Online (Sandbox Code Playgroud)

java oop validation business-logic

3
推荐指数
1
解决办法
1817
查看次数

使用spring/struts/hibernate进行Java开发的最佳Eclipse插件?

我正在寻找使用Struts/Spring/Hibernate等技术让开发人员生活轻松的插件.例如,这是一个要求:

如果我要更改Struts Action,我应该能够为我的webapp列出所有Struts动作,右键单击并添加方法/进行一些更改.

所以,基本上,我需要知道哪些插件会使eclipse更加"技术/框架友好".

感谢您的帮助!

java eclipse eclipse-plugin java-ee

3
推荐指数
1
解决办法
2366
查看次数

Netbeans代码难题:如何编辑自动生成的代码?

好.所以这是一个netbeans问题,这要归功于GUI设计器自动生成的代码.我使用netbeans UI设计器设计了一个GUI,它是为java 1.6编译的.在我完成UI后,我意识到我应该为Java 1.4而不是1.6执行此操作.在从1.6降级到1.4的努力中,我改变了表单属性以使用Swing Extensions Library,我在代码中摆脱了增强的forloop和泛型,我对此最终错误感到困惑:

类org.jdesktop.application.ResourceMap中的错误方法getString不能应用于给定的类型; required:java.lang.String,java.lang.Object [] found:java.lang.String reason:actual和formal参数列表的长度不同

这来自Netbeans自动生成的代码块,用于此方法调用:

resourceMap.getString("panel.tabTitle");
Run Code Online (Sandbox Code Playgroud)

显然,这可能通过写这个来解决:

resourceMap.getString("panel.tabTitle",new Object{String.class});
Run Code Online (Sandbox Code Playgroud)

但是,我对如何使netbeans对它生成的代码进行更改感到难过!如果您之前已经看过这个问题并且能够解决它,请告诉我.感谢您的帮助.

java netbeans code-generation

3
推荐指数
1
解决办法
1万
查看次数

Zookeeper是否适合这种情况?

这是我的要求.

我在群集中有一堆机器(比如4-A,B,C,D).

A的工作是轮询数据库以获取更新(因此,A可以在订单表中查找新订单).
一旦A接收到更新,它就会验证B,C,D中哪一个相对空闲(负载均衡是我猜的正确的单词).然后它命令B,C,D中的一个开始处理订单.A保持在B/C/D上处理订单的轨道.

B,C,D就像是奴隶 - 他们只接收来自A的更新并在完成订单处理时通知A. 如果A发生故障(由于网络问题或其他原因),B,C,D中的一个将成为主服务器并执行A的职责A.关于正在运行的作业的元数据也会定期备份到备份节点E.所以当B/C/D成为新的主人,它将从E读取元数据.

我知道这听起来有点像hadoop,但订单处理不适合map reduce模型,所以我正在寻找利用ZooKeeper等其他框架的方法,它可以帮助A,B,C和D之间的协调.

ZooKeeper适合吗?

architecture hadoop distributed-computing apache-zookeeper

3
推荐指数
1
解决办法
2737
查看次数

如何在 GridBagLayout 中左对齐组件?

在此处输入图片说明

上图中的每一行,都是使用 gridbaglayout 放置组件的自定义组件。我试图避免按钮“Abc”之前的空间,我希望它完全推到左侧。如何使用 gridbaglayout 约束实现这一点?

编辑添加源代码。

        gridBagConstraints = new GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = GridBagConstraints.NONE;
        gridBagConstraints.insets =  new Insets(11,0,0,0);
        add(abcButton,gridBagConstraints);
            gridBagConstraints = new GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = GridBagConstraints.NONE;
        gridBagConstraints.insets = new Insets(20, 10, 0, 0);
        add(comp1,gridBagConstraints);
        gridBagConstraints = new GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = GridBagConstraints.NONE;
        gridBagConstraints.insets = new Insets(20, 35, 0, 0);
        add(comp2, gridBagConstraints);
        gridBagConstraints = new GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.ipadx = …
Run Code Online (Sandbox Code Playgroud)

java swing gridbaglayout

3
推荐指数
1
解决办法
4720
查看次数

Oracle示例数据问题

所以,我有这个基于java的数据转换/屏蔽工具,我想在Oracle 10g上进行测试.Oracle 10g的优点在于,您可以获得大量包含50万条记录的示例模式.模式是:SH,OE,HR,IX等.所以,我安装了10g,发现安装脚本在ORACLE_HOME/demo/scripts下.

我稍微定制了这些脚本以便在批处理模式下运行.这解决了我的一半要求 - 为我的数据转换软件测试创建源数据.要求的后半部分是我在不使用任何数据的情况下以不同的名称(TR_HR,TR_OE等等)创建相同的模式.这些模式将代表我的目标模式.因此,简而言之,我的软件将从模式中的表中获取数据,并将其加载到不同模式中的同一个表中.

现在,我在创建目标模式并清空它时遇到两个问题.

  • 我想在批量工作中这样做.但是您获得的oracle脚本,示例模式名称是不可配置的.所以,我尝试创建一个脚本,用TR_OE替换OE,用TR_HR替换HR等等.然而,这种方法有点令人恼火,因为样本模式在创建方式上有点复杂; Oracle创建同义词,视图,物化视图,数据类型和许多奇怪的东西.
  • 我希望目标模式(TR_HR,TR_OE,...)为空.但是一些模式具有循环引用,这不允许我删除数据.唯一的解决方法似乎是删除某些外键,删除数据然后再添加约束.

有没有这么简单的方法,没有这么大惊小怪?我需要一个复杂的数据集用于我的测试(复杂的,如带有触发器的表,多个层次结构......例如,一个子表最多有5个级别,一个父表引用一个IOT表和一个IOT表指的是非IOT表等.).从数据集的角度来看,示例模式几乎是完美的.我看到的唯一挑战是自动化加载源模式的整个过程,然后创建目标模式并清空它们.感谢您的帮助和建议.


UPDATE

您需要运行以手动安装oracle示例模式的主脚本是mkplug.sql.以下是从dmp文件加载模式的行:

host imp "'sys/&&password_sys AS SYSDBA'" transport_tablespace=y file=&imp_file log=&imp_logfile datafiles='&datafile' tablespaces=EXAMPLE tts_owners=hr,oe,pm,ix,sh
Run Code Online (Sandbox Code Playgroud)

好吧,我尝试修改此行(在修复mkplug.sql和所有其他sql文件上的路径相关问题之后)到此:

host imp "'sys/&&password_sys AS SYSDBA'" rows=n transport_tablespace=y file=&imp_file log=&imp_logfile datafiles='&datafile' tablespaces=EXAMPLE tts_owners=hr,oe,pm,ix,sh
Run Code Online (Sandbox Code Playgroud)

而且......它没有帮忙.尽管rows = n属性:(使用行数据创建了架构:(

oracle sample oracle10g sample-data

2
推荐指数
1
解决办法
1330
查看次数